]> git.mxchange.org Git - friendica.git/commitdiff
Merge branch 'master' of git://github.com/friendica/friendica
authorVasudev Kamath <kamathvasudev@gmail.com>
Sat, 5 May 2012 15:18:16 +0000 (20:48 +0530)
committerVasudev Kamath <kamathvasudev@gmail.com>
Sat, 5 May 2012 15:18:16 +0000 (20:48 +0530)
143 files changed:
boot.php
database.sql
images/smiley-thumbsup.gif
include/Contact.php
include/Scrape.php
include/acl_selectors.php
include/api.php
include/cache.php
include/contact_widgets.php
include/dba.php
include/delivery.php
include/enotify.php
include/gprobe.php [new file with mode: 0644]
include/items.php
include/network.php
include/notifier.php
include/onepoll.php [new file with mode: 0644]
include/plugin.php
include/poller.php
include/profile_selectors.php
include/socgraph.php
include/text.php
index.php
js/main.js
mod/acl.php
mod/admin.php
mod/common.php
mod/contacts.php
mod/dfrn_confirm.php
mod/dfrn_request.php
mod/events.php
mod/filerm.php
mod/friendica.php
mod/item.php
mod/network.php
mod/profile.php
mod/profiles.php
mod/settings.php
mod/tagger.php
mod/viewcontacts.php
update.php
util/messages.po
view/admin_aside.tpl
view/admin_site.tpl
view/common_tabs.tpl
view/contact_edit.tpl
view/de/follow_notify_eml.tpl
view/de/lostpass_eml.tpl
view/de/messages.po
view/de/register_open_eml.tpl
view/de/strings.php
view/de/update_fail_eml.tpl
view/en/update_fail_eml.tpl [new file with mode: 0644]
view/eo/messages.po
view/eo/strings.php
view/failed_updates.tpl [new file with mode: 0644]
view/fr/cmnt_received_eml.tpl
view/fr/cmnt_received_html_body_eml.tpl
view/fr/cmnt_received_text_body_eml.tpl
view/fr/follow_notify_eml.tpl
view/fr/friend_complete_eml.tpl
view/fr/intro_complete_eml.tpl
view/fr/lostpass_eml.tpl
view/fr/mail_received_html_body_eml.tpl
view/fr/mail_received_text_body_eml.tpl
view/fr/passchanged_eml.tpl
view/fr/register_open_eml.tpl
view/fr/register_verify_eml.tpl
view/fr/request_notify_eml.tpl
view/fr/wall_received_eml.tpl
view/match.tpl
view/remote_friends_common.tpl [new file with mode: 0644]
view/settings.tpl
view/theme/cleanzero/config.php
view/theme/cleanzero/nav.tpl
view/theme/cleanzero/style.php
view/theme/cleanzero/theme.php
view/theme/cleanzero/theme_settings.tpl
view/theme/diabook/bottom.tpl [new file with mode: 0644]
view/theme/diabook/comment_item.tpl
view/theme/diabook/communityhome.tpl
view/theme/diabook/diabook-aerith/style-network-wide.css
view/theme/diabook/diabook-aerith/style-network.css
view/theme/diabook/diabook-aerith/style-profile-wide.css
view/theme/diabook/diabook-aerith/style-profile.css
view/theme/diabook/diabook-aerith/style-wide.css
view/theme/diabook/diabook-aerith/style.css
view/theme/diabook/diabook-blue/style-network-wide.css
view/theme/diabook/diabook-blue/style-network.css
view/theme/diabook/diabook-blue/style-profile-wide.css
view/theme/diabook/diabook-blue/style-profile.css
view/theme/diabook/diabook-blue/style-wide.css
view/theme/diabook/diabook-blue/style.css
view/theme/diabook/diabook-dark/style-network.css
view/theme/diabook/diabook-dark/style-profile.css
view/theme/diabook/diabook-dark/style.css
view/theme/diabook/diabook-green/style-network-wide.css
view/theme/diabook/diabook-green/style-network.css
view/theme/diabook/diabook-green/style-profile-wide.css
view/theme/diabook/diabook-green/style-profile.css
view/theme/diabook/diabook-green/style-wide.css
view/theme/diabook/diabook-green/style.css
view/theme/diabook/diabook-pink/style-network-wide.css
view/theme/diabook/diabook-pink/style-network.css
view/theme/diabook/diabook-pink/style-profile-wide.css
view/theme/diabook/diabook-pink/style-profile.css
view/theme/diabook/diabook-pink/style-wide.css
view/theme/diabook/diabook-pink/style.css
view/theme/diabook/diabook-red/style-network-wide.css
view/theme/diabook/diabook-red/style-network.css
view/theme/diabook/diabook-red/style-profile-wide.css
view/theme/diabook/diabook-red/style-profile.css
view/theme/diabook/diabook-red/style-wide.css
view/theme/diabook/diabook-red/style.css
view/theme/diabook/footer.tpl
view/theme/diabook/js/README
view/theme/diabook/js/jquery-ui-1.8.20.custom.min.js [new file with mode: 0644]
view/theme/diabook/js/jquery.twitter.search.js [new file with mode: 0644]
view/theme/diabook/nav.tpl
view/theme/diabook/style-network-wide.css
view/theme/diabook/style-network.css
view/theme/diabook/style-profile-wide.css
view/theme/diabook/style-profile.css
view/theme/diabook/style-wide.css
view/theme/diabook/style.css
view/theme/diabook/theme.php
view/theme/dispy/comment_item.tpl
view/theme/dispy/dark/_base.less [new file with mode: 0644]
view/theme/dispy/dark/connect.png [deleted file]
view/theme/dispy/dark/style.css
view/theme/dispy/dark/style.less
view/theme/dispy/icons/connect.png [new file with mode: 0644]
view/theme/dispy/jot.tpl
view/theme/dispy/js/modernizr.custom.2.5.3.js [new file with mode: 0644]
view/theme/dispy/js/modernizr.custom.2.5.3.min.js [new file with mode: 0644]
view/theme/dispy/light/_base.less [new file with mode: 0644]
view/theme/dispy/light/style.css
view/theme/dispy/light/style.less
view/theme/dispy/photo_view.tpl
view/theme/dispy/profile_vcard.tpl
view/theme/dispy/theme.php
view/theme/duepuntozero/style.css
view/update_fail_eml.tpl [deleted file]

index b8a61c796a8f5dac0f7b9880df09b5374353f706..5fb309820aa64d508b4ba6663c24e8bf8d0b07f3 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -9,9 +9,9 @@ require_once('include/nav.php');
 require_once('include/cache.php');
 
 define ( 'FRIENDICA_PLATFORM',     'Friendica');
-define ( 'FRIENDICA_VERSION',      '2.3.1324' );
+define ( 'FRIENDICA_VERSION',      '2.3.1332' );
 define ( 'DFRN_PROTOCOL_VERSION',  '2.23'    );
-define ( 'DB_UPDATE_VERSION',      1138      );
+define ( 'DB_UPDATE_VERSION',      1143      );
 
 define ( 'EOL',                    "<br />\r\n"     );
 define ( 'ATOM_TIME',              'Y-m-d\TH:i:s\Z' );
@@ -73,6 +73,14 @@ define ( 'HOOK_HOOK',      0);
 define ( 'HOOK_FILE',      1);
 define ( 'HOOK_FUNCTION',  2);
 
+/**
+ * DB update return values
+ */
+
+define ( 'UPDATE_SUCCESS', 0);
+define ( 'UPDATE_FAILED',  1);
+
+
 /**
  *
  * page/profile types
@@ -193,6 +201,8 @@ define ( 'ACTIVITY_REQ_FRIEND',  NAMESPACE_ACTIVITY_SCHEMA . 'request-friend' );
 define ( 'ACTIVITY_UNFRIEND',    NAMESPACE_ACTIVITY_SCHEMA . 'remove-friend' );
 define ( 'ACTIVITY_FOLLOW',      NAMESPACE_ACTIVITY_SCHEMA . 'follow' );
 define ( 'ACTIVITY_UNFOLLOW',    NAMESPACE_ACTIVITY_SCHEMA . 'stop-following' );
+define ( 'ACTIVITY_JOIN',        NAMESPACE_ACTIVITY_SCHEMA . 'join' );
+
 define ( 'ACTIVITY_POST',        NAMESPACE_ACTIVITY_SCHEMA . 'post' );
 define ( 'ACTIVITY_UPDATE',      NAMESPACE_ACTIVITY_SCHEMA . 'update' );
 define ( 'ACTIVITY_TAG',         NAMESPACE_ACTIVITY_SCHEMA . 'tag' );
@@ -205,6 +215,7 @@ define ( 'ACTIVITY_OBJ_PHOTO',   NAMESPACE_ACTIVITY_SCHEMA . 'photo' );
 define ( 'ACTIVITY_OBJ_P_PHOTO', NAMESPACE_ACTIVITY_SCHEMA . 'profile-photo' );
 define ( 'ACTIVITY_OBJ_ALBUM',   NAMESPACE_ACTIVITY_SCHEMA . 'photo-album' );
 define ( 'ACTIVITY_OBJ_EVENT',   NAMESPACE_ACTIVITY_SCHEMA . 'event' );
+define ( 'ACTIVITY_OBJ_GROUP',   NAMESPACE_ACTIVITY_SCHEMA . 'group' );
 define ( 'ACTIVITY_OBJ_TAGTERM', NAMESPACE_DFRN            . '/tagterm' );
 define ( 'ACTIVITY_OBJ_PROFILE', NAMESPACE_DFRN            . '/profile' );
 
@@ -658,32 +669,29 @@ if(! function_exists('check_config')) {
 
                                                        // call the specific update
 
-//                                                     global $db;
-//                                                     $db->excep(TRUE);
-//                                                     try {
-//                                                             $db->beginTransaction();
-                                                               $func = 'update_' . $x;
-                                                               $func($a);
-//                                                             $db->commit();
-//                                                     } catch(Exception $ex) {
-//                                                             $db->rollback();
-//                                                             //send the administrator an e-mail
-//                                                             $email_tpl = get_intltext_template("update_fail_eml.tpl");
-//                                                             $email_tpl = replace_macros($email_tpl, array(
-//                                                                     '$sitename' => $a->config['sitename'],
-//                                                                     '$siteurl' =>  $a->get_baseurl(),
-//                                                                     '$update' => $x,
-//                                                                     '$error' => $ex->getMessage()));
-//                                                             $subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
+                                                       $func = 'update_' . $x;
+                                                       $retval = $func();
+                                                       if($retval) {
+                                                               //send the administrator an e-mail
+                                                               $email_tpl = get_intltext_template("update_fail_eml.tpl");
+                                                               $email_msg = replace_macros($email_tpl, array(
+                                                                       '$sitename' => $a->config['sitename'],
+                                                                       '$siteurl' =>  $a->get_baseurl(),
+                                                                       '$update' => $x,
+                                                                       '$error' => sprintf( t('Update %s failed. See error logs.'), $x)
+                                                               ));
+                                                               $subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
                                                                        
-//                                                             mail($a->config['admin_email'], $subject, $text,
-//                                                                             'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
-//                                                                             . 'Content-type: text/plain; charset=UTF-8' . "\n"
-//                                                                             . 'Content-transfer-encoding: 8bit' );
-//                                                             //try the logger
-//                                                             logger('update failed: '.$ex->getMessage().EOL);
-//                                                     }
-//                                                     $db->excep(FALSE);
+                                                               mail($a->config['admin_email'], $subject, $email_msg,
+                                                                       'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
+                                                                       . 'Content-type: text/plain; charset=UTF-8' . "\n"
+                                                                       . 'Content-transfer-encoding: 8bit' );
+                                                               //try the logger
+                                                               logger('CRITICAL: Update Failed: '. $x);
+                                                       }
+                                                       else
+                                                               set_config('database','update_' . $x, 'success');
+                                                               
                                                }
                                        }
                                        set_config('system','build', DB_UPDATE_VERSION);
@@ -725,9 +733,10 @@ if(! function_exists('check_config')) {
                        foreach($installed as $i) {
                                if(! in_array($i['name'],$plugins_arr)) {
                                        uninstall_plugin($i['name']);
-                       }
-                               else
+                               }
+                               else {
                                        $installed_arr[] = $i['name'];
+                               }
                        }
                }
 
@@ -1463,16 +1472,19 @@ if(! function_exists('profile_tabs')){
                                'label'=>t('Status'),
                                'url' => $url,
                                'sel' => ((!isset($tab)&&$a->argv[0]=='profile')?'active':''),
+                               'title' => t('Status Messages and Posts'),
                        ),
                        array(
                                'label' => t('Profile'),
                                'url'   => $url.'/?tab=profile',
                                'sel'   => ((isset($tab) && $tab=='profile')?'active':''),
+                               'title' => t('Profile Details'),
                        ),
                        array(
                                'label' => t('Photos'),
                                'url'   => $a->get_baseurl() . '/photos/' . $nickname,
                                'sel'   => ((!isset($tab)&&$a->argv[0]=='photos')?'active':''),
+                               'title' => t('Photo Albums'),
                        ),
                );
        
@@ -1481,11 +1493,13 @@ if(! function_exists('profile_tabs')){
                                'label' => t('Events'),
                                'url'   => $a->get_baseurl() . '/events',
                                'sel'   =>((!isset($tab)&&$a->argv[0]=='events')?'active':''),
+                               'title' => t('Events and Calendar'),
                        );
                        $tabs[] = array(
                                'label' => t('Personal Notes'),
                                'url'   => $a->get_baseurl() . '/notes',
                                'sel'   =>((!isset($tab)&&$a->argv[0]=='notes')?'active':''),
+                               'title' => t('Only You Can See This'),
                        );
                }
 
@@ -1505,6 +1519,15 @@ function get_my_url() {
        return false;
 }
 
+function zrl_init(&$a) {
+       $tmp_str = get_my_url();
+       if(validate_url($tmp_str)) {
+               proc_run('php','include/gprobe.php',bin2hex($tmp_str));
+               $arr = array('zrl' => $tmp_str, 'url' => $a->cmd);
+               call_hooks('zrl_init',$arr);
+       }
+}
+
 function zrl($s,$force = false) {
        if(! strlen($s))
                return $s;
index eadb53cc6422f10cf65f887b3c89265fc4024b2c..cf086796a66f4538b8580f4269607b7f1d203583 100644 (file)
@@ -16,9 +16,11 @@ CREATE TABLE IF NOT EXISTS `addon` (
   `name` char(255) NOT NULL,
   `version` char(255) NOT NULL,
   `installed` tinyint(1) NOT NULL DEFAULT '0',
+  `hidden` tinyint(1) NOT NULL DEFAULT '0',
   `timestamp` bigint(20) NOT NULL DEFAULT '0',
   `plugin_admin` tinyint(1) NOT NULL DEFAULT '0',
-  PRIMARY KEY (`id`)
+  PRIMARY KEY (`id`),
+  KEY `hidden` (`hidden`)  
 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
 
 -- --------------------------------------------------------
@@ -172,6 +174,7 @@ CREATE TABLE IF NOT EXISTS `contact` (
   `writable` tinyint(1) NOT NULL DEFAULT '0',
   `forum` tinyint(1) NOT NULL DEFAULT '0',
   `hidden` tinyint(1) NOT NULL DEFAULT '0',
+  `archive` tinyint(1) NOT NULL DEFAULT '0',
   `pending` tinyint(1) NOT NULL DEFAULT '1',
   `rating` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0-5 reputation, 0 unknown, 1 call police, 5 inscrutable',
   `reason` text NOT NULL COMMENT 'why a rating was given - will help friends decide to make friends or not',
@@ -197,6 +200,7 @@ CREATE TABLE IF NOT EXISTS `contact` (
   KEY `nurl` (`nurl`),
   KEY `pending` (`pending`),
   KEY `hidden` (`hidden`),
+  KEY `archive` (`archive`),
   KEY `forum` (`forum`)
 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
 
@@ -380,11 +384,13 @@ CREATE TABLE IF NOT EXISTS `glink` (
   `cid` int(11) NOT NULL,
   `uid` int(11) NOT NULL,
   `gcid` int(11) NOT NULL,
+  `zcid` int(11) NOT NULL,
   `updated` datetime NOT NULL,
   PRIMARY KEY (`id`),
   KEY `cid` (`cid`),
   KEY `uid` (`uid`),
   KEY `gcid` (`gcid`),
+  KEY `zcid` (`zcid`),
   KEY `updated` (`updated`)
 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
 
@@ -1017,9 +1023,11 @@ CREATE TABLE IF NOT EXISTS `user` (
   `pwdreset` char(255) NOT NULL,
   `maxreq` int(11) NOT NULL DEFAULT '10',
   `expire` int(10) unsigned NOT NULL DEFAULT '0',
+  `account_removed` tinyint(1) NOT NULL DEFAULT '0',
   `account_expired` tinyint(1) NOT NULL DEFAULT '0',
   `account_expires_on` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
   `expire_notification_sent` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+  `service_class` char(32) NOT NULL,
   `allow_cid` mediumtext NOT NULL,
   `allow_gid` mediumtext NOT NULL,
   `deny_cid` mediumtext NOT NULL,
@@ -1034,7 +1042,9 @@ CREATE TABLE IF NOT EXISTS `user` (
   KEY `blocked` (`blocked`),
   KEY `verified` (`verified`),
   KEY `unkmail` (`unkmail`),
-  KEY `cntunkmail` (`cntunkmail`)
+  KEY `cntunkmail` (`cntunkmail`),
+  KEY `account_removed` (`account_removed`),
+  KEY `service_class` (`service_class`)
 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
 
 -- --------------------------------------------------------
index a9533a64d26a92f01796d72f47de06bdbea9c732..1bc6b124ea951adcb34d234b15612dd1e8de3dbb 100644 (file)
Binary files a/images/smiley-thumbsup.gif and b/images/smiley-thumbsup.gif differ
index 537850e007400144028a13bf708d13030c9b03af..2523fc0231a594189b057738873140a3e331b748 100644 (file)
@@ -51,6 +51,21 @@ function user_remove($uid) {
 
 
 function contact_remove($id) {
+
+       $r = q("select uid from contact where id = %d limit 1",
+               intval($id)
+       );
+       if((! count($r)) || (! intval($r[0]['uid'])))
+               return;
+
+       $archive = get_pconfig($r[0]['uid'], 'system','archive_removed_contacts');
+       if($archive) {
+               q("update contact set `archive` = 1, `network` = 'none', `writable` = 0 where id = %d limit 1",
+                       intval($id)
+               );
+               return;
+       }
+
        q("DELETE FROM `contact` WHERE `id` = %d LIMIT 1",
                intval($id)
        );
index b20d7d6046dec03ce419b54b34e5cc1ae660da9b..22725260091cac26f848183c4ac5f5d12e46e938 100644 (file)
@@ -282,7 +282,7 @@ function scrape_feed($url) {
                }
        }
        if(! $basename)
-               $basename = substr($url,0,strrpos($url,'/')) . '/';
+               $basename = implode('/', array_slice(explode('/',$url),0,3)) . '/';
 
        $items = $dom->getElementsByTagName('link');
 
index a5f5aff532fbe0487cd5c4cc2a3835c57b367381..461ad0c3640c276d449169490e01556eb47ce5d5 100644 (file)
@@ -122,7 +122,7 @@ function contact_selector($selname, $selclass, $preselected = false, $options) {
                $o .= "<select name=\"{$selname}[]\" id=\"$selclass\" class=\"$selclass\" multiple=\"multiple\" size=\"" . $x['size'] . "$\" $tabindex >\r\n";
 
        $r = q("SELECT `id`, `name`, `url`, `network` FROM `contact` 
-               WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `notify` != ''
+               WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `notify` != ''
                $sql_extra
                ORDER BY `name` ASC ",
                intval(local_user())
@@ -188,7 +188,7 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p
                $o .= "<select name=\"{$selname}[]\" id=\"$selclass\" class=\"$selclass\" multiple=\"multiple\" size=\"$size\" $tabindex >\r\n";
 
        $r = q("SELECT `id`, `name`, `url`, `network` FROM `contact` 
-               WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `notify` != ''
+               WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `notify` != ''
                $sql_extra
                ORDER BY `name` ASC ",
                intval(local_user())
index f9be68c3df3a4961c3d9e6a98b6c7fe1337c9f80..a693a32c8bb3c797a4d20afa62493ed3d4bf2ce2 100644 (file)
                        $nick = $name;
 
                // Generating a random ID
-               if (!array_key_exists($nick, $usercache))
+               if (is_null($usercache[$nick]) or !array_key_exists($nick, $usercache))
                        $usercache[$nick] = mt_rand(2000000, 2100000);
 
                $ret = array(
index 3c8a3f7138b4d7d5c1da52fe86ae99b62283bec8..360c4acbdbadd285225f848149a3d2c778bc8576 100644 (file)
                }
                
                public static function set($key,$value) {
-                       $r = q("SELECT * FROM `cache` WHERE `k`='%s' limit 1",
-                               dbesc($key)
-                       );
-                       if(count($r)) {
-                               q("UPDATE `cache` SET `v` = '%s', `updated = '%s' WHERE `k` = '%s' limit 1",
-                                       dbesc($value),
-                                       dbesc(datetime_convert()),
-                                       dbesc($key));
-                       }
-                       else {
-                               q("INSERT INTO `cache` (`k`,`v`,`updated`) VALUES ('%s','%s','%s')",
+
+                       q("REPLACE INTO `cache` (`k`,`v`,`updated`) VALUES ('%s','%s','%s')",
                                        dbesc($key),
                                        dbesc($value),
                                        dbesc(datetime_convert()));
-                       }
                }
+
+               
+/* 
+ *
+ * Leaving this legacy code temporaily to see how REPLACE fares 
+ * as opposed to non-atomic checks when faced with fast moving key duplication.
+ * As a MySQL extension it isn't portable, but we're not yet very portable.
+ */
+
+/*
+ *                     $r = q("SELECT * FROM `cache` WHERE `k`='%s' limit 1",
+ *                             dbesc($key)
+ *                     );
+ *                     if(count($r)) {
+ *                             q("UPDATE `cache` SET `v` = '%s', `updated = '%s' WHERE `k` = '%s' limit 1",
+ *                                     dbesc($value),
+ *                                     dbesc(datetime_convert()),
+ *                                     dbesc($key));
+ *                     }
+ *                     else {
+ *                             q("INSERT INTO `cache` (`k`,`v`,`updated`) VALUES ('%s','%s','%s')",
+ *                                     dbesc($key),
+ *                                     dbesc($value),
+ *                                     dbesc(datetime_convert()));
+ *                     }
+ *             }
+ */
+
                
                public static function clear(){
                        q("DELETE FROM `cache` WHERE `updated` < '%s'",
index 96b02f29391c816926739db27dc07fb86d552bc1..42d3afdee7cd375e6f9e546a0349595d9533dd13 100644 (file)
@@ -133,3 +133,59 @@ function categories_widget($baseurl,$selected = '') {
        ));
 }
 
+function common_friends_visitor_widget($profile_uid) {
+
+       $a = get_app();
+
+       if(local_user() == $profile_uid)
+               return;
+
+       $cid = $zcid = 0;
+
+       if(can_write_wall($a,$profile_uid))
+               $cid = remote_user();
+       else {
+               if(get_my_url()) {
+                       $r = q("select id from contact where nurl = '%s' and uid = %d limit 1",
+                               dbesc(normalise_link(get_my_url())),
+                               intval($profile_uid)
+                       );
+                       if(count($r))
+                               $cid = $r[0]['id'];
+                       else {
+                               $r = q("select id from gcontact where nurl = '%s' limit 1",
+                                       dbesc(normalise_link(get_my_url()))
+                               );
+                               if(count($r))
+                                       $zcid = $r[0]['id'];
+                       }
+               }
+       }
+
+       if($cid == 0 && $zcid == 0)
+               return; 
+
+       require_once('include/socgraph.php');
+
+       if($cid)
+               $t = count_common_friends($profile_uid,$cid);
+       else
+               $t = count_common_friends_zcid($profile_uid,$zcid);
+       if(! $t)
+               return;
+
+       if($cid)
+               $r = common_friends($profile_uid,$cid,0,5,true);
+       else
+               $r = common_friends_zcid($profile_uid,$zcid,0,5,true);
+
+       return replace_macros(get_markup_template('remote_friends_common.tpl'), array(
+               '$desc' =>  sprintf( tt("%d contact in common", "%d contacts in common", $t), $t),
+               '$base' => $a->get_baseurl(),
+               '$uid' => $profile_uid,
+               '$cid' => $cid,
+               '$more' => t('show more'),
+               '$items' => $r
+       )); 
+
+};
\ No newline at end of file
index 44a663eac4dd313e7bfd1b151bf99f6856b22dd0..c9f880241ba9003d38cc2a356c90e62daeb7fc59 100644 (file)
@@ -75,22 +75,28 @@ class dba {
                if((! $this->db) || (! $this->connected))
                        return false;
                
+               $this->error = '';
+
                if($this->mysqli)
                        $result = @$this->db->query($sql);
                else
                        $result = @mysql_query($sql,$this->db);
 
+               if($this->mysqli) {
+                       if($this->db->errno)
+                               $this->error = $this->db->error;
+               }
+               elseif(mysql_errno($this->db))
+                               $this->error = mysql_error($this->db);  
+
+               if(strlen($this->error)) {
+                       logger('dba: ' . $this->error);
+               }
+
                if($this->debug) {
 
                        $mesg = '';
 
-                       if($this->mysqli) {
-                               if($this->db->errno)
-                                       logger('dba: ' . $this->db->error);
-                       }
-                       elseif(mysql_errno($this->db))
-                               logger('dba: ' . mysql_error($this->db));
-
                        if($result === false)
                                $mesg = 'false';
                        elseif($result === true)
@@ -102,7 +108,9 @@ class dba {
                                        $mesg = mysql_num_rows($result) . ' results' . EOL;
                        }
     
-                       $str =  'SQL = ' . printable($sql) . EOL . 'SQL returned ' . $mesg . EOL;
+                       $str =  'SQL = ' . printable($sql) . EOL . 'SQL returned ' . $mesg 
+                               . (($this->error) ? ' error: ' . $this->error : '')
+                               . EOL;
 
                        logger('dba: ' . $str );
                }
@@ -114,9 +122,9 @@ class dba {
                 */
 
                if($result === false) {
-                       logger('dba: ' . printable($sql) . ' returned false.');
+                       logger('dba: ' . printable($sql) . ' returned false.' . "\n" . $this->error);
                        if(file_exists('dbfail.out'))
-                               file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . ' returned false' . "\n", FILE_APPEND);
+                               file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . ' returned false' . "\n" . $this->error . "\n", FILE_APPEND);
                }
 
                if(($result === true) || ($result === false))
index 794b8f27a3a3998c5d860b5c2f1a93311df0f6df..28d81226a46cad9052123f32361b5f3ff3e5d982 100644 (file)
@@ -51,6 +51,17 @@ function delivery_run($argv, $argc){
                return;
        }       
 
+       $maxsysload = intval(get_config('system','maxloadavg'));
+       if($maxsysload < 1)
+               $maxsysload = 50;
+       if(function_exists('sys_getloadavg')) {
+               $load = sys_getloadavg();
+               if(intval($load[0]) > $maxsysload) {
+                       logger('system: load ' . $load . ' too high. Delivery deferred to next queue run.');
+                       return;
+               }
+       }
+
        // It's ours to deliver. Remove it from the queue.
 
        q("delete from deliverq where cmd = '%s' and item = %d and contact = %d limit 1",
index 8385bdec59dac7a8b332df5112f48841e8dfa170..ca134ac86c1814b0d595cc68b64bd5b71d06c5ee 100644 (file)
@@ -402,8 +402,8 @@ class enotify {
         */
        static public function send($params) {
 
-               $fromName = email_header_encode($params['fromName'],'UTF-8'); 
-               $messageSubject = email_header_encode($params['messageSubject'],'UTF-8');
+               $fromName = email_header_encode(html_entity_decode($params['fromName'],ENT_QUOTES,'UTF-8'),'UTF-8'); 
+               $messageSubject = email_header_encode(html_entity_decode($params['messageSubject'],ENT_QUOTES,'UTF-8'),'UTF-8');
                
                // generate a mime boundary
                $mimeBoundary   =rand(0,9)."-"
diff --git a/include/gprobe.php b/include/gprobe.php
new file mode 100644 (file)
index 0000000..5ca4272
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+
+require_once("boot.php");
+require_once('include/Scrape.php');
+require_once('include/socgraph.php');
+
+function gprobe_run($argv, $argc){
+       global $a, $db;
+
+       if(is_null($a)) {
+               $a = new App;
+       }
+  
+       if(is_null($db)) {
+           @include(".htconfig.php");
+       require_once("dba.php");
+           $db = new dba($db_host, $db_user, $db_pass, $db_data);
+       unset($db_host, $db_user, $db_pass, $db_data);
+       };
+
+       require_once('include/session.php');
+       require_once('include/datetime.php');
+
+       load_config('config');
+       load_config('system');
+
+       $a->set_baseurl(get_config('system','url'));
+
+       load_hooks();
+
+       if($argc != 2)
+               return;
+
+       $url = hex2bin($argv[1]);
+
+       $r = q("select * from gcontact where nurl = '%s' limit 1",
+               dbesc(normalise_link($url))
+       );
+
+       if(! count($r)) {
+
+               $arr = probe_url($url);
+               if(count($arr) && x($arr,'network') && $arr['network'] === NETWORK_DFRN) {
+                       q("insert into `gcontact` (`name`,`url`,`nurl`,`photo`)
+                               values ( '%s', '%s', '%s', '%s') ",
+                               dbesc($arr['name']),
+                               dbesc($arr['url']),
+                               dbesc(normalise_link($arr['url'])),
+                               dbesc($arr['photo'])
+                       );
+               }
+               $r = q("select * from gcontact where nurl = '%s' limit 1",
+                       dbesc(normalise_link($url))
+               );
+       }
+       if(count($r))
+               poco_load(0,0,$r[0]['id'], str_replace('/profile/','/poco/',$r[0]['url']));
+               
+       return;
+}
+
+if (array_search(__file__,get_included_files())===0){
+  gprobe_run($argv,$argc);
+  killme();
+}
index 07f62ece575970f81f6fc7000be2f4cc285e1e47..e9df9b00c146daea311ddcaa89c6e3764eabc2ee 100644 (file)
@@ -2227,10 +2227,10 @@ function local_delivery($importer,$data) {
                                logger('local_delivery: received remote comment');
                                $is_like = false;
                                // remote reply to our post. Import and then notify everybody else.
-                               $datarray = get_atom_elements($feed,$item);
 
+                               $datarray = get_atom_elements($feed,$item);
 
-                               $r = q("SELECT `id`, `uid`, `last-child`, `edited`, `body` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+                               $r = q("SELECT `id`, `uid`, `last-child`, `edited`, `body`  FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
                                        dbesc($item_id),
                                        intval($importer['importer_uid'])
                                );
@@ -2266,14 +2266,22 @@ function local_delivery($importer,$data) {
 //                                     return 0;
 //                             }                                       
 
+                               // our user with $importer['importer_uid'] is the owner
+
+                               $own = q("select name,url,thumb from contact where uid = %d and self = 1 limit 1",
+                                       intval($importer['importer_uid'])
+                               );
+
+
                                $datarray['type'] = 'remote-comment';
                                $datarray['wall'] = 1;
                                $datarray['parent-uri'] = $parent_uri;
                                $datarray['uid'] = $importer['importer_uid'];
-                               $datarray['owner-name'] = $r[0]['name'];
-                               $datarray['owner-link'] = $r[0]['url'];
-                               $datarray['owner-avatar'] = $r[0]['thumb'];
+                               $datarray['owner-name'] = $own[0]['name'];
+                               $datarray['owner-link'] = $own[0]['url'];
+                               $datarray['owner-avatar'] = $own[0]['thumb'];
                                $datarray['contact-id'] = $importer['id'];
+
                                if(($datarray['verb'] === ACTIVITY_LIKE) || ($datarray['verb'] === ACTIVITY_DISLIKE)) {
                                        $is_like = true;
                                        $datarray['type'] = 'activity';
@@ -2290,26 +2298,34 @@ function local_delivery($importer,$data) {
                                }
 
                                if(($datarray['verb'] === ACTIVITY_TAG) && ($datarray['object-type'] === ACTIVITY_OBJ_TAGTERM)) {
-
-
+                                       
                                        $xo = parse_xml_string($datarray['object'],false);
                                        $xt = parse_xml_string($datarray['target'],false);
 
-                                       if(($xt->type == ACTIVITY_OBJ_NOTE) && ($xt->id == $r[0]['uri'])) {
+                                       if(($xt->type == ACTIVITY_OBJ_NOTE) && ($xt->id)) {
+
+                                               // fetch the parent item
+
+                                               $tagp = q("select * from item where uri = '%s' and uid = %d limit 1",
+                                                       dbesc($xt->id),
+                                                       intval($importer['importer_uid'])
+                                               );
+                                               if(! count($tagp))
+                                                       continue;       
 
                                                // extract tag, if not duplicate, and this user allows tags, add to parent item                                         
 
                                                if($xo->id && $xo->content) {
                                                        $newtag = '#[url=' . $xo->id . ']'. $xo->content . '[/url]';
-
-                                                       if(! (stristr($r[0]['tag'],$newtag))) {
+                                                       if(! (stristr($tagp[0]['tag'],$newtag))) {
                                                                $i = q("SELECT `blocktags` FROM `user` where `uid` = %d LIMIT 1",
                                                                        intval($importer['importer_uid'])
                                                                );
-                                                               if(count($i) && ! ($i[0]['blocktags'])) {
-                                                                       q("UPDATE item SET tag = '%s' WHERE id = %d LIMIT 1",
-                                                                               dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . $newtag),
-                                                                               intval($r[0]['id'])
+                                                               if(count($i) && ! intval($i[0]['blocktags'])) {
+                                                                       q("UPDATE item SET tag = '%s', `edited` = '%s' WHERE id = %d LIMIT 1",
+                                                                               dbesc($tagp[0]['tag'] . (strlen($tagp[0]['tag']) ? ',' : '') . $newtag),
+                                                                               intval($tagp[0]['id']),
+                                                                               dbesc(datetime_convert())
                                                                        );
                                                                }
                                                        }
@@ -3013,32 +3029,7 @@ function item_expire($uid,$days) {
                if($expire_items==0 && $item['type']!='note')
                        continue;
 
-
-               $r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `id` = %d LIMIT 1",
-                       dbesc(datetime_convert()),
-                       dbesc(datetime_convert()),
-                       intval($item['id'])
-               );
-
-               $r = q("DELETE FROM item_id where iid in (select id from item where parent = %d) and uid = %d",
-                       intval($item['id']),
-                       intval($uid)
-               );
-
-               $r = q("DELETE FROM sign where iid in (select id from item where parent = %d) and uid = %d",
-                       intval($item['id']),
-                       intval($uid)
-               );
-
-               // kill the kids
-
-               $r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ",
-                       dbesc(datetime_convert()),
-                       dbesc(datetime_convert()),
-                       dbesc($item['parent-uri']),
-                       intval($item['uid'])
-               );
-
+               drop_item($item['id'],false);
        }
 
        proc_run('php',"include/notifier.php","expire","$uid");
@@ -3100,6 +3091,25 @@ function drop_item($id,$interactive = true) {
                        intval($item['id'])
                );
 
+               // clean up categories and tags so they don't end up as orphans
+
+               $matches = false;
+               $cnt = preg_match_all('/<(.*?)>/',$item['file'],$matches,PREG_SET_ORDER);
+               if($cnt) {
+                       foreach($matches as $mtch) {
+                               file_tag_unsave_file($item['uid'],$item['id'],$mtch[1],true);
+                       }
+               }
+
+               $matches = false;
+
+               $cnt = preg_match_all('/\[(.*?)\]/',$item['file'],$matches,PREG_SET_ORDER);
+               if($cnt) {
+                       foreach($matches as $mtch) {
+                               file_tag_unsave_file($item['uid'],$item['id'],$mtch[1],false);
+                       }
+               }
+
                // If item is a link to a photo resource, nuke all the associated photos 
                // (visitors will not have photo resources)
                // This only applies to photos uploaded from the photos page. Photos inserted into a post do not
@@ -3123,6 +3133,17 @@ function drop_item($id,$interactive = true) {
                        // ignore the result
                }
 
+               // clean up item_id and sign meta-data tables
+
+               $r = q("DELETE FROM item_id where iid in (select id from item where parent = %d and uid = %d)",
+                       intval($item['id']),
+                       intval($item['uid'])
+               );
+
+               $r = q("DELETE FROM sign where iid in (select id from item where parent = %d and uid = %d)",
+                       intval($item['id']),
+                       intval($item['uid'])
+               );
 
                // If it's the parent of a comment thread, kill all the kids
 
@@ -3155,7 +3176,7 @@ function drop_item($id,$interactive = true) {
                        }       
                }
                $drop_id = intval($item['id']);
-                       
+
                // send the notification upstream/downstream as the case may be
 
                if(! $interactive)
index 4bec4a172778db2c1c452b937787fe25a9f7aaac..27a45ec407ddea095b070c59d7b63d4705ee8ca0 100644 (file)
@@ -583,7 +583,7 @@ function fetch_xrd_links($url) {
 
 
 // Take a URL from the wild, prepend http:// if necessary
-// and check DNS to see if it's real
+// and check DNS to see if it's real (or check if is a valid IP address)
 // return true if it's OK, false if something is wrong with it
 
 if(! function_exists('validate_url')) {
@@ -596,7 +596,7 @@ function validate_url(&$url) {
                $url = 'http://' . $url;
        $h = @parse_url($url);
        
-       if(($h) && (dns_get_record($h['host'], DNS_A + DNS_CNAME + DNS_PTR))) {
+       if(($h) && (dns_get_record($h['host'], DNS_A + DNS_CNAME + DNS_PTR) || filter_var($h['host'], FILTER_VALIDATE_IP) )) {
                return true;
        }
        return false;
@@ -611,7 +611,7 @@ function validate_email($addr) {
                return false;
        $h = substr($addr,strpos($addr,'@') + 1);
 
-       if(($h) && (dns_get_record($h, DNS_A + DNS_CNAME + DNS_PTR + DNS_MX))) {
+       if(($h) && (dns_get_record($h, DNS_A + DNS_CNAME + DNS_PTR + DNS_MX) || filter_var($h['host'], FILTER_VALIDATE_IP) )) {
                return true;
        }
        return false;
index ca7c7b92eb12e5dea61ad7fd63fb7dec8c1e9377..6ce281372b1c0afdb5f4b7073a996ea1a5ccac00 100644 (file)
@@ -47,7 +47,7 @@ function notifier_run($argv, $argc){
 
        $a->set_baseurl(get_config('system','url'));
 
-       logger('notifier: invoked: ' . print_r($argv,true));
+       logger('notifier: invoked: ' . print_r($argv,true), LOGGER_DEBUG);
 
        $cmd = $argv[1];
 
@@ -304,7 +304,7 @@ function notifier_run($argv, $argc){
                        $conversant_str = dbesc(implode(', ',$conversants));
                }
 
-               $r = q("SELECT * FROM `contact` WHERE `id` IN ( $conversant_str ) AND `blocked` = 0 AND `pending` = 0");
+               $r = q("SELECT * FROM `contact` WHERE `id` IN ( $conversant_str ) AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0");
 
                if(count($r))
                        $contacts = $r;
@@ -520,7 +520,8 @@ function notifier_run($argv, $argc){
                                                        `user`.* 
                                                        FROM `contact` 
                                                        LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid` 
-                                                       WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0
+                                                       WHERE `contact`.`blocked` = 0 AND `contact`.`archive` = 0
+                                                       AND `contact`.`pending` = 0
                                                        AND `contact`.`network` = '%s' AND `user`.`nickname` = '%s'
                                                        $sql_extra
                                                        AND `user`.`account_expired` = 0 LIMIT 1",
@@ -769,7 +770,7 @@ function notifier_run($argv, $argc){
                );
                        
                $r2 = q("SELECT `id`, `name`,`network` FROM `contact` 
-                       WHERE `network` in ( '%s', '%s')  AND `uid` = %d AND `blocked` = 0 AND `pending` = 0
+                       WHERE `network` in ( '%s', '%s')  AND `uid` = %d AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0
                        AND `rel` != %d order by rand() ",
                        dbesc(NETWORK_DFRN),
                        dbesc(NETWORK_MAIL2),
@@ -832,6 +833,8 @@ function notifier_run($argv, $argc){
 
        }
 
+       logger('notifier: calling hooks', LOGGER_DEBUG);
+
        if($normal_mode)
                call_hooks('notifier_normal',$target_item);
 
diff --git a/include/onepoll.php b/include/onepoll.php
new file mode 100644 (file)
index 0000000..42bce0f
--- /dev/null
@@ -0,0 +1,519 @@
+<?php
+
+require_once("boot.php");
+
+function onepoll_run($argv, $argc){
+       global $a, $db;
+
+       if(is_null($a)) {
+               $a = new App;
+       }
+  
+       if(is_null($db)) {
+           @include(".htconfig.php");
+       require_once("dba.php");
+           $db = new dba($db_host, $db_user, $db_pass, $db_data);
+       unset($db_host, $db_user, $db_pass, $db_data);
+       };
+
+
+       require_once('include/session.php');
+       require_once('include/datetime.php');
+       require_once('library/simplepie/simplepie.inc');
+       require_once('include/items.php');
+       require_once('include/Contact.php');
+       require_once('include/email.php');
+       require_once('include/socgraph.php');
+       require_once('include/pidfile.php');
+
+       load_config('config');
+       load_config('system');
+
+       $a->set_baseurl(get_config('system','url'));
+
+       load_hooks();
+
+       logger('onepoll: start');
+       
+       $abandon_days = intval(get_config('system','account_abandon_days'));
+       if($abandon_days < 1)
+               $abandon_days = 0;
+
+
+       $manual_id  = 0;
+       $generation = 0;
+       $hub_update = false;
+       $force      = false;
+       $restart    = false;
+
+       if(($argc > 1) && (intval($argv[1])))
+               $contact_id = intval($argv[1]);
+
+       if(! $contact_id) {
+               logger('onepoll: no contact');
+               return;
+       }
+
+       $d = datetime_convert();
+
+       // Only poll from those with suitable relationships,
+       // and which have a polling address and ignore Diaspora since 
+       // we are unable to match those posts with a Diaspora GUID and prevent duplicates.
+
+       $abandon_sql = (($abandon_days) 
+               ? sprintf(" AND `user`.`login_date` > UTC_TIMESTAMP() - INTERVAL %d DAY ", intval($abandon_days)) 
+               : '' 
+       );
+
+       $contacts = q("SELECT `contact`.* FROM `contact` 
+               WHERE ( `rel` = %d OR `rel` = %d ) AND `poll` != ''
+               AND NOT `network` IN ( '%s', '%s' )
+               AND `contact`.`id` = %d
+               AND `self` = 0 AND `contact`.`blocked` = 0 AND `contact`.`readonly` = 0 
+               AND `contact`.`archive` = 0 LIMIT 1",
+               intval(CONTACT_IS_SHARING),
+               intval(CONTACT_IS_FRIEND),
+               dbesc(NETWORK_DIASPORA),
+               dbesc(NETWORK_FACEBOOK),
+               intval($contact_id)
+       );
+
+       if(! count($contacts)) {
+               return;
+       }
+
+       $contact = $contacts[0];
+
+
+       $xml = false;
+
+       $t = $contact['last-update'];
+
+       if($contact['subhub']) {
+               $interval = get_config('system','pushpoll_frequency');
+               $contact['priority'] = (($interval !== false) ? intval($interval) : 3);
+               $hub_update = false;
+
+               if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day"))
+                               $hub_update = true;
+       }
+       else
+               $hub_update = false;
+
+
+       $importer_uid = $contact['uid'];
+               
+       $r = q("SELECT `contact`.*, `user`.`page-flags` FROM `contact` LEFT JOIN `user` on `contact`.`uid` = `user`.`uid` WHERE `user`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1",
+               intval($importer_uid)
+       );
+       if(! count($r))
+               return;
+
+       $importer = $r[0];
+
+       logger("onepoll: poll: ({$contact['id']}) IMPORTER: {$importer['name']}, CONTACT: {$contact['name']}");
+
+       $last_update = (($contact['last-update'] === '0000-00-00 00:00:00') 
+               ? datetime_convert('UTC','UTC','now - 7 days', ATOM_TIME)
+               : datetime_convert('UTC','UTC',$contact['last-update'], ATOM_TIME)
+       );
+
+       if($contact['network'] === NETWORK_DFRN) {
+
+               $idtosend = $orig_id = (($contact['dfrn-id']) ? $contact['dfrn-id'] : $contact['issued-id']);
+               if(intval($contact['duplex']) && $contact['dfrn-id'])
+                       $idtosend = '0:' . $orig_id;
+               if(intval($contact['duplex']) && $contact['issued-id'])
+                       $idtosend = '1:' . $orig_id;
+
+               // they have permission to write to us. We already filtered this in the contact query.
+               $perm = 'rw';
+
+               $url = $contact['poll'] . '?dfrn_id=' . $idtosend 
+                       . '&dfrn_version=' . DFRN_PROTOCOL_VERSION 
+                       . '&type=data&last_update=' . $last_update 
+                       . '&perm=' . $perm ;
+
+               $handshake_xml = fetch_url($url);
+
+               logger('onepoll: handshake with url ' . $url . ' returns xml: ' . $handshake_xml, LOGGER_DATA);
+
+
+               if(! $handshake_xml) {
+                       logger("poller: $url appears to be dead - marking for death ");
+                       // dead connection - might be a transient event, or this might
+                       // mean the software was uninstalled or the domain expired. 
+                       // Will keep trying for one month.
+                       mark_for_death($contact);
+
+                       // set the last-update so we don't keep polling
+                       $r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
+                               dbesc(datetime_convert()),
+                               intval($contact['id'])
+                       );
+
+                       return;
+               }
+
+               if(! strstr($handshake_xml,'<?xml')) {
+                       logger('poller: response from ' . $url . ' did not contain XML.');
+                       $r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
+                               dbesc(datetime_convert()),
+                               intval($contact['id'])
+                       );
+                       return;
+               }
+
+
+               $res = parse_xml_string($handshake_xml);
+       
+               if(intval($res->status) == 1) {
+                       logger("poller: $url replied status 1 - marking for death ");
+
+                       // we may not be friends anymore. Will keep trying for one month.
+                       // set the last-update so we don't keep polling
+
+
+                       $r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
+                               dbesc(datetime_convert()),
+                               intval($contact['id'])
+                       );
+                       mark_for_death($contact);
+               }
+               else {
+                       if($contact['term-date'] != '0000-00-00 00:00:00') {
+                               logger("poller: $url back from the dead - removing mark for death");
+                               unmark_for_death($contact);
+                       }
+               }
+
+               if((intval($res->status) != 0) || (! strlen($res->challenge)) || (! strlen($res->dfrn_id)))
+                       return;
+
+               if(((float) $res->dfrn_version > 2.21) && ($contact['poco'] == '')) {
+                       q("update contact set poco = '%s' where id = %d limit 1",
+                               dbesc(str_replace('/profile/','/poco/', $contact['url'])),
+                               intval($contact['id'])
+                       );
+               }
+
+               $postvars = array();
+
+               $sent_dfrn_id = hex2bin((string) $res->dfrn_id);
+               $challenge    = hex2bin((string) $res->challenge);
+
+               $final_dfrn_id = '';
+
+               if(($contact['duplex']) && strlen($contact['prvkey'])) {
+                       openssl_private_decrypt($sent_dfrn_id,$final_dfrn_id,$contact['prvkey']);
+                       openssl_private_decrypt($challenge,$postvars['challenge'],$contact['prvkey']);
+               }
+               else {
+                       openssl_public_decrypt($sent_dfrn_id,$final_dfrn_id,$contact['pubkey']);
+                       openssl_public_decrypt($challenge,$postvars['challenge'],$contact['pubkey']);
+               }
+
+               $final_dfrn_id = substr($final_dfrn_id, 0, strpos($final_dfrn_id, '.'));
+
+               if(strpos($final_dfrn_id,':') == 1)
+                       $final_dfrn_id = substr($final_dfrn_id,2);
+
+               if($final_dfrn_id != $orig_id) {
+                       logger('poller: ID did not decode: ' . $contact['id'] . ' orig: ' . $orig_id . ' final: ' . $final_dfrn_id);    
+                       // did not decode properly - cannot trust this site 
+                       return;
+               }
+
+               $postvars['dfrn_id'] = $idtosend;
+               $postvars['dfrn_version'] = DFRN_PROTOCOL_VERSION;
+               $postvars['perm'] = 'rw';
+
+               $xml = post_url($contact['poll'],$postvars);
+
+       }
+       elseif(($contact['network'] === NETWORK_OSTATUS) 
+               || ($contact['network'] === NETWORK_DIASPORA)
+               || ($contact['network'] === NETWORK_FEED) ) {
+
+               // Upgrading DB fields from an older Friendica version
+               // Will only do this once per notify-enabled OStatus contact
+               // or if relationship changes
+
+               $stat_writeable = ((($contact['notify']) && ($contact['rel'] == CONTACT_IS_FOLLOWER || $contact['rel'] == CONTACT_IS_FRIEND)) ? 1 : 0);
+
+               if($stat_writeable != $contact['writable']) {
+                       q("UPDATE `contact` SET `writable` = %d WHERE `id` = %d LIMIT 1",
+                               intval($stat_writeable),
+                               intval($contact['id'])
+                       );
+               }
+
+               // Are we allowed to import from this person?
+
+               if($contact['rel'] == CONTACT_IS_FOLLOWER || $contact['blocked'] || $contact['readonly'])
+                       return;
+
+               $xml = fetch_url($contact['poll']);
+       }
+       elseif($contact['network'] === NETWORK_MAIL || $contact['network'] === NETWORK_MAIL2) {
+
+               logger("onepoll: mail: Fetching", LOGGER_DEBUG);
+
+               $mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
+               if($mail_disabled)
+                       return;
+
+               logger("onepoll: Mail: Enabled", LOGGER_DEBUG);
+
+               $mbox = null;
+               $x = q("SELECT `prvkey` FROM `user` WHERE `uid` = %d LIMIT 1",
+                       intval($importer_uid)
+               );
+               $mailconf = q("SELECT * FROM `mailacct` WHERE `server` != '' AND `uid` = %d LIMIT 1",
+                       intval($importer_uid)
+               );
+               if(count($x) && count($mailconf)) {
+                   $mailbox = construct_mailbox_name($mailconf[0]);
+                       $password = '';
+                       openssl_private_decrypt(hex2bin($mailconf[0]['pass']),$password,$x[0]['prvkey']);
+                       $mbox = email_connect($mailbox,$mailconf[0]['user'],$password);
+                       unset($password);
+                       logger("Mail: Connect");
+                       if($mbox) {
+                               q("UPDATE `mailacct` SET `last_check` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
+                                       dbesc(datetime_convert()),
+                                       intval($mailconf[0]['id']),
+                                       intval($importer_uid)
+                               );
+                       }
+               }
+               if($mbox) {
+
+                       $msgs = email_poll($mbox,$contact['addr']);
+
+                       if(count($msgs)) {
+                               logger("Mail: Parsing ".count($msgs)." mails.", LOGGER_DEBUG);
+
+                               foreach($msgs as $msg_uid) {
+                                       logger("Mail: Parsing mail ".$msg_uid, LOGGER_DATA);
+
+                                       $datarray = array();
+                                       $meta = email_msg_meta($mbox,$msg_uid);
+                                       $headers = email_msg_headers($mbox,$msg_uid);
+
+                                       // look for a 'references' header and try and match with a parent item we have locally.
+
+                                       $raw_refs = ((x($headers,'references')) ? str_replace("\t",'',$headers['references']) : '');
+                                       $datarray['uri'] = msgid2iri(trim($meta->message_id,'<>'));
+
+                                       if($raw_refs) {
+                                               $refs_arr = explode(' ', $raw_refs);
+                                               if(count($refs_arr)) {
+                                                       for($x = 0; $x < count($refs_arr); $x ++)
+                                                               $refs_arr[$x] = "'" . msgid2iri(str_replace(array('<','>',' '),array('','',''),dbesc($refs_arr[$x]))) . "'";
+                                               }
+                                               $qstr = implode(',',$refs_arr);
+                                               $r = q("SELECT `uri` , `parent-uri` FROM `item` WHERE `uri` IN ( $qstr ) AND `uid` = %d LIMIT 1",
+                                                       intval($importer_uid)
+                                               );
+                                               if(count($r))
+                                                       $datarray['parent-uri'] = $r[0]['uri'];
+                                       }
+
+
+                                       if(! x($datarray,'parent-uri'))
+                                               $datarray['parent-uri'] = $datarray['uri'];
+
+                                       // Have we seen it before?
+                                       $r = q("SELECT * FROM `item` WHERE `uid` = %d AND `uri` = '%s' LIMIT 1",
+                                               intval($importer_uid),
+                                               dbesc($datarray['uri'])
+                                       );
+
+                                       if(count($r)) {
+//                                             logger("Mail: Seen before ".$msg_uid);
+                                               if($meta->deleted && ! $r[0]['deleted']) {
+                                                       q("UPDATE `item` SET `deleted` = 1, `changed` = '%s' WHERE `id` = %d LIMIT 1",
+                                                               dbesc(datetime_convert()),
+                                                               intval($r[0]['id'])
+                                                       );
+                                               }
+                                               switch ($mailconf[0]['action']) {
+                                                       case 0:
+                                                               break;
+                                                       case 1:
+                                                               logger("Mail: Deleting ".$msg_uid);
+                                                               imap_delete($mbox, $msg_uid, FT_UID);
+                                                               break;
+                                                       case 2:
+                                                               logger("Mail: Mark as seen ".$msg_uid);
+                                                               imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
+                                                               break;
+                                                       case 3:
+                                                               logger("Mail: Moving ".$msg_uid." to ".$mailconf[0]['movetofolder']);
+                                                               imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
+                                                               if ($mailconf[0]['movetofolder'] != "")
+                                                                       imap_mail_move($mbox, $msg_uid, $mailconf[0]['movetofolder'], FT_UID);
+                                                               break;
+                                               }
+                                               continue;
+                                       }
+
+                                       // Decoding the header
+                                       $subject = imap_mime_header_decode($meta->subject);
+                                       $datarray['title'] = "";
+                                       foreach($subject as $subpart)
+                                               if ($subpart->charset != "default")
+                                                       $datarray['title'] .= iconv($subpart->charset, 'UTF-8//IGNORE', $subpart->text);
+                                               else
+                                                       $datarray['title'] .= $subpart->text;
+
+                                       $datarray['title'] = notags(trim($datarray['title']));
+
+                                       //$datarray['title'] = notags(trim($meta->subject));
+                                       $datarray['created'] = datetime_convert('UTC','UTC',$meta->date);
+
+                                       // Is it  reply?
+                                       $reply = ((substr(strtolower($datarray['title']), 0, 3) == "re:") or
+                                               (substr(strtolower($datarray['title']), 0, 3) == "re-") or
+                                               (raw_refs != ""));
+
+                                       $r = email_get_msg($mbox,$msg_uid, $reply);
+                                       if(! $r) {
+                                               logger("Mail: can't fetch msg ".$msg_uid);
+                                               continue;
+                                       }
+                                       $datarray['body'] = escape_tags($r['body']);
+
+                                       logger("Mail: Importing ".$msg_uid);
+
+                                       // some mailing lists have the original author as 'from' - add this sender info to msg body.
+                                       // todo: adding a gravatar for the original author would be cool
+
+                                       if(! stristr($meta->from,$contact['addr'])) {
+                                               $from = imap_mime_header_decode($meta->from);
+                                               $fromdecoded = "";
+                                               foreach($from as $frompart)
+                                                       if ($frompart->charset != "default")
+                                                               $fromdecoded .= iconv($frompart->charset, 'UTF-8//IGNORE', $frompart->text);
+                                                       else
+                                                               $fromdecoded .= $frompart->text;
+
+                                               $datarray['body'] = "[b]".t('From: ') . escape_tags($fromdecoded) . "[/b]\n\n" . $datarray['body'];
+                                       }
+
+                                       $datarray['uid'] = $importer_uid;
+                                       $datarray['contact-id'] = $contact['id'];
+                                       if($datarray['parent-uri'] === $datarray['uri'])
+                                               $datarray['private'] = 1;
+                                       if(($contact['network'] === NETWORK_MAIL) && (! get_pconfig($importer_uid,'system','allow_public_email_replies'))) {
+                                               $datarray['private'] = 1;
+                                               $datarray['allow_cid'] = '<' . $contact['id'] . '>';
+                                       }
+                                       $datarray['author-name'] = $contact['name'];
+                                       $datarray['author-link'] = 'mailbox';
+                                       $datarray['author-avatar'] = $contact['photo'];
+
+                                       $stored_item = item_store($datarray);
+                                       q("UPDATE `item` SET `last-child` = 0 WHERE `parent-uri` = '%s' AND `uid` = %d",
+                                               dbesc($datarray['parent-uri']),
+                                               intval($importer_uid)
+                                       );
+                                       q("UPDATE `item` SET `last-child` = 1 WHERE `id` = %d LIMIT 1",
+                                               intval($stored_item)
+                                       );
+                                       switch ($mailconf[0]['action']) {
+                                               case 0:
+                                                       break;
+                                               case 1:
+                                                       logger("Mail: Deleting ".$msg_uid);
+                                                       imap_delete($mbox, $msg_uid, FT_UID);
+                                                       break;
+                                               case 2:
+                                                       logger("Mail: Mark as seen ".$msg_uid);
+                                                       imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
+                                                       break;
+                                               case 3:
+                                                       logger("Mail: Moving ".$msg_uid." to ".$mailconf[0]['movetofolder']);
+                                                       imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
+                                                       if ($mailconf[0]['movetofolder'] != "")
+                                                               imap_mail_move($mbox, $msg_uid, $mailconf[0]['movetofolder'], FT_UID);
+                                                       break;
+                                       }
+                               }
+                       }
+                       imap_close($mbox);
+               }
+       }
+       elseif($contact['network'] === NETWORK_FACEBOOK) {
+               // This is picked up by the Facebook plugin on a cron hook.
+               // Ignored here.
+       }
+
+       if($xml) {
+               logger('poller: received xml : ' . $xml, LOGGER_DATA);
+                       if(! strstr($xml,'<?xml')) {
+                       logger('poller: post_handshake: response from ' . $url . ' did not contain XML.');
+                       $r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
+                               dbesc(datetime_convert()),
+                               intval($contact['id'])
+                       );
+                       return;
+               }
+
+
+               consume_feed($xml,$importer,$contact,$hub,1,1);
+
+
+               // do it twice. Ensures that children of parents which may be later in the stream aren't tossed
+       
+               consume_feed($xml,$importer,$contact,$hub,1,2);
+
+               $hubmode = 'subscribe';
+               if($contact['network'] === NETWORK_DFRN || $contact['blocked'] || $contact['readonly'])
+                       $hubmode = 'unsubscribe';
+
+               if((strlen($hub)) && ($hub_update) && ($contact['rel'] != CONTACT_IS_FOLLOWER)) {
+                       logger('poller: hub ' . $hubmode . ' : ' . $hub . ' contact name : ' . $contact['name'] . ' local user : ' . $importer['name']);
+                       $hubs = explode(',', $hub);
+                       if(count($hubs)) {
+                               foreach($hubs as $h) {
+                                       $h = trim($h);
+                                       if(! strlen($h))
+                                               continue;
+                                       subscribe_to_hub($h,$importer,$contact,$hubmode);
+                               }
+                       }
+               }
+       }
+
+       $updated = datetime_convert();
+
+       $r = q("UPDATE `contact` SET `last-update` = '%s', `success_update` = '%s' WHERE `id` = %d LIMIT 1",
+               dbesc($updated),
+               dbesc($updated),
+               intval($contact['id'])
+       );
+
+
+       // load current friends if possible.
+
+       if($contact['poco']) {  
+               $r = q("SELECT count(*) as total from glink 
+                       where `cid` = %d and updated > UTC_TIMESTAMP() - INTERVAL 1 DAY",
+                       intval($contact['id'])
+               );
+       }
+       if(count($r)) {
+               if(! $r[0]['total']) {
+                       poco_load($contact['id'],$importer_uid,0,$contact['poco']);
+               }
+       }
+
+       return;
+}
+
+if (array_search(__file__,get_included_files())===0){
+  onepoll_run($argv,$argc);
+  killme();
+}
index 8196e875615eddebe76eef39a19e958a11a241d9..4ff78a8b4d03feffa9725651d60b0621dabf6e28 100644 (file)
@@ -5,7 +5,7 @@
 if (! function_exists('uninstall_plugin')){
 function uninstall_plugin($plugin){
        logger("Addons: uninstalling " . $plugin);
-       q("DELETE FROM `addon` WHERE `name` = '%s' LIMIT 1",
+       q("DELETE FROM `addon` WHERE `name` = '%s' ",
                dbesc($plugin)
        );
 
@@ -37,6 +37,16 @@ function install_plugin($plugin) {
                        intval($t),
                        $plugin_admin
                );
+
+               // we can add the following with the previous SQL
+               // once most site tables have been updated.
+               // This way the system won't fall over dead during the update.
+
+               if(file_exists('addon/' . $plugin . '/.hidden')) {
+                       q("update addon set hidden = 1 where name = '%s' limit 1",
+                               dbesc($plugin)
+                       );
+               }
                return true;
        }
        else {
index 499483d007dea6ecaffde1d9c4d0fffb420e79e3..f6553c84606fb0750e41ad2a7af961f099038377 100644 (file)
@@ -30,6 +30,17 @@ function poller_run($argv, $argc){
        load_config('config');
        load_config('system');
 
+       $maxsysload = intval(get_config('system','maxloadavg'));
+       if($maxsysload < 1)
+               $maxsysload = 50;
+       if(function_exists('sys_getloadavg')) {
+               $load = sys_getloadavg();
+               if(intval($load[0]) > $maxsysload) {
+                       logger('system: load ' . $load . ' too high. Poller deferred to next scheduled run.');
+                       return;
+               }
+       }
+
        $lockpath = get_config('system','lockpath');
        if ($lockpath != '') {
                $pidfile = new pidfile($lockpath, 'poller.lck');
@@ -39,6 +50,8 @@ function poller_run($argv, $argc){
                }
        }
 
+
+
        $a->set_baseurl(get_config('system','url'));
 
        load_hooks();
@@ -113,6 +126,8 @@ function poller_run($argv, $argc){
                $force     = true;
        }
 
+       $interval = ((get_config('system','delivery_interval') === false) ? 3 : intval(get_config('system','delivery_interval')));
+
        $sql_extra = (($manual_id) ? " AND `id` = $manual_id " : "");
 
        reload_plugins();
@@ -136,6 +151,7 @@ function poller_run($argv, $argc){
                AND NOT `network` IN ( '%s', '%s' )
                $sql_extra 
                AND `self` = 0 AND `contact`.`blocked` = 0 AND `contact`.`readonly` = 0 
+               AND `contact`.`archive` = 0 
                AND `user`.`account_expired` = 0 $abandon_sql ORDER BY RAND()",
                intval(CONTACT_IS_SHARING),
                intval(CONTACT_IS_FRIEND),
@@ -224,440 +240,12 @@ function poller_run($argv, $argc){
                                        continue;
                        }
 
-                       // Check to see if we are running out of memory - if so spawn a new process and kill this one
-
-                       $avail_memory = return_bytes(ini_get('memory_limit'));
-                       $memused = memory_get_peak_usage(true);
-                       if(intval($avail_memory)) {
-                               if(($memused / $avail_memory) > 0.95) {
-                                       if($generation + 1 > 10) {
-                                               logger('poller: maximum number of spawns exceeded. Terminating.');
-                                               killme();
-                                       }
-                                       logger('poller: memory exceeded. ' . $memused . ' bytes used. Spawning new poll.');
-                                       proc_run('php', 'include/poller.php', 'restart', (string) $generation + 1);
-                                       killme();
-                               }
-                       }
-
-                       $importer_uid = $contact['uid'];
-               
-                       $r = q("SELECT `contact`.*, `user`.`page-flags` FROM `contact` LEFT JOIN `user` on `contact`.`uid` = `user`.`uid` WHERE `user`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1",
-                               intval($importer_uid)
-                       );
-                       if(! count($r))
-                               continue;
-
-                       $importer = $r[0];
-
-                       logger("poller: poll: ({$contact['id']}) IMPORTER: {$importer['name']}, CONTACT: {$contact['name']}");
-
-                       $last_update = (($contact['last-update'] === '0000-00-00 00:00:00') 
-                               ? datetime_convert('UTC','UTC','now - 30 days', ATOM_TIME)
-                               : datetime_convert('UTC','UTC',$contact['last-update'], ATOM_TIME)
-                       );
-
-                       if($contact['network'] === NETWORK_DFRN) {
-
-                               $idtosend = $orig_id = (($contact['dfrn-id']) ? $contact['dfrn-id'] : $contact['issued-id']);
-
-                               if(intval($contact['duplex']) && $contact['dfrn-id'])
-                                       $idtosend = '0:' . $orig_id;
-                               if(intval($contact['duplex']) && $contact['issued-id'])
-                                       $idtosend = '1:' . $orig_id;
-
-                               // they have permission to write to us. We already filtered this in the contact query.
-                               $perm = 'rw';
-
-                               $url = $contact['poll'] . '?dfrn_id=' . $idtosend 
-                                       . '&dfrn_version=' . DFRN_PROTOCOL_VERSION 
-                                       . '&type=data&last_update=' . $last_update 
-                                       . '&perm=' . $perm ;
-       
-                               $handshake_xml = fetch_url($url);
-
-                               logger('poller: handshake with url ' . $url . ' returns xml: ' . $handshake_xml, LOGGER_DATA);
-
-
-                               if(! $handshake_xml) {
-                                       logger("poller: $url appears to be dead - marking for death ");
-                                       // dead connection - might be a transient event, or this might
-                                       // mean the software was uninstalled or the domain expired. 
-                                       // Will keep trying for one month.
-                                       mark_for_death($contact);
-
-                                       // set the last-update so we don't keep polling
-
-                                       $r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
-                                               dbesc(datetime_convert()),
-                                               intval($contact['id'])
-                                       );
-
-                                       continue;
-                               }
-
-                               if(! strstr($handshake_xml,'<?xml')) {
-                                       logger('poller: response from ' . $url . ' did not contain XML.');
-                                       $r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
-                                               dbesc(datetime_convert()),
-                                               intval($contact['id'])
-                                       );
-                                       continue;
-                               }
-
-
-                               $res = parse_xml_string($handshake_xml);
-       
-                               if(intval($res->status) == 1) {
-                                       logger("poller: $url replied status 1 - marking for death ");
-
-                                       // we may not be friends anymore. Will keep trying for one month.
-                                       // set the last-update so we don't keep polling
-
-                                       $r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
-                                               dbesc(datetime_convert()),
-                                               intval($contact['id'])
-                                       );
-
-                                       mark_for_death($contact);
-                               }
-                               else {
-                                       if($contact['term-date'] != '0000-00-00 00:00:00') {
-                                               logger("poller: $url back from the dead - removing mark for death");
-                                               unmark_for_death($contact);
-                                       }
-                               }
-
-                               if((intval($res->status) != 0) || (! strlen($res->challenge)) || (! strlen($res->dfrn_id)))
-                                       continue;
-
-                               if(((float) $res->dfrn_version > 2.21) && ($contact['poco'] == '')) {
-                                       q("update contact set poco = '%s' where id = %d limit 1",
-                                               dbesc(str_replace('/profile/','/poco/', $contact['url'])),
-                                               intval($contact['id'])
-                                       );
-                               }
-
-                               $postvars = array();
-
-                               $sent_dfrn_id = hex2bin((string) $res->dfrn_id);
-                               $challenge    = hex2bin((string) $res->challenge);
-
-                               $final_dfrn_id = '';
-
-                               if(($contact['duplex']) && strlen($contact['prvkey'])) {
-                                       openssl_private_decrypt($sent_dfrn_id,$final_dfrn_id,$contact['prvkey']);
-                                       openssl_private_decrypt($challenge,$postvars['challenge'],$contact['prvkey']);
-                               }
-                               else {
-                                       openssl_public_decrypt($sent_dfrn_id,$final_dfrn_id,$contact['pubkey']);
-                                       openssl_public_decrypt($challenge,$postvars['challenge'],$contact['pubkey']);
-                               }
-
-                               $final_dfrn_id = substr($final_dfrn_id, 0, strpos($final_dfrn_id, '.'));
-
-                               if(strpos($final_dfrn_id,':') == 1)
-                                       $final_dfrn_id = substr($final_dfrn_id,2);
-
-                               if($final_dfrn_id != $orig_id) {
-                                       logger('poller: ID did not decode: ' . $contact['id'] . ' orig: ' . $orig_id . ' final: ' . $final_dfrn_id);    
-                                       // did not decode properly - cannot trust this site 
-                                       continue;
-                               }
-
-                               $postvars['dfrn_id'] = $idtosend;
-                               $postvars['dfrn_version'] = DFRN_PROTOCOL_VERSION;
-                               $postvars['perm'] = 'rw';
-
-                               $xml = post_url($contact['poll'],$postvars);
-                       }
-                       elseif(($contact['network'] === NETWORK_OSTATUS) 
-                               || ($contact['network'] === NETWORK_DIASPORA)
-                               || ($contact['network'] === NETWORK_FEED) ) {
-
-                               // Upgrading DB fields from an older Friendica version
-                               // Will only do this once per notify-enabled OStatus contact
-                               // or if relationship changes
-
-                               $stat_writeable = ((($contact['notify']) && ($contact['rel'] == CONTACT_IS_FOLLOWER || $contact['rel'] == CONTACT_IS_FRIEND)) ? 1 : 0);
-
-                               if($stat_writeable != $contact['writable']) {
-                                       q("UPDATE `contact` SET `writable` = %d WHERE `id` = %d LIMIT 1",
-                                               intval($stat_writeable),
-                                               intval($contact['id'])
-                                       );
-                               }
-
-                               // Are we allowed to import from this person?
-
-                               if($contact['rel'] == CONTACT_IS_FOLLOWER || $contact['blocked'] || $contact['readonly'])
-                                       continue;
-
-                               $xml = fetch_url($contact['poll']);
-                       }
-                       elseif($contact['network'] === NETWORK_MAIL || $contact['network'] === NETWORK_MAIL2) {
-
-                               logger("Mail: Fetching");
-
-                               $mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
-                               if($mail_disabled)
-                                       continue;
-
-                               logger("Mail: Enabled");
-
-                               $mbox = null;
-                               $x = q("SELECT `prvkey` FROM `user` WHERE `uid` = %d LIMIT 1",
-                                       intval($importer_uid)
-                               );
-                               $mailconf = q("SELECT * FROM `mailacct` WHERE `server` != '' AND `uid` = %d LIMIT 1",
-                                       intval($importer_uid)
-                               );
-                               if(count($x) && count($mailconf)) {
-                                   $mailbox = construct_mailbox_name($mailconf[0]);
-                                       $password = '';
-                                       openssl_private_decrypt(hex2bin($mailconf[0]['pass']),$password,$x[0]['prvkey']);
-                                       $mbox = email_connect($mailbox,$mailconf[0]['user'],$password);
-                                       unset($password);
-                                       logger("Mail: Connect");
-                                       if($mbox) {
-                                               q("UPDATE `mailacct` SET `last_check` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
-                                                       dbesc(datetime_convert()),
-                                                       intval($mailconf[0]['id']),
-                                                       intval($importer_uid)
-                                               );
-                                       }
-                               }
-                               if($mbox) {
-                                       logger("Mail: mbox");
-
-                                       $msgs = email_poll($mbox,$contact['addr']);
-
-                                       if(count($msgs)) {
-                                               logger("Mail: Parsing ".count($msgs)." mails.");
-
-                                               foreach($msgs as $msg_uid) {
-                                                       logger("Mail: Parsing mail ".$msg_uid);
-
-                                                       $datarray = array();
-                                                       $meta = email_msg_meta($mbox,$msg_uid);
-                                                       $headers = email_msg_headers($mbox,$msg_uid);
-
-                                                       // look for a 'references' header and try and match with a parent item we have locally.
-
-                                                       $raw_refs = ((x($headers,'references')) ? str_replace("\t",'',$headers['references']) : '');
-                                                       $datarray['uri'] = msgid2iri(trim($meta->message_id,'<>'));
-
-                                                       if($raw_refs) {
-                                                               $refs_arr = explode(' ', $raw_refs);
-                                                               if(count($refs_arr)) {
-                                                                       for($x = 0; $x < count($refs_arr); $x ++)
-                                                                               $refs_arr[$x] = "'" . msgid2iri(str_replace(array('<','>',' '),array('','',''),dbesc($refs_arr[$x]))) . "'";
-                                                               }
-                                                               $qstr = implode(',',$refs_arr);
-                                                               $r = q("SELECT `uri` , `parent-uri` FROM `item` WHERE `uri` IN ( $qstr ) AND `uid` = %d LIMIT 1",
-                                                                       intval($importer_uid)
-                                                               );
-                                                               if(count($r))
-                                                                       $datarray['parent-uri'] = $r[0]['uri'];
-                                                       }
-
-
-                                                       if(! x($datarray,'parent-uri'))
-                                                               $datarray['parent-uri'] = $datarray['uri'];
-
-                                                       // Have we seen it before?
-                                                       $r = q("SELECT * FROM `item` WHERE `uid` = %d AND `uri` = '%s' LIMIT 1",
-                                                               intval($importer_uid),
-                                                               dbesc($datarray['uri'])
-                                                       );
-
-                                                       if(count($r)) {
-                                                               logger("Mail: Seen before ".$msg_uid);
-                                                               if($meta->deleted && ! $r[0]['deleted']) {
-                                                                       q("UPDATE `item` SET `deleted` = 1, `changed` = '%s' WHERE `id` = %d LIMIT 1",
-                                                                               dbesc(datetime_convert()),
-                                                                               intval($r[0]['id'])
-                                                                       );
-                                                               }
-                                                               switch ($mailconf[0]['action']) {
-                                                                       case 0:
-                                                                               break;
-                                                                       case 1:
-                                                                               logger("Mail: Deleting ".$msg_uid);
-                                                                               imap_delete($mbox, $msg_uid, FT_UID);
-                                                                               break;
-                                                                       case 2:
-                                                                               logger("Mail: Mark as seen ".$msg_uid);
-                                                                               imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
-                                                                               break;
-                                                                       case 3:
-                                                                               logger("Mail: Moving ".$msg_uid." to ".$mailconf[0]['movetofolder']);
-                                                                               imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
-                                                                               if ($mailconf[0]['movetofolder'] != "")
-                                                                                       imap_mail_move($mbox, $msg_uid, $mailconf[0]['movetofolder'], FT_UID);
-                                                                               break;
-                                                               }
-                                                               continue;
-                                                       }
-
-                                                       // Decoding the header
-                                                       $subject = imap_mime_header_decode($meta->subject);
-                                                       $datarray['title'] = "";
-                                                       foreach($subject as $subpart)
-                                                               if ($subpart->charset != "default")
-                                                                       $datarray['title'] .= iconv($subpart->charset, 'UTF-8//IGNORE', $subpart->text);
-                                                               else
-                                                                       $datarray['title'] .= $subpart->text;
-
-                                                       $datarray['title'] = notags(trim($datarray['title']));
-
-                                                       //$datarray['title'] = notags(trim($meta->subject));
-                                                       $datarray['created'] = datetime_convert('UTC','UTC',$meta->date);
-
-                                                       // Is it  reply?
-                                                       $reply = ((substr(strtolower($datarray['title']), 0, 3) == "re:") or
-                                                               (substr(strtolower($datarray['title']), 0, 3) == "re-") or
-                                                               (raw_refs != ""));
-
-                                                       $r = email_get_msg($mbox,$msg_uid, $reply);
-                                                       if(! $r) {
-                                                               logger("Mail: can't fetch msg ".$msg_uid);
-                                                               continue;
-                                                       }
-                                                       $datarray['body'] = escape_tags($r['body']);
-
-                                                       logger("Mail: Importing ".$msg_uid);
-
-                                                       // some mailing lists have the original author as 'from' - add this sender info to msg body.
-                                                       // todo: adding a gravatar for the original author would be cool
-
-                                                       if(! stristr($meta->from,$contact['addr'])) {
-                                                               $from = imap_mime_header_decode($meta->from);
-                                                               $fromdecoded = "";
-                                                               foreach($from as $frompart)
-                                                                       if ($frompart->charset != "default")
-                                                                               $fromdecoded .= iconv($frompart->charset, 'UTF-8//IGNORE', $frompart->text);
-                                                                       else
-                                                                               $fromdecoded .= $frompart->text;
-
-                                                               $datarray['body'] = "[b]".t('From: ') . escape_tags($fromdecoded) . "[/b]\n\n" . $datarray['body'];
-                                                       }
-
-                                                       $datarray['uid'] = $importer_uid;
-                                                       $datarray['contact-id'] = $contact['id'];
-                                                       if($datarray['parent-uri'] === $datarray['uri'])
-                                                               $datarray['private'] = 1;
-                                                       if(($contact['network'] === NETWORK_MAIL) && (! get_pconfig($importer_uid,'system','allow_public_email_replies'))) {
-                                                               $datarray['private'] = 1;
-                                                               $datarray['allow_cid'] = '<' . $contact['id'] . '>';
-                                                       }
-                                                       $datarray['author-name'] = $contact['name'];
-                                                       $datarray['author-link'] = 'mailbox';
-                                                       $datarray['author-avatar'] = $contact['photo'];
-
-                                                       $stored_item = item_store($datarray);
-                                                       q("UPDATE `item` SET `last-child` = 0 WHERE `parent-uri` = '%s' AND `uid` = %d",
-                                                               dbesc($datarray['parent-uri']),
-                                                               intval($importer_uid)
-                                                       );
-                                                       q("UPDATE `item` SET `last-child` = 1 WHERE `id` = %d LIMIT 1",
-                                                               intval($stored_item)
-                                                       );
-                                                       switch ($mailconf[0]['action']) {
-                                                               case 0:
-                                                                       break;
-                                                               case 1:
-                                                                       logger("Mail: Deleting ".$msg_uid);
-                                                                       imap_delete($mbox, $msg_uid, FT_UID);
-                                                                       break;
-                                                               case 2:
-                                                                       logger("Mail: Mark as seen ".$msg_uid);
-                                                                       imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
-                                                                       break;
-                                                               case 3:
-                                                                       logger("Mail: Moving ".$msg_uid." to ".$mailconf[0]['movetofolder']);
-                                                                       imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
-                                                                       if ($mailconf[0]['movetofolder'] != "")
-                                                                               imap_mail_move($mbox, $msg_uid, $mailconf[0]['movetofolder'], FT_UID);
-                                                                       break;
-                                                       }
-                                               }
-                                       }
-
-                                       imap_close($mbox);
-                               }
-                       }
-                       elseif($contact['network'] === NETWORK_FACEBOOK) {
-                               // This is picked up by the Facebook plugin on a cron hook.
-                               // Ignored here.
-                       }
-
-                       if($xml) {
-                               logger('poller: received xml : ' . $xml, LOGGER_DATA);
-
-                               if(! strstr($xml,'<?xml')) {
-                                       logger('poller: post_handshake: response from ' . $url . ' did not contain XML.');
-                                       $r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
-                                               dbesc(datetime_convert()),
-                                               intval($contact['id'])
-                                       );
-                                       continue;
-                               }
-
-
-                               consume_feed($xml,$importer,$contact,$hub,1,1);
-
-                               // do it twice. Ensures that children of parents which may be later in the stream aren't tossed
-       
-                               consume_feed($xml,$importer,$contact,$hub,1,2);
-
-                               $hubmode = 'subscribe';
-                               if($contact['network'] === NETWORK_DFRN || $contact['blocked'] || $contact['readonly'])
-                                       $hubmode = 'unsubscribe';
-
-                               if((strlen($hub)) && ($hub_update) && ($contact['rel'] != CONTACT_IS_FOLLOWER)) {
-                                       logger('poller: hub ' . $hubmode . ' : ' . $hub . ' contact name : ' . $contact['name'] . ' local user : ' . $importer['name']);
-                                       $hubs = explode(',', $hub);
-                                       if(count($hubs)) {
-                                               foreach($hubs as $h) {
-                                                       $h = trim($h);
-                                                       if(! strlen($h))
-                                                               continue;
-                                                       subscribe_to_hub($h,$importer,$contact,$hubmode);
-                                               }
-                                       }
-                               }
-                       }
-
-
-                       $updated = datetime_convert();
-
-                       $r = q("UPDATE `contact` SET `last-update` = '%s', `success_update` = '%s' WHERE `id` = %d LIMIT 1",
-                               dbesc($updated),
-                               dbesc($updated),
-                               intval($contact['id'])
-                       );
-
-
-                       // load current friends if possible.
-
-                       if($contact['poco']) {  
-                               $r = q("SELECT count(*) as total from glink 
-                                       where `cid` = %d and updated > UTC_TIMESTAMP() - INTERVAL 1 DAY",
-                                       intval($contact['id'])
-                               );
-                       }
-                       if(count($r)) {
-                               if(! $r[0]['total']) {
-                                       poco_load($contact['id'],$importer_uid,$contact['poco']);
-                               }
-                       }
-
-                       // loop - next contact
+                       proc_run('php','include/onepoll.php',$contact['id']);
+                       if($interval)
+                               @time_sleep_until(microtime(true) + (float) $interval);
                }
        }
 
-               
        return;
 }
 
index a2cef959dbffa0720c17017bffca2e0994a334e0..4700bb96f2ae6190dabf8ebe0a6e4bdf6e98845c 100644 (file)
@@ -7,8 +7,10 @@ function gender_selector($current="",$suffix="") {
 
        $o .= "<select name=\"gender$suffix\" id=\"gender-select$suffix\" size=\"1\" >";
        foreach($select as $selection) {
-               $selected = (($selection == $current) ? ' selected="selected" ' : '');
-               $o .= "<option value=\"$selection\" $selected >$selection</option>";
+               if($selection !== 'NOTRANSLATION') {
+                       $selected = (($selection == $current) ? ' selected="selected" ' : '');
+                       $o .= "<option value=\"$selection\" $selected >$selection</option>";
+               }
        }
        $o .= '</select>';
        return $o;
@@ -20,8 +22,10 @@ function sexpref_selector($current="",$suffix="") {
 
        $o .= "<select name=\"sexual$suffix\" id=\"sexual-select$suffix\" size=\"1\" >";
        foreach($select as $selection) {
-               $selected = (($selection == $current) ? ' selected="selected" ' : '');
-               $o .= "<option value=\"$selection\" $selected >$selection</option>";
+               if($selection !== 'NOTRANSLATION') {
+                       $selected = (($selection == $current) ? ' selected="selected" ' : '');
+                       $o .= "<option value=\"$selection\" $selected >$selection</option>";
+               }
        }
        $o .= '</select>';
        return $o;
@@ -34,8 +38,10 @@ function marital_selector($current="",$suffix="") {
 
        $o .= "<select name=\"marital\" id=\"marital-select\" size=\"1\" >";
        foreach($select as $selection) {
-               $selected = (($selection == $current) ? ' selected="selected" ' : '');
-               $o .= "<option value=\"$selection\" $selected >$selection</option>";
+               if($selection !== 'NOTRANSLATION') {
+                       $selected = (($selection == $current) ? ' selected="selected" ' : '');
+                       $o .= "<option value=\"$selection\" $selected >$selection</option>";
+               }
        }
        $o .= '</select>';
        return $o;
index 3f519404928134a5bf65ed9248974a4e0d8298c7..592779089785a4fc36bee616e0a0cf6fcd20670a 100644 (file)
@@ -20,7 +20,7 @@ require_once('include/datetime.php');
 
 
 
-function poco_load($cid,$uid = 0,$url = null) {
+function poco_load($cid,$uid = 0,$zcid = 0,$url = null) {
        $a = get_app();
 
        if($cid) {
@@ -53,7 +53,6 @@ function poco_load($cid,$uid = 0,$url = null) {
        if(($a->get_curl_code() > 299) || (! $s))
                return;
 
-
        $j = json_decode($s);
 
        logger('poco_load: json: ' . print_r($j,true),LOGGER_DATA);
@@ -81,7 +80,6 @@ function poco_load($cid,$uid = 0,$url = null) {
                                $connect_url = str_replace('acct:' , '', $url->value);
                                continue;
                        }
-
                } 
                foreach($entry->photos as $photo) {
                        if($photo->type == 'profile') {
@@ -101,11 +99,12 @@ function poco_load($cid,$uid = 0,$url = null) {
                        $gcid = $x[0]['id'];
 
                        if($x[0]['name'] != $name || $x[0]['photo'] != $profile_photo) {
-                               q("update gcontact set `name` = '%s', `photo` = '%s', `connect` = '%s' 
+                               q("update gcontact set `name` = '%s', `photo` = '%s', `connect` = '%s', `url` = '%s' 
                                        where `nurl` = '%s' limit 1",
                                        dbesc($name),
                                        dbesc($profile_photo),
                                        dbesc($connect_url),
+                                       dbesc($profile_url),
                                        dbesc(normalise_link($profile_url))
                                );
                        }
@@ -128,34 +127,38 @@ function poco_load($cid,$uid = 0,$url = null) {
                if(! $gcid)
                        return;
 
-               $r = q("select * from glink where `cid` = %d and `uid` = %d and `gcid` = %d limit 1",
+               $r = q("select * from glink where `cid` = %d and `uid` = %d and `gcid` = %d and `zcid` = %d limit 1",
                        intval($cid),
                        intval($uid),
-                       intval($gcid)
+                       intval($gcid),
+                       intval($zcid)
                );
                if(! count($r)) {
-                       q("insert into glink ( `cid`,`uid`,`gcid`,`updated`) values (%d,%d,%d,'%s') ",
+                       q("insert into glink ( `cid`,`uid`,`gcid`,`zcid`, `updated`) values (%d,%d,%d,%d, '%s') ",
                                intval($cid),
                                intval($uid),
                                intval($gcid),
+                               intval($zcid),
                                dbesc(datetime_convert())
                        );
                }
                else {
-                       q("update glink set updated = '%s' where `cid` = %d and `uid` = %d and `gcid` = %d limit 1",
+                       q("update glink set updated = '%s' where `cid` = %d and `uid` = %d and `gcid` = %d and zcid = %d limit 1",
                                dbesc(datetime_convert()),
                                intval($cid),
                                intval($uid),
-                               intval($gcid)
+                               intval($gcid),
+                               intval($zcid)
                        );
                }
 
        }
        logger("poco_load: loaded $total entries",LOGGER_DEBUG);
 
-       q("delete from glink where `cid` = %d and `uid` = %d and `updated` < UTC_TIMESTAMP - INTERVAL 2 DAY",
+       q("delete from glink where `cid` = %d and `uid` = %d and `zcid` = %d and `updated` < UTC_TIMESTAMP - INTERVAL 2 DAY",
                intval($cid),
-               intval($uid)
+               intval($uid),
+               intval($zcid)
        );
 
 }
@@ -166,13 +169,14 @@ function count_common_friends($uid,$cid) {
        $r = q("SELECT count(*) as `total`
                FROM `glink` left join `gcontact` on `glink`.`gcid` = `gcontact`.`id`
                where `glink`.`cid` = %d and `glink`.`uid` = %d
-               and `gcontact`.`nurl` in (select nurl from contact where uid = %d and self = 0 and id != %d ) ",
+               and `gcontact`.`nurl` in (select nurl from contact where uid = %d and self = 0 and blocked = 0 and hidden = 0 and id != %d ) ",
                intval($cid),
                intval($uid),
                intval($uid),
                intval($cid)
        );
 
+//     logger("count_common_friends: $uid $cid {$r[0]['total']}"); 
        if(count($r))
                return $r[0]['total'];
        return 0;
@@ -180,23 +184,70 @@ function count_common_friends($uid,$cid) {
 }
 
 
-function common_friends($uid,$cid) {
+function common_friends($uid,$cid,$start = 0,$limit=9999,$shuffle = false) {
+
+       if($shuffle)
+               $sql_extra = " order by rand() ";
+       else
+               $sql_extra = " order by `gcontact`.`name` asc "; 
 
        $r = q("SELECT `gcontact`.* 
                FROM `glink` left join `gcontact` on `glink`.`gcid` = `gcontact`.`id`
                where `glink`.`cid` = %d and `glink`.`uid` = %d
-               and `gcontact`.`nurl` in (select nurl from contact where uid = %d and self = 0 and id != %d ) 
-               order by `gcontact`.`name` asc ",
+               and `gcontact`.`nurl` in (select nurl from contact where uid = %d and self = 0 and blocked = 0 and hidden = 0 and id != %d ) 
+               $sql_extra limit %d, %d",
                intval($cid),
                intval($uid),
                intval($uid),
-               intval($cid)
+               intval($cid),
+               intval($start),
+               intval($limit)
+       );
+
+       return $r;
+
+}
+
+
+function count_common_friends_zcid($uid,$zcid) {
+
+       $r = q("SELECT count(*) as `total` 
+               FROM `glink` left join `gcontact` on `glink`.`gcid` = `gcontact`.`id`
+               where `glink`.`zcid` = %d
+               and `gcontact`.`nurl` in (select nurl from contact where uid = %d and self = 0 and blocked = 0 and hidden = 0 ) ",
+               intval($zcid),
+               intval($uid)
+       );
+
+       if(count($r))
+               return $r[0]['total'];
+       return 0;
+
+}
+
+function common_friends_zcid($uid,$zcid,$start = 0, $limit = 9999,$shuffle) {
+
+       if($shuffle)
+               $sql_extra = " order by rand() ";
+       else
+               $sql_extra = " order by `gcontact`.`name` asc "; 
+
+       $r = q("SELECT `gcontact`.* 
+               FROM `glink` left join `gcontact` on `glink`.`gcid` = `gcontact`.`id`
+               where `glink`.`zcid` = %d
+               and `gcontact`.`nurl` in (select nurl from contact where uid = %d and self = 0 and blocked = 0 and hidden = 0 ) 
+               $sql_extra limit %d, %d",
+               intval($zcid),
+               intval($uid),
+               intval($start),
+               intval($limit)
        );
 
        return $r;
 
 }
 
+
 function count_all_friends($uid,$cid) {
 
        $r = q("SELECT count(*) as `total`
@@ -254,7 +305,7 @@ function suggestion_query($uid, $start = 0, $limit = 80) {
 
        $r2 = q("SELECT gcontact.* from gcontact 
                left join glink on glink.gcid = gcontact.id 
-               where glink.uid = 0 and glink.cid = 0 and not gcontact.nurl in ( select nurl from contact where uid = %d )
+               where glink.uid = 0 and glink.cid = 0 and glink.zcid = 0 and not gcontact.nurl in ( select nurl from contact where uid = %d )
                and not gcontact.name in ( select name from contact where uid = %d )
                and not gcontact.id in ( select gcid from gcign where uid = %d )
                order by rand() limit %d, %d ",
@@ -276,7 +327,7 @@ function update_suggestions() {
 
        $done = array();
 
-       poco_load(0,0,$a->get_baseurl() . '/poco');
+       poco_load(0,0,0,$a->get_baseurl() . '/poco');
 
        $done[] = $a->get_baseurl() . '/poco';
 
@@ -288,7 +339,7 @@ function update_suggestions() {
                                foreach($j->entries as $entry) {
                                        $url = $entry->url . '/poco';
                                        if(! in_array($url,$done))
-                                               poco_load(0,0,$entry->url . '/poco');
+                                               poco_load(0,0,0,$entry->url . '/poco');
                                }
                        }
                }
@@ -302,7 +353,7 @@ function update_suggestions() {
                foreach($r as $rr) {
                        $base = substr($rr['poco'],0,strrpos($rr['poco'],'/'));
                        if(! in_array($base,$done))
-                               poco_load(0,0,$base);
+                               poco_load(0,0,0,$base);
                }
        }
 }
index 8c8db66a9eee938f90be5b1b476d9b3503003ec2..1b5b0afd44e0b589eeb00e0c38db2107b1f628b4 100644 (file)
@@ -558,7 +558,7 @@ function contact_block() {
 
        if((! is_array($a->profile)) || ($a->profile['hide-friends']))
                return $o;
-       $r = q("SELECT COUNT(*) AS `total` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 and `pending` = 0 AND `hidden` = 0",
+       $r = q("SELECT COUNT(*) AS `total` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 and `pending` = 0 AND `hidden` = 0 AND `archive` = 0",
                        intval($a->profile['uid'])
        );
        if(count($r)) {
@@ -569,7 +569,7 @@ function contact_block() {
                $micropro = Null;
                
        } else {
-               $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 and `pending` = 0 AND `hidden` = 0 ORDER BY RAND() LIMIT %d",
+               $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 and `pending` = 0 AND `hidden` = 0 AND `archive` = 0 ORDER BY RAND() LIMIT %d",
                                intval($a->profile['uid']),
                                intval($shown)
                );
@@ -930,7 +930,8 @@ function prepare_body($item,$attach = false) {
                foreach($matches as $mtch) {
                        if(strlen($x))
                                $x .= ',';
-                       $x .= xmlify(file_tag_decode($mtch[1]));
+                       $x .= xmlify(file_tag_decode($mtch[1])) 
+                               . ((local_user() == $item['uid']) ? ' <a href="' . $a->get_baseurl() . '/filerm/' . $item['id'] . '?f=&cat=' . xmlify(file_tag_decode($mtch[1])) . '" title="' . t('remove') . '" >' . t('[remove]') . '</a>' : '');
                }
                if(strlen($x))
                        $s .= '<div class="categorytags"><span>' . t('Categories:') . ' </span>' . $x . '</div>'; 
@@ -1466,12 +1467,16 @@ function file_tag_save_file($uid,$item,$file) {
        return true;
 }
 
-function file_tag_unsave_file($uid,$item,$file) {
+function file_tag_unsave_file($uid,$item,$file,$cat = false) {
        $result = false;
        if(! intval($uid))
                return false;
 
-       $pattern = '[' . file_tag_encode($file) . ']' ;
+       if($cat == true)
+               $pattern = '<' . file_tag_encode($file) . '>' ;
+       else
+               $pattern = '[' . file_tag_encode($file) . ']' ;
+
 
        $r = q("select file from item where id = %d and uid = %d limit 1",
                intval($item),
@@ -1486,13 +1491,14 @@ function file_tag_unsave_file($uid,$item,$file) {
                intval($uid)
        );
 
-       $r = q("select file from item where uid = %d " . file_tag_file_query('item',$file),
+       $r = q("select file from item where uid = %d and deleted = 0 " . file_tag_file_query('item',$file,(($cat) ? 'category' : 'file')),
                intval($uid)
        );
 
        if(! count($r)) {
                $saved = get_pconfig($uid,'system','filetags');
                set_pconfig($uid,'system','filetags',str_replace($pattern,'',$saved));
+
        }
        return true;
 }
index 442173eeb84e1c5d5ee973668056e84bfb9bc302..a409f47b41bf2dff1a48b406793a878587d677cd 100644 (file)
--- a/index.php
+++ b/index.php
@@ -92,13 +92,10 @@ if((x($_SESSION,'language')) && ($_SESSION['language'] !== $lang)) {
        load_translation_table($lang);
 }
 
-if(x($_GET,'zrl')) {
+if((x($_GET,'zrl')) && (! $install)) {
        $_SESSION['my_url'] = $_GET['zrl'];
        $a->query_string = preg_replace('/[\?&]zrl=(.*?)([\?&]|$)/is','',$a->query_string);
-       if(! $install) {
-               $arr = array('zrl' => $_SESSION['my_url'], 'url' => $a->cmd);
-               call_hooks('zrl_init',$arr);
-       }
+       zrl_init($a);
 }
 
 /**
index ac238bf6aa65d568702491da2a8b46cf359c5864..6a26324419284f42e3771f4db77fc1a4fe4d2a8f 100644 (file)
                setupFieldRichtext();
 
                /* popup menus */
+       function close_last_popup_menu() {
+               if(last_popup_menu) {
+               last_popup_menu.hide();
+               last_popup_button.removeClass("selected");
+               last_popup_menu = null;
+               last_popup_button = null;
+               }
+               }
                $('a[rel^=#]').click(function(e){
+                       close_last_popup_menu();
                        menu = $( $(this).attr('rel') );
                        e.preventDefault();
                        e.stopPropagation();
                        return false;
                });
                $('html').click(function() {
-                       if(last_popup_menu) {
-                               last_popup_menu.hide();
-                               last_popup_button.removeClass("selected");
-                               last_popup_menu = null;
-                               last_popup_button = null;
-                       }
+                                               close_last_popup_menu();
                });
                
                // fancyboxes
index c23ee1a67bc4e34e4c1d6c2524c75618fe41b8db..88f150d7a02e02f8669617d2cbfb34183d0838e2 100644 (file)
@@ -33,7 +33,7 @@ function acl_init(&$a){
        if ($type=='' || $type=='c'){
                $r = q("SELECT COUNT(`id`) AS c FROM `contact` 
                                WHERE `uid` = %d AND `self` = 0 
-                               AND `blocked` = 0 AND `pending` = 0 
+                               AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0
                                AND `notify` != '' $sql_extra2" ,
                        intval(local_user())
                );
@@ -45,7 +45,7 @@ function acl_init(&$a){
 
                $r = q("SELECT COUNT(`id`) AS c FROM `contact` 
                                WHERE `uid` = %d AND `self` = 0 
-                               AND `blocked` = 0 AND `pending` = 0 
+                               AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 
                                AND `network` IN ('%s','%s','%s') $sql_extra2" ,
                        intval(local_user()),
                        dbesc(NETWORK_DFRN),
@@ -94,7 +94,7 @@ function acl_init(&$a){
        if ($type=='' || $type=='c'){
        
                $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact` 
-                       WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `notify` != ''
+                       WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `notify` != ''
                        $sql_extra2
                        ORDER BY `name` ASC ",
                        intval(local_user())
@@ -102,7 +102,7 @@ function acl_init(&$a){
        }
        elseif($type == 'm') {
                $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact` 
-                       WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 
+                       WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0
                        AND `network` IN ('%s','%s','%s')
                        $sql_extra2
                        ORDER BY `name` ASC ",
index cdc45c8e3899c2a326f1e017564b96d8823d254a..cfe5a2dd2cea1d2831dda8cbb177f72befb52d3b 100644 (file)
@@ -61,6 +61,9 @@ function admin_post(&$a){
                        case 'logs':
                                admin_page_logs_post($a);
                                break;
+                       case 'dbsync':
+                               admin_page_dbsync_post($a);
+                               break;
                        case 'update':
                                admin_page_remoteupdate_post($a);
                                break;
@@ -94,7 +97,8 @@ function admin_content(&$a) {
                'users'  =>     Array($a->get_baseurl(true)."/admin/users/", t("Users") , "users"),
                'plugins'=>     Array($a->get_baseurl(true)."/admin/plugins/", t("Plugins") , "plugins"),
                'themes' =>     Array($a->get_baseurl(true)."/admin/themes/", t("Themes") , "themes"),
-               'update' =>     Array($a->get_baseurl(true)."/admin/update/", t("Update") , "update")
+               'dbsync' => Array($a->get_baseurl(true)."/admin/dbsync/", t('DB updates'), "dbsync"),
+               'update' =>     Array($a->get_baseurl(true)."/admin/update/", t("Software Update") , "update")
        );
        
        /* get plugins admin page */
@@ -142,6 +146,9 @@ function admin_content(&$a) {
                        case 'logs':
                                $o = admin_page_logs($a);
                                break;
+                       case 'dbsync':
+                               $o = admin_page_dbsync($a);
+                               break;
                        case 'update':
                                $o = admin_page_remoteupdate($a);
                                break;
@@ -235,6 +242,8 @@ function admin_page_site_post(&$a){
        $proxyuser                      =       ((x($_POST,'proxyuser'))                ? notags(trim($_POST['proxyuser']))     : '');
        $proxy                          =       ((x($_POST,'proxy'))                    ? notags(trim($_POST['proxy'])) : '');
        $timeout                        =       ((x($_POST,'timeout'))                  ? intval(trim($_POST['timeout']))               : 60);
+       $delivery_interval      =       ((x($_POST,'delivery_interval'))? intval(trim($_POST['delivery_interval']))             : 0);
+       $maxloadavg             =       ((x($_POST,'maxloadavg'))       ? intval(trim($_POST['maxloadavg']))            : 50);
        $dfrn_only          =   ((x($_POST,'dfrn_only'))            ? True      :       False);
        $ostatus_disabled   =   !((x($_POST,'ostatus_disabled')) ? True  :   False);
        $diaspora_enabled   =   ((x($_POST,'diaspora_enabled')) ? True   :  False);
@@ -281,7 +290,8 @@ function admin_page_site_post(&$a){
                }
        }
        set_config('system','ssl_policy',$ssl_policy);
-
+       set_config('system','delivery_interval',$delivery_interval);
+       set_config('system','maxloadavg',$maxloadavg);
        set_config('config','sitename',$sitename);
        if ($banner==""){
                // don't know why, but del_config doesn't work...
@@ -425,7 +435,8 @@ function admin_page_site(&$a) {
                '$proxyuser'            => array('proxyuser', t("Proxy user"), get_config('system','proxyuser'), ""),
                '$proxy'                        => array('proxy', t("Proxy URL"), get_config('system','proxy'), ""),
                '$timeout'                      => array('timeout', t("Network timeout"), (x(get_config('system','curl_timeout'))?get_config('system','curl_timeout'):60), t("Value is in seconds. Set to 0 for unlimited (not recommended).")),
-
+               '$delivery_interval'                    => array('delivery_interval', t("Delivery interval"), (x(get_config('system','delivery_interval'))?get_config('system','delivery_interval'):2), t("Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers.")),
+               '$maxloadavg'                   => array('maxloadavg', t("Maximum Load Average"), ((intval(get_config('system','maxloadavg')) > 0)?get_config('system','maxloadavg'):50), t("Maximum system load before delivery and poll processes are deferred - default 50.")),
         '$form_security_token' => get_form_security_token("admin_site"),
                        
        ));
@@ -433,6 +444,62 @@ function admin_page_site(&$a) {
 }
 
 
+function admin_page_dbsync(&$a) {
+
+       $o = '';
+
+       if($a->argc > 3 && intval($a->argv[3]) && $a->argv[2] === 'mark') {
+               set_config('database', 'update_' . intval($a->argv[3]), 'success');
+               info( t('Update has been marked successful') . EOL);
+               goaway($a->get_baseurl(true) . '/admin/dbsync');
+       }
+
+       if($a->argc > 2 && intval($a->argv[2])) {
+               require_once('update.php');
+               $func = 'update_' . intval($a->argv[2]);
+               if(function_exists($func)) {
+                       $retval = $func();
+                       if($retval === UPDATE_FAILED) {
+                               $o .= sprintf( t('Executing %s failed. Check system logs.'), $func); 
+                       }
+                       elseif($retval === UPDATE_SUCCESS) {
+                               $o .= sprintf( t('Update %s was successfully applied.', $func));
+                               set_config('database',$func, 'success');
+                       }
+                       else
+                               $o .= sprintf( t('Update %s did not return a status. Unknown if it succeeded.'), $func);
+               }
+               else
+                       $o .= sprintf( t('Update function %s could not be found.'), $func);
+               return $o;
+       }
+
+       $failed = array();
+       $r = q("select * from config where `cat` = 'database' ");
+       if(count($r)) {
+               foreach($r as $rr) {
+                       $upd = intval(substr($rr['k'],7));
+                       if($upd < 1139 || $rr['v'] === 'success')
+                               continue;
+                       $failed[] = $upd;
+               }
+       }
+       if(! count($failed))
+               return '<h3>' . t('No failed updates.') . '</h3>';
+
+       $o = replace_macros(get_markup_template('failed_updates.tpl'),array(
+               '$base' => $a->get_baseurl(true),
+               '$banner' => t('Failed Updates'),
+               '$desc' => t('This does not include updates prior to 1139, which did not return a status.'),
+               '$mark' => t('Mark success (if update was manually applied)'),
+               '$apply' => t('Attempt to execute this update step automatically'),
+               '$failed' => $failed
+       ));     
+
+       return $o;
+
+}
+
 /**
  * Users admin page
  *
@@ -977,7 +1044,6 @@ readable.");
                                        $size = 5000000;
                                $seek = fseek($fp,0-$size,SEEK_END);
                                if($seek === 0) {
-                                       fgets($fp); // throw away the first partial line
                                        $data = escape_tags(fread($fp,$size));
                                        while(! feof($fp))
                                                $data .= escape_tags(fread($fp,4096));
index 852388c1493125bdcc28fafcd6db6229322d0c14..617b5b670a17eddc1db76b356d3f9d71f6e54f1b 100644 (file)
@@ -5,25 +5,33 @@ require_once('include/socgraph.php');
 function common_content(&$a) {
 
        $o = '';
-       if(! local_user()) {
-               notice( t('Permission denied.') . EOL);
-               return;
-       }
 
-       if($a->argc > 1)
-               $cid = intval($a->argv[1]);
-       if(! $cid)
+       $cmd = $a->argv[1];
+       $uid = intval($a->argv[2]);
+       $cid = intval($a->argv[3]);
+       $zcid = 0;
+
+       if($cmd !== 'loc' && $cmd != 'rem')
+               return;
+       if(! $uid)
                return;
 
-       $c = q("select name, url, photo from contact where id = %d and uid = %d limit 1",
-               intval($cid),
-               intval(local_user())
-       );
+       if($cmd === 'loc' && $cid) {    
+               $c = q("select name, url, photo from contact where id = %d and uid = %d limit 1",
+                       intval($cid),
+                       intval($uid)
+               );
+       }
+       else {
+               $c = q("select name, url, photo from contact where self = 1 and uid = %d limit 1",
+                       intval($uid)
+               );
+       }       
 
        $a->page['aside'] .= '<div class="vcard">' 
                . '<div class="fn label">' . $c[0]['name'] . '</div>' 
                . '<div id="profile-photo-wrapper">'
-               . '<a href="/contacts/' . $cid . '"><img class="photo" width="175" height="175" 
+               . '<img class="photo" width="175" height="175" 
                src="' . $c[0]['photo'] . '" alt="' . $c[0]['name'] . '" /></div>'
                . '</div>';
        
@@ -33,13 +41,52 @@ function common_content(&$a) {
 
        $o .= '<h2>' . t('Common Friends') . '</h2>';
 
-//     $o .= '<h3>' . sprintf( t('You and %s'),$c[0]['name']) . '</h3>';
 
+       if(! $cid) {
+               if(get_my_url()) {
+                       $r = q("select id from contact where nurl = '%s' and uid = %d limit 1",
+                               dbesc(normalise_link(get_my_url())),
+                               intval($profile_uid)
+                       );
+                       if(count($r))
+                               $cid = $r[0]['id'];
+                       else {
+                               $r = q("select id from gcontact where nurl = '%s' limit 1",
+                                       dbesc(normalise_link(get_my_url()))
+                               );
+                               if(count($r))
+                                       $zcid = $r[0]['id'];
+                       }
+               }
+       }
+
+
+
+       if($cid == 0 && $zcid == 0)
+               return; 
+
+
+       if($cid)
+               $t = count_common_friends($uid,$cid);
+       else
+               $t = count_common_friends_zcid($uid,$zcid);
+
+
+       $a->set_pager_total($t);
+
+       if(! $t) {
+               notice( t('No contacts in common.') . EOL);
+               return $o;
+       }
+
+
+       if($cid)
+               $r = common_friends($uid,$cid);
+       else
+               $r = common_friends_zcid($uid,$zcid);
 
-       $r = common_friends(local_user(),$cid);
 
        if(! count($r)) {
-               $o .= t('No friends in common.');
                return $o;
        }
 
index 8670c0c800d94320037f65d64a2d6b59f860cbd6..769239fe0cd81c62c5fd41cb1841978044fa1fbe 100644 (file)
@@ -182,6 +182,22 @@ function contacts_content(&$a) {
                        return; // NOTREACHED
                }
 
+
+               if($cmd === 'archive') {
+                       $archived = (($orig_record[0]['archive']) ? 0 : 1);
+                       $r = q("UPDATE `contact` SET `archive` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1",
+                               intval($archived),
+                               intval($contact_id),
+                               intval(local_user())
+                       );
+                       if($r) {
+                               //notice( t('Contact has been ') . (($archived) ? t('archived') : t('unarchived')) . EOL );
+                               info( (($archived) ? t('Contact has been archived') : t('Contact has been unarchived')) . EOL );
+                       }
+                       goaway($a->get_baseurl(true) . '/contacts/' . $contact_id);
+                       return; // NOTREACHED
+               }
+
                if($cmd === 'drop') {
 
                        require_once('include/Contact.php');
@@ -274,16 +290,26 @@ function contacts_content(&$a) {
                                'label' => (($contact['blocked']) ? t('Unblock') : t('Block') ),
                                'url'   => $a->get_baseurl(true) . '/contacts/' . $contact_id . '/block',
                                'sel'   => '',
+                               'title' => t('Toggle Blocked status'),
                        ),
                        array(
                                'label' => (($contact['readonly']) ? t('Unignore') : t('Ignore') ),
                                'url'   => $a->get_baseurl(true) . '/contacts/' . $contact_id . '/ignore',
                                'sel'   => '',
+                               'title' => t('Toggle Ignored status'),
+                       ),
+
+                       array(
+                               'label' => (($contact['archive']) ? t('Unarchive') : t('Archive') ),
+                               'url'   => $a->get_baseurl(true) . '/contacts/' . $contact_id . '/archive',
+                               'sel'   => '',
+                               'title' => t('Toggle Archive status'),
                        ),
                        array(
                                'label' => t('Repair'),
                                'url'   => $a->get_baseurl(true) . '/crepair/' . $contact_id,
                                'sel'   => '',
+                               'title' => t('Advanced Contact Settings'),
                        )
                );
                $tab_tpl = get_markup_template('common_tabs.tpl');
@@ -299,7 +325,7 @@ function contacts_content(&$a) {
                        '$lbl_info1' => t('Contact Information / Notes'),
                        '$infedit' => t('Edit contact notes'),
                        '$common_text' => $common_text,
-                       '$common_link' => $a->get_baseurl(true) . '/common/' . $contact['id'],
+                       '$common_link' => $a->get_baseurl(true) . '/common/loc/' . local_user() . '/' . $contact['id'],
                        '$all_friends' => $all_friends,
                        '$relation_text' => $relation_text,
                        '$visit' => sprintf( t('Visit %s\'s profile [%s]'),$contact['name'],$contact['url']),
@@ -324,6 +350,7 @@ function contacts_content(&$a) {
                        '$info' => $contact['info'],
                        '$blocked' => (($contact['blocked']) ? t('Currently blocked') : ''),
                        '$ignored' => (($contact['readonly']) ? t('Currently ignored') : ''),
+                       '$archived' => (($contact['archive']) ? t('Currently archived') : ''),
                        '$hidden' => array('hidden', t('Hide this contact from others'), ($contact['hidden'] == 1), t('Replies/likes to your public posts <strong>may</strong> still be visible')),
                        '$photo' => $contact['photo'],
                        '$name' => $contact['name'],
@@ -365,6 +392,10 @@ function contacts_content(&$a) {
                $sql_extra = " AND `readonly` = 1 ";
                $ignored = true;
        }
+       elseif(($a->argc == 2) && ($a->argv[1] === 'archived')) {
+               $sql_extra = " AND `archive` = 1 ";
+               $archived = true;
+       }
        else
                $sql_extra = " AND `blocked` = 0 ";
 
@@ -376,34 +407,47 @@ function contacts_content(&$a) {
                        'label' => t('Suggestions'),
                        'url'   => $a->get_baseurl(true) . '/suggest', 
                        'sel'   => '',
+                       'title' => t('Suggest potential friends'),
                ),
                array(
                        'label' => t('All Contacts'),
                        'url'   => $a->get_baseurl(true) . '/contacts/all', 
                        'sel'   => ($all) ? 'active' : '',
+                       'title' => t('Show all contacts'),
                ),
                array(
-                       'label' => t('Unblocked Contacts'),
+                       'label' => t('Unblocked'),
                        'url'   => $a->get_baseurl(true) . '/contacts',
-                       'sel'   => ((! $all) && (! $blocked) && (! $hidden) && (! $search) && (! $nets) && (! $ignored)) ? 'active' : '',
+                       'sel'   => ((! $all) && (! $blocked) && (! $hidden) && (! $search) && (! $nets) && (! $ignored) && (! $archived)) ? 'active' : '',
+                       'title' => t('Only show unblocked contacts'),
                ),
 
                array(
-                       'label' => t('Blocked Contacts'),
+                       'label' => t('Blocked'),
                        'url'   => $a->get_baseurl(true) . '/contacts/blocked',
                        'sel'   => ($blocked) ? 'active' : '',
+                       'title' => t('Only show blocked contacts'),
                ),
 
                array(
-                       'label' => t('Ignored Contacts'),
+                       'label' => t('Ignored'),
                        'url'   => $a->get_baseurl(true) . '/contacts/ignored',
                        'sel'   => ($ignored) ? 'active' : '',
+                       'title' => t('Only show ignored contacts'),
+               ),
+
+               array(
+                       'label' => t('Archived'),
+                       'url'   => $a->get_baseurl(true) . '/contacts/archived',
+                       'sel'   => ($archived) ? 'active' : '',
+                       'title' => t('Only show archived contacts'),
                ),
 
                array(
-                       'label' => t('Hidden Contacts'),
+                       'label' => t('Hidden'),
                        'url'   => $a->get_baseurl(true) . '/contacts/hidden',
                        'sel'   => ($hidden) ? 'active' : '',
+                       'title' => t('Only show hidden contacts'),
                ),
 
        );
index efb5be3a412acc134699a81ab5efe378ec131fb3..2b25095fde2209314ff65b7d71a8eb51fb108e00 100644 (file)
@@ -207,7 +207,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                        if($duplex == 1)
                                $params['duplex'] = 1;
 
-                       if($user['page-flags'] == PAGE_COMMUNITY)
+                       if($user[0]['page-flags'] == PAGE_COMMUNITY)
                                $params['page'] = 1;
 
                        logger('dfrn_confirm: Confirm: posting data to ' . $dfrn_confirm . ': ' . print_r($params,true), LOGGER_DATA);
@@ -434,7 +434,8 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                else
                        $contact = null;
 
-               if(isset($new_relation) && $new_relation == CONTACT_IS_FRIEND) {
+
+               if((isset($new_relation) && $new_relation == CONTACT_IS_FRIEND)) {
 
                        if(($contact) && ($contact['network'] === NETWORK_DIASPORA)) {
                                require_once('include/diaspora.php');
@@ -447,7 +448,8 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                        $r = q("SELECT `hide-friends` FROM `profile` WHERE `uid` = %d AND `is-default` = 1 LIMIT 1",
                                intval($uid)
                        );
-                       if((count($r)) && ($activity) && (! $hidden)) {
+
+                       if((count($r)) && ($r[0]['hide-friends'] == 0) && ($activity) && (! $hidden)) {
 
                                require_once('include/items.php');
 
@@ -468,12 +470,15 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                                        $arr['author-name'] = $arr['owner-name'] = $self[0]['name'];
                                        $arr['author-link'] = $arr['owner-link'] = $self[0]['url'];
                                        $arr['author-avatar'] = $arr['owner-avatar'] = $self[0]['thumb'];
-                                       $arr['verb'] = ACTIVITY_FRIEND;
-                                       $arr['object-type'] = ACTIVITY_OBJ_PERSON;
-                               
+
                                        $A = '[url=' . $self[0]['url'] . ']' . $self[0]['name'] . '[/url]';
+                                       $APhoto = '[url=' . $self[0]['url'] . ']' . '[img]' . $self[0]['thumb'] . '[/img][/url]';
+
                                        $B = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]';
                                        $BPhoto = '[url=' . $contact['url'] . ']' . '[img]' . $contact['thumb'] . '[/img][/url]';
+
+                                       $arr['verb'] = ACTIVITY_FRIEND;
+                                   $arr['object-type'] = ACTIVITY_OBJ_PERSON;
                                        $arr['body'] =  sprintf( t('%1$s is now friends with %2$s'), $A, $B)."\n\n\n".$BPhoto;
 
                                        $arr['object'] = '<object><type>' . ACTIVITY_OBJ_PERSON . '</type><title>' . $contact['name'] . '</title>'
@@ -481,6 +486,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                                        $arr['object'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $contact['url'] . '" />' . "\n");
                                        $arr['object'] .= xmlify('<link rel="photo" type="image/jpeg" href="' . $contact['thumb'] . '" />' . "\n");
                                        $arr['object'] .= '</link></object>' . "\n";
+
                                        $arr['last-child'] = 1;
 
                                        $arr['allow_cid'] = $user[0]['allow_cid'];
@@ -710,6 +716,10 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                        WHERE `contact`.`id` = %d LIMIT 1",
                        intval($dfrn_record)
                );
+
+               if(count($r))
+                       $combined = $r[0];
+
                if((count($r)) && ($r[0]['notify-flags'] & NOTIFY_CONFIRM)) {
 
                        push_lang($r[0]['language']);
@@ -738,6 +748,65 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                        }
                        pop_lang();
                }
+
+               // Send a new friend post if we are allowed to...
+
+               if($page && intval(get_pconfig($local_uid,'system','post_joingroup'))) {
+                       $r = q("SELECT `hide-friends` FROM `profile` WHERE `uid` = %d AND `is-default` = 1 LIMIT 1",
+                               intval($local_uid)
+                       );
+
+                       if((count($r)) && ($r[0]['hide-friends'] == 0)) {
+
+                               require_once('include/items.php');
+
+                               $self = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1",
+                                       intval($local_uid)
+                               );
+
+                               if(count($self)) {
+
+                                       $arr = array();
+                                       $arr['uri'] = $arr['parent-uri'] = item_new_uri($a->get_hostname(), $local_uid); 
+                                       $arr['uid'] = $local_uid;
+                                       $arr['contact-id'] = $self[0]['id'];
+                                       $arr['wall'] = 1;
+                                       $arr['type'] = 'wall';
+                                       $arr['gravity'] = 0;
+                                       $arr['origin'] = 1;
+                                       $arr['author-name'] = $arr['owner-name'] = $self[0]['name'];
+                                       $arr['author-link'] = $arr['owner-link'] = $self[0]['url'];
+                                       $arr['author-avatar'] = $arr['owner-avatar'] = $self[0]['thumb'];
+
+                                       $A = '[url=' . $self[0]['url'] . ']' . $self[0]['name'] . '[/url]';
+                                       $APhoto = '[url=' . $self[0]['url'] . ']' . '[img]' . $self[0]['thumb'] . '[/img][/url]';
+
+                                       $B = '[url=' . $combined['url'] . ']' . $combined['name'] . '[/url]';
+                                       $BPhoto = '[url=' . $combined['url'] . ']' . '[img]' . $combined['thumb'] . '[/img][/url]';
+
+                                       $arr['verb'] = ACTIVITY_JOIN;
+                                       $arr['object-type'] = ACTIVITY_OBJ_GROUP;
+                                       $arr['body'] =  sprintf( t('%1$s has joined %2$s'), $A, $B)."\n\n\n" .$BPhoto;
+                                       $arr['object'] = '<object><type>' . ACTIVITY_OBJ_GROUP . '</type><title>' . $combined['name'] . '</title>'
+                                               . '<id>' . $combined['url'] . '/' . $combined['name'] . '</id>';
+                                       $arr['object'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $combined['url'] . '" />' . "\n");
+                                       $arr['object'] .= xmlify('<link rel="photo" type="image/jpeg" href="' . $combined['thumb'] . '" />' . "\n");
+                                       $arr['object'] .= '</link></object>' . "\n";
+
+                                       $arr['last-child'] = 1;
+
+                                       $arr['allow_cid'] = $user[0]['allow_cid'];
+                                       $arr['allow_gid'] = $user[0]['allow_gid'];
+                                       $arr['deny_cid']  = $user[0]['deny_cid'];
+                                       $arr['deny_gid']  = $user[0]['deny_gid'];
+
+                                       $i = item_store($arr);
+                                       if($i)
+                                       proc_run('php',"include/notifier.php","activity","$i");
+
+                               }
+                       }
+               }
                xml_status(0); // Success
                return; // NOTREACHED
 
index 79583ea182d001ed078f3542a710e7e8271e7b1a..2169c494c31c1bfab6be591604947089f4f9c2ef 100644 (file)
@@ -700,7 +700,8 @@ function dfrn_request_content(&$a) {
                                                'node' => $r[0]['nickname'],
                                                'dfrn_id' => $r[0]['issued-id'],
                                                'intro_id' => $intro[0]['id'],
-                                               'duplex' => (($r[0]['page-flags'] == PAGE_FREELOVE) ? 1 : 0)
+                                               'duplex' => (($r[0]['page-flags'] == PAGE_FREELOVE) ? 1 : 0),
+                                               'activity' => intval(get_pconfig($r[0]['uid'],'system','post_newfriend'))
                                        );
                                        dfrn_confirm_post($a,$handsfree);
                                }
@@ -753,6 +754,11 @@ function dfrn_request_content(&$a) {
                        $myaddr = ((x($_GET,'address')) ? $_GET['address'] : '');
                }
 
+               // last, try a zrl
+               if(! strlen($myaddr))
+                       $myaddr = get_my_url();
+
+
                $target_addr = $a->profile['nickname'] . '@' . substr(z_root(), strpos(z_root(),'://') + 3 );
 
 
index e66a2dc4423953a80b9fd2dbb1fdf1d4d81f3871..069046ff9da89ddc74df725aa91d32fdca0048bb 100644 (file)
@@ -28,6 +28,9 @@ function events_post(&$a) {
        $adjust   = intval($_POST['adjust']);
        $nofinish = intval($_POST['nofinish']);
 
+       // The default setting for the `private` field in event_store() is false, so mirror that        
+       $private_event = false;
+
 
        $start    = sprintf('%d-%d-%d %d:%d:0',$startyear,$startmonth,$startday,$starthour,$startminute);
        if($nofinish)
@@ -65,14 +68,38 @@ function events_post(&$a) {
 
        $share = ((intval($_POST['share'])) ? intval($_POST['share']) : 0);
 
+       $c = q("select id from contact where uid = %d and self = 1 limit 1",
+               intval(local_user())
+       );
+       if(count($c))
+               $self = $c[0]['id'];
+       else
+               $self = 0;
+
+
        if($share) {
                $str_group_allow   = perms2str($_POST['group_allow']);
                $str_contact_allow = perms2str($_POST['contact_allow']);
                $str_group_deny    = perms2str($_POST['group_deny']);
                $str_contact_deny  = perms2str($_POST['contact_deny']);
+
+               // Undo the pseudo-contact of self, since there are real contacts now
+               if( strpos($str_contact_allow, '<' . $self . '>') !== false )
+               {
+                       $str_contact_allow = str_replace('<' . $self . '>', '', $str_contact_allow);
+               }
+               // Make sure to set the `private` field as true. This is necessary to
+               // have the posts show up correctly in Diaspora if an event is created
+               // as visible only to self at first, but then edited to display to others.
+               if( strlen($str_group_allow) or strlen($str_contact_allow) or strlen($str_group_deny) or strlen($str_contact_deny) )
+               {
+                       $private_event = true;
+               }
        }
        else {
-               $str_contact_allow = '<' . local_user() . '>';
+               // Note: do not set `private` field for self-only events. It will
+               // keep even you from seeing them!
+               $str_contact_allow = '<' . $self . '>';
                $str_group_allow = $str_contact_deny = $str_group_deny = '';
        }
 
@@ -91,6 +118,7 @@ function events_post(&$a) {
        $datarray['allow_gid'] = $str_group_allow;
        $datarray['deny_cid'] = $str_contact_deny;
        $datarray['deny_gid'] = $str_group_deny;
+       $datarray['private'] = $private_event;
        $datarray['id'] = $event_id;
        $datarray['created'] = $created;
        $datarray['edited'] = $edited;
index c520fec7ac0f48a5adcdf13630f76a1026bd611c..d2b57d4472fcbf2dd8035bfcc5a2941903288579 100644 (file)
@@ -7,12 +7,18 @@ function filerm_content(&$a) {
        }
 
        $term = unxmlify(trim($_GET['term']));
+       $cat = unxmlify(trim($_GET['cat']));
+
+       $category = (($cat) ? true : false);
+       if($category)
+               $term = $cat;
+
        $item_id = (($a->argc > 1) ? intval($a->argv[1]) : 0);
 
        logger('filerm: tag ' . $term . ' item ' . $item_id);
 
        if($item_id && strlen($term))
-               file_tag_unsave_file(local_user(),$item_id,$term);
+               file_tag_unsave_file(local_user(),$item_id,$term, $category);
 
        if(x($_SESSION,'return_url'))
                goaway($a->get_baseurl() . '/' . $_SESSION['return_url']);
index 52a064224a559ef15eb872754b5e2bcc51961b9e..28807b5b509f677fe589a5661ab6a35582ea5cf0 100644 (file)
@@ -18,10 +18,18 @@ function friendica_init(&$a) {
                        $admin = false;
                }
 
+               $visible_plugins = array();
+               if(is_array($a->plugins) && count($a->plugins)) {
+                       $r = q("select * from addon where hidden = 0");
+                       if(count($r))
+                               foreach($r as $rr)
+                                       $visible_plugins[] = $rr['name'];
+               }
+
                $data = Array(
                        'version' => FRIENDICA_VERSION,
                        'url' => z_root(),
-                       'plugins' => $a->plugins,
+                       'plugins' => $visible_plugins,
                        'register_policy' =>  $register_policy[$a->config['register_policy']],
                        'admin' => $admin,
                        'site_name' => $a->config['sitename'],
@@ -54,9 +62,18 @@ function friendica_content(&$a) {
 
        $o .= '<p></p>';
 
-       if(count($a->plugins)) {
+       $visible_plugins = array();
+       if(is_array($a->plugins) && count($a->plugins)) {
+               $r = q("select * from addon where hidden = 0");
+               if(count($r))
+                       foreach($r as $rr)
+                               $visible_plugins[] = $rr['name'];
+       }
+
+
+       if(count($visible_plugins)) {
                $o .= '<p>' . t('Installed plugins/addons/apps:') . '</p>';
-               $sorted = $a->plugins;
+               $sorted = $visible_plugins;
                $s = '';
                sort($sorted);
                foreach($sorted as $p) {
index 1436f7ffc75b3b044736e9053fe32a8453595ef8..639379fe0e9ea8984f6e5160a7509d734b767f38 100644 (file)
@@ -444,9 +444,28 @@ function item_post(&$a) {
                $tags[] = '@' . $parent_contact['nick'];
        }               
 
+       $tagged = array();
+
+
        if(count($tags)) {
                foreach($tags as $tag) {
-                       handle_tag($a, $body, $inform, $str_tags, (local_user()) ? local_user() : $profile_uid , $tag); 
+
+                       // If we already tagged 'Robert Johnson', don't try and tag 'Robert'.
+                       // Robert Johnson should be first in the $tags array
+
+                       $fullnametagged = false;
+                       for($x = 0; $x < count($tagged); $x ++) {
+                               if(stristr($tagged[$x],$tag . ' ')) {
+                                       $fullnametagged = true;
+                                       break;
+                               }
+                       }
+                       if($fullnametagged)
+                               continue;
+
+                       $success = handle_tag($a, $body, $inform, $str_tags, (local_user()) ? local_user() : $profile_uid , $tag); 
+                       if($success)
+                               $tagged[] = $tag;
                }
        }
 
@@ -861,21 +880,27 @@ function item_content(&$a) {
  * @param unknown_type $str_tags string to add the tag to
  * @param unknown_type $profile_uid
  * @param unknown_type $tag the tag to replace
+ *
+ * @return boolean true if replaced, false if not replaced
  */
 function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
+
+       $replaced = false;
+
        //is it a hash tag? 
        if(strpos($tag,'#') === 0) {
                //if the tag is replaced...
                if(strpos($tag,'[url='))
                        //...do nothing
-                       return;
+                       return $replaced;
                //base tag has the tags name only
                $basetag = str_replace('_',' ',substr($tag,1));
                //create text for link
                $newtag = '#[url=' . $a->get_baseurl() . '/search?tag=' . rawurlencode($basetag) . ']' . $basetag . '[/url]';
                //replace tag by the link
                $body = str_replace($tag, $newtag, $body);
-       
+               $replaced = true;
+
                //is the link already in str_tags?
                if(! stristr($str_tags,$newtag)) {
                        //append or set str_tags
@@ -883,13 +908,13 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
                                $str_tags .= ',';
                        $str_tags .= $newtag;
                }
-               return;
+               return $replaced;
        }
        //is it a person tag? 
        if(strpos($tag,'@') === 0) {
                //is it already replaced? 
                if(strpos($tag,'[url='))
-                       return;
+                       return $replaced;
                $stat = false;
                //get the person's name
                $name = substr($tag,1);
@@ -965,6 +990,7 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
                }
                //if there is an url for this persons profile
                if(isset($profile)) {
+                       $replaced = true;
                        //create profile link
                        $profile = str_replace(',','%2c',$profile);
                        $newtag = '@[url=' . $profile . ']' . $newname  . '[/url]';
@@ -989,4 +1015,6 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
                        }
                }
        }
+
+       return $replaced;       
 }
index b12bd16dab4578ba368229ed57997e326b3adef5..5655f1bfa7f544f141aaff66d36e38075c19e51d 100644 (file)
@@ -171,37 +171,44 @@ function network_content(&$a, $update = 0) {
                        'label' => t('Commented Order'),
                        'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '?f=&cid=' . $_GET['cid'] : ''), 
                        'sel'=>$all_active,
+                       'title'=> t('Sort by Comment Date'),
                ),
                array(
                        'label' => t('Posted Order'),
                        'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . '?f=&order=post' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''), 
                        'sel'=>$postord_active,
+                       'title' => t('Sort by Post Date'),
                ),
 
                array(
                        'label' => t('Personal'),
                        'url' => $a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&conv=1',
                        'sel' => $conv_active,
+                       'title' => t('Posts that mention or involve you'),
                ),
                array(
                        'label' => t('New'),
                        'url' => $a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . '/new' . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : ''),
                        'sel' => $new_active,
+                       'title' => t('Activity Stream - by date'),
                ),
                array(
                        'label' => t('Starred'),
                        'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&star=1',
                        'sel'=>$starred_active,
+                       'title' => t('Favourite Posts'),
                ),
                array(
                        'label' => t('Shared Links'),
                        'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&bmark=1',
                        'sel'=>$bookmarked_active,
+                       'title'=> t('Interesting Links'),
                ),      
 //             array(
 //                     'label' => t('Spam'),
 //                     'url'=>$a->get_baseurl(true) . '/network?f=&spam=1'
 //                     'sel'=> $spam_active,
+//                     'title' => t('Posts flagged as SPAM'),
 //             ),      
 
 
index de1e2724899c4c7791422a17a84df618642fc571..69f044e89f4561f02bf4cfe357cd129cf22eec70 100644 (file)
@@ -32,6 +32,8 @@ function profile_init(&$a) {
 
        profile_load($a,$which,$profile);
 
+       $userblock = (($a->profile['hidewall'] && (! local_user()) && (! remote_user())) ? true : false);
+
        if((x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY)) {
                $a->page['htmlhead'] .= '<meta name="friendica.community" content="true" />';
        }
@@ -41,8 +43,8 @@ function profile_init(&$a) {
                $delegate = ((strstr($a->profile['openid'],'://')) ? $a->profile['openid'] : 'http://' . $a->profile['openid']);
                $a->page['htmlhead'] .= '<link rel="openid.delegate" href="' . $delegate . '" />' . "\r\n";
        }
-
-       if(! $blocked) {
+       // site block
+       if((! $blocked) && (! $userblock)) {
                $keywords = ((x($a->profile,'pub_keywords')) ? $a->profile['pub_keywords'] : '');
                $keywords = str_replace(array('#',',',' ',',,'),array('',' ',',',','),$keywords);
                if(strlen($keywords))
@@ -141,6 +143,10 @@ function profile_content(&$a, $update = 0) {
                        return $o;
                }
 
+
+               $o .= common_friends_visitor_widget($a->profile['profile_uid']);
+
+
                if(x($_SESSION,'new_member') && $_SESSION['new_member'] && $is_owner)
                        $o .= '<a href="newmember" id="newmember-tips" style="font-size: 1.2em;"><b>' . t('Tips for New Members') . '</b></a>' . EOL;
 
index 7a33a03e44852a84b3a8c7419e2c192a153a9085..c72a233c21310f3a108728f7b9b1a951c1922837 100644 (file)
@@ -139,21 +139,49 @@ function profiles_post(&$a) {
 
 
                $changes = array();
+               $value = '';
                if($is_default) {
-                       if($marital != $orig[0]['marital']) $changes[] = '&hearts; ' . t('Marital Status');
-                       if($withchanged) $changes[] = '&hearts; ' . t('Romantic Partner');                      
-                       if($work != $orig[0]['work']) $changes[] = t('Work/Employment');
-                       if($religion != $orig[0]['religion']) $changes[] = t('Religion');
-                       if($politic != $orig[0]['politic']) $changes[] = t('Political Views');
-                       if($gender != $orig[0]['gender']) $changes[] = t('Gender');
-                       if($sexual != $orig[0]['sexual']) $changes[] = t('Sexual Preference');
-                       if($homepage != $orig[0]['homepage']) $changes[] = t('Homepage');
-                       if($interest != $orig[0]['interest']) $changes[] = t('Interests');
+                       if($marital != $orig[0]['marital']) {
+                               $changes[] = '[color=#ff0000]&hearts;[/color] ' . t('Marital Status');
+                               $value = $marital;
+                       }
+                       if($withchanged) {
+                               $changes[] = '&hearts; ' . t('Romantic Partner');
+                               $value = strip_tags($with);
+                       }                                                       
+                       if($work != $orig[0]['work']) {
+                               $changes[] = t('Work/Employment');
+                       }
+                       if($religion != $orig[0]['religion']) {
+                               $changes[] = t('Religion');
+                               $value = $religion;
+                       }
+                       if($politic != $orig[0]['politic']) {
+                               $changes[] = t('Political Views');
+                               $value = $politic;
+                       }
+                       if($gender != $orig[0]['gender']) {
+                               $changes[] = t('Gender');
+                               $value = $gender;
+                       }
+                       if($sexual != $orig[0]['sexual']) {
+                               $changes[] = t('Sexual Preference');
+                               $value = $sexual;
+                       }
+                       if($homepage != $orig[0]['homepage']) {
+                               $changes[] = t('Homepage');
+                               $value = $homepage;
+                       }
+                       if($interest != $orig[0]['interest']) {
+                               $changes[] = t('Interests');
+                               $value = $interest;
+                       }
                        if($address != $orig[0]['address'] || $locality != $orig[0]['locality'] || $region != $orig[0]['region']
-                               || $country_name != $orig[0]['country_name'])
-                               $changes[] = t('Location');
+                               || $country_name != $orig[0]['country-name']) {
+                               $changes[] = t('Location');
+                       }
 
-                       profile_activity($changes);
+                       profile_activity($changes,$value);
 
                }                       
                        
@@ -245,7 +273,7 @@ function profiles_post(&$a) {
 }
 
 
-function profile_activity($changed) {
+function profile_activity($changed, $value) {
        $a = get_app();
 
        if(! local_user() || ! is_array($changed) || ! count($changed))
@@ -289,7 +317,7 @@ function profile_activity($changed) {
        foreach($changed as $ch) {
                if(strlen($changes)) {
                        if ($z == ($t - 1))
-                               $changes .= ' and ';
+                               $changes .= t(' and ');
                        else
                                $changes .= ', ';
                }
@@ -299,7 +327,15 @@ function profile_activity($changed) {
 
        $prof = '[url=' . $self[0]['url'] . '?tab=profile' . ']' . t('public profile') . '[/url]';      
 
-       $arr['body'] =  sprintf( t('%1$s has an updated %2$s, changing %3$s.'), $A, $prof, $changes);
+       if($t == 1 && strlen($value)) {
+               $message = sprintf( t('%1$s changed %2$s to &ldquo;%3$s&rdquo;'), $A, $changes, $value);
+               $message .= "\n\n" . sprintf( t(" - Visit %1$s\'s %2$s"), $A, $prof);
+       }
+       else
+               $message =      sprintf( t('%1$s has an updated %2$s, changing %3$s.'), $A, $prof, $changes);
+
+       $arr['body'] = $message;  
 
        $arr['object'] = '<object><type>' . ACTIVITY_OBJ_PROFILE . '</type><title>' . $self[0]['name'] . '</title>'
        . '<id>' . $self[0]['url'] . '/' . $self[0]['name'] . '</id>';
index 3072d3d65fc12f635a4523f52ff5c6f6006c46e8..5f5b2ab2e97e1831740a8446b18e1dd4ac16f071 100644 (file)
@@ -352,6 +352,7 @@ function settings_post(&$a) {
        $hide_friends     = (($_POST['hide-friends'] == 1) ? 1: 0);
        $hidewall         = (($_POST['hidewall'] == 1) ? 1: 0);
        $post_newfriend   = (($_POST['post_newfriend'] == 1) ? 1: 0);
+       $post_joingroup   = (($_POST['post_joingroup'] == 1) ? 1: 0);
        $post_profilechange   = (($_POST['post_profilechange'] == 1) ? 1: 0);
 
 
@@ -436,6 +437,7 @@ function settings_post(&$a) {
 
        set_pconfig(local_user(),'system','suggestme', $suggestme);
        set_pconfig(local_user(),'system','post_newfriend', $post_newfriend);
+       set_pconfig(local_user(),'system','post_joingroup', $post_joingroup);
        set_pconfig(local_user(),'system','post_profilechange', $post_profilechange);
 
 
@@ -802,6 +804,9 @@ function settings_content(&$a) {
        $post_newfriend = get_pconfig(local_user(), 'system','post_newfriend');
        $post_newfriend = (($post_newfriend===false)? '0': $post_newfriend); // default if not set: 0
 
+       $post_joingroup = get_pconfig(local_user(), 'system','post_joingroup');
+       $post_joingroup = (($post_joingroup===false)? '0': $post_joingroup); // default if not set: 0
+
        $post_profilechange = get_pconfig(local_user(), 'system','post_profilechange');
        $post_profilechange = (($post_profilechange===false)? '0': $post_profilechange); // default if not set: 0
 
@@ -976,6 +981,7 @@ function settings_content(&$a) {
                '$h_not'        => t('Notification Settings'),
                '$activity_options' => t('By default post a status message when:'),
                '$post_newfriend' => array('post_newfriend',  t('accepting a friend request'), $post_newfriend, ''),
+               '$post_joingroup' => array('post_joingroup',  t('joining a forum/community'), $post_joingroup, ''),
                '$post_profilechange' => array('post_profilechange',  t('making an <em>interesting</em> profile change'), $post_profilechange, ''),
                '$lbl_not'      => t('Send a notification email when:'),
                '$notify1'      => array('notify1', t('You receive an introduction'), ($notify & NOTIFY_INTRO), NOTIFY_INTRO, ''),
index 8ee499f5f30c0fcd42ec5dce684abe5956da738b..6212e2b9b3e82932b8ea2982051db4125b6caece 100644 (file)
@@ -66,14 +66,14 @@ function tagger_content(&$a) {
        }
 
        $uri = item_new_uri($a->get_hostname(),$owner_uid);
-
+       $xterm = xmlify($term);
        $post_type = (($item['resource-id']) ? t('photo') : t('status'));
        $targettype = (($item['resource-id']) ? ACTIVITY_OBJ_PHOTO : ACTIVITY_OBJ_NOTE ); 
 
        $link = xmlify('<link rel="alternate" type="text/html" href="' 
                . $a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . '" />' . "\n") ;
 
-       $body = $item['body'];
+       $body = xmlify($item['body']);
 
        $target = <<< EOT
        <target>
@@ -95,8 +95,8 @@ EOT;
                <local>1</local>
                <id>$tagid</id>
                <link>$tagid</link>
-               <title>$term</title>
-               <content>$term</content>
+               <title>$xterm</title>
+               <content>$xterm</content>
        </object>
 EOT;
 
index e7d26b73e5c25360eecaf8ef393402b3ff59b444..8e261e71151d1e23e706ceabd89026779caa45c7 100644 (file)
@@ -24,13 +24,13 @@ function viewcontacts_content(&$a) {
        } 
 
 
-       $r = q("SELECT COUNT(*) as `total` FROM `contact` WHERE `uid` = %d AND `blocked` = 0 AND `pending` = 0 AND `hidden` = 0 ",
+       $r = q("SELECT COUNT(*) as `total` FROM `contact` WHERE `uid` = %d AND `blocked` = 0 AND `pending` = 0 AND `hidden` = 0 AND `archive` = 0 ",
                intval($a->profile['uid'])
        );
        if(count($r))
                $a->set_pager_total($r[0]['total']);
 
-       $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `blocked` = 0 AND `pending` = 0 AND `hidden` = 0 ORDER BY `name` ASC LIMIT %d , %d ",
+       $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `blocked` = 0 AND `pending` = 0 AND `hidden` = 0 AND `archive` = 0 ORDER BY `name` ASC LIMIT %d , %d ",
                intval($a->profile['uid']),
                intval($a->pager['start']),
                intval($a->pager['itemspage'])
index 5ab321b335f5720154bf1f965ec30270bc651313..e363aa942e2157124a08f986057ad02c6cbadf76 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 
-define( 'UPDATE_VERSION' , 1138 );
+define( 'UPDATE_VERSION' , 1143 );
 
 /**
  *
@@ -1213,3 +1213,38 @@ function update_1137() {
        q("ALTER TABLE `item_id` ADD `sid` CHAR( 255 ) NOT NULL AFTER `uid` , ADD `service` CHAR( 255 ) NOT NULL AFTER `sid` , add index (`sid`), add index ( `service`) ");
 }
 
+function update_1138() {
+       q("alter table contact add archive tinyint(1) not null default '0' after hidden, add index (archive)");
+}
+
+function update_1139() {
+       $r = q("alter table user add account_removed tinyint(1) not null default '0' after expire, add index(account_removed) ");
+       if(! $r)
+               return UPDATE_FAILED ;
+       return UPDATE_SUCCESS ;
+}
+
+function update_1140() {
+       $r = q("alter table addon add hidden tinyint(1) not null default '0' after installed, add index(hidden) ");
+       if(! $r)
+               return UPDATE_FAILED ;
+       return UPDATE_SUCCESS ;
+}
+
+function update_1141() {
+       $r = q("alter table glink add zcid int(11) not null after gcid, add index(zcid) ");
+       if(! $r)
+               return UPDATE_FAILED ;
+       return UPDATE_SUCCESS ;
+}
+
+
+function update_1142() {
+       $r = q("alter table user add service_class char(32) not null after expire_notification_sent, add index(service_class) ");
+       if(! $r)
+               return UPDATE_FAILED ;
+       return UPDATE_SUCCESS ;
+}
+
+
+
index 4eba4b75b765e4a2c22f4c662a3b69a48ad4bee0..09fe69d3f0f892350b509cd81c98bf8a0c92d4e7 100644 (file)
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 2.3.1324\n"
+"Project-Id-Version: 2.3.1332\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-04-26 10:00-0700\n"
+"POT-Creation-Date: 2012-05-04 10:00-0700\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -35,12 +35,12 @@ msgid "Contact update failed."
 msgstr ""
 
 #: ../../mod/crepair.php:115 ../../mod/wall_attach.php:44
-#: ../../mod/fsuggest.php:78 ../../mod/events.php:110 ../../mod/api.php:26
+#: ../../mod/fsuggest.php:78 ../../mod/events.php:138 ../../mod/api.php:26
 #: ../../mod/api.php:31 ../../mod/photos.php:130 ../../mod/photos.php:865
 #: ../../mod/editpost.php:10 ../../mod/install.php:171
 #: ../../mod/notifications.php:66 ../../mod/contacts.php:125
-#: ../../mod/settings.php:99 ../../mod/settings.php:514
-#: ../../mod/settings.php:519 ../../mod/manage.php:86 ../../mod/network.php:6
+#: ../../mod/settings.php:104 ../../mod/settings.php:521
+#: ../../mod/settings.php:526 ../../mod/manage.php:86 ../../mod/network.php:6
 #: ../../mod/notes.php:20 ../../mod/wallmessage.php:9
 #: ../../mod/wallmessage.php:33 ../../mod/wallmessage.php:79
 #: ../../mod/wallmessage.php:103 ../../mod/attach.php:33
@@ -51,12 +51,11 @@ msgstr ""
 #: ../../mod/profile_photo.php:163 ../../mod/message.php:38
 #: ../../mod/message.php:90 ../../mod/allfriends.php:9
 #: ../../mod/nogroup.php:25 ../../mod/wall_upload.php:53
-#: ../../mod/follow.php:8 ../../mod/common.php:9 ../../mod/display.php:138
-#: ../../mod/profiles.php:7 ../../mod/profiles.php:329
-#: ../../mod/delegate.php:6 ../../mod/suggest.php:28 ../../mod/invite.php:13
-#: ../../mod/invite.php:81 ../../mod/dfrn_confirm.php:53
-#: ../../addon/facebook/facebook.php:484 ../../include/items.php:3171
-#: ../../index.php:309
+#: ../../mod/follow.php:8 ../../mod/display.php:138 ../../mod/profiles.php:7
+#: ../../mod/profiles.php:365 ../../mod/delegate.php:6
+#: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81
+#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:485
+#: ../../include/items.php:3187 ../../index.php:306
 msgid "Permission denied."
 msgstr ""
 
@@ -85,8 +84,8 @@ msgstr ""
 msgid "Return to contact editor"
 msgstr ""
 
-#: ../../mod/crepair.php:148 ../../mod/settings.php:534
-#: ../../mod/settings.php:560 ../../mod/admin.php:573 ../../mod/admin.php:582
+#: ../../mod/crepair.php:148 ../../mod/settings.php:541
+#: ../../mod/settings.php:567 ../../mod/admin.php:640 ../../mod/admin.php:649
 msgid "Name"
 msgstr ""
 
@@ -123,19 +122,19 @@ msgid "New photo from this URL"
 msgstr ""
 
 #: ../../mod/crepair.php:166 ../../mod/fsuggest.php:107
-#: ../../mod/events.php:400 ../../mod/photos.php:900 ../../mod/photos.php:958
+#: ../../mod/events.php:428 ../../mod/photos.php:900 ../../mod/photos.php:958
 #: ../../mod/photos.php:1193 ../../mod/photos.php:1233
 #: ../../mod/photos.php:1273 ../../mod/photos.php:1304
 #: ../../mod/install.php:251 ../../mod/install.php:289
-#: ../../mod/localtime.php:45 ../../mod/contacts.php:296
-#: ../../mod/settings.php:532 ../../mod/settings.php:678
-#: ../../mod/settings.php:739 ../../mod/settings.php:930
-#: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/admin.php:392
-#: ../../mod/admin.php:570 ../../mod/admin.php:706 ../../mod/admin.php:905
-#: ../../mod/admin.php:993 ../../mod/profiles.php:498 ../../mod/invite.php:119
-#: ../../addon/facebook/facebook.php:574 ../../addon/yourls/yourls.php:76
-#: ../../addon/ljpost/ljpost.php:93 ../../addon/nsfw/nsfw.php:57
-#: ../../addon/planets/planets.php:158
+#: ../../mod/localtime.php:45 ../../mod/contacts.php:322
+#: ../../mod/settings.php:539 ../../mod/settings.php:685
+#: ../../mod/settings.php:746 ../../mod/settings.php:940
+#: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/admin.php:402
+#: ../../mod/admin.php:637 ../../mod/admin.php:773 ../../mod/admin.php:972
+#: ../../mod/admin.php:1059 ../../mod/profiles.php:534
+#: ../../mod/invite.php:119 ../../addon/facebook/facebook.php:575
+#: ../../addon/yourls/yourls.php:76 ../../addon/ljpost/ljpost.php:93
+#: ../../addon/nsfw/nsfw.php:57 ../../addon/planets/planets.php:158
 #: ../../addon/uhremotestorage/uhremotestorage.php:89
 #: ../../addon/randplace/randplace.php:177 ../../addon/dwpost/dwpost.php:93
 #: ../../addon/drpost/drpost.php:110 ../../addon/geonames/geonames.php:187
@@ -158,8 +157,10 @@ msgstr ""
 #: ../../addon/twitter/twitter.php:209 ../../addon/twitter/twitter.php:375
 #: ../../addon/irc/irc.php:55 ../../addon/blogger/blogger.php:102
 #: ../../addon/posterous/posterous.php:90
+#: ../../view/theme/cleanzero/config.php:71
 #: ../../view/theme/diabook/config.php:91
-#: ../../view/theme/quattro/config.php:52 ../../include/conversation.php:555
+#: ../../view/theme/quattro/config.php:52 ../../view/theme/dispy/config.php:70
+#: ../../include/conversation.php:555
 msgid "Submit"
 msgstr ""
 
@@ -171,11 +172,11 @@ msgstr ""
 msgid "Help"
 msgstr ""
 
-#: ../../mod/help.php:38 ../../index.php:228
+#: ../../mod/help.php:38 ../../index.php:225
 msgid "Not Found"
 msgstr ""
 
-#: ../../mod/help.php:41 ../../index.php:231
+#: ../../mod/help.php:41 ../../index.php:228
 msgid "Page not found."
 msgstr ""
 
@@ -201,84 +202,84 @@ msgstr ""
 msgid "Suggest a friend for %s"
 msgstr ""
 
-#: ../../mod/events.php:62
+#: ../../mod/events.php:65
 msgid "Event description and start time are required."
 msgstr ""
 
-#: ../../mod/events.php:230
+#: ../../mod/events.php:258
 msgid "l, F j"
 msgstr ""
 
-#: ../../mod/events.php:252
+#: ../../mod/events.php:280
 msgid "Edit event"
 msgstr ""
 
-#: ../../mod/events.php:272 ../../include/text.php:1053
+#: ../../mod/events.php:300 ../../include/text.php:1053
 msgid "link to source"
 msgstr ""
 
-#: ../../mod/events.php:296 ../../view/theme/diabook/theme.php:250
-#: ../../include/nav.php:52 ../../boot.php:1481
+#: ../../mod/events.php:324 ../../view/theme/diabook/theme.php:69
+#: ../../include/nav.php:52 ../../boot.php:1493
 msgid "Events"
 msgstr ""
 
-#: ../../mod/events.php:297
+#: ../../mod/events.php:325
 msgid "Create New Event"
 msgstr ""
 
-#: ../../mod/events.php:298
+#: ../../mod/events.php:326
 msgid "Previous"
 msgstr ""
 
-#: ../../mod/events.php:299 ../../mod/install.php:210
+#: ../../mod/events.php:327 ../../mod/install.php:210
 msgid "Next"
 msgstr ""
 
-#: ../../mod/events.php:371
+#: ../../mod/events.php:399
 msgid "hour:minute"
 msgstr ""
 
-#: ../../mod/events.php:380
+#: ../../mod/events.php:408
 msgid "Event details"
 msgstr ""
 
-#: ../../mod/events.php:381
+#: ../../mod/events.php:409
 #, php-format
 msgid "Format is %s %s. Starting date and Description are required."
 msgstr ""
 
-#: ../../mod/events.php:383
+#: ../../mod/events.php:411
 msgid "Event Starts:"
 msgstr ""
 
-#: ../../mod/events.php:386
+#: ../../mod/events.php:414
 msgid "Finish date/time is not known or not relevant"
 msgstr ""
 
-#: ../../mod/events.php:388
+#: ../../mod/events.php:416
 msgid "Event Finishes:"
 msgstr ""
 
-#: ../../mod/events.php:391
+#: ../../mod/events.php:419
 msgid "Adjust for viewer timezone"
 msgstr ""
 
-#: ../../mod/events.php:393
+#: ../../mod/events.php:421
 msgid "Description:"
 msgstr ""
 
-#: ../../mod/events.php:395 ../../include/event.php:37
-#: ../../include/bb2diaspora.php:260 ../../boot.php:1083
+#: ../../mod/events.php:423 ../../include/event.php:37
+#: ../../include/bb2diaspora.php:260 ../../boot.php:1092
 msgid "Location:"
 msgstr ""
 
-#: ../../mod/events.php:397
+#: ../../mod/events.php:425
 msgid "Share this event"
 msgstr ""
 
 #: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94
-#: ../../mod/dfrn_request.php:812 ../../mod/settings.php:533
-#: ../../mod/settings.php:559 ../../addon/js_upload/js_upload.php:45
+#: ../../mod/dfrn_request.php:818 ../../mod/settings.php:540
+#: ../../mod/settings.php:566 ../../addon/js_upload/js_upload.php:45
 msgid "Cancel"
 msgstr ""
 
@@ -321,36 +322,36 @@ msgid ""
 "and/or create new posts for you?"
 msgstr ""
 
-#: ../../mod/api.php:105 ../../mod/dfrn_request.php:800
-#: ../../mod/settings.php:844 ../../mod/settings.php:850
-#: ../../mod/settings.php:858 ../../mod/settings.php:862
-#: ../../mod/settings.php:867 ../../mod/settings.php:873
-#: ../../mod/settings.php:879 ../../mod/settings.php:885
-#: ../../mod/settings.php:921 ../../mod/settings.php:922
-#: ../../mod/settings.php:923 ../../mod/settings.php:924
-#: ../../mod/register.php:532 ../../mod/profiles.php:475
+#: ../../mod/api.php:105 ../../mod/dfrn_request.php:806
+#: ../../mod/settings.php:854 ../../mod/settings.php:860
+#: ../../mod/settings.php:868 ../../mod/settings.php:872
+#: ../../mod/settings.php:877 ../../mod/settings.php:883
+#: ../../mod/settings.php:889 ../../mod/settings.php:895
+#: ../../mod/settings.php:931 ../../mod/settings.php:932
+#: ../../mod/settings.php:933 ../../mod/settings.php:934
+#: ../../mod/register.php:532 ../../mod/profiles.php:511
 msgid "Yes"
 msgstr ""
 
-#: ../../mod/api.php:106 ../../mod/dfrn_request.php:801
-#: ../../mod/settings.php:844 ../../mod/settings.php:850
-#: ../../mod/settings.php:858 ../../mod/settings.php:862
-#: ../../mod/settings.php:867 ../../mod/settings.php:873
-#: ../../mod/settings.php:879 ../../mod/settings.php:885
-#: ../../mod/settings.php:921 ../../mod/settings.php:922
-#: ../../mod/settings.php:923 ../../mod/settings.php:924
-#: ../../mod/register.php:533 ../../mod/profiles.php:476
+#: ../../mod/api.php:106 ../../mod/dfrn_request.php:807
+#: ../../mod/settings.php:854 ../../mod/settings.php:860
+#: ../../mod/settings.php:868 ../../mod/settings.php:872
+#: ../../mod/settings.php:877 ../../mod/settings.php:883
+#: ../../mod/settings.php:889 ../../mod/settings.php:895
+#: ../../mod/settings.php:931 ../../mod/settings.php:932
+#: ../../mod/settings.php:933 ../../mod/settings.php:934
+#: ../../mod/register.php:533 ../../mod/profiles.php:512
 msgid "No"
 msgstr ""
 
-#: ../../mod/photos.php:43
+#: ../../mod/photos.php:43 ../../boot.php:1487
 msgid "Photo Albums"
 msgstr ""
 
 #: ../../mod/photos.php:51 ../../mod/photos.php:151 ../../mod/photos.php:879
 #: ../../mod/photos.php:950 ../../mod/photos.php:965 ../../mod/photos.php:1382
 #: ../../mod/photos.php:1394 ../../addon/communityhome/communityhome.php:110
-#: ../../view/theme/diabook/theme.php:130
+#: ../../view/theme/diabook/theme.php:436
 msgid "Contact Photos"
 msgstr ""
 
@@ -373,7 +374,7 @@ msgstr ""
 #: ../../mod/profile_photo.php:74 ../../mod/profile_photo.php:174
 #: ../../mod/profile_photo.php:252 ../../mod/profile_photo.php:261
 #: ../../addon/communityhome/communityhome.php:111
-#: ../../view/theme/diabook/theme.php:131
+#: ../../view/theme/diabook/theme.php:437
 msgid "Profile Photos"
 msgstr ""
 
@@ -395,7 +396,7 @@ msgstr ""
 
 #: ../../mod/photos.php:528 ../../mod/like.php:127 ../../mod/tagger.php:70
 #: ../../addon/communityhome/communityhome.php:163
-#: ../../view/theme/diabook/theme.php:102 ../../include/text.php:1304
+#: ../../view/theme/diabook/theme.php:408 ../../include/text.php:1304
 #: ../../include/diaspora.php:1654 ../../include/conversation.php:53
 #: ../../include/conversation.php:126
 msgid "photo"
@@ -424,7 +425,7 @@ msgid "Image upload failed."
 msgstr ""
 
 #: ../../mod/photos.php:759 ../../mod/community.php:16
-#: ../../mod/dfrn_request.php:731 ../../mod/viewcontacts.php:17
+#: ../../mod/dfrn_request.php:732 ../../mod/viewcontacts.php:17
 #: ../../mod/display.php:7 ../../mod/search.php:71 ../../mod/directory.php:29
 msgid "Public access denied."
 msgstr ""
@@ -525,14 +526,14 @@ msgstr ""
 msgid "I don't like this (toggle)"
 msgstr ""
 
-#: ../../mod/photos.php:1213 ../../include/conversation.php:956
+#: ../../mod/photos.php:1213 ../../include/conversation.php:964
 msgid "Share"
 msgstr ""
 
 #: ../../mod/photos.php:1214 ../../mod/editpost.php:104
 #: ../../mod/wallmessage.php:145 ../../mod/message.php:188
 #: ../../mod/message.php:380 ../../include/conversation.php:361
-#: ../../include/conversation.php:698 ../../include/conversation.php:975
+#: ../../include/conversation.php:706 ../../include/conversation.php:983
 msgid "Please wait"
 msgstr ""
 
@@ -543,18 +544,18 @@ msgstr ""
 
 #: ../../mod/photos.php:1232 ../../mod/photos.php:1272
 #: ../../mod/photos.php:1303 ../../include/conversation.php:554
-#: ../../boot.php:495
+#: ../../boot.php:506
 msgid "Comment"
 msgstr ""
 
 #: ../../mod/photos.php:1234 ../../mod/editpost.php:125
-#: ../../include/conversation.php:556 ../../include/conversation.php:993
+#: ../../include/conversation.php:564 ../../include/conversation.php:1001
 msgid "Preview"
 msgstr ""
 
-#: ../../mod/photos.php:1331 ../../mod/settings.php:595
-#: ../../mod/settings.php:676 ../../mod/group.php:168 ../../mod/admin.php:577
-#: ../../include/conversation.php:318 ../../include/conversation.php:576
+#: ../../mod/photos.php:1331 ../../mod/settings.php:602
+#: ../../mod/settings.php:683 ../../mod/group.php:168 ../../mod/admin.php:644
+#: ../../include/conversation.php:318 ../../include/conversation.php:584
 msgid "Delete"
 msgstr ""
 
@@ -570,7 +571,7 @@ msgstr ""
 msgid "Not available."
 msgstr ""
 
-#: ../../mod/community.php:30 ../../view/theme/diabook/theme.php:252
+#: ../../mod/community.php:30 ../../view/theme/diabook/theme.php:71
 #: ../../include/nav.php:101
 msgid "Community"
 msgstr ""
@@ -579,35 +580,35 @@ msgstr ""
 msgid "No results."
 msgstr ""
 
-#: ../../mod/friendica.php:47
+#: ../../mod/friendica.php:55
 msgid "This is Friendica, version"
 msgstr ""
 
-#: ../../mod/friendica.php:48
+#: ../../mod/friendica.php:56
 msgid "running at web location"
 msgstr ""
 
-#: ../../mod/friendica.php:50
+#: ../../mod/friendica.php:58
 msgid ""
 "Please visit <a href=\"http://friendica.com\">Friendica.com</a> to learn "
 "more about the Friendica project."
 msgstr ""
 
-#: ../../mod/friendica.php:52
+#: ../../mod/friendica.php:60
 msgid "Bug reports and issues: please visit"
 msgstr ""
 
-#: ../../mod/friendica.php:53
+#: ../../mod/friendica.php:61
 msgid ""
 "Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - "
 "dot com"
 msgstr ""
 
-#: ../../mod/friendica.php:58
+#: ../../mod/friendica.php:75
 msgid "Installed plugins/addons/apps:"
 msgstr ""
 
-#: ../../mod/friendica.php:71
+#: ../../mod/friendica.php:88
 msgid "No installed plugins/addons/apps"
 msgstr ""
 
@@ -619,28 +620,28 @@ msgstr ""
 msgid "Edit post"
 msgstr ""
 
-#: ../../mod/editpost.php:80 ../../include/conversation.php:942
+#: ../../mod/editpost.php:80 ../../include/conversation.php:950
 msgid "Post to Email"
 msgstr ""
 
-#: ../../mod/editpost.php:95 ../../mod/settings.php:594
-#: ../../include/conversation.php:563
+#: ../../mod/editpost.php:95 ../../mod/settings.php:601
+#: ../../include/conversation.php:571
 msgid "Edit"
 msgstr ""
 
 #: ../../mod/editpost.php:96 ../../mod/wallmessage.php:143
 #: ../../mod/message.php:186 ../../mod/message.php:378
-#: ../../include/conversation.php:957
+#: ../../include/conversation.php:965
 msgid "Upload photo"
 msgstr ""
 
-#: ../../mod/editpost.php:97 ../../include/conversation.php:959
+#: ../../mod/editpost.php:97 ../../include/conversation.php:967
 msgid "Attach file"
 msgstr ""
 
 #: ../../mod/editpost.php:98 ../../mod/wallmessage.php:144
 #: ../../mod/message.php:187 ../../mod/message.php:379
-#: ../../include/conversation.php:961
+#: ../../include/conversation.php:969
 msgid "Insert web link"
 msgstr ""
 
@@ -656,35 +657,35 @@ msgstr ""
 msgid "Insert Vorbis [.ogg] audio"
 msgstr ""
 
-#: ../../mod/editpost.php:102 ../../include/conversation.php:967
+#: ../../mod/editpost.php:102 ../../include/conversation.php:975
 msgid "Set your location"
 msgstr ""
 
-#: ../../mod/editpost.php:103 ../../include/conversation.php:969
+#: ../../mod/editpost.php:103 ../../include/conversation.php:977
 msgid "Clear browser location"
 msgstr ""
 
-#: ../../mod/editpost.php:105 ../../include/conversation.php:976
+#: ../../mod/editpost.php:105 ../../include/conversation.php:984
 msgid "Permission settings"
 msgstr ""
 
-#: ../../mod/editpost.php:113 ../../include/conversation.php:985
+#: ../../mod/editpost.php:113 ../../include/conversation.php:993
 msgid "CC: email addresses"
 msgstr ""
 
-#: ../../mod/editpost.php:114 ../../include/conversation.php:986
+#: ../../mod/editpost.php:114 ../../include/conversation.php:994
 msgid "Public post"
 msgstr ""
 
-#: ../../mod/editpost.php:117 ../../include/conversation.php:972
+#: ../../mod/editpost.php:117 ../../include/conversation.php:980
 msgid "Set title"
 msgstr ""
 
-#: ../../mod/editpost.php:119 ../../include/conversation.php:974
+#: ../../mod/editpost.php:119 ../../include/conversation.php:982
 msgid "Categories (comma-separated list)"
 msgstr ""
 
-#: ../../mod/editpost.php:120 ../../include/conversation.php:988
+#: ../../mod/editpost.php:120 ../../include/conversation.php:996
 msgid "Example: bob@example.com, mary@example.com"
 msgstr ""
 
@@ -801,75 +802,75 @@ msgstr ""
 msgid "Confirm"
 msgstr ""
 
-#: ../../mod/dfrn_request.php:688 ../../include/items.php:2691
+#: ../../mod/dfrn_request.php:688 ../../include/items.php:2707
 msgid "[Name Withheld]"
 msgstr ""
 
-#: ../../mod/dfrn_request.php:775
+#: ../../mod/dfrn_request.php:781
 msgid ""
 "Please enter your 'Identity Address' from one of the following supported "
 "communications networks:"
 msgstr ""
 
-#: ../../mod/dfrn_request.php:791
+#: ../../mod/dfrn_request.php:797
 msgid "<strike>Connect as an email follower</strike> (Coming soon)"
 msgstr ""
 
-#: ../../mod/dfrn_request.php:793
+#: ../../mod/dfrn_request.php:799
 msgid ""
 "If you are not yet a member of the free social web, <a href=\"http://dir."
 "friendica.com/siteinfo\">follow this link to find a public Friendica site "
 "and join us today</a>."
 msgstr ""
 
-#: ../../mod/dfrn_request.php:796
+#: ../../mod/dfrn_request.php:802
 msgid "Friend/Connection Request"
 msgstr ""
 
-#: ../../mod/dfrn_request.php:797
+#: ../../mod/dfrn_request.php:803
 msgid ""
 "Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, "
 "testuser@identi.ca"
 msgstr ""
 
-#: ../../mod/dfrn_request.php:798
+#: ../../mod/dfrn_request.php:804
 msgid "Please answer the following:"
 msgstr ""
 
-#: ../../mod/dfrn_request.php:799
+#: ../../mod/dfrn_request.php:805
 #, php-format
 msgid "Does %s know you?"
 msgstr ""
 
-#: ../../mod/dfrn_request.php:802
+#: ../../mod/dfrn_request.php:808
 msgid "Add a personal note:"
 msgstr ""
 
-#: ../../mod/dfrn_request.php:804 ../../include/contact_selectors.php:76
+#: ../../mod/dfrn_request.php:810 ../../include/contact_selectors.php:76
 msgid "Friendica"
 msgstr ""
 
-#: ../../mod/dfrn_request.php:805
+#: ../../mod/dfrn_request.php:811
 msgid "StatusNet/Federated Social Web"
 msgstr ""
 
-#: ../../mod/dfrn_request.php:806 ../../mod/settings.php:629
+#: ../../mod/dfrn_request.php:812 ../../mod/settings.php:636
 #: ../../include/contact_selectors.php:80
 msgid "Diaspora"
 msgstr ""
 
-#: ../../mod/dfrn_request.php:807
+#: ../../mod/dfrn_request.php:813
 #, php-format
 msgid ""
 " - please do not use this form.  Instead, enter %s into your Diaspora search "
 "bar."
 msgstr ""
 
-#: ../../mod/dfrn_request.php:808
+#: ../../mod/dfrn_request.php:814
 msgid "Your Identity Address:"
 msgstr ""
 
-#: ../../mod/dfrn_request.php:811
+#: ../../mod/dfrn_request.php:817
 msgid "Submit Request"
 msgstr ""
 
@@ -1164,7 +1165,7 @@ msgid "is interested in:"
 msgstr ""
 
 #: ../../mod/match.php:58 ../../mod/suggest.php:59
-#: ../../include/contact_widgets.php:9 ../../boot.php:1027
+#: ../../include/contact_widgets.php:9 ../../boot.php:1036
 msgid "Connect"
 msgstr ""
 
@@ -1195,8 +1196,8 @@ msgid "Discard"
 msgstr ""
 
 #: ../../mod/notifications.php:51 ../../mod/notifications.php:160
-#: ../../mod/notifications.php:206 ../../mod/contacts.php:279
-#: ../../mod/contacts.php:322
+#: ../../mod/notifications.php:206 ../../mod/contacts.php:296
+#: ../../mod/contacts.php:348
 msgid "Ignore"
 msgstr ""
 
@@ -1208,11 +1209,11 @@ msgstr ""
 msgid "Network"
 msgstr ""
 
-#: ../../mod/notifications.php:85 ../../mod/network.php:182
+#: ../../mod/notifications.php:85 ../../mod/network.php:184
 msgid "Personal"
 msgstr ""
 
-#: ../../mod/notifications.php:90 ../../view/theme/diabook/theme.php:246
+#: ../../mod/notifications.php:90 ../../view/theme/diabook/theme.php:65
 #: ../../include/nav.php:77 ../../include/nav.php:115
 msgid "Home"
 msgstr ""
@@ -1248,7 +1249,7 @@ msgid "suggested by %s"
 msgstr ""
 
 #: ../../mod/notifications.php:153 ../../mod/notifications.php:200
-#: ../../mod/contacts.php:327
+#: ../../mod/contacts.php:354
 msgid "Hide this contact from others"
 msgstr ""
 
@@ -1261,7 +1262,7 @@ msgid "if applicable"
 msgstr ""
 
 #: ../../mod/notifications.php:157 ../../mod/notifications.php:204
-#: ../../mod/admin.php:575
+#: ../../mod/admin.php:642
 msgid "Approve"
 msgstr ""
 
@@ -1398,207 +1399,275 @@ msgstr ""
 msgid "Contact has been unignored"
 msgstr ""
 
-#: ../../mod/contacts.php:192
+#: ../../mod/contacts.php:195
+msgid "Contact has been archived"
+msgstr ""
+
+#: ../../mod/contacts.php:195
+msgid "Contact has been unarchived"
+msgstr ""
+
+#: ../../mod/contacts.php:208
 msgid "Contact has been removed."
 msgstr ""
 
-#: ../../mod/contacts.php:222
+#: ../../mod/contacts.php:238
 #, php-format
 msgid "You are mutual friends with %s"
 msgstr ""
 
-#: ../../mod/contacts.php:226
+#: ../../mod/contacts.php:242
 #, php-format
 msgid "You are sharing with %s"
 msgstr ""
 
-#: ../../mod/contacts.php:231
+#: ../../mod/contacts.php:247
 #, php-format
 msgid "%s is sharing with you"
 msgstr ""
 
-#: ../../mod/contacts.php:248
+#: ../../mod/contacts.php:264
 msgid "Private communications are not available for this contact."
 msgstr ""
 
-#: ../../mod/contacts.php:251
+#: ../../mod/contacts.php:267
 msgid "Never"
 msgstr ""
 
-#: ../../mod/contacts.php:255
+#: ../../mod/contacts.php:271
 msgid "(Update was successful)"
 msgstr ""
 
-#: ../../mod/contacts.php:255
+#: ../../mod/contacts.php:271
 msgid "(Update was not successful)"
 msgstr ""
 
-#: ../../mod/contacts.php:257
+#: ../../mod/contacts.php:273
 msgid "Suggest friends"
 msgstr ""
 
-#: ../../mod/contacts.php:261
+#: ../../mod/contacts.php:277
 #, php-format
 msgid "Network type: %s"
 msgstr ""
 
-#: ../../mod/contacts.php:264
+#: ../../mod/contacts.php:280 ../../include/contact_widgets.php:183
 #, php-format
 msgid "%d contact in common"
 msgid_plural "%d contacts in common"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../../mod/contacts.php:269
+#: ../../mod/contacts.php:285
 msgid "View all contacts"
 msgstr ""
 
-#: ../../mod/contacts.php:274 ../../mod/contacts.php:321
-#: ../../mod/admin.php:579
+#: ../../mod/contacts.php:290 ../../mod/contacts.php:347
+#: ../../mod/admin.php:646
 msgid "Unblock"
 msgstr ""
 
-#: ../../mod/contacts.php:274 ../../mod/contacts.php:321
-#: ../../mod/admin.php:578
+#: ../../mod/contacts.php:290 ../../mod/contacts.php:347
+#: ../../mod/admin.php:645
 msgid "Block"
 msgstr ""
 
-#: ../../mod/contacts.php:279 ../../mod/contacts.php:322
+#: ../../mod/contacts.php:293
+msgid "Toggle Blocked status"
+msgstr ""
+
+#: ../../mod/contacts.php:296 ../../mod/contacts.php:348
 msgid "Unignore"
 msgstr ""
 
-#: ../../mod/contacts.php:284
+#: ../../mod/contacts.php:299
+msgid "Toggle Ignored status"
+msgstr ""
+
+#: ../../mod/contacts.php:303
+msgid "Unarchive"
+msgstr ""
+
+#: ../../mod/contacts.php:303
+msgid "Archive"
+msgstr ""
+
+#: ../../mod/contacts.php:306
+msgid "Toggle Archive status"
+msgstr ""
+
+#: ../../mod/contacts.php:309
 msgid "Repair"
 msgstr ""
 
-#: ../../mod/contacts.php:294
+#: ../../mod/contacts.php:312
+msgid "Advanced Contact Settings"
+msgstr ""
+
+#: ../../mod/contacts.php:320
 msgid "Contact Editor"
 msgstr ""
 
-#: ../../mod/contacts.php:297
+#: ../../mod/contacts.php:323
 msgid "Profile Visibility"
 msgstr ""
 
-#: ../../mod/contacts.php:298
+#: ../../mod/contacts.php:324
 #, php-format
 msgid ""
 "Please choose the profile you would like to display to %s when viewing your "
 "profile securely."
 msgstr ""
 
-#: ../../mod/contacts.php:299
+#: ../../mod/contacts.php:325
 msgid "Contact Information / Notes"
 msgstr ""
 
-#: ../../mod/contacts.php:300
+#: ../../mod/contacts.php:326
 msgid "Edit contact notes"
 msgstr ""
 
-#: ../../mod/contacts.php:305 ../../mod/contacts.php:478
+#: ../../mod/contacts.php:331 ../../mod/contacts.php:522
 #: ../../mod/viewcontacts.php:62 ../../mod/nogroup.php:40
 #, php-format
 msgid "Visit %s's profile [%s]"
 msgstr ""
 
-#: ../../mod/contacts.php:306
+#: ../../mod/contacts.php:332
 msgid "Block/Unblock contact"
 msgstr ""
 
-#: ../../mod/contacts.php:307
+#: ../../mod/contacts.php:333
 msgid "Ignore contact"
 msgstr ""
 
-#: ../../mod/contacts.php:308
+#: ../../mod/contacts.php:334
 msgid "Repair URL settings"
 msgstr ""
 
-#: ../../mod/contacts.php:309
+#: ../../mod/contacts.php:335
 msgid "View conversations"
 msgstr ""
 
-#: ../../mod/contacts.php:311
+#: ../../mod/contacts.php:337
 msgid "Delete contact"
 msgstr ""
 
-#: ../../mod/contacts.php:315
+#: ../../mod/contacts.php:341
 msgid "Last update:"
 msgstr ""
 
-#: ../../mod/contacts.php:316
+#: ../../mod/contacts.php:342
 msgid "Update public posts"
 msgstr ""
 
-#: ../../mod/contacts.php:318 ../../mod/admin.php:1051
+#: ../../mod/contacts.php:344 ../../mod/admin.php:1117
 msgid "Update now"
 msgstr ""
 
-#: ../../mod/contacts.php:325
+#: ../../mod/contacts.php:351
 msgid "Currently blocked"
 msgstr ""
 
-#: ../../mod/contacts.php:326
+#: ../../mod/contacts.php:352
 msgid "Currently ignored"
 msgstr ""
 
-#: ../../mod/contacts.php:327
+#: ../../mod/contacts.php:353
+msgid "Currently archived"
+msgstr ""
+
+#: ../../mod/contacts.php:354
 msgid ""
 "Replies/likes to your public posts <strong>may</strong> still be visible"
 msgstr ""
 
-#: ../../mod/contacts.php:376
+#: ../../mod/contacts.php:407
 msgid "Suggestions"
 msgstr ""
 
-#: ../../mod/contacts.php:381 ../../mod/group.php:191
+#: ../../mod/contacts.php:410
+msgid "Suggest potential friends"
+msgstr ""
+
+#: ../../mod/contacts.php:413 ../../mod/group.php:191
 msgid "All Contacts"
 msgstr ""
 
-#: ../../mod/contacts.php:386
-msgid "Unblocked Contacts"
+#: ../../mod/contacts.php:416
+msgid "Show all contacts"
 msgstr ""
 
-#: ../../mod/contacts.php:392
-msgid "Blocked Contacts"
+#: ../../mod/contacts.php:419
+msgid "Unblocked"
 msgstr ""
 
-#: ../../mod/contacts.php:398
-msgid "Ignored Contacts"
+#: ../../mod/contacts.php:422
+msgid "Only show unblocked contacts"
 msgstr ""
 
-#: ../../mod/contacts.php:404
-msgid "Hidden Contacts"
+#: ../../mod/contacts.php:426
+msgid "Blocked"
 msgstr ""
 
-#: ../../mod/contacts.php:454
+#: ../../mod/contacts.php:429
+msgid "Only show blocked contacts"
+msgstr ""
+
+#: ../../mod/contacts.php:433
+msgid "Ignored"
+msgstr ""
+
+#: ../../mod/contacts.php:436
+msgid "Only show ignored contacts"
+msgstr ""
+
+#: ../../mod/contacts.php:440
+msgid "Archived"
+msgstr ""
+
+#: ../../mod/contacts.php:443
+msgid "Only show archived contacts"
+msgstr ""
+
+#: ../../mod/contacts.php:447
+msgid "Hidden"
+msgstr ""
+
+#: ../../mod/contacts.php:450
+msgid "Only show hidden contacts"
+msgstr ""
+
+#: ../../mod/contacts.php:498
 msgid "Mutual Friendship"
 msgstr ""
 
-#: ../../mod/contacts.php:458
+#: ../../mod/contacts.php:502
 msgid "is a fan of yours"
 msgstr ""
 
-#: ../../mod/contacts.php:462
+#: ../../mod/contacts.php:506
 msgid "you are a fan of"
 msgstr ""
 
-#: ../../mod/contacts.php:479 ../../mod/nogroup.php:41
+#: ../../mod/contacts.php:523 ../../mod/nogroup.php:41
 msgid "Edit contact"
 msgstr ""
 
-#: ../../mod/contacts.php:500 ../../view/theme/diabook/theme.php:248
+#: ../../mod/contacts.php:544 ../../view/theme/diabook/theme.php:67
 #: ../../include/nav.php:139
 msgid "Contacts"
 msgstr ""
 
-#: ../../mod/contacts.php:504
+#: ../../mod/contacts.php:548
 msgid "Search your contacts"
 msgstr ""
 
-#: ../../mod/contacts.php:505 ../../mod/directory.php:57
+#: ../../mod/contacts.php:549 ../../mod/directory.php:57
 msgid "Finding: "
 msgstr ""
 
-#: ../../mod/contacts.php:506 ../../mod/directory.php:59
+#: ../../mod/contacts.php:550 ../../mod/directory.php:59
 #: ../../include/contact_widgets.php:33
 msgid "Find"
 msgstr ""
@@ -1618,10 +1687,11 @@ msgstr ""
 
 #: ../../mod/lostpass.php:45 ../../mod/lostpass.php:107
 #: ../../mod/register.php:388 ../../mod/register.php:442
-#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:732
-#: ../../addon/facebook/facebook.php:650
-#: ../../addon/facebook/facebook.php:1139
-#: ../../addon/testdrive/testdrive.php:58 ../../include/items.php:2700
+#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:742
+#: ../../addon/facebook/facebook.php:658
+#: ../../addon/facebook/facebook.php:1148
+#: ../../addon/testdrive/testdrive.php:58 ../../include/items.php:2716
+#: ../../boot.php:686
 msgid "Administrator"
 msgstr ""
 
@@ -1631,7 +1701,7 @@ msgid ""
 "Password reset failed."
 msgstr ""
 
-#: ../../mod/lostpass.php:83 ../../boot.php:809
+#: ../../mod/lostpass.php:83 ../../boot.php:818
 msgid "Password Reset"
 msgstr ""
 
@@ -1699,61 +1769,64 @@ msgstr ""
 msgid "Export personal data"
 msgstr ""
 
-#: ../../mod/settings.php:83 ../../mod/admin.php:665 ../../mod/admin.php:870
+#: ../../mod/settings.php:80
+msgid "Remove account"
+msgstr ""
+
+#: ../../mod/settings.php:88 ../../mod/admin.php:732 ../../mod/admin.php:937
 #: ../../addon/mathjax/mathjax.php:36 ../../include/nav.php:137
 msgid "Settings"
 msgstr ""
 
-#: ../../mod/settings.php:126
+#: ../../mod/settings.php:131
 msgid "Missing some important data!"
 msgstr ""
 
-#: ../../mod/settings.php:129 ../../mod/settings.php:558
-#: ../../mod/admin.php:97
+#: ../../mod/settings.php:134 ../../mod/settings.php:565
 msgid "Update"
 msgstr ""
 
-#: ../../mod/settings.php:234
+#: ../../mod/settings.php:239
 msgid "Failed to connect with email account using the settings provided."
 msgstr ""
 
-#: ../../mod/settings.php:239
+#: ../../mod/settings.php:244
 msgid "Email settings updated."
 msgstr ""
 
-#: ../../mod/settings.php:298
+#: ../../mod/settings.php:303
 msgid "Passwords do not match. Password unchanged."
 msgstr ""
 
-#: ../../mod/settings.php:303
+#: ../../mod/settings.php:308
 msgid "Empty passwords are not allowed. Password unchanged."
 msgstr ""
 
-#: ../../mod/settings.php:314
+#: ../../mod/settings.php:319
 msgid "Password changed."
 msgstr ""
 
-#: ../../mod/settings.php:316
+#: ../../mod/settings.php:321
 msgid "Password update failed. Please try again."
 msgstr ""
 
-#: ../../mod/settings.php:379
+#: ../../mod/settings.php:385
 msgid " Please use a shorter name."
 msgstr ""
 
-#: ../../mod/settings.php:381
+#: ../../mod/settings.php:387
 msgid " Name too short."
 msgstr ""
 
-#: ../../mod/settings.php:387
+#: ../../mod/settings.php:393
 msgid " Not valid email."
 msgstr ""
 
-#: ../../mod/settings.php:389
+#: ../../mod/settings.php:395
 msgid " Cannot change to that email."
 msgstr ""
 
-#: ../../mod/settings.php:461 ../../addon/facebook/facebook.php:469
+#: ../../mod/settings.php:468 ../../addon/facebook/facebook.php:470
 #: ../../addon/impressum/impressum.php:77
 #: ../../addon/openstreetmap/openstreetmap.php:80
 #: ../../addon/mathjax/mathjax.php:66 ../../addon/piwik/piwik.php:105
@@ -1761,405 +1834,409 @@ msgstr ""
 msgid "Settings updated."
 msgstr ""
 
-#: ../../mod/settings.php:531 ../../mod/settings.php:557
-#: ../../mod/settings.php:593
+#: ../../mod/settings.php:538 ../../mod/settings.php:564
+#: ../../mod/settings.php:600
 msgid "Add application"
 msgstr ""
 
-#: ../../mod/settings.php:535 ../../mod/settings.php:561
+#: ../../mod/settings.php:542 ../../mod/settings.php:568
 #: ../../addon/statusnet/statusnet.php:547
 msgid "Consumer Key"
 msgstr ""
 
-#: ../../mod/settings.php:536 ../../mod/settings.php:562
+#: ../../mod/settings.php:543 ../../mod/settings.php:569
 #: ../../addon/statusnet/statusnet.php:546
 msgid "Consumer Secret"
 msgstr ""
 
-#: ../../mod/settings.php:537 ../../mod/settings.php:563
+#: ../../mod/settings.php:544 ../../mod/settings.php:570
 msgid "Redirect"
 msgstr ""
 
-#: ../../mod/settings.php:538 ../../mod/settings.php:564
+#: ../../mod/settings.php:545 ../../mod/settings.php:571
 msgid "Icon url"
 msgstr ""
 
-#: ../../mod/settings.php:549
+#: ../../mod/settings.php:556
 msgid "You can't edit this application."
 msgstr ""
 
-#: ../../mod/settings.php:592
+#: ../../mod/settings.php:599
 msgid "Connected Apps"
 msgstr ""
 
-#: ../../mod/settings.php:596
+#: ../../mod/settings.php:603
 msgid "Client key starts with"
 msgstr ""
 
-#: ../../mod/settings.php:597
+#: ../../mod/settings.php:604
 msgid "No name"
 msgstr ""
 
-#: ../../mod/settings.php:598
+#: ../../mod/settings.php:605
 msgid "Remove authorization"
 msgstr ""
 
-#: ../../mod/settings.php:609
+#: ../../mod/settings.php:616
 msgid "No Plugin settings configured"
 msgstr ""
 
-#: ../../mod/settings.php:617 ../../addon/widgets/widgets.php:123
+#: ../../mod/settings.php:624 ../../addon/widgets/widgets.php:123
 msgid "Plugin Settings"
 msgstr ""
 
-#: ../../mod/settings.php:629 ../../mod/settings.php:630
+#: ../../mod/settings.php:636 ../../mod/settings.php:637
 #, php-format
 msgid "Built-in support for %s connectivity is %s"
 msgstr ""
 
-#: ../../mod/settings.php:629 ../../mod/settings.php:630
+#: ../../mod/settings.php:636 ../../mod/settings.php:637
 msgid "enabled"
 msgstr ""
 
-#: ../../mod/settings.php:629 ../../mod/settings.php:630
+#: ../../mod/settings.php:636 ../../mod/settings.php:637
 msgid "disabled"
 msgstr ""
 
-#: ../../mod/settings.php:630
+#: ../../mod/settings.php:637
 msgid "StatusNet"
 msgstr ""
 
-#: ../../mod/settings.php:660
+#: ../../mod/settings.php:667
 msgid "Connector Settings"
 msgstr ""
 
-#: ../../mod/settings.php:665
+#: ../../mod/settings.php:672
 msgid "Email/Mailbox Setup"
 msgstr ""
 
-#: ../../mod/settings.php:666
+#: ../../mod/settings.php:673
 msgid ""
 "If you wish to communicate with email contacts using this service "
 "(optional), please specify how to connect to your mailbox."
 msgstr ""
 
-#: ../../mod/settings.php:667
+#: ../../mod/settings.php:674
 msgid "Last successful email check:"
 msgstr ""
 
-#: ../../mod/settings.php:668
+#: ../../mod/settings.php:675
 msgid "Email access is disabled on this site."
 msgstr ""
 
-#: ../../mod/settings.php:669
+#: ../../mod/settings.php:676
 msgid "IMAP server name:"
 msgstr ""
 
-#: ../../mod/settings.php:670
+#: ../../mod/settings.php:677
 msgid "IMAP port:"
 msgstr ""
 
-#: ../../mod/settings.php:671
+#: ../../mod/settings.php:678
 msgid "Security:"
 msgstr ""
 
-#: ../../mod/settings.php:671 ../../mod/settings.php:676
+#: ../../mod/settings.php:678 ../../mod/settings.php:683
 msgid "None"
 msgstr ""
 
-#: ../../mod/settings.php:672
+#: ../../mod/settings.php:679
 msgid "Email login name:"
 msgstr ""
 
-#: ../../mod/settings.php:673
+#: ../../mod/settings.php:680
 msgid "Email password:"
 msgstr ""
 
-#: ../../mod/settings.php:674
+#: ../../mod/settings.php:681
 msgid "Reply-to address:"
 msgstr ""
 
-#: ../../mod/settings.php:675
+#: ../../mod/settings.php:682
 msgid "Send public posts to all email contacts:"
 msgstr ""
 
-#: ../../mod/settings.php:676
+#: ../../mod/settings.php:683
 msgid "Action after import:"
 msgstr ""
 
-#: ../../mod/settings.php:676
+#: ../../mod/settings.php:683
 msgid "Mark as seen"
 msgstr ""
 
-#: ../../mod/settings.php:676
+#: ../../mod/settings.php:683
 msgid "Move to folder"
 msgstr ""
 
-#: ../../mod/settings.php:677
+#: ../../mod/settings.php:684
 msgid "Move to folder:"
 msgstr ""
 
-#: ../../mod/settings.php:737
+#: ../../mod/settings.php:744
 msgid "Display Settings"
 msgstr ""
 
-#: ../../mod/settings.php:743
+#: ../../mod/settings.php:750
 msgid "Display Theme:"
 msgstr ""
 
-#: ../../mod/settings.php:744
+#: ../../mod/settings.php:751
 msgid "Update browser every xx seconds"
 msgstr ""
 
-#: ../../mod/settings.php:744
+#: ../../mod/settings.php:751
 msgid "Minimum of 10 seconds, no maximum"
 msgstr ""
 
-#: ../../mod/settings.php:745
+#: ../../mod/settings.php:752
 msgid "Number of items to display on the network page:"
 msgstr ""
 
-#: ../../mod/settings.php:745
+#: ../../mod/settings.php:752
 msgid "Maximum of 100 items"
 msgstr ""
 
-#: ../../mod/settings.php:746
+#: ../../mod/settings.php:753
 msgid "Don't show emoticons"
 msgstr ""
 
-#: ../../mod/settings.php:811 ../../mod/admin.php:173 ../../mod/admin.php:551
+#: ../../mod/settings.php:821 ../../mod/admin.php:180 ../../mod/admin.php:618
 msgid "Normal Account"
 msgstr ""
 
-#: ../../mod/settings.php:812
+#: ../../mod/settings.php:822
 msgid "This account is a normal personal profile"
 msgstr ""
 
-#: ../../mod/settings.php:815 ../../mod/admin.php:174 ../../mod/admin.php:552
+#: ../../mod/settings.php:825 ../../mod/admin.php:181 ../../mod/admin.php:619
 msgid "Soapbox Account"
 msgstr ""
 
-#: ../../mod/settings.php:816
+#: ../../mod/settings.php:826
 msgid "Automatically approve all connection/friend requests as read-only fans"
 msgstr ""
 
-#: ../../mod/settings.php:819 ../../mod/admin.php:175 ../../mod/admin.php:553
+#: ../../mod/settings.php:829 ../../mod/admin.php:182 ../../mod/admin.php:620
 msgid "Community/Celebrity Account"
 msgstr ""
 
-#: ../../mod/settings.php:820
+#: ../../mod/settings.php:830
 msgid "Automatically approve all connection/friend requests as read-write fans"
 msgstr ""
 
-#: ../../mod/settings.php:823 ../../mod/admin.php:176 ../../mod/admin.php:554
+#: ../../mod/settings.php:833 ../../mod/admin.php:183 ../../mod/admin.php:621
 msgid "Automatic Friend Account"
 msgstr ""
 
-#: ../../mod/settings.php:824
+#: ../../mod/settings.php:834
 msgid "Automatically approve all connection/friend requests as friends"
 msgstr ""
 
-#: ../../mod/settings.php:834
+#: ../../mod/settings.php:844
 msgid "OpenID:"
 msgstr ""
 
-#: ../../mod/settings.php:834
+#: ../../mod/settings.php:844
 msgid "(Optional) Allow this OpenID to login to this account."
 msgstr ""
 
-#: ../../mod/settings.php:844
+#: ../../mod/settings.php:854
 msgid "Publish your default profile in your local site directory?"
 msgstr ""
 
-#: ../../mod/settings.php:850
+#: ../../mod/settings.php:860
 msgid "Publish your default profile in the global social directory?"
 msgstr ""
 
-#: ../../mod/settings.php:858
+#: ../../mod/settings.php:868
 msgid "Hide your contact/friend list from viewers of your default profile?"
 msgstr ""
 
-#: ../../mod/settings.php:862
+#: ../../mod/settings.php:872
 msgid "Hide your profile details from unknown viewers?"
 msgstr ""
 
-#: ../../mod/settings.php:867
+#: ../../mod/settings.php:877
 msgid "Allow friends to post to your profile page?"
 msgstr ""
 
-#: ../../mod/settings.php:873
+#: ../../mod/settings.php:883
 msgid "Allow friends to tag your posts?"
 msgstr ""
 
-#: ../../mod/settings.php:879
+#: ../../mod/settings.php:889
 msgid "Allow us to suggest you as a potential friend to new members?"
 msgstr ""
 
-#: ../../mod/settings.php:885
+#: ../../mod/settings.php:895
 msgid "Permit unknown people to send you private mail?"
 msgstr ""
 
-#: ../../mod/settings.php:896
+#: ../../mod/settings.php:906
 msgid "Profile is <strong>not published</strong>."
 msgstr ""
 
-#: ../../mod/settings.php:902 ../../mod/profile_photo.php:211
+#: ../../mod/settings.php:912 ../../mod/profile_photo.php:211
 msgid "or"
 msgstr ""
 
-#: ../../mod/settings.php:907
+#: ../../mod/settings.php:917
 msgid "Your Identity Address is"
 msgstr ""
 
-#: ../../mod/settings.php:918
+#: ../../mod/settings.php:928
 msgid "Automatically expire posts after this many days:"
 msgstr ""
 
-#: ../../mod/settings.php:918
+#: ../../mod/settings.php:928
 msgid "If empty, posts will not expire. Expired posts will be deleted"
 msgstr ""
 
-#: ../../mod/settings.php:919
+#: ../../mod/settings.php:929
 msgid "Advanced expiration settings"
 msgstr ""
 
-#: ../../mod/settings.php:920
+#: ../../mod/settings.php:930
 msgid "Advanced Expiration"
 msgstr ""
 
-#: ../../mod/settings.php:921
+#: ../../mod/settings.php:931
 msgid "Expire posts:"
 msgstr ""
 
-#: ../../mod/settings.php:922
+#: ../../mod/settings.php:932
 msgid "Expire personal notes:"
 msgstr ""
 
-#: ../../mod/settings.php:923
+#: ../../mod/settings.php:933
 msgid "Expire starred posts:"
 msgstr ""
 
-#: ../../mod/settings.php:924
+#: ../../mod/settings.php:934
 msgid "Expire photos:"
 msgstr ""
 
-#: ../../mod/settings.php:928
+#: ../../mod/settings.php:938
 msgid "Account Settings"
 msgstr ""
 
-#: ../../mod/settings.php:937
+#: ../../mod/settings.php:947
 msgid "Password Settings"
 msgstr ""
 
-#: ../../mod/settings.php:938
+#: ../../mod/settings.php:948
 msgid "New Password:"
 msgstr ""
 
-#: ../../mod/settings.php:939
+#: ../../mod/settings.php:949
 msgid "Confirm:"
 msgstr ""
 
-#: ../../mod/settings.php:939
+#: ../../mod/settings.php:949
 msgid "Leave password fields blank unless changing"
 msgstr ""
 
-#: ../../mod/settings.php:943
+#: ../../mod/settings.php:953
 msgid "Basic Settings"
 msgstr ""
 
-#: ../../mod/settings.php:944 ../../include/profile_advanced.php:15
+#: ../../mod/settings.php:954 ../../include/profile_advanced.php:15
 msgid "Full Name:"
 msgstr ""
 
-#: ../../mod/settings.php:945
+#: ../../mod/settings.php:955
 msgid "Email Address:"
 msgstr ""
 
-#: ../../mod/settings.php:946
+#: ../../mod/settings.php:956
 msgid "Your Timezone:"
 msgstr ""
 
-#: ../../mod/settings.php:947
+#: ../../mod/settings.php:957
 msgid "Default Post Location:"
 msgstr ""
 
-#: ../../mod/settings.php:948
+#: ../../mod/settings.php:958
 msgid "Use Browser Location:"
 msgstr ""
 
-#: ../../mod/settings.php:951
+#: ../../mod/settings.php:961
 msgid "Security and Privacy Settings"
 msgstr ""
 
-#: ../../mod/settings.php:953
+#: ../../mod/settings.php:963
 msgid "Maximum Friend Requests/Day:"
 msgstr ""
 
-#: ../../mod/settings.php:953 ../../mod/settings.php:968
+#: ../../mod/settings.php:963 ../../mod/settings.php:978
 msgid "(to prevent spam abuse)"
 msgstr ""
 
-#: ../../mod/settings.php:954
+#: ../../mod/settings.php:964
 msgid "Default Post Permissions"
 msgstr ""
 
-#: ../../mod/settings.php:955
+#: ../../mod/settings.php:965
 msgid "(click to open/close)"
 msgstr ""
 
-#: ../../mod/settings.php:968
+#: ../../mod/settings.php:978
 msgid "Maximum private messages per day from unknown people:"
 msgstr ""
 
-#: ../../mod/settings.php:971
+#: ../../mod/settings.php:981
 msgid "Notification Settings"
 msgstr ""
 
-#: ../../mod/settings.php:972
+#: ../../mod/settings.php:982
 msgid "By default post a status message when:"
 msgstr ""
 
-#: ../../mod/settings.php:973
+#: ../../mod/settings.php:983
 msgid "accepting a friend request"
 msgstr ""
 
-#: ../../mod/settings.php:974
+#: ../../mod/settings.php:984
+msgid "joining a forum/community"
+msgstr ""
+
+#: ../../mod/settings.php:985
 msgid "making an <em>interesting</em> profile change"
 msgstr ""
 
-#: ../../mod/settings.php:975
+#: ../../mod/settings.php:986
 msgid "Send a notification email when:"
 msgstr ""
 
-#: ../../mod/settings.php:976
+#: ../../mod/settings.php:987
 msgid "You receive an introduction"
 msgstr ""
 
-#: ../../mod/settings.php:977
+#: ../../mod/settings.php:988
 msgid "Your introductions are confirmed"
 msgstr ""
 
-#: ../../mod/settings.php:978
+#: ../../mod/settings.php:989
 msgid "Someone writes on your profile wall"
 msgstr ""
 
-#: ../../mod/settings.php:979
+#: ../../mod/settings.php:990
 msgid "Someone writes a followup comment"
 msgstr ""
 
-#: ../../mod/settings.php:980
+#: ../../mod/settings.php:991
 msgid "You receive a private message"
 msgstr ""
 
-#: ../../mod/settings.php:981
+#: ../../mod/settings.php:992
 msgid "You receive a friend suggestion"
 msgstr ""
 
-#: ../../mod/settings.php:982
+#: ../../mod/settings.php:993
 msgid "You are tagged in a post"
 msgstr ""
 
-#: ../../mod/settings.php:985
+#: ../../mod/settings.php:996
 msgid "Advanced Page Settings"
 msgstr ""
 
@@ -2197,23 +2274,47 @@ msgstr ""
 msgid "Commented Order"
 msgstr ""
 
-#: ../../mod/network.php:176
+#: ../../mod/network.php:174
+msgid "Sort by Comment Date"
+msgstr ""
+
+#: ../../mod/network.php:177
 msgid "Posted Order"
 msgstr ""
 
+#: ../../mod/network.php:180
+msgid "Sort by Post Date"
+msgstr ""
+
 #: ../../mod/network.php:187
+msgid "Posts that mention or involve you"
+msgstr ""
+
+#: ../../mod/network.php:190
 msgid "New"
 msgstr ""
 
-#: ../../mod/network.php:192
+#: ../../mod/network.php:193
+msgid "Activity Stream - by date"
+msgstr ""
+
+#: ../../mod/network.php:196
 msgid "Starred"
 msgstr ""
 
-#: ../../mod/network.php:197
+#: ../../mod/network.php:199
+msgid "Favourite Posts"
+msgstr ""
+
+#: ../../mod/network.php:202
 msgid "Shared Links"
 msgstr ""
 
-#: ../../mod/network.php:274
+#: ../../mod/network.php:205
+msgid "Interesting Links"
+msgstr ""
+
+#: ../../mod/network.php:281
 #, php-format
 msgid "Warning: This group contains %s member from an insecure network."
 msgid_plural ""
@@ -2221,40 +2322,40 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../../mod/network.php:277
+#: ../../mod/network.php:284
 msgid "Private messages to this group are at risk of public disclosure."
 msgstr ""
 
-#: ../../mod/network.php:322
+#: ../../mod/network.php:329
 msgid "No such group"
 msgstr ""
 
-#: ../../mod/network.php:333
+#: ../../mod/network.php:340
 msgid "Group is empty"
 msgstr ""
 
-#: ../../mod/network.php:337
+#: ../../mod/network.php:344
 msgid "Group: "
 msgstr ""
 
-#: ../../mod/network.php:347
+#: ../../mod/network.php:354
 msgid "Contact: "
 msgstr ""
 
-#: ../../mod/network.php:349
+#: ../../mod/network.php:356
 msgid "Private messages to this person are at risk of public disclosure."
 msgstr ""
 
-#: ../../mod/network.php:354
+#: ../../mod/network.php:361
 msgid "Invalid contact."
 msgstr ""
 
-#: ../../mod/notes.php:44 ../../boot.php:1486
+#: ../../mod/notes.php:44 ../../boot.php:1499
 msgid "Personal Notes"
 msgstr ""
 
 #: ../../mod/notes.php:63 ../../mod/filer.php:30
-#: ../../addon/facebook/facebook.php:717
+#: ../../addon/facebook/facebook.php:726
 #: ../../addon/privacy_image_cache/privacy_image_cache.php:147
 #: ../../include/text.php:652
 msgid "Save"
@@ -2290,7 +2391,7 @@ msgid "No recipient."
 msgstr ""
 
 #: ../../mod/wallmessage.php:124 ../../mod/message.php:169
-#: ../../include/conversation.php:910
+#: ../../include/conversation.php:918
 msgid "Please enter a link URL:"
 msgstr ""
 
@@ -2458,7 +2559,7 @@ msgstr ""
 msgid "Group name changed."
 msgstr ""
 
-#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:308
+#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:305
 msgid "Permission denied"
 msgstr ""
 
@@ -2498,9 +2599,9 @@ msgstr ""
 msgid "Profile Visibility Editor"
 msgstr ""
 
-#: ../../mod/profperm.php:103 ../../view/theme/diabook/theme.php:247
+#: ../../mod/profperm.php:103 ../../view/theme/diabook/theme.php:66
 #: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:74
-#: ../../include/nav.php:50 ../../boot.php:1468
+#: ../../include/nav.php:50 ../../boot.php:1478
 msgid "Profile"
 msgstr ""
 
@@ -2649,7 +2750,7 @@ msgstr ""
 msgid "Your invitation ID: "
 msgstr ""
 
-#: ../../mod/register.php:553 ../../mod/admin.php:393
+#: ../../mod/register.php:553 ../../mod/admin.php:403
 msgid "Registration"
 msgstr ""
 
@@ -2672,7 +2773,7 @@ msgstr ""
 msgid "Choose a nickname: "
 msgstr ""
 
-#: ../../mod/register.php:567 ../../include/nav.php:81 ../../boot.php:775
+#: ../../mod/register.php:567 ../../include/nav.php:81 ../../boot.php:784
 msgid "Register"
 msgstr ""
 
@@ -2681,19 +2782,19 @@ msgid "People Search"
 msgstr ""
 
 #: ../../mod/like.php:127 ../../mod/tagger.php:70
-#: ../../addon/facebook/facebook.php:1533
+#: ../../addon/facebook/facebook.php:1542
 #: ../../addon/communityhome/communityhome.php:158
 #: ../../addon/communityhome/communityhome.php:167
-#: ../../view/theme/diabook/theme.php:97
-#: ../../view/theme/diabook/theme.php:106 ../../include/diaspora.php:1654
+#: ../../view/theme/diabook/theme.php:403
+#: ../../view/theme/diabook/theme.php:412 ../../include/diaspora.php:1654
 #: ../../include/conversation.php:48 ../../include/conversation.php:57
 #: ../../include/conversation.php:121 ../../include/conversation.php:130
 msgid "status"
 msgstr ""
 
-#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1537
+#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1546
 #: ../../addon/communityhome/communityhome.php:172
-#: ../../view/theme/diabook/theme.php:111 ../../include/diaspora.php:1670
+#: ../../view/theme/diabook/theme.php:417 ../../include/diaspora.php:1670
 #: ../../include/conversation.php:65
 #, php-format
 msgid "%1$s likes %2$s's %3$s"
@@ -2704,9 +2805,9 @@ msgstr ""
 msgid "%1$s doesn't like %2$s's %3$s"
 msgstr ""
 
-#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:149
-#: ../../mod/admin.php:614 ../../mod/admin.php:813 ../../mod/display.php:37
-#: ../../mod/display.php:142 ../../include/items.php:3083
+#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:156
+#: ../../mod/admin.php:681 ../../mod/admin.php:880 ../../mod/display.php:37
+#: ../../mod/display.php:142 ../../include/items.php:3099
 msgid "Item not found."
 msgstr ""
 
@@ -2714,8 +2815,8 @@ msgstr ""
 msgid "Access denied."
 msgstr ""
 
-#: ../../mod/fbrowser.php:23 ../../view/theme/diabook/theme.php:249
-#: ../../include/nav.php:51 ../../boot.php:1473
+#: ../../mod/fbrowser.php:23 ../../view/theme/diabook/theme.php:68
+#: ../../include/nav.php:51 ../../boot.php:1484
 msgid "Photos"
 msgstr ""
 
@@ -2750,28 +2851,28 @@ msgstr ""
 msgid "Wall Photos"
 msgstr ""
 
-#: ../../mod/item.php:762
+#: ../../mod/item.php:781
 msgid "System error. Post not saved."
 msgstr ""
 
-#: ../../mod/item.php:787
+#: ../../mod/item.php:806
 #, php-format
 msgid ""
 "This message was sent to you by %s, a member of the Friendica social network."
 msgstr ""
 
-#: ../../mod/item.php:789
+#: ../../mod/item.php:808
 #, php-format
 msgid "You may visit them online at %s"
 msgstr ""
 
-#: ../../mod/item.php:790
+#: ../../mod/item.php:809
 msgid ""
 "Please contact the sender by replying to this post if you do not wish to "
 "receive these messages."
 msgstr ""
 
-#: ../../mod/item.php:792
+#: ../../mod/item.php:811
 #, php-format
 msgid "%s posted an update."
 msgstr ""
@@ -2936,489 +3037,563 @@ msgstr ""
 msgid "Theme settings updated."
 msgstr ""
 
-#: ../../mod/admin.php:93 ../../mod/admin.php:391
+#: ../../mod/admin.php:96 ../../mod/admin.php:401
 msgid "Site"
 msgstr ""
 
-#: ../../mod/admin.php:94 ../../mod/admin.php:569 ../../mod/admin.php:581
+#: ../../mod/admin.php:97 ../../mod/admin.php:636 ../../mod/admin.php:648
 msgid "Users"
 msgstr ""
 
-#: ../../mod/admin.php:95 ../../mod/admin.php:663 ../../mod/admin.php:705
+#: ../../mod/admin.php:98 ../../mod/admin.php:730 ../../mod/admin.php:772
 msgid "Plugins"
 msgstr ""
 
-#: ../../mod/admin.php:96 ../../mod/admin.php:868 ../../mod/admin.php:904
+#: ../../mod/admin.php:99 ../../mod/admin.php:935 ../../mod/admin.php:971
 msgid "Themes"
 msgstr ""
 
-#: ../../mod/admin.php:111 ../../mod/admin.php:992
+#: ../../mod/admin.php:100
+msgid "DB updates"
+msgstr ""
+
+#: ../../mod/admin.php:101
+msgid "Software Update"
+msgstr ""
+
+#: ../../mod/admin.php:115 ../../mod/admin.php:1058
 msgid "Logs"
 msgstr ""
 
-#: ../../mod/admin.php:116
+#: ../../mod/admin.php:120
 msgid "User registrations waiting for confirmation"
 msgstr ""
 
-#: ../../mod/admin.php:188 ../../mod/admin.php:390 ../../mod/admin.php:568
-#: ../../mod/admin.php:662 ../../mod/admin.php:704 ../../mod/admin.php:867
-#: ../../mod/admin.php:903 ../../mod/admin.php:991
+#: ../../mod/admin.php:195 ../../mod/admin.php:400 ../../mod/admin.php:635
+#: ../../mod/admin.php:729 ../../mod/admin.php:771 ../../mod/admin.php:934
+#: ../../mod/admin.php:970 ../../mod/admin.php:1057
 msgid "Administration"
 msgstr ""
 
-#: ../../mod/admin.php:189
+#: ../../mod/admin.php:196
 msgid "Summary"
 msgstr ""
 
-#: ../../mod/admin.php:190
+#: ../../mod/admin.php:197
 msgid "Registered users"
 msgstr ""
 
-#: ../../mod/admin.php:192
+#: ../../mod/admin.php:199
 msgid "Pending registrations"
 msgstr ""
 
-#: ../../mod/admin.php:193
+#: ../../mod/admin.php:200
 msgid "Version"
 msgstr ""
 
-#: ../../mod/admin.php:195
+#: ../../mod/admin.php:202
 msgid "Active plugins"
 msgstr ""
 
-#: ../../mod/admin.php:329
+#: ../../mod/admin.php:339
 msgid "Site settings updated."
 msgstr ""
 
-#: ../../mod/admin.php:377
+#: ../../mod/admin.php:387
 msgid "Closed"
 msgstr ""
 
-#: ../../mod/admin.php:378
+#: ../../mod/admin.php:388
 msgid "Requires approval"
 msgstr ""
 
-#: ../../mod/admin.php:379
+#: ../../mod/admin.php:389
 msgid "Open"
 msgstr ""
 
-#: ../../mod/admin.php:383
+#: ../../mod/admin.php:393
 msgid "No SSL policy, links will track page SSL state"
 msgstr ""
 
-#: ../../mod/admin.php:384
+#: ../../mod/admin.php:394
 msgid "Force all links to use SSL"
 msgstr ""
 
-#: ../../mod/admin.php:385
+#: ../../mod/admin.php:395
 msgid "Self-signed certificate, use SSL for local links only (discouraged)"
 msgstr ""
 
-#: ../../mod/admin.php:394
+#: ../../mod/admin.php:404
 msgid "File upload"
 msgstr ""
 
-#: ../../mod/admin.php:395
+#: ../../mod/admin.php:405
 msgid "Policies"
 msgstr ""
 
-#: ../../mod/admin.php:396
+#: ../../mod/admin.php:406
 msgid "Advanced"
 msgstr ""
 
-#: ../../mod/admin.php:400 ../../addon/statusnet/statusnet.php:544
+#: ../../mod/admin.php:410 ../../addon/statusnet/statusnet.php:544
 msgid "Site name"
 msgstr ""
 
-#: ../../mod/admin.php:401
+#: ../../mod/admin.php:411
 msgid "Banner/Logo"
 msgstr ""
 
-#: ../../mod/admin.php:402
+#: ../../mod/admin.php:412
 msgid "System language"
 msgstr ""
 
-#: ../../mod/admin.php:403
+#: ../../mod/admin.php:413
 msgid "System theme"
 msgstr ""
 
-#: ../../mod/admin.php:403
+#: ../../mod/admin.php:413
 msgid ""
 "Default system theme - may be over-ridden by user profiles - <a href='#' "
 "id='cnftheme'>change theme settings</a>"
 msgstr ""
 
-#: ../../mod/admin.php:404
+#: ../../mod/admin.php:414
 msgid "SSL link policy"
 msgstr ""
 
-#: ../../mod/admin.php:404
+#: ../../mod/admin.php:414
 msgid "Determines whether generated links should be forced to use SSL"
 msgstr ""
 
-#: ../../mod/admin.php:405
+#: ../../mod/admin.php:415
 msgid "Maximum image size"
 msgstr ""
 
-#: ../../mod/admin.php:405
+#: ../../mod/admin.php:415
 msgid ""
 "Maximum size in bytes of uploaded images. Default is 0, which means no "
 "limits."
 msgstr ""
 
-#: ../../mod/admin.php:407
+#: ../../mod/admin.php:417
 msgid "Register policy"
 msgstr ""
 
-#: ../../mod/admin.php:408
+#: ../../mod/admin.php:418
 msgid "Register text"
 msgstr ""
 
-#: ../../mod/admin.php:408
+#: ../../mod/admin.php:418
 msgid "Will be displayed prominently on the registration page."
 msgstr ""
 
-#: ../../mod/admin.php:409
+#: ../../mod/admin.php:419
 msgid "Accounts abandoned after x days"
 msgstr ""
 
-#: ../../mod/admin.php:409
+#: ../../mod/admin.php:419
 msgid ""
 "Will not waste system resources polling external sites for abandonded "
 "accounts. Enter 0 for no time limit."
 msgstr ""
 
-#: ../../mod/admin.php:410
+#: ../../mod/admin.php:420
 msgid "Allowed friend domains"
 msgstr ""
 
-#: ../../mod/admin.php:410
+#: ../../mod/admin.php:420
 msgid ""
 "Comma separated list of domains which are allowed to establish friendships "
 "with this site. Wildcards are accepted. Empty to allow any domains"
 msgstr ""
 
-#: ../../mod/admin.php:411
+#: ../../mod/admin.php:421
 msgid "Allowed email domains"
 msgstr ""
 
-#: ../../mod/admin.php:411
+#: ../../mod/admin.php:421
 msgid ""
 "Comma separated list of domains which are allowed in email addresses for "
 "registrations to this site. Wildcards are accepted. Empty to allow any "
 "domains"
 msgstr ""
 
-#: ../../mod/admin.php:412
+#: ../../mod/admin.php:422
 msgid "Block public"
 msgstr ""
 
-#: ../../mod/admin.php:412
+#: ../../mod/admin.php:422
 msgid ""
 "Check to block public access to all otherwise public personal pages on this "
 "site unless you are currently logged in."
 msgstr ""
 
-#: ../../mod/admin.php:413
+#: ../../mod/admin.php:423
 msgid "Force publish"
 msgstr ""
 
-#: ../../mod/admin.php:413
+#: ../../mod/admin.php:423
 msgid ""
 "Check to force all profiles on this site to be listed in the site directory."
 msgstr ""
 
-#: ../../mod/admin.php:414
+#: ../../mod/admin.php:424
 msgid "Global directory update URL"
 msgstr ""
 
-#: ../../mod/admin.php:414
+#: ../../mod/admin.php:424
 msgid ""
 "URL to update the global directory. If this is not set, the global directory "
 "is completely unavailable to the application."
 msgstr ""
 
-#: ../../mod/admin.php:416
+#: ../../mod/admin.php:426
 msgid "Block multiple registrations"
 msgstr ""
 
-#: ../../mod/admin.php:416
+#: ../../mod/admin.php:426
 msgid "Disallow users to register additional accounts for use as pages."
 msgstr ""
 
-#: ../../mod/admin.php:417
+#: ../../mod/admin.php:427
 msgid "OpenID support"
 msgstr ""
 
-#: ../../mod/admin.php:417
+#: ../../mod/admin.php:427
 msgid "OpenID support for registration and logins."
 msgstr ""
 
-#: ../../mod/admin.php:418
+#: ../../mod/admin.php:428
 msgid "Fullname check"
 msgstr ""
 
-#: ../../mod/admin.php:418
+#: ../../mod/admin.php:428
 msgid ""
 "Force users to register with a space between firstname and lastname in Full "
 "name, as an antispam measure"
 msgstr ""
 
-#: ../../mod/admin.php:419
+#: ../../mod/admin.php:429
 msgid "UTF-8 Regular expressions"
 msgstr ""
 
-#: ../../mod/admin.php:419
+#: ../../mod/admin.php:429
 msgid "Use PHP UTF8 regular expressions"
 msgstr ""
 
-#: ../../mod/admin.php:420
+#: ../../mod/admin.php:430
 msgid "Show Community Page"
 msgstr ""
 
-#: ../../mod/admin.php:420
+#: ../../mod/admin.php:430
 msgid ""
 "Display a Community page showing all recent public postings on this site."
 msgstr ""
 
-#: ../../mod/admin.php:421
+#: ../../mod/admin.php:431
 msgid "Enable OStatus support"
 msgstr ""
 
-#: ../../mod/admin.php:421
+#: ../../mod/admin.php:431
 msgid ""
 "Provide built-in OStatus (identi.ca, status.net, etc.) compatibility. All "
 "communications in OStatus are public, so privacy warnings will be "
 "occasionally displayed."
 msgstr ""
 
-#: ../../mod/admin.php:422
+#: ../../mod/admin.php:432
 msgid "Enable Diaspora support"
 msgstr ""
 
-#: ../../mod/admin.php:422
+#: ../../mod/admin.php:432
 msgid "Provide built-in Diaspora network compatibility."
 msgstr ""
 
-#: ../../mod/admin.php:423
+#: ../../mod/admin.php:433
 msgid "Only allow Friendica contacts"
 msgstr ""
 
-#: ../../mod/admin.php:423
+#: ../../mod/admin.php:433
 msgid ""
 "All contacts must use Friendica protocols. All other built-in communication "
 "protocols disabled."
 msgstr ""
 
-#: ../../mod/admin.php:424
+#: ../../mod/admin.php:434
 msgid "Verify SSL"
 msgstr ""
 
-#: ../../mod/admin.php:424
+#: ../../mod/admin.php:434
 msgid ""
 "If you wish, you can turn on strict certificate checking. This will mean you "
 "cannot connect (at all) to self-signed SSL sites."
 msgstr ""
 
-#: ../../mod/admin.php:425
+#: ../../mod/admin.php:435
 msgid "Proxy user"
 msgstr ""
 
-#: ../../mod/admin.php:426
+#: ../../mod/admin.php:436
 msgid "Proxy URL"
 msgstr ""
 
-#: ../../mod/admin.php:427
+#: ../../mod/admin.php:437
 msgid "Network timeout"
 msgstr ""
 
-#: ../../mod/admin.php:427
+#: ../../mod/admin.php:437
 msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
 msgstr ""
 
+#: ../../mod/admin.php:438
+msgid "Delivery interval"
+msgstr ""
+
+#: ../../mod/admin.php:438
+msgid ""
+"Delay background delivery processes by this many seconds to reduce system "
+"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
+"for large dedicated servers."
+msgstr ""
+
+#: ../../mod/admin.php:439
+msgid "Maximum Load Average"
+msgstr ""
+
+#: ../../mod/admin.php:439
+msgid ""
+"Maximum system load before delivery and poll processes are deferred - "
+"default 50."
+msgstr ""
+
 #: ../../mod/admin.php:453
+msgid "Update has been marked successful"
+msgstr ""
+
+#: ../../mod/admin.php:463
+#, php-format
+msgid "Executing %s failed. Check system logs."
+msgstr ""
+
+#: ../../mod/admin.php:466
+#, php-format
+msgid "Update %s was successfully applied."
+msgstr ""
+
+#: ../../mod/admin.php:470
+#, php-format
+msgid "Update %s did not return a status. Unknown if it succeeded."
+msgstr ""
+
+#: ../../mod/admin.php:473
+#, php-format
+msgid "Update function %s could not be found."
+msgstr ""
+
+#: ../../mod/admin.php:488
+msgid "No failed updates."
+msgstr ""
+
+#: ../../mod/admin.php:492
+msgid "Failed Updates"
+msgstr ""
+
+#: ../../mod/admin.php:493
+msgid ""
+"This does not include updates prior to 1139, which did not return a status."
+msgstr ""
+
+#: ../../mod/admin.php:494
+msgid "Mark success (if update was manually applied)"
+msgstr ""
+
+#: ../../mod/admin.php:495
+msgid "Attempt to execute this update step automatically"
+msgstr ""
+
+#: ../../mod/admin.php:520
 #, php-format
 msgid "%s user blocked/unblocked"
 msgid_plural "%s users blocked/unblocked"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../../mod/admin.php:460
+#: ../../mod/admin.php:527
 #, php-format
 msgid "%s user deleted"
 msgid_plural "%s users deleted"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../../mod/admin.php:499
+#: ../../mod/admin.php:566
 #, php-format
 msgid "User '%s' deleted"
 msgstr ""
 
-#: ../../mod/admin.php:507
+#: ../../mod/admin.php:574
 #, php-format
 msgid "User '%s' unblocked"
 msgstr ""
 
-#: ../../mod/admin.php:507
+#: ../../mod/admin.php:574
 #, php-format
 msgid "User '%s' blocked"
 msgstr ""
 
-#: ../../mod/admin.php:571
+#: ../../mod/admin.php:638
 msgid "select all"
 msgstr ""
 
-#: ../../mod/admin.php:572
+#: ../../mod/admin.php:639
 msgid "User registrations waiting for confirm"
 msgstr ""
 
-#: ../../mod/admin.php:573
+#: ../../mod/admin.php:640
 msgid "Request date"
 msgstr ""
 
-#: ../../mod/admin.php:573 ../../mod/admin.php:582
+#: ../../mod/admin.php:640 ../../mod/admin.php:649
 #: ../../include/contact_selectors.php:79
 msgid "Email"
 msgstr ""
 
-#: ../../mod/admin.php:574
+#: ../../mod/admin.php:641
 msgid "No registrations."
 msgstr ""
 
-#: ../../mod/admin.php:576
+#: ../../mod/admin.php:643
 msgid "Deny"
 msgstr ""
 
-#: ../../mod/admin.php:582
+#: ../../mod/admin.php:649
 msgid "Register date"
 msgstr ""
 
-#: ../../mod/admin.php:582
+#: ../../mod/admin.php:649
 msgid "Last login"
 msgstr ""
 
-#: ../../mod/admin.php:582
+#: ../../mod/admin.php:649
 msgid "Last item"
 msgstr ""
 
-#: ../../mod/admin.php:582
+#: ../../mod/admin.php:649
 msgid "Account"
 msgstr ""
 
-#: ../../mod/admin.php:584
+#: ../../mod/admin.php:651
 msgid ""
 "Selected users will be deleted!\\n\\nEverything these users had posted on "
 "this site will be permanently deleted!\\n\\nAre you sure?"
 msgstr ""
 
-#: ../../mod/admin.php:585
+#: ../../mod/admin.php:652
 msgid ""
 "The user {0} will be deleted!\\n\\nEverything this user has posted on this "
 "site will be permanently deleted!\\n\\nAre you sure?"
 msgstr ""
 
-#: ../../mod/admin.php:626
+#: ../../mod/admin.php:693
 #, php-format
 msgid "Plugin %s disabled."
 msgstr ""
 
-#: ../../mod/admin.php:630
+#: ../../mod/admin.php:697
 #, php-format
 msgid "Plugin %s enabled."
 msgstr ""
 
-#: ../../mod/admin.php:640 ../../mod/admin.php:838
+#: ../../mod/admin.php:707 ../../mod/admin.php:905
 msgid "Disable"
 msgstr ""
 
-#: ../../mod/admin.php:642 ../../mod/admin.php:840
+#: ../../mod/admin.php:709 ../../mod/admin.php:907
 msgid "Enable"
 msgstr ""
 
-#: ../../mod/admin.php:664 ../../mod/admin.php:869
+#: ../../mod/admin.php:731 ../../mod/admin.php:936
 msgid "Toggle"
 msgstr ""
 
-#: ../../mod/admin.php:672 ../../mod/admin.php:879
+#: ../../mod/admin.php:739 ../../mod/admin.php:946
 msgid "Author: "
 msgstr ""
 
-#: ../../mod/admin.php:673 ../../mod/admin.php:880
+#: ../../mod/admin.php:740 ../../mod/admin.php:947
 msgid "Maintainer: "
 msgstr ""
 
-#: ../../mod/admin.php:802
+#: ../../mod/admin.php:869
 msgid "No themes found."
 msgstr ""
 
-#: ../../mod/admin.php:861
+#: ../../mod/admin.php:928
 msgid "Screenshot"
 msgstr ""
 
-#: ../../mod/admin.php:909
+#: ../../mod/admin.php:976
 msgid "[Experimental]"
 msgstr ""
 
-#: ../../mod/admin.php:910
+#: ../../mod/admin.php:977
 msgid "[Unsupported]"
 msgstr ""
 
-#: ../../mod/admin.php:937
+#: ../../mod/admin.php:1004
 msgid "Log settings updated."
 msgstr ""
 
-#: ../../mod/admin.php:994
+#: ../../mod/admin.php:1060
 msgid "Clear"
 msgstr ""
 
-#: ../../mod/admin.php:1000
+#: ../../mod/admin.php:1066
 msgid "Debugging"
 msgstr ""
 
-#: ../../mod/admin.php:1001
+#: ../../mod/admin.php:1067
 msgid "Log file"
 msgstr ""
 
-#: ../../mod/admin.php:1001
+#: ../../mod/admin.php:1067
 msgid ""
 "Must be writable by web server. Relative to your Friendica top-level "
 "directory."
 msgstr ""
 
-#: ../../mod/admin.php:1002
+#: ../../mod/admin.php:1068
 msgid "Log level"
 msgstr ""
 
-#: ../../mod/admin.php:1052
+#: ../../mod/admin.php:1118
 msgid "Close"
 msgstr ""
 
-#: ../../mod/admin.php:1058
+#: ../../mod/admin.php:1124
 msgid "FTP Host"
 msgstr ""
 
-#: ../../mod/admin.php:1059
+#: ../../mod/admin.php:1125
 msgid "FTP Path"
 msgstr ""
 
-#: ../../mod/admin.php:1060
+#: ../../mod/admin.php:1126
 msgid "FTP User"
 msgstr ""
 
-#: ../../mod/admin.php:1061
+#: ../../mod/admin.php:1127
 msgid "FTP Password"
 msgstr ""
 
-#: ../../mod/profile.php:21 ../../boot.php:940
+#: ../../mod/profile.php:21 ../../boot.php:949
 msgid "Requested profile is not available."
 msgstr ""
 
-#: ../../mod/profile.php:124 ../../mod/display.php:75
+#: ../../mod/profile.php:126 ../../mod/display.php:75
 msgid "Access to this profile has been restricted."
 msgstr ""
 
-#: ../../mod/profile.php:145
+#: ../../mod/profile.php:151
 msgid "Tips for New Members"
 msgstr ""
 
@@ -3530,12 +3705,12 @@ msgstr ""
 msgid "following"
 msgstr ""
 
-#: ../../mod/common.php:34
+#: ../../mod/common.php:42
 msgid "Common Friends"
 msgstr ""
 
-#: ../../mod/common.php:42
-msgid "No friends in common."
+#: ../../mod/common.php:78
+msgid "No contacts in common."
 msgstr ""
 
 #: ../../mod/display.php:135
@@ -3554,8 +3729,8 @@ msgstr ""
 msgid "Search This Site"
 msgstr ""
 
-#: ../../mod/profiles.php:21 ../../mod/profiles.php:339
-#: ../../mod/profiles.php:453 ../../mod/dfrn_confirm.php:62
+#: ../../mod/profiles.php:21 ../../mod/profiles.php:375
+#: ../../mod/profiles.php:489 ../../mod/dfrn_confirm.php:62
 msgid "Profile not found."
 msgstr ""
 
@@ -3563,263 +3738,272 @@ msgstr ""
 msgid "Profile Name is required."
 msgstr ""
 
-#: ../../mod/profiles.php:143
+#: ../../mod/profiles.php:145
 msgid "Marital Status"
 msgstr ""
 
-#: ../../mod/profiles.php:144
+#: ../../mod/profiles.php:149
 msgid "Romantic Partner"
 msgstr ""
 
-#: ../../mod/profiles.php:145
+#: ../../mod/profiles.php:153
 msgid "Work/Employment"
 msgstr ""
 
-#: ../../mod/profiles.php:146
+#: ../../mod/profiles.php:156
 msgid "Religion"
 msgstr ""
 
-#: ../../mod/profiles.php:147
+#: ../../mod/profiles.php:160
 msgid "Political Views"
 msgstr ""
 
-#: ../../mod/profiles.php:148
+#: ../../mod/profiles.php:164
 msgid "Gender"
 msgstr ""
 
-#: ../../mod/profiles.php:149
+#: ../../mod/profiles.php:168
 msgid "Sexual Preference"
 msgstr ""
 
-#: ../../mod/profiles.php:150
+#: ../../mod/profiles.php:172
 msgid "Homepage"
 msgstr ""
 
-#: ../../mod/profiles.php:151
+#: ../../mod/profiles.php:176
 msgid "Interests"
 msgstr ""
 
-#: ../../mod/profiles.php:154
+#: ../../mod/profiles.php:181
 msgid "Location"
 msgstr ""
 
-#: ../../mod/profiles.php:225
+#: ../../mod/profiles.php:253
 msgid "Profile updated."
 msgstr ""
 
-#: ../../mod/profiles.php:300
+#: ../../mod/profiles.php:320
+msgid " and "
+msgstr ""
+
+#: ../../mod/profiles.php:328
 msgid "public profile"
 msgstr ""
 
-#: ../../mod/profiles.php:302
+#: ../../mod/profiles.php:331
+#, php-format
+msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
+msgstr ""
+
+#: ../../mod/profiles.php:335
 #, php-format
 msgid "%1$s has an updated %2$s, changing %3$s."
 msgstr ""
 
-#: ../../mod/profiles.php:358
+#: ../../mod/profiles.php:394
 msgid "Profile deleted."
 msgstr ""
 
-#: ../../mod/profiles.php:376 ../../mod/profiles.php:410
+#: ../../mod/profiles.php:412 ../../mod/profiles.php:446
 msgid "Profile-"
 msgstr ""
 
-#: ../../mod/profiles.php:395 ../../mod/profiles.php:437
+#: ../../mod/profiles.php:431 ../../mod/profiles.php:473
 msgid "New profile created."
 msgstr ""
 
-#: ../../mod/profiles.php:416
+#: ../../mod/profiles.php:452
 msgid "Profile unavailable to clone."
 msgstr ""
 
-#: ../../mod/profiles.php:474
+#: ../../mod/profiles.php:510
 msgid "Hide your contact/friend list from viewers of this profile?"
 msgstr ""
 
-#: ../../mod/profiles.php:497
+#: ../../mod/profiles.php:533
 msgid "Edit Profile Details"
 msgstr ""
 
-#: ../../mod/profiles.php:499
+#: ../../mod/profiles.php:535
 msgid "View this profile"
 msgstr ""
 
-#: ../../mod/profiles.php:500
+#: ../../mod/profiles.php:536
 msgid "Create a new profile using these settings"
 msgstr ""
 
-#: ../../mod/profiles.php:501
+#: ../../mod/profiles.php:537
 msgid "Clone this profile"
 msgstr ""
 
-#: ../../mod/profiles.php:502
+#: ../../mod/profiles.php:538
 msgid "Delete this profile"
 msgstr ""
 
-#: ../../mod/profiles.php:503
+#: ../../mod/profiles.php:539
 msgid "Profile Name:"
 msgstr ""
 
-#: ../../mod/profiles.php:504
+#: ../../mod/profiles.php:540
 msgid "Your Full Name:"
 msgstr ""
 
-#: ../../mod/profiles.php:505
+#: ../../mod/profiles.php:541
 msgid "Title/Description:"
 msgstr ""
 
-#: ../../mod/profiles.php:506
+#: ../../mod/profiles.php:542
 msgid "Your Gender:"
 msgstr ""
 
-#: ../../mod/profiles.php:507
+#: ../../mod/profiles.php:543
 #, php-format
 msgid "Birthday (%s):"
 msgstr ""
 
-#: ../../mod/profiles.php:508
+#: ../../mod/profiles.php:544
 msgid "Street Address:"
 msgstr ""
 
-#: ../../mod/profiles.php:509
+#: ../../mod/profiles.php:545
 msgid "Locality/City:"
 msgstr ""
 
-#: ../../mod/profiles.php:510
+#: ../../mod/profiles.php:546
 msgid "Postal/Zip Code:"
 msgstr ""
 
-#: ../../mod/profiles.php:511
+#: ../../mod/profiles.php:547
 msgid "Country:"
 msgstr ""
 
-#: ../../mod/profiles.php:512
+#: ../../mod/profiles.php:548
 msgid "Region/State:"
 msgstr ""
 
-#: ../../mod/profiles.php:513
+#: ../../mod/profiles.php:549
 msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
 msgstr ""
 
-#: ../../mod/profiles.php:514
+#: ../../mod/profiles.php:550
 msgid "Who: (if applicable)"
 msgstr ""
 
-#: ../../mod/profiles.php:515
+#: ../../mod/profiles.php:551
 msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
 msgstr ""
 
-#: ../../mod/profiles.php:516 ../../include/profile_advanced.php:43
+#: ../../mod/profiles.php:552 ../../include/profile_advanced.php:43
 msgid "Sexual Preference:"
 msgstr ""
 
-#: ../../mod/profiles.php:517
+#: ../../mod/profiles.php:553
 msgid "Homepage URL:"
 msgstr ""
 
-#: ../../mod/profiles.php:518 ../../include/profile_advanced.php:49
+#: ../../mod/profiles.php:554 ../../include/profile_advanced.php:49
 msgid "Political Views:"
 msgstr ""
 
-#: ../../mod/profiles.php:519
+#: ../../mod/profiles.php:555
 msgid "Religious Views:"
 msgstr ""
 
-#: ../../mod/profiles.php:520
+#: ../../mod/profiles.php:556
 msgid "Public Keywords:"
 msgstr ""
 
-#: ../../mod/profiles.php:521
+#: ../../mod/profiles.php:557
 msgid "Private Keywords:"
 msgstr ""
 
-#: ../../mod/profiles.php:522
+#: ../../mod/profiles.php:558
 msgid "Example: fishing photography software"
 msgstr ""
 
-#: ../../mod/profiles.php:523
+#: ../../mod/profiles.php:559
 msgid "(Used for suggesting potential friends, can be seen by others)"
 msgstr ""
 
-#: ../../mod/profiles.php:524
+#: ../../mod/profiles.php:560
 msgid "(Used for searching profiles, never shown to others)"
 msgstr ""
 
-#: ../../mod/profiles.php:525
+#: ../../mod/profiles.php:561
 msgid "Tell us about yourself..."
 msgstr ""
 
-#: ../../mod/profiles.php:526
+#: ../../mod/profiles.php:562
 msgid "Hobbies/Interests"
 msgstr ""
 
-#: ../../mod/profiles.php:527
+#: ../../mod/profiles.php:563
 msgid "Contact information and Social Networks"
 msgstr ""
 
-#: ../../mod/profiles.php:528
+#: ../../mod/profiles.php:564
 msgid "Musical interests"
 msgstr ""
 
-#: ../../mod/profiles.php:529
+#: ../../mod/profiles.php:565
 msgid "Books, literature"
 msgstr ""
 
-#: ../../mod/profiles.php:530
+#: ../../mod/profiles.php:566
 msgid "Television"
 msgstr ""
 
-#: ../../mod/profiles.php:531
+#: ../../mod/profiles.php:567
 msgid "Film/dance/culture/entertainment"
 msgstr ""
 
-#: ../../mod/profiles.php:532
+#: ../../mod/profiles.php:568
 msgid "Love/romance"
 msgstr ""
 
-#: ../../mod/profiles.php:533
+#: ../../mod/profiles.php:569
 msgid "Work/employment"
 msgstr ""
 
-#: ../../mod/profiles.php:534
+#: ../../mod/profiles.php:570
 msgid "School/education"
 msgstr ""
 
-#: ../../mod/profiles.php:539
+#: ../../mod/profiles.php:575
 msgid ""
 "This is your <strong>public</strong> profile.<br />It <strong>may</strong> "
 "be visible to anybody using the internet."
 msgstr ""
 
-#: ../../mod/profiles.php:549 ../../mod/directory.php:111
+#: ../../mod/profiles.php:585 ../../mod/directory.php:111
 msgid "Age: "
 msgstr ""
 
-#: ../../mod/profiles.php:584
+#: ../../mod/profiles.php:620
 msgid "Edit/Manage Profiles"
 msgstr ""
 
-#: ../../mod/profiles.php:585 ../../boot.php:1049
+#: ../../mod/profiles.php:621 ../../boot.php:1058
 msgid "Change profile photo"
 msgstr ""
 
-#: ../../mod/profiles.php:586 ../../boot.php:1050
+#: ../../mod/profiles.php:622 ../../boot.php:1059
 msgid "Create New Profile"
 msgstr ""
 
-#: ../../mod/profiles.php:597 ../../boot.php:1060
+#: ../../mod/profiles.php:633 ../../boot.php:1069
 msgid "Profile Image"
 msgstr ""
 
-#: ../../mod/profiles.php:599 ../../boot.php:1063
+#: ../../mod/profiles.php:635 ../../boot.php:1072
 msgid "visible to everybody"
 msgstr ""
 
-#: ../../mod/profiles.php:600 ../../boot.php:1064
+#: ../../mod/profiles.php:636 ../../boot.php:1073
 msgid "Edit visibility"
 msgstr ""
 
-#: ../../mod/filer.php:29 ../../include/conversation.php:914
+#: ../../mod/filer.php:29 ../../include/conversation.php:922
 msgid "Save to Folder:"
 msgstr ""
 
@@ -3867,7 +4051,7 @@ msgstr ""
 msgid "No entries."
 msgstr ""
 
-#: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:158
+#: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:464
 #: ../../include/contact_widgets.php:34
 msgid "Friend Suggestions"
 msgstr ""
@@ -3882,7 +4066,7 @@ msgstr ""
 msgid "Ignore/Hide"
 msgstr ""
 
-#: ../../mod/directory.php:47 ../../view/theme/diabook/theme.php:156
+#: ../../mod/directory.php:47 ../../view/theme/diabook/theme.php:462
 msgid "Global Directory"
 msgstr ""
 
@@ -4021,118 +4205,123 @@ msgstr ""
 msgid "Unable to set contact photo."
 msgstr ""
 
-#: ../../mod/dfrn_confirm.php:477 ../../include/diaspora.php:507
+#: ../../mod/dfrn_confirm.php:482 ../../include/diaspora.php:507
 #: ../../include/conversation.php:101
 #, php-format
 msgid "%1$s is now friends with %2$s"
 msgstr ""
 
-#: ../../mod/dfrn_confirm.php:548
+#: ../../mod/dfrn_confirm.php:554
 #, php-format
 msgid "No user record found for '%s' "
 msgstr ""
 
-#: ../../mod/dfrn_confirm.php:558
+#: ../../mod/dfrn_confirm.php:564
 msgid "Our site encryption key is apparently messed up."
 msgstr ""
 
-#: ../../mod/dfrn_confirm.php:569
+#: ../../mod/dfrn_confirm.php:575
 msgid "Empty site URL was provided or URL could not be decrypted by us."
 msgstr ""
 
-#: ../../mod/dfrn_confirm.php:590
+#: ../../mod/dfrn_confirm.php:596
 msgid "Contact record was not found for you on our site."
 msgstr ""
 
-#: ../../mod/dfrn_confirm.php:604
+#: ../../mod/dfrn_confirm.php:610
 #, php-format
 msgid "Site public key not available in contact record for URL %s."
 msgstr ""
 
-#: ../../mod/dfrn_confirm.php:624
+#: ../../mod/dfrn_confirm.php:630
 msgid ""
 "The ID provided by your system is a duplicate on our system. It should work "
 "if you try again."
 msgstr ""
 
-#: ../../mod/dfrn_confirm.php:635
+#: ../../mod/dfrn_confirm.php:641
 msgid "Unable to set your contact credentials on our system."
 msgstr ""
 
-#: ../../mod/dfrn_confirm.php:700
+#: ../../mod/dfrn_confirm.php:706
 msgid "Unable to update your contact profile details on our system"
 msgstr ""
 
-#: ../../mod/dfrn_confirm.php:730
+#: ../../mod/dfrn_confirm.php:740
 #, php-format
 msgid "Connection accepted at %s"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:490
+#: ../../mod/dfrn_confirm.php:789
+#, php-format
+msgid "%1$s has joined %2$s"
+msgstr ""
+
+#: ../../addon/facebook/facebook.php:491
 msgid "Facebook disabled"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:495
+#: ../../addon/facebook/facebook.php:496
 msgid "Updating contacts"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:515
+#: ../../addon/facebook/facebook.php:516
 msgid "Facebook API key is missing."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:522
+#: ../../addon/facebook/facebook.php:523
 msgid "Facebook Connect"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:528
+#: ../../addon/facebook/facebook.php:529
 msgid "Install Facebook connector for this account."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:535
+#: ../../addon/facebook/facebook.php:536
 msgid "Remove Facebook connector"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:540
+#: ../../addon/facebook/facebook.php:541
 msgid ""
 "Re-authenticate [This is necessary whenever your Facebook password is "
 "changed.]"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:547
+#: ../../addon/facebook/facebook.php:548
 msgid "Post to Facebook by default"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:551
+#: ../../addon/facebook/facebook.php:552
 msgid "Link all your Facebook friends and conversations on this website"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:553
+#: ../../addon/facebook/facebook.php:554
 msgid ""
 "Facebook conversations consist of your <em>profile wall</em> and your friend "
 "<em>stream</em>."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:554
+#: ../../addon/facebook/facebook.php:555
 msgid "On this website, your Facebook friend stream is only visible to you."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:555
+#: ../../addon/facebook/facebook.php:556
 msgid ""
 "The following settings determine the privacy of your Facebook profile wall "
 "on this website."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:559
+#: ../../addon/facebook/facebook.php:560
 msgid ""
 "On this website your Facebook profile wall conversations will only be "
 "visible to you"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:564
+#: ../../addon/facebook/facebook.php:565
 msgid "Do not import your Facebook profile wall conversations"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:566
+#: ../../addon/facebook/facebook.php:567
 msgid ""
 "If you choose to link conversations and leave both of these boxes unchecked, "
 "your Facebook profile wall will be merged with your profile wall on this "
@@ -4140,120 +4329,120 @@ msgid ""
 "who may see the conversations."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:571
+#: ../../addon/facebook/facebook.php:572
 msgid "Comma separated applications to ignore"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:648
+#: ../../addon/facebook/facebook.php:656
 msgid "Problems with Facebook Real-Time Updates"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:675
+#: ../../addon/facebook/facebook.php:684
 #: ../../include/contact_selectors.php:81
 msgid "Facebook"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:676
+#: ../../addon/facebook/facebook.php:685
 msgid "Facebook Connector Settings"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:691
+#: ../../addon/facebook/facebook.php:700
 msgid "Facebook API Key"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:701
+#: ../../addon/facebook/facebook.php:710
 msgid ""
 "Error: it appears that you have specified the App-ID and -Secret in your ."
 "htconfig.php file. As long as they are specified there, they cannot be set "
 "using this form.<br><br>"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:706
+#: ../../addon/facebook/facebook.php:715
 msgid ""
 "Error: the given API Key seems to be incorrect (the application access token "
 "could not be retrieved)."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:708
+#: ../../addon/facebook/facebook.php:717
 msgid "The given API Key seems to work correctly."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:710
+#: ../../addon/facebook/facebook.php:719
 msgid ""
 "The correctness of the API Key could not be detected. Somthing strange's "
 "going on."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:713
+#: ../../addon/facebook/facebook.php:722
 msgid "App-ID / API-Key"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:714
+#: ../../addon/facebook/facebook.php:723
 msgid "Application secret"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:715
+#: ../../addon/facebook/facebook.php:724
 #, php-format
-msgid "Polling Interval (min. %1$s minutes)"
+msgid "Polling Interval in minutes (minimum %1$s minutes)"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:716
+#: ../../addon/facebook/facebook.php:725
 msgid ""
 "Synchronize comments (no comments on Facebook are missed, at the cost of "
 "increased system load)"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:720
+#: ../../addon/facebook/facebook.php:729
 msgid "Real-Time Updates"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:724
+#: ../../addon/facebook/facebook.php:733
 msgid "Real-Time Updates are activated."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:725
+#: ../../addon/facebook/facebook.php:734
 msgid "Deactivate Real-Time Updates"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:727
+#: ../../addon/facebook/facebook.php:736
 msgid "Real-Time Updates not activated."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:727
+#: ../../addon/facebook/facebook.php:736
 msgid "Activate Real-Time Updates"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:746
+#: ../../addon/facebook/facebook.php:755
 msgid "The new values have been saved."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:770
+#: ../../addon/facebook/facebook.php:779
 msgid "Post to Facebook"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:868
+#: ../../addon/facebook/facebook.php:877
 msgid ""
 "Post to Facebook cancelled because of multi-network access permission "
 "conflict."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:1088
+#: ../../addon/facebook/facebook.php:1097
 msgid "View on Friendica"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:1121
+#: ../../addon/facebook/facebook.php:1130
 msgid "Facebook post failed. Queued for retry."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:1161
+#: ../../addon/facebook/facebook.php:1170
 msgid "Your Facebook connection became invalid. Please Re-authenticate."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:1162
+#: ../../addon/facebook/facebook.php:1171
 msgid "Facebook connection became invalid"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:1163
+#: ../../addon/facebook/facebook.php:1172
 #, php-format
 msgid ""
 "Hi %1$s,\n"
@@ -4297,6 +4486,10 @@ msgid_plural "%d people don't like this"
 msgstr[0] ""
 msgstr[1] ""
 
+#: ../../addon/widgets/widget_friendheader.php:40
+msgid "Get added to this list!"
+msgstr ""
+
 #: ../../addon/widgets/widgets.php:56
 msgid "Generate new key"
 msgstr ""
@@ -4396,10 +4589,16 @@ msgstr ""
 msgid "%s - Click to open/close"
 msgstr ""
 
-#: ../../addon/page/page.php:47
+#: ../../addon/page/page.php:48
 msgid "Forums"
 msgstr ""
 
+#: ../../addon/page/page.php:63 ../../addon/showmore/showmore.php:87
+#: ../../include/contact_widgets.php:187 ../../include/conversation.php:466
+#: ../../boot.php:507
+msgid "show more"
+msgstr ""
+
 #: ../../addon/planets/planets.php:150
 msgid "Planets Settings"
 msgstr ""
@@ -4412,7 +4611,7 @@ msgstr ""
 #: ../../addon/communityhome/communityhome.php:34
 #: ../../addon/communityhome/twillingham/communityhome.php:28
 #: ../../addon/communityhome/twillingham/communityhome.php:34
-#: ../../include/nav.php:64 ../../boot.php:796
+#: ../../include/nav.php:64 ../../boot.php:805
 msgid "Login"
 msgstr ""
 
@@ -4440,7 +4639,7 @@ msgid "Latest likes"
 msgstr ""
 
 #: ../../addon/communityhome/communityhome.php:155
-#: ../../view/theme/diabook/theme.php:94 ../../include/text.php:1302
+#: ../../view/theme/diabook/theme.php:400 ../../include/text.php:1302
 #: ../../include/conversation.php:45 ../../include/conversation.php:118
 msgid "event"
 msgstr ""
@@ -4592,7 +4791,7 @@ msgid "Post to Drupal by default"
 msgstr ""
 
 #: ../../addon/drpost/drpost.php:184 ../../addon/wppost/wppost.php:190
-#: ../../addon/blogger/blogger.php:172 ../../addon/posterous/posterous.php:173
+#: ../../addon/blogger/blogger.php:172 ../../addon/posterous/posterous.php:177
 msgid "Post from Friendica"
 msgstr ""
 
@@ -5153,11 +5352,6 @@ msgstr ""
 msgid "Show More Settings saved."
 msgstr ""
 
-#: ../../addon/showmore/showmore.php:87 ../../include/conversation.php:466
-#: ../../boot.php:496
-msgid "show more"
-msgstr ""
-
 #: ../../addon/piwik/piwik.php:79
 msgid ""
 "This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> "
@@ -5340,86 +5534,101 @@ msgstr ""
 msgid "Post to Posterous by default"
 msgstr ""
 
-#: ../../view/theme/diabook/theme.php:43
-msgid "Last users"
+#: ../../view/theme/cleanzero/config.php:73
+#: ../../view/theme/diabook/config.php:93
+#: ../../view/theme/quattro/config.php:54 ../../view/theme/dispy/config.php:72
+msgid "Theme settings"
 msgstr ""
 
-#: ../../view/theme/diabook/theme.php:72
-msgid "Last likes"
+#: ../../view/theme/cleanzero/config.php:74
+msgid "Set resize level for images in posts and comments (width and height)"
 msgstr ""
 
-#: ../../view/theme/diabook/theme.php:117
-msgid "Last photos"
+#: ../../view/theme/cleanzero/config.php:75
+#: ../../view/theme/diabook/config.php:94 ../../view/theme/dispy/config.php:73
+msgid "Set font-size for posts and comments"
 msgstr ""
 
-#: ../../view/theme/diabook/theme.php:154
-msgid "Find Friends"
+#: ../../view/theme/cleanzero/config.php:76
+#: ../../view/theme/quattro/config.php:56
+msgid "Color scheme"
 msgstr ""
 
-#: ../../view/theme/diabook/theme.php:155
-msgid "Local Directory"
+#: ../../view/theme/diabook/theme.php:65 ../../include/nav.php:49
+#: ../../include/nav.php:115
+msgid "Your posts and conversations"
 msgstr ""
 
-#: ../../view/theme/diabook/theme.php:157 ../../include/contact_widgets.php:35
-msgid "Similar Interests"
+#: ../../view/theme/diabook/theme.php:66 ../../include/nav.php:50
+msgid "Your profile page"
 msgstr ""
 
-#: ../../view/theme/diabook/theme.php:159 ../../include/contact_widgets.php:37
-msgid "Invite Friends"
+#: ../../view/theme/diabook/theme.php:67
+msgid "Your contacts"
 msgstr ""
 
-#: ../../view/theme/diabook/theme.php:175
-#: ../../view/theme/diabook/theme.php:253
-msgid "Community Pages"
+#: ../../view/theme/diabook/theme.php:68 ../../include/nav.php:51
+msgid "Your photos"
 msgstr ""
 
-#: ../../view/theme/diabook/theme.php:208
-msgid "Help or @NewHere ?"
+#: ../../view/theme/diabook/theme.php:69 ../../include/nav.php:52
+msgid "Your events"
 msgstr ""
 
-#: ../../view/theme/diabook/theme.php:214
-msgid "Connect Services"
+#: ../../view/theme/diabook/theme.php:70 ../../include/nav.php:53
+msgid "Personal notes"
 msgstr ""
 
-#: ../../view/theme/diabook/theme.php:246 ../../include/nav.php:49
-#: ../../include/nav.php:115
-msgid "Your posts and conversations"
+#: ../../view/theme/diabook/theme.php:70 ../../include/nav.php:53
+msgid "Your personal photos"
 msgstr ""
 
-#: ../../view/theme/diabook/theme.php:247 ../../include/nav.php:50
-msgid "Your profile page"
+#: ../../view/theme/diabook/theme.php:72
+#: ../../view/theme/diabook/theme.php:481
+msgid "Community Pages"
 msgstr ""
 
-#: ../../view/theme/diabook/theme.php:248
-msgid "Your contacts"
+#: ../../view/theme/diabook/theme.php:328
+msgid "Community Profiles"
 msgstr ""
 
-#: ../../view/theme/diabook/theme.php:249 ../../include/nav.php:51
-msgid "Your photos"
+#: ../../view/theme/diabook/theme.php:349
+msgid "Last users"
 msgstr ""
 
-#: ../../view/theme/diabook/theme.php:250 ../../include/nav.php:52
-msgid "Your events"
+#: ../../view/theme/diabook/theme.php:378
+msgid "Last likes"
 msgstr ""
 
-#: ../../view/theme/diabook/theme.php:251 ../../include/nav.php:53
-msgid "Personal notes"
+#: ../../view/theme/diabook/theme.php:423
+msgid "Last photos"
 msgstr ""
 
-#: ../../view/theme/diabook/theme.php:251 ../../include/nav.php:53
-msgid "Your personal photos"
+#: ../../view/theme/diabook/theme.php:460
+msgid "Find Friends"
 msgstr ""
 
-#: ../../view/theme/diabook/config.php:93
-#: ../../view/theme/quattro/config.php:54
-msgid "Theme settings"
+#: ../../view/theme/diabook/theme.php:461
+msgid "Local Directory"
 msgstr ""
 
-#: ../../view/theme/diabook/config.php:94
-msgid "Set font-size for posts and comments"
+#: ../../view/theme/diabook/theme.php:463 ../../include/contact_widgets.php:35
+msgid "Similar Interests"
+msgstr ""
+
+#: ../../view/theme/diabook/theme.php:465 ../../include/contact_widgets.php:37
+msgid "Invite Friends"
 msgstr ""
 
-#: ../../view/theme/diabook/config.php:95
+#: ../../view/theme/diabook/theme.php:515
+msgid "Help or @NewHere ?"
+msgstr ""
+
+#: ../../view/theme/diabook/theme.php:522
+msgid "Connect Services"
+msgstr ""
+
+#: ../../view/theme/diabook/config.php:95 ../../view/theme/dispy/config.php:74
 msgid "Set line-height for posts and comments"
 msgstr ""
 
@@ -5443,11 +5652,11 @@ msgstr ""
 msgid "Center"
 msgstr ""
 
-#: ../../view/theme/quattro/config.php:56
-msgid "Color scheme"
+#: ../../view/theme/dispy/config.php:75
+msgid "Set colour scheme"
 msgstr ""
 
-#: ../../include/profile_advanced.php:17 ../../boot.php:1085
+#: ../../include/profile_advanced.php:17 ../../boot.php:1094
 msgid "Gender:"
 msgstr ""
 
@@ -5468,11 +5677,11 @@ msgstr ""
 msgid "Age:"
 msgstr ""
 
-#: ../../include/profile_advanced.php:37 ../../boot.php:1088
+#: ../../include/profile_advanced.php:37 ../../boot.php:1097
 msgid "Status:"
 msgstr ""
 
-#: ../../include/profile_advanced.php:45 ../../boot.php:1090
+#: ../../include/profile_advanced.php:45 ../../boot.php:1099
 msgid "Homepage:"
 msgstr ""
 
@@ -5652,179 +5861,179 @@ msgstr ""
 msgid "Undecided"
 msgstr ""
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Males"
 msgstr ""
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Females"
 msgstr ""
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Gay"
 msgstr ""
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Lesbian"
 msgstr ""
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "No Preference"
 msgstr ""
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Bisexual"
 msgstr ""
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Autosexual"
 msgstr ""
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Abstinent"
 msgstr ""
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Virgin"
 msgstr ""
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Deviant"
 msgstr ""
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Fetish"
 msgstr ""
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Oodles"
 msgstr ""
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Nonsexual"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Single"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Lonely"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Available"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Unavailable"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Has crush"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Infatuated"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Dating"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Unfaithful"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Sex Addict"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Friends"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Friends/Benefits"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Casual"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Engaged"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Married"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Imaginarily married"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Partners"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Cohabiting"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Common law"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Happy"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Not looking"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Swinger"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Betrayed"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Separated"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Unstable"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Divorced"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Imaginarily divorced"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Widowed"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Uncertain"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "It's complicated"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Don't care"
 msgstr ""
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Ask me"
 msgstr ""
 
@@ -5836,12 +6045,12 @@ msgstr ""
 msgid "Finishes:"
 msgstr ""
 
-#: ../../include/delivery.php:434 ../../include/notifier.php:651
+#: ../../include/delivery.php:445 ../../include/notifier.php:652
 msgid "(no subject)"
 msgstr ""
 
-#: ../../include/delivery.php:441 ../../include/enotify.php:23
-#: ../../include/notifier.php:658
+#: ../../include/delivery.php:452 ../../include/enotify.php:23
+#: ../../include/notifier.php:659
 msgid "noreply"
 msgstr ""
 
@@ -5956,18 +6165,18 @@ msgstr ""
 msgid "bytes"
 msgstr ""
 
-#: ../../include/text.php:936
-msgid "Categories:"
-msgstr ""
-
-#: ../../include/text.php:948
+#: ../../include/text.php:933 ../../include/text.php:948
 msgid "remove"
 msgstr ""
 
-#: ../../include/text.php:948
+#: ../../include/text.php:933 ../../include/text.php:948
 msgid "[remove]"
 msgstr ""
 
+#: ../../include/text.php:936
+msgid "Categories:"
+msgstr ""
+
 #: ../../include/text.php:951
 msgid "Filed under:"
 msgstr ""
@@ -6056,7 +6265,7 @@ msgstr ""
 msgid "Contacts not in any group"
 msgstr ""
 
-#: ../../include/nav.php:46 ../../boot.php:795
+#: ../../include/nav.php:46 ../../boot.php:804
 msgid "Logout"
 msgstr ""
 
@@ -6064,7 +6273,7 @@ msgstr ""
 msgid "End this session"
 msgstr ""
 
-#: ../../include/nav.php:49 ../../boot.php:1463
+#: ../../include/nav.php:49 ../../boot.php:1472
 msgid "Status"
 msgstr ""
 
@@ -6144,11 +6353,11 @@ msgstr ""
 msgid "Manage other pages"
 msgstr ""
 
-#: ../../include/nav.php:138 ../../boot.php:1043
+#: ../../include/nav.php:138 ../../boot.php:1052
 msgid "Profiles"
 msgstr ""
 
-#: ../../include/nav.php:138 ../../boot.php:1043
+#: ../../include/nav.php:138 ../../boot.php:1052
 msgid "Manage/edit profiles"
 msgstr ""
 
@@ -6314,7 +6523,7 @@ msgstr ""
 msgid "%1$d %2$s ago"
 msgstr ""
 
-#: ../../include/poller.php:543
+#: ../../include/onepoll.php:402
 msgid "From: "
 msgstr ""
 
@@ -6535,11 +6744,11 @@ msgstr ""
 msgid "Please visit %s to approve or reject the suggestion."
 msgstr ""
 
-#: ../../include/items.php:2698
+#: ../../include/items.php:2714
 msgid "A new person is sharing with you at "
 msgstr ""
 
-#: ../../include/items.php:2698
+#: ../../include/items.php:2714
 msgid "You have a new follower at "
 msgstr ""
 
@@ -6570,34 +6779,34 @@ msgid ""
 "form has been opened for too long (>3 hours) before submitting it."
 msgstr ""
 
-#: ../../include/Contact.php:96
+#: ../../include/Contact.php:111
 msgid "stopped following"
 msgstr ""
 
-#: ../../include/Contact.php:188 ../../include/conversation.php:809
+#: ../../include/Contact.php:203 ../../include/conversation.php:817
 msgid "View Status"
 msgstr ""
 
-#: ../../include/Contact.php:189 ../../include/conversation.php:810
+#: ../../include/Contact.php:204 ../../include/conversation.php:818
 msgid "View Profile"
 msgstr ""
 
-#: ../../include/Contact.php:190 ../../include/conversation.php:811
+#: ../../include/Contact.php:205 ../../include/conversation.php:819
 msgid "View Photos"
 msgstr ""
 
-#: ../../include/Contact.php:191 ../../include/Contact.php:204
-#: ../../include/conversation.php:812
+#: ../../include/Contact.php:206 ../../include/Contact.php:219
+#: ../../include/conversation.php:820
 msgid "Network Posts"
 msgstr ""
 
-#: ../../include/Contact.php:192 ../../include/Contact.php:204
-#: ../../include/conversation.php:813
+#: ../../include/Contact.php:207 ../../include/Contact.php:219
+#: ../../include/conversation.php:821
 msgid "Edit Contact"
 msgstr ""
 
-#: ../../include/Contact.php:193 ../../include/Contact.php:204
-#: ../../include/conversation.php:814
+#: ../../include/Contact.php:208 ../../include/Contact.php:219
+#: ../../include/conversation.php:822
 msgid "Send PM"
 msgstr ""
 
@@ -6610,17 +6819,17 @@ msgstr ""
 msgid "%1$s marked %2$s's %3$s as favorite"
 msgstr ""
 
-#: ../../include/conversation.php:317 ../../include/conversation.php:575
+#: ../../include/conversation.php:317 ../../include/conversation.php:583
 msgid "Select"
 msgstr ""
 
-#: ../../include/conversation.php:334 ../../include/conversation.php:668
-#: ../../include/conversation.php:669
+#: ../../include/conversation.php:334 ../../include/conversation.php:676
+#: ../../include/conversation.php:677
 #, php-format
 msgid "View %s's profile @ %s"
 msgstr ""
 
-#: ../../include/conversation.php:344 ../../include/conversation.php:680
+#: ../../include/conversation.php:344 ../../include/conversation.php:688
 #, php-format
 msgid "%s from %s"
 msgstr ""
@@ -6652,209 +6861,267 @@ msgstr ""
 msgid "share"
 msgstr ""
 
-#: ../../include/conversation.php:588
+#: ../../include/conversation.php:556
+msgid "Bold"
+msgstr ""
+
+#: ../../include/conversation.php:557
+msgid "Italic"
+msgstr ""
+
+#: ../../include/conversation.php:558
+msgid "Underline"
+msgstr ""
+
+#: ../../include/conversation.php:559
+msgid "Quote"
+msgstr ""
+
+#: ../../include/conversation.php:560
+msgid "Code"
+msgstr ""
+
+#: ../../include/conversation.php:561
+msgid "Image"
+msgstr ""
+
+#: ../../include/conversation.php:562
+msgid "Link"
+msgstr ""
+
+#: ../../include/conversation.php:563
+msgid "Video"
+msgstr ""
+
+#: ../../include/conversation.php:596
 msgid "add star"
 msgstr ""
 
-#: ../../include/conversation.php:589
+#: ../../include/conversation.php:597
 msgid "remove star"
 msgstr ""
 
-#: ../../include/conversation.php:590
+#: ../../include/conversation.php:598
 msgid "toggle star status"
 msgstr ""
 
-#: ../../include/conversation.php:593
+#: ../../include/conversation.php:601
 msgid "starred"
 msgstr ""
 
-#: ../../include/conversation.php:594
+#: ../../include/conversation.php:602
 msgid "add tag"
 msgstr ""
 
-#: ../../include/conversation.php:598
+#: ../../include/conversation.php:606
 msgid "save to folder"
 msgstr ""
 
-#: ../../include/conversation.php:670
+#: ../../include/conversation.php:678
 msgid "to"
 msgstr ""
 
-#: ../../include/conversation.php:671
+#: ../../include/conversation.php:679
 msgid "Wall-to-Wall"
 msgstr ""
 
-#: ../../include/conversation.php:672
+#: ../../include/conversation.php:680
 msgid "via Wall-To-Wall:"
 msgstr ""
 
-#: ../../include/conversation.php:717
+#: ../../include/conversation.php:725
 msgid "Delete Selected Items"
 msgstr ""
 
-#: ../../include/conversation.php:868
+#: ../../include/conversation.php:876
 #, php-format
 msgid "%s likes this."
 msgstr ""
 
-#: ../../include/conversation.php:868
+#: ../../include/conversation.php:876
 #, php-format
 msgid "%s doesn't like this."
 msgstr ""
 
-#: ../../include/conversation.php:872
+#: ../../include/conversation.php:880
 #, php-format
 msgid "<span  %1$s>%2$d people</span> like this."
 msgstr ""
 
-#: ../../include/conversation.php:874
+#: ../../include/conversation.php:882
 #, php-format
 msgid "<span  %1$s>%2$d people</span> don't like this."
 msgstr ""
 
-#: ../../include/conversation.php:880
+#: ../../include/conversation.php:888
 msgid "and"
 msgstr ""
 
-#: ../../include/conversation.php:883
+#: ../../include/conversation.php:891
 #, php-format
 msgid ", and %d other people"
 msgstr ""
 
-#: ../../include/conversation.php:884
+#: ../../include/conversation.php:892
 #, php-format
 msgid "%s like this."
 msgstr ""
 
-#: ../../include/conversation.php:884
+#: ../../include/conversation.php:892
 #, php-format
 msgid "%s don't like this."
 msgstr ""
 
-#: ../../include/conversation.php:909
+#: ../../include/conversation.php:917
 msgid "Visible to <strong>everybody</strong>"
 msgstr ""
 
-#: ../../include/conversation.php:911
+#: ../../include/conversation.php:919
 msgid "Please enter a video link/URL:"
 msgstr ""
 
-#: ../../include/conversation.php:912
+#: ../../include/conversation.php:920
 msgid "Please enter an audio link/URL:"
 msgstr ""
 
-#: ../../include/conversation.php:913
+#: ../../include/conversation.php:921
 msgid "Tag term:"
 msgstr ""
 
-#: ../../include/conversation.php:915
+#: ../../include/conversation.php:923
 msgid "Where are you right now?"
 msgstr ""
 
-#: ../../include/conversation.php:958
+#: ../../include/conversation.php:966
 msgid "upload photo"
 msgstr ""
 
-#: ../../include/conversation.php:960
+#: ../../include/conversation.php:968
 msgid "attach file"
 msgstr ""
 
-#: ../../include/conversation.php:962
+#: ../../include/conversation.php:970
 msgid "web link"
 msgstr ""
 
-#: ../../include/conversation.php:963
+#: ../../include/conversation.php:971
 msgid "Insert video link"
 msgstr ""
 
-#: ../../include/conversation.php:964
+#: ../../include/conversation.php:972
 msgid "video link"
 msgstr ""
 
-#: ../../include/conversation.php:965
+#: ../../include/conversation.php:973
 msgid "Insert audio link"
 msgstr ""
 
-#: ../../include/conversation.php:966
+#: ../../include/conversation.php:974
 msgid "audio link"
 msgstr ""
 
-#: ../../include/conversation.php:968
+#: ../../include/conversation.php:976
 msgid "set location"
 msgstr ""
 
-#: ../../include/conversation.php:970
+#: ../../include/conversation.php:978
 msgid "clear location"
 msgstr ""
 
-#: ../../include/conversation.php:977
+#: ../../include/conversation.php:985
 msgid "permissions"
 msgstr ""
 
-#: ../../boot.php:494
+#: ../../boot.php:505
 msgid "Delete this item?"
 msgstr ""
 
-#: ../../boot.php:497
+#: ../../boot.php:508
 msgid "show fewer"
 msgstr ""
 
-#: ../../boot.php:774
+#: ../../boot.php:681
+#, php-format
+msgid "Update %s failed. See error logs."
+msgstr ""
+
+#: ../../boot.php:683
+#, php-format
+msgid "Update Error at %s"
+msgstr ""
+
+#: ../../boot.php:783
 msgid "Create a New Account"
 msgstr ""
 
-#: ../../boot.php:798
+#: ../../boot.php:807
 msgid "Nickname or Email address: "
 msgstr ""
 
-#: ../../boot.php:799
+#: ../../boot.php:808
 msgid "Password: "
 msgstr ""
 
-#: ../../boot.php:802
+#: ../../boot.php:811
 msgid "Or login using OpenID: "
 msgstr ""
 
-#: ../../boot.php:808
+#: ../../boot.php:817
 msgid "Forgot your password?"
 msgstr ""
 
-#: ../../boot.php:975
+#: ../../boot.php:984
 msgid "Edit profile"
 msgstr ""
 
-#: ../../boot.php:1035
+#: ../../boot.php:1044
 msgid "Message"
 msgstr ""
 
-#: ../../boot.php:1151 ../../boot.php:1227
+#: ../../boot.php:1160 ../../boot.php:1236
 msgid "g A l F d"
 msgstr ""
 
-#: ../../boot.php:1152 ../../boot.php:1228
+#: ../../boot.php:1161 ../../boot.php:1237
 msgid "F d"
 msgstr ""
 
-#: ../../boot.php:1197 ../../boot.php:1268
+#: ../../boot.php:1206 ../../boot.php:1277
 msgid "[today]"
 msgstr ""
 
-#: ../../boot.php:1209
+#: ../../boot.php:1218
 msgid "Birthday Reminders"
 msgstr ""
 
-#: ../../boot.php:1210
+#: ../../boot.php:1219
 msgid "Birthdays this week:"
 msgstr ""
 
-#: ../../boot.php:1261
+#: ../../boot.php:1270
 msgid "[No description]"
 msgstr ""
 
-#: ../../boot.php:1279
+#: ../../boot.php:1288
 msgid "Event Reminders"
 msgstr ""
 
-#: ../../boot.php:1280
+#: ../../boot.php:1289
 msgid "Events this week:"
 msgstr ""
+
+#: ../../boot.php:1475
+msgid "Status Messages and Posts"
+msgstr ""
+
+#: ../../boot.php:1481
+msgid "Profile Details"
+msgstr ""
+
+#: ../../boot.php:1496
+msgid "Events and Calendar"
+msgstr ""
+
+#: ../../boot.php:1502
+msgid "Only You Can See This"
+msgstr ""
index 4bf7ce9d3a1f172f0db4653112da0d5620fa627f..f25a1eb4ba2325eef9f8bdc3665b480f068e66b7 100644 (file)
        <li class='admin link button $admin.users.2'><a href='$admin.users.0'>$admin.users.1</a><span id='pending-update' title='$h_pending'></span></li>
        <li class='admin link button $admin.plugins.2'><a href='$admin.plugins.0'>$admin.plugins.1</a></li>
        <li class='admin link button $admin.themes.2'><a href='$admin.themes.0'>$admin.themes.1</a></li>
+       <li class='admin link button $admin.dbsync.2'><a href='$admin.dbsync.0'>$admin.dbsync.1</a></li>
 </ul>
 
 <ul class='admin linklist'>
        <li class='admin link button $admin.update.2'><a href='$admin.update.0'>$admin.update.1</a></li>
+       <li class='admin link button $admin.update.2'><a href='https://kakste.com/profile/inthegit'>Important Changes</a></li>
 </ul>
 
 
index 2b9db9f357bb248534e72c41aa16c6d19262ed77..265f2724df2bd97fb39a36f94a32e2582c499090 100644 (file)
@@ -80,6 +80,8 @@
        {{ inc field_input.tpl with $field=$proxy }}{{ endinc }}
        {{ inc field_input.tpl with $field=$proxyuser }}{{ endinc }}
        {{ inc field_input.tpl with $field=$timeout }}{{ endinc }}
+       {{ inc field_input.tpl with $field=$delivery_interval }}{{ endinc }}
+       {{ inc field_input.tpl with $field=$maxloadavg }}{{ endinc }}
        {{ inc field_input.tpl with $field=$abandon_days }}{{ endinc }}
        
        <div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
index 146ad29fa047998c86239619d4838579e296559b..22c33d6b1f2a8e3cb967de0accb9a8ae711909f9 100644 (file)
@@ -1,5 +1,5 @@
 <ul class="tabs">
        {{ for $tabs as $tab }}
-               <li><a href="$tab.url" class="tab button $tab.sel">$tab.label</a></li>
+               <li><a href="$tab.url" class="tab button $tab.sel"{{ if $tab.title }} title="$tab.title"{{ endif }}>$tab.label</a></li>
        {{ endfor }}
 </ul>
index 417578a32eb07a8e562e0ec8fb6b12f43f162711..eeedda3a4ad228775e44bf79525e9f05273b3144 100644 (file)
                                {{ if $ignored }}
                                        <li><div id="ignore-message">$ignored</div></li>
                                {{ endif }}
+                               {{ if $archived }}
+                                       <li><div id="archive-message">$archived</div></li>
+                               {{ endif }}
 
                                <li>&nbsp;</li>
 
                                {{ if $common_text }}
-                                       <li><div id="contact-edit-common"><a href="common/$contact_id">$common_text</a></div></li>
+                                       <li><div id="contact-edit-common"><a href="$common_link">$common_text</a></div></li>
                                {{ endif }}
                                {{ if $all_friends }}
                                        <li><div id="contact-edit-allfriends"><a href="allfriends/$contact_id">$all_friends</a></div></li>
index d7259a2406912ab49fb0e5a39b477f69b276ffb0..a866a08a2de188dab411fddf3c66566c98a93b28 100644 (file)
@@ -1,15 +1,14 @@
 
-Hallo $myname,
+Hallo $[myname],
 
-'$requestor' folgt dir jetzt auf $sitename.
+Du hast einen neuen Anhänger auf $[sitename] -  '$[requestor]'.
 
-Du kannst das Profil unter $url abrufen.
+Du kannst das Profil unter $[url] besuchen.
 
-Bitte melde dich auf deiner Seite an um die Anfrage zu bestätigen, abzulehnen
-oder zu ignorieren.
+Bitte melde dich an um die Anfrage zu bestätigen oder sie zu ignorieren bzw. abzulehnen.
 
-$siteurl
+$[siteurl]
 
-Grüße,
-    $sitename Administrator
+beste Grüße,
 
+       $[sitename] Administrator
\ No newline at end of file
index 4c06d0c8d71146ae357d5b09021703bfde45113a..9f71bbfb1dba8659d511172b6372205869d903a6 100644 (file)
@@ -1,32 +1,32 @@
 
-Liebe/r $username,
-wir haben gerade eine Anfrage erhalten dein Passwort auf $sitename zu ändern.
-Um diese Anfrage zu bestätigen folge bitte dem Bestätigungslink oder kopiere
-ihn in die Adresszeile deines Browsers.
+Hallo $[username],
+       Auf $[sitename] wurde eine Anfrage zum Zurücksetzen deines 
+Passworts empfangen. Um diese zu bestätigen folge bitte dem Link
+weiter unten oder kopiere ihn in die Adressleiste deines Browsers. 
 
-Solltest du KEINE Änderungsanfrage gestellt haben ignoriere diese EMail einfach
-und folge dem angegebenen Link UNTER KEINEN UMSTÄNDEN.
+Wenn du die Anfrage NICHT gesendet haben solltest, dann IGNORIERE
+bitte diese Mail und den Link. 
 
-Dein Passwort wird nicht geändert wenn du die Anfrage nicht bestätigst.
+Dein Passwort wird nicht geändert werden solange wir nicht überprüfen
+konnten, dass du die Anfrage gestellt hast. 
 
-Folge diesem Link zur Verifizierung der Anfrage:
+Folge diesem Link um deine Identität zu verifizieren:
 
-$reset_link
+$[reset_link]
 
-Anschließend wirst du eine EMail erhalten die dein neues Passwort enthält.
+Du wirst eine weitere Email erhalten mit dem neuen Passwort.
 
-Du kannst dein Passwort jederzeit in den Einstellungen deines Accounts ändern
-nachdem du angemeldet bist.
+Das Passwort kannst du anschließend wie gewohnt in deinen Account Einstellungen ändern.
 
-Die Anmelde Daten sind die Folgenden:
+Die Login-Details sind die folgenden:
 
-Adresse der Seite:     $siteurl
-Anmelde Name:  $email
+Adresse der Seite:     $[siteurl]
+Login Name:    $[email]
 
 
 
 
-Mit freundlichen Grüßen,
-       $sitename Administrator
+Grüße,
+       $[sitename] Administrator
 
\ No newline at end of file
index 8dc3ec615bdfacc8da38e22dd3f217177a44697c..409a967bd71917132f4951c68bdd19bca0c7892e 100644 (file)
@@ -19,8 +19,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: friendica\n"
 "Report-Msgid-Bugs-To: http://bugs.friendica.com/\n"
-"POT-Creation-Date: 2012-04-22 10:00-0700\n"
-"PO-Revision-Date: 2012-04-23 18:48+0000\n"
+"POT-Creation-Date: 2012-05-02 10:00-0700\n"
+"PO-Revision-Date: 2012-05-04 05:22+0000\n"
 "Last-Translator: bavatar <tobias.diekershoff@gmx.net>\n"
 "Language-Team: German (http://www.transifex.net/projects/p/friendica/language/de/)\n"
 "MIME-Version: 1.0\n"
@@ -51,8 +51,8 @@ msgstr "Konnte den Kontakt nicht aktualisieren."
 #: ../../mod/api.php:31 ../../mod/photos.php:130 ../../mod/photos.php:865
 #: ../../mod/editpost.php:10 ../../mod/install.php:171
 #: ../../mod/notifications.php:66 ../../mod/contacts.php:125
-#: ../../mod/settings.php:99 ../../mod/settings.php:514
-#: ../../mod/settings.php:519 ../../mod/manage.php:86 ../../mod/network.php:6
+#: ../../mod/settings.php:104 ../../mod/settings.php:521
+#: ../../mod/settings.php:526 ../../mod/manage.php:86 ../../mod/network.php:6
 #: ../../mod/notes.php:20 ../../mod/wallmessage.php:9
 #: ../../mod/wallmessage.php:33 ../../mod/wallmessage.php:79
 #: ../../mod/wallmessage.php:103 ../../mod/attach.php:33
@@ -62,13 +62,13 @@ msgstr "Konnte den Kontakt nicht aktualisieren."
 #: ../../mod/profile_photo.php:139 ../../mod/profile_photo.php:150
 #: ../../mod/profile_photo.php:163 ../../mod/message.php:38
 #: ../../mod/message.php:90 ../../mod/allfriends.php:9
-#: ../../mod/nogroup.php:25 ../../mod/wall_upload.php:46
+#: ../../mod/nogroup.php:25 ../../mod/wall_upload.php:53
 #: ../../mod/follow.php:8 ../../mod/common.php:9 ../../mod/display.php:138
-#: ../../mod/profiles.php:7 ../../mod/profiles.php:329
+#: ../../mod/profiles.php:7 ../../mod/profiles.php:365
 #: ../../mod/delegate.php:6 ../../mod/suggest.php:28 ../../mod/invite.php:13
 #: ../../mod/invite.php:81 ../../mod/dfrn_confirm.php:53
-#: ../../addon/facebook/facebook.php:484 ../../include/items.php:3171
-#: ../../index.php:309
+#: ../../addon/facebook/facebook.php:485 ../../include/items.php:3187
+#: ../../index.php:306
 msgid "Permission denied."
 msgstr "Zugriff verweigert."
 
@@ -97,8 +97,8 @@ msgstr "Bitte nutze den Zurück-Button deines Browsers <strong>jetzt</strong>, w
 msgid "Return to contact editor"
 msgstr "Zurück zum Kontakteditor"
 
-#: ../../mod/crepair.php:148 ../../mod/settings.php:534
-#: ../../mod/settings.php:560 ../../mod/admin.php:573 ../../mod/admin.php:582
+#: ../../mod/crepair.php:148 ../../mod/settings.php:541
+#: ../../mod/settings.php:567 ../../mod/admin.php:638 ../../mod/admin.php:647
 msgid "Name"
 msgstr "Name"
 
@@ -139,19 +139,19 @@ msgstr "Neues Foto von dieser URL"
 #: ../../mod/photos.php:1193 ../../mod/photos.php:1233
 #: ../../mod/photos.php:1273 ../../mod/photos.php:1304
 #: ../../mod/install.php:251 ../../mod/install.php:289
-#: ../../mod/localtime.php:45 ../../mod/contacts.php:325
-#: ../../mod/settings.php:532 ../../mod/settings.php:678
-#: ../../mod/settings.php:739 ../../mod/settings.php:930
-#: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/admin.php:392
-#: ../../mod/admin.php:570 ../../mod/admin.php:706 ../../mod/admin.php:905
-#: ../../mod/admin.php:993 ../../mod/profiles.php:498 ../../mod/invite.php:119
-#: ../../addon/facebook/facebook.php:574 ../../addon/yourls/yourls.php:76
-#: ../../addon/ljpost/ljpost.php:93 ../../addon/nsfw/nsfw.php:57
-#: ../../addon/planets/planets.php:158
+#: ../../mod/localtime.php:45 ../../mod/contacts.php:322
+#: ../../mod/settings.php:539 ../../mod/settings.php:685
+#: ../../mod/settings.php:746 ../../mod/settings.php:940
+#: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/admin.php:400
+#: ../../mod/admin.php:635 ../../mod/admin.php:771 ../../mod/admin.php:970
+#: ../../mod/admin.php:1057 ../../mod/profiles.php:534
+#: ../../mod/invite.php:119 ../../addon/facebook/facebook.php:575
+#: ../../addon/yourls/yourls.php:76 ../../addon/ljpost/ljpost.php:93
+#: ../../addon/nsfw/nsfw.php:57 ../../addon/planets/planets.php:158
 #: ../../addon/uhremotestorage/uhremotestorage.php:89
 #: ../../addon/randplace/randplace.php:177 ../../addon/dwpost/dwpost.php:93
 #: ../../addon/drpost/drpost.php:110 ../../addon/geonames/geonames.php:187
-#: ../../addon/oembed.old/oembed.php:41 ../../addon/impressum/impressum.php:80
+#: ../../addon/oembed.old/oembed.php:41 ../../addon/impressum/impressum.php:82
 #: ../../addon/blockem/blockem.php:57 ../../addon/qcomment/qcomment.php:61
 #: ../../addon/openstreetmap/openstreetmap.php:70
 #: ../../addon/mathjax/mathjax.php:42 ../../addon/editplain/editplain.php:84
@@ -170,14 +170,10 @@ msgstr "Neues Foto von dieser URL"
 #: ../../addon/twitter/twitter.php:209 ../../addon/twitter/twitter.php:375
 #: ../../addon/irc/irc.php:55 ../../addon/blogger/blogger.php:102
 #: ../../addon/posterous/posterous.php:90
-#: ../../view/theme/diabook/diabook-green/config.php:76
-#: ../../view/theme/diabook/diabook-red/config.php:76
-#: ../../view/theme/diabook/diabook-blue/config.php:76
-#: ../../view/theme/diabook/diabook-dark/config.php:76
-#: ../../view/theme/diabook/diabook-aerith/config.php:76
-#: ../../view/theme/diabook/diabook-pink/config.php:76
+#: ../../view/theme/cleanzero/config.php:71
 #: ../../view/theme/diabook/config.php:91
-#: ../../view/theme/quattro/config.php:52 ../../include/conversation.php:555
+#: ../../view/theme/quattro/config.php:52 ../../view/theme/dispy/config.php:70
+#: ../../include/conversation.php:555
 msgid "Submit"
 msgstr "Senden"
 
@@ -189,11 +185,11 @@ msgstr "Hilfe:"
 msgid "Help"
 msgstr "Hilfe"
 
-#: ../../mod/help.php:38 ../../index.php:228
+#: ../../mod/help.php:38 ../../index.php:225
 msgid "Not Found"
 msgstr "Nicht gefunden"
 
-#: ../../mod/help.php:41 ../../index.php:231
+#: ../../mod/help.php:41 ../../index.php:228
 msgid "Page not found."
 msgstr "Seite nicht gefunden."
 
@@ -235,15 +231,8 @@ msgstr "Veranstaltung bearbeiten"
 msgid "link to source"
 msgstr "Link zum Originalbeitrag"
 
-#: ../../mod/events.php:296
-#: ../../view/theme/diabook/diabook-green/theme.php:233
-#: ../../view/theme/diabook/diabook-red/theme.php:231
-#: ../../view/theme/diabook/diabook-blue/theme.php:231
-#: ../../view/theme/diabook/theme.php:250
-#: ../../view/theme/diabook/diabook-dark/theme.php:233
-#: ../../view/theme/diabook/diabook-aerith/theme.php:233
-#: ../../view/theme/diabook/diabook-pink/theme.php:233
-#: ../../include/nav.php:52 ../../boot.php:1471
+#: ../../mod/events.php:296 ../../view/theme/diabook/theme.php:274
+#: ../../include/nav.php:52 ../../boot.php:1493
 msgid "Events"
 msgstr "Veranstaltungen"
 
@@ -293,7 +282,7 @@ msgid "Description:"
 msgstr "Beschreibung"
 
 #: ../../mod/events.php:395 ../../include/event.php:37
-#: ../../include/bb2diaspora.php:260 ../../boot.php:1083
+#: ../../include/bb2diaspora.php:260 ../../boot.php:1092
 msgid "Location:"
 msgstr "Ort:"
 
@@ -302,8 +291,8 @@ msgid "Share this event"
 msgstr "Veranstaltung teilen"
 
 #: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94
-#: ../../mod/dfrn_request.php:752 ../../mod/settings.php:533
-#: ../../mod/settings.php:559 ../../addon/js_upload/js_upload.php:45
+#: ../../mod/dfrn_request.php:818 ../../mod/settings.php:540
+#: ../../mod/settings.php:566 ../../addon/js_upload/js_upload.php:45
 msgid "Cancel"
 msgstr "Abbrechen"
 
@@ -346,42 +335,36 @@ msgid ""
 " and/or create new posts for you?"
 msgstr "Möchtest du dieser Anwendung den Zugriff auf deine Beiträge und Kontakte, sowie das Erstellen neuer Beiträge in deinem Namen gestatten?"
 
-#: ../../mod/api.php:105 ../../mod/dfrn_request.php:740
-#: ../../mod/settings.php:844 ../../mod/settings.php:850
-#: ../../mod/settings.php:858 ../../mod/settings.php:862
-#: ../../mod/settings.php:867 ../../mod/settings.php:873
-#: ../../mod/settings.php:879 ../../mod/settings.php:885
-#: ../../mod/settings.php:921 ../../mod/settings.php:922
-#: ../../mod/settings.php:923 ../../mod/settings.php:924
-#: ../../mod/register.php:532 ../../mod/profiles.php:475
+#: ../../mod/api.php:105 ../../mod/dfrn_request.php:806
+#: ../../mod/settings.php:854 ../../mod/settings.php:860
+#: ../../mod/settings.php:868 ../../mod/settings.php:872
+#: ../../mod/settings.php:877 ../../mod/settings.php:883
+#: ../../mod/settings.php:889 ../../mod/settings.php:895
+#: ../../mod/settings.php:931 ../../mod/settings.php:932
+#: ../../mod/settings.php:933 ../../mod/settings.php:934
+#: ../../mod/register.php:532 ../../mod/profiles.php:511
 msgid "Yes"
 msgstr "Ja"
 
-#: ../../mod/api.php:106 ../../mod/dfrn_request.php:741
-#: ../../mod/settings.php:844 ../../mod/settings.php:850
-#: ../../mod/settings.php:858 ../../mod/settings.php:862
-#: ../../mod/settings.php:867 ../../mod/settings.php:873
-#: ../../mod/settings.php:879 ../../mod/settings.php:885
-#: ../../mod/settings.php:921 ../../mod/settings.php:922
-#: ../../mod/settings.php:923 ../../mod/settings.php:924
-#: ../../mod/register.php:533 ../../mod/profiles.php:476
+#: ../../mod/api.php:106 ../../mod/dfrn_request.php:807
+#: ../../mod/settings.php:854 ../../mod/settings.php:860
+#: ../../mod/settings.php:868 ../../mod/settings.php:872
+#: ../../mod/settings.php:877 ../../mod/settings.php:883
+#: ../../mod/settings.php:889 ../../mod/settings.php:895
+#: ../../mod/settings.php:931 ../../mod/settings.php:932
+#: ../../mod/settings.php:933 ../../mod/settings.php:934
+#: ../../mod/register.php:533 ../../mod/profiles.php:512
 msgid "No"
 msgstr "Nein"
 
-#: ../../mod/photos.php:43
+#: ../../mod/photos.php:43 ../../boot.php:1487
 msgid "Photo Albums"
 msgstr "Fotoalben"
 
 #: ../../mod/photos.php:51 ../../mod/photos.php:151 ../../mod/photos.php:879
 #: ../../mod/photos.php:950 ../../mod/photos.php:965 ../../mod/photos.php:1382
 #: ../../mod/photos.php:1394 ../../addon/communityhome/communityhome.php:110
-#: ../../view/theme/diabook/diabook-green/theme.php:116
-#: ../../view/theme/diabook/diabook-red/theme.php:115
-#: ../../view/theme/diabook/diabook-blue/theme.php:115
-#: ../../view/theme/diabook/theme.php:130
-#: ../../view/theme/diabook/diabook-dark/theme.php:116
-#: ../../view/theme/diabook/diabook-aerith/theme.php:116
-#: ../../view/theme/diabook/diabook-pink/theme.php:116
+#: ../../view/theme/diabook/theme.php:155
 msgid "Contact Photos"
 msgstr "Kontaktbilder"
 
@@ -404,13 +387,7 @@ msgstr "Kontaktinformationen nicht verfügbar"
 #: ../../mod/profile_photo.php:74 ../../mod/profile_photo.php:174
 #: ../../mod/profile_photo.php:252 ../../mod/profile_photo.php:261
 #: ../../addon/communityhome/communityhome.php:111
-#: ../../view/theme/diabook/diabook-green/theme.php:117
-#: ../../view/theme/diabook/diabook-red/theme.php:116
-#: ../../view/theme/diabook/diabook-blue/theme.php:116
-#: ../../view/theme/diabook/theme.php:131
-#: ../../view/theme/diabook/diabook-dark/theme.php:117
-#: ../../view/theme/diabook/diabook-aerith/theme.php:117
-#: ../../view/theme/diabook/diabook-pink/theme.php:117
+#: ../../view/theme/diabook/theme.php:156
 msgid "Profile Photos"
 msgstr "Profilbilder"
 
@@ -432,15 +409,9 @@ msgstr "wurde getaggt in einem"
 
 #: ../../mod/photos.php:528 ../../mod/like.php:127 ../../mod/tagger.php:70
 #: ../../addon/communityhome/communityhome.php:163
-#: ../../view/theme/diabook/diabook-green/theme.php:88
-#: ../../view/theme/diabook/diabook-red/theme.php:87
-#: ../../view/theme/diabook/diabook-blue/theme.php:87
-#: ../../view/theme/diabook/theme.php:102
-#: ../../view/theme/diabook/diabook-dark/theme.php:88
-#: ../../view/theme/diabook/diabook-aerith/theme.php:88
-#: ../../view/theme/diabook/diabook-pink/theme.php:88
-#: ../../include/text.php:1304 ../../include/diaspora.php:1654
-#: ../../include/conversation.php:53 ../../include/conversation.php:126
+#: ../../view/theme/diabook/theme.php:127 ../../include/text.php:1304
+#: ../../include/diaspora.php:1654 ../../include/conversation.php:53
+#: ../../include/conversation.php:126
 msgid "photo"
 msgstr "Foto"
 
@@ -457,17 +428,17 @@ msgid "Image file is empty."
 msgstr "Bilddatei ist leer."
 
 #: ../../mod/photos.php:653 ../../mod/profile_photo.php:124
-#: ../../mod/wall_upload.php:69
+#: ../../mod/wall_upload.php:83
 msgid "Unable to process image."
 msgstr "Konnte das Bild nicht bearbeiten."
 
 #: ../../mod/photos.php:673 ../../mod/profile_photo.php:257
-#: ../../mod/wall_upload.php:88
+#: ../../mod/wall_upload.php:102
 msgid "Image upload failed."
 msgstr "Hochladen des Bildes gescheitert."
 
 #: ../../mod/photos.php:759 ../../mod/community.php:16
-#: ../../mod/dfrn_request.php:671 ../../mod/viewcontacts.php:17
+#: ../../mod/dfrn_request.php:732 ../../mod/viewcontacts.php:17
 #: ../../mod/display.php:7 ../../mod/search.php:71 ../../mod/directory.php:29
 msgid "Public access denied."
 msgstr "Öffentlicher Zugriff verweigert."
@@ -569,14 +540,14 @@ msgstr "Ich mag das (toggle)"
 msgid "I don't like this (toggle)"
 msgstr "Ich mag das nicht (toggle)"
 
-#: ../../mod/photos.php:1213 ../../include/conversation.php:956
+#: ../../mod/photos.php:1213 ../../include/conversation.php:964
 msgid "Share"
 msgstr "Teilen"
 
 #: ../../mod/photos.php:1214 ../../mod/editpost.php:104
 #: ../../mod/wallmessage.php:145 ../../mod/message.php:188
-#: ../../mod/message.php:357 ../../include/conversation.php:361
-#: ../../include/conversation.php:698 ../../include/conversation.php:975
+#: ../../mod/message.php:380 ../../include/conversation.php:361
+#: ../../include/conversation.php:706 ../../include/conversation.php:983
 msgid "Please wait"
 msgstr "Bitte warten"
 
@@ -587,18 +558,18 @@ msgstr "Das bist du"
 
 #: ../../mod/photos.php:1232 ../../mod/photos.php:1272
 #: ../../mod/photos.php:1303 ../../include/conversation.php:554
-#: ../../boot.php:495
+#: ../../boot.php:506
 msgid "Comment"
 msgstr "Kommentar"
 
 #: ../../mod/photos.php:1234 ../../mod/editpost.php:125
-#: ../../include/conversation.php:556 ../../include/conversation.php:993
+#: ../../include/conversation.php:564 ../../include/conversation.php:1001
 msgid "Preview"
 msgstr "Vorschau"
 
-#: ../../mod/photos.php:1331 ../../mod/settings.php:595
-#: ../../mod/settings.php:676 ../../mod/group.php:168 ../../mod/admin.php:577
-#: ../../include/conversation.php:318 ../../include/conversation.php:576
+#: ../../mod/photos.php:1331 ../../mod/settings.php:602
+#: ../../mod/settings.php:683 ../../mod/group.php:168 ../../mod/admin.php:642
+#: ../../include/conversation.php:318 ../../include/conversation.php:584
 msgid "Delete"
 msgstr "Löschen"
 
@@ -614,51 +585,44 @@ msgstr "Neueste Fotos"
 msgid "Not available."
 msgstr "Nicht verfügbar."
 
-#: ../../mod/community.php:30
-#: ../../view/theme/diabook/diabook-green/theme.php:235
-#: ../../view/theme/diabook/diabook-red/theme.php:233
-#: ../../view/theme/diabook/diabook-blue/theme.php:233
-#: ../../view/theme/diabook/theme.php:252
-#: ../../view/theme/diabook/diabook-dark/theme.php:235
-#: ../../view/theme/diabook/diabook-aerith/theme.php:235
-#: ../../view/theme/diabook/diabook-pink/theme.php:235
+#: ../../mod/community.php:30 ../../view/theme/diabook/theme.php:276
 #: ../../include/nav.php:101
 msgid "Community"
 msgstr "Gemeinschaft"
 
-#: ../../mod/community.php:61 ../../mod/search.php:115
+#: ../../mod/community.php:61 ../../mod/search.php:128
 msgid "No results."
 msgstr "Keine Ergebnisse."
 
-#: ../../mod/friendica.php:47
+#: ../../mod/friendica.php:55
 msgid "This is Friendica, version"
 msgstr "Dies ist Friendica, Version"
 
-#: ../../mod/friendica.php:48
+#: ../../mod/friendica.php:56
 msgid "running at web location"
 msgstr "die unter folgender Webadresse zu finden ist"
 
-#: ../../mod/friendica.php:50
+#: ../../mod/friendica.php:58
 msgid ""
 "Please visit <a href=\"http://friendica.com\">Friendica.com</a> to learn "
 "more about the Friendica project."
 msgstr "Bitte besuche <a href=\"http://friendica.com\">Friendica.com</a> um mehr über das Friendica Projekt zu erfahren."
 
-#: ../../mod/friendica.php:52
+#: ../../mod/friendica.php:60
 msgid "Bug reports and issues: please visit"
 msgstr "Probleme oder Fehler gefunden? Bitte besuche"
 
-#: ../../mod/friendica.php:53
+#: ../../mod/friendica.php:61
 msgid ""
 "Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - "
 "dot com"
 msgstr "Vorschläge, Lob, Spenden usw.: E-Mail an \"Info\" at Friendica - dot com"
 
-#: ../../mod/friendica.php:58
+#: ../../mod/friendica.php:75
 msgid "Installed plugins/addons/apps:"
 msgstr "Installierte Plugins/Erweiterungen/Apps"
 
-#: ../../mod/friendica.php:71
+#: ../../mod/friendica.php:88
 msgid "No installed plugins/addons/apps"
 msgstr "Keine Plugins/Erweiterungen/Apps installiert"
 
@@ -670,28 +634,28 @@ msgstr "Beitrag nicht gefunden"
 msgid "Edit post"
 msgstr "Beitrag bearbeiten"
 
-#: ../../mod/editpost.php:80 ../../include/conversation.php:942
+#: ../../mod/editpost.php:80 ../../include/conversation.php:950
 msgid "Post to Email"
 msgstr "An E-Mail senden"
 
-#: ../../mod/editpost.php:95 ../../mod/settings.php:594
-#: ../../include/conversation.php:563
+#: ../../mod/editpost.php:95 ../../mod/settings.php:601
+#: ../../include/conversation.php:571
 msgid "Edit"
 msgstr "Bearbeiten"
 
 #: ../../mod/editpost.php:96 ../../mod/wallmessage.php:143
-#: ../../mod/message.php:186 ../../mod/message.php:355
-#: ../../include/conversation.php:957
+#: ../../mod/message.php:186 ../../mod/message.php:378
+#: ../../include/conversation.php:965
 msgid "Upload photo"
 msgstr "Foto hochladen"
 
-#: ../../mod/editpost.php:97 ../../include/conversation.php:959
+#: ../../mod/editpost.php:97 ../../include/conversation.php:967
 msgid "Attach file"
 msgstr "Datei anhängen"
 
 #: ../../mod/editpost.php:98 ../../mod/wallmessage.php:144
-#: ../../mod/message.php:187 ../../mod/message.php:356
-#: ../../include/conversation.php:961
+#: ../../mod/message.php:187 ../../mod/message.php:379
+#: ../../include/conversation.php:969
 msgid "Insert web link"
 msgstr "einen Link einfügen"
 
@@ -707,35 +671,35 @@ msgstr "Vorbis [.ogg] Video einfügen"
 msgid "Insert Vorbis [.ogg] audio"
 msgstr "Vorbis [.ogg] Audio einfügen"
 
-#: ../../mod/editpost.php:102 ../../include/conversation.php:967
+#: ../../mod/editpost.php:102 ../../include/conversation.php:975
 msgid "Set your location"
 msgstr "Deinen Standort festlegen"
 
-#: ../../mod/editpost.php:103 ../../include/conversation.php:969
+#: ../../mod/editpost.php:103 ../../include/conversation.php:977
 msgid "Clear browser location"
 msgstr "Browser-Standort leeren"
 
-#: ../../mod/editpost.php:105 ../../include/conversation.php:976
+#: ../../mod/editpost.php:105 ../../include/conversation.php:984
 msgid "Permission settings"
 msgstr "Berechtigungseinstellungen"
 
-#: ../../mod/editpost.php:113 ../../include/conversation.php:985
+#: ../../mod/editpost.php:113 ../../include/conversation.php:993
 msgid "CC: email addresses"
 msgstr "Cc:-E-Mail-Addressen"
 
-#: ../../mod/editpost.php:114 ../../include/conversation.php:986
+#: ../../mod/editpost.php:114 ../../include/conversation.php:994
 msgid "Public post"
 msgstr "Öffentlicher Beitrag"
 
-#: ../../mod/editpost.php:117 ../../include/conversation.php:972
+#: ../../mod/editpost.php:117 ../../include/conversation.php:980
 msgid "Set title"
 msgstr "Titel setzen"
 
-#: ../../mod/editpost.php:119 ../../include/conversation.php:974
+#: ../../mod/editpost.php:119 ../../include/conversation.php:982
 msgid "Categories (comma-separated list)"
-msgstr "Kategorien (mit Komma separierte Liste)"
+msgstr "Kategorien (kommasepariert)"
 
-#: ../../mod/editpost.php:120 ../../include/conversation.php:988
+#: ../../mod/editpost.php:120 ../../include/conversation.php:996
 msgid "Example: bob@example.com, mary@example.com"
 msgstr "Z.B.: bob@example.com, mary@example.com"
 
@@ -743,19 +707,19 @@ msgstr "Z.B.: bob@example.com, mary@example.com"
 msgid "This introduction has already been accepted."
 msgstr "Diese Kontaktanfrage wurde bereits akzeptiert."
 
-#: ../../mod/dfrn_request.php:117 ../../mod/dfrn_request.php:427
+#: ../../mod/dfrn_request.php:117 ../../mod/dfrn_request.php:487
 msgid "Profile location is not valid or does not contain profile information."
 msgstr "Profiladresse ist ungültig oder stellt einige Profildaten nicht zur Verfügung."
 
-#: ../../mod/dfrn_request.php:122 ../../mod/dfrn_request.php:432
+#: ../../mod/dfrn_request.php:122 ../../mod/dfrn_request.php:492
 msgid "Warning: profile location has no identifiable owner name."
 msgstr "Warnung: Es konnte kein Name des Besitzers von der angegebenen Profiladresse gefunden werden."
 
-#: ../../mod/dfrn_request.php:124 ../../mod/dfrn_request.php:434
+#: ../../mod/dfrn_request.php:124 ../../mod/dfrn_request.php:494
 msgid "Warning: profile location has no profile photo."
 msgstr "Warnung: Es konnte kein Profilbild bei der angegebenen Profiladresse gefunden werden."
 
-#: ../../mod/dfrn_request.php:127 ../../mod/dfrn_request.php:437
+#: ../../mod/dfrn_request.php:127 ../../mod/dfrn_request.php:497
 #, php-format
 msgid "%d required parameter was not found at the given location"
 msgid_plural "%d required parameters were not found at the given location"
@@ -799,128 +763,128 @@ msgstr "Ungültige E-Mail Adresse."
 msgid "This account has not been configured for email. Request failed."
 msgstr "Dieses Konto ist nicht für Email konfiguriert. Anfrage fehlgeschlagen."
 
-#: ../../mod/dfrn_request.php:372
+#: ../../mod/dfrn_request.php:432
 msgid "Unable to resolve your name at the provided location."
 msgstr "Konnte deinen Namen an der angegebenen Stelle nicht finden."
 
-#: ../../mod/dfrn_request.php:385
+#: ../../mod/dfrn_request.php:445
 msgid "You have already introduced yourself here."
 msgstr "Du hast dich hier bereits vorgestellt."
 
-#: ../../mod/dfrn_request.php:389
+#: ../../mod/dfrn_request.php:449
 #, php-format
 msgid "Apparently you are already friends with %s."
 msgstr "Es scheint so, als ob du bereits mit %s befreundet bist."
 
-#: ../../mod/dfrn_request.php:410
+#: ../../mod/dfrn_request.php:470
 msgid "Invalid profile URL."
 msgstr "Ungültige Profil-URL."
 
-#: ../../mod/dfrn_request.php:416 ../../mod/follow.php:20
+#: ../../mod/dfrn_request.php:476 ../../mod/follow.php:20
 msgid "Disallowed profile URL."
 msgstr "Nicht erlaubte Profil-URL."
 
-#: ../../mod/dfrn_request.php:485 ../../mod/contacts.php:102
+#: ../../mod/dfrn_request.php:545 ../../mod/contacts.php:102
 msgid "Failed to update contact record."
 msgstr "Aktualisierung der Kontaktdaten fehlgeschlagen."
 
-#: ../../mod/dfrn_request.php:506
+#: ../../mod/dfrn_request.php:566
 msgid "Your introduction has been sent."
 msgstr "Deine Kontaktanfrage wurde gesendet."
 
-#: ../../mod/dfrn_request.php:559
+#: ../../mod/dfrn_request.php:619
 msgid "Please login to confirm introduction."
 msgstr "Bitte melde dich an, um die Kontaktanfrage zu bestätigen."
 
-#: ../../mod/dfrn_request.php:573
+#: ../../mod/dfrn_request.php:633
 msgid ""
 "Incorrect identity currently logged in. Please login to "
 "<strong>this</strong> profile."
 msgstr "Momentan bist du mit einer anderen Identität angemeldet. Bitte melde Dich mit <strong>diesem</strong> Profil an."
 
-#: ../../mod/dfrn_request.php:585
+#: ../../mod/dfrn_request.php:645
 #, php-format
 msgid "Welcome home %s."
 msgstr "Willkommen zurück %s."
 
-#: ../../mod/dfrn_request.php:586
+#: ../../mod/dfrn_request.php:646
 #, php-format
 msgid "Please confirm your introduction/connection request to %s."
 msgstr "Bitte bestätige deine Kontaktanfrage bei %s."
 
-#: ../../mod/dfrn_request.php:587
+#: ../../mod/dfrn_request.php:647
 msgid "Confirm"
 msgstr "Bestätigen"
 
-#: ../../mod/dfrn_request.php:628 ../../include/items.php:2691
+#: ../../mod/dfrn_request.php:688 ../../include/items.php:2707
 msgid "[Name Withheld]"
 msgstr "[Name unterdrückt]"
 
-#: ../../mod/dfrn_request.php:715
+#: ../../mod/dfrn_request.php:781
 msgid ""
 "Please enter your 'Identity Address' from one of the following supported "
 "communications networks:"
 msgstr "Bitte gib die Adresse deines Profils in einem der unterstützten sozialen Netzwerke an:"
 
-#: ../../mod/dfrn_request.php:731
+#: ../../mod/dfrn_request.php:797
 msgid "<strike>Connect as an email follower</strike> (Coming soon)"
 msgstr "<strike>Als E-Mail-Kontakt verbinden</strike> (In Kürze verfügbar)"
 
-#: ../../mod/dfrn_request.php:733
+#: ../../mod/dfrn_request.php:799
 msgid ""
 "If you are not yet a member of the free social web, <a "
 "href=\"http://dir.friendica.com/siteinfo\">follow this link to find a public"
 " Friendica site and join us today</a>."
 msgstr "Wenn du noch kein Mitglied dieses freien sozialen Netzwerks bist, <a href=\"http://dir.friendica.com/siteinfo\">folge diesem Link</a> um einen öffentlichen Friendica-Server zu finden und beizutreten."
 
-#: ../../mod/dfrn_request.php:736
+#: ../../mod/dfrn_request.php:802
 msgid "Friend/Connection Request"
 msgstr "Freundschafts-/Kontaktanfrage"
 
-#: ../../mod/dfrn_request.php:737
+#: ../../mod/dfrn_request.php:803
 msgid ""
 "Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, "
 "testuser@identi.ca"
 msgstr "Beispiele: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"
 
-#: ../../mod/dfrn_request.php:738
+#: ../../mod/dfrn_request.php:804
 msgid "Please answer the following:"
 msgstr "Bitte beantworte Folgendes:"
 
-#: ../../mod/dfrn_request.php:739
+#: ../../mod/dfrn_request.php:805
 #, php-format
 msgid "Does %s know you?"
 msgstr "Kennt %s dich?"
 
-#: ../../mod/dfrn_request.php:742
+#: ../../mod/dfrn_request.php:808
 msgid "Add a personal note:"
 msgstr "Eine persönliche Notiz beifügen:"
 
-#: ../../mod/dfrn_request.php:744 ../../include/contact_selectors.php:76
+#: ../../mod/dfrn_request.php:810 ../../include/contact_selectors.php:76
 msgid "Friendica"
 msgstr "Friendica"
 
-#: ../../mod/dfrn_request.php:745
+#: ../../mod/dfrn_request.php:811
 msgid "StatusNet/Federated Social Web"
 msgstr "StatusNet/Federated Social Web"
 
-#: ../../mod/dfrn_request.php:746 ../../mod/settings.php:629
+#: ../../mod/dfrn_request.php:812 ../../mod/settings.php:636
 #: ../../include/contact_selectors.php:80
 msgid "Diaspora"
 msgstr "Diaspora"
 
-#: ../../mod/dfrn_request.php:747
+#: ../../mod/dfrn_request.php:813
 #, php-format
 msgid ""
 " - please do not use this form.  Instead, enter %s into your Diaspora search"
 " bar."
 msgstr " - bitte verwende dieses Formular nicht. Stattdessen suche nach %s in deiner Diaspora Suchleiste."
 
-#: ../../mod/dfrn_request.php:748
+#: ../../mod/dfrn_request.php:814
 msgid "Your Identity Address:"
 msgstr "Adresse deines Profils:"
 
-#: ../../mod/dfrn_request.php:751
+#: ../../mod/dfrn_request.php:817
 msgid "Submit Request"
 msgstr "Anfrage abschicken"
 
@@ -1216,7 +1180,7 @@ msgid "is interested in:"
 msgstr "ist interessiert an:"
 
 #: ../../mod/match.php:58 ../../mod/suggest.php:59
-#: ../../include/contact_widgets.php:9 ../../boot.php:1027
+#: ../../include/contact_widgets.php:9 ../../boot.php:1036
 msgid "Connect"
 msgstr "Verbinden"
 
@@ -1247,8 +1211,8 @@ msgid "Discard"
 msgstr "Verwerfen"
 
 #: ../../mod/notifications.php:51 ../../mod/notifications.php:160
-#: ../../mod/notifications.php:206 ../../mod/contacts.php:308
-#: ../../mod/contacts.php:351
+#: ../../mod/notifications.php:206 ../../mod/contacts.php:296
+#: ../../mod/contacts.php:348
 msgid "Ignore"
 msgstr "Ignorieren"
 
@@ -1260,18 +1224,11 @@ msgstr "System"
 msgid "Network"
 msgstr "Netzwerk"
 
-#: ../../mod/notifications.php:85 ../../mod/network.php:182
+#: ../../mod/notifications.php:85 ../../mod/network.php:184
 msgid "Personal"
 msgstr "Persönlich"
 
-#: ../../mod/notifications.php:90
-#: ../../view/theme/diabook/diabook-green/theme.php:229
-#: ../../view/theme/diabook/diabook-red/theme.php:227
-#: ../../view/theme/diabook/diabook-blue/theme.php:227
-#: ../../view/theme/diabook/theme.php:246
-#: ../../view/theme/diabook/diabook-dark/theme.php:229
-#: ../../view/theme/diabook/diabook-aerith/theme.php:229
-#: ../../view/theme/diabook/diabook-pink/theme.php:229
+#: ../../mod/notifications.php:90 ../../view/theme/diabook/theme.php:270
 #: ../../include/nav.php:77 ../../include/nav.php:115
 msgid "Home"
 msgstr "Pinnwand"
@@ -1307,7 +1264,7 @@ msgid "suggested by %s"
 msgstr "vorgeschlagen von %s"
 
 #: ../../mod/notifications.php:153 ../../mod/notifications.php:200
-#: ../../mod/contacts.php:356
+#: ../../mod/contacts.php:354
 msgid "Hide this contact from others"
 msgstr "Verberge diesen Kontakt vor anderen"
 
@@ -1320,7 +1277,7 @@ msgid "if applicable"
 msgstr "falls anwendbar"
 
 #: ../../mod/notifications.php:157 ../../mod/notifications.php:204
-#: ../../mod/admin.php:575
+#: ../../mod/admin.php:640
 msgid "Approve"
 msgstr "Genehmigen"
 
@@ -1457,218 +1414,275 @@ msgstr "Kontakt wurde ignoriert"
 msgid "Contact has been unignored"
 msgstr "Kontakt wird nicht mehr ignoriert"
 
-#: ../../mod/contacts.php:200
-msgid "stopped following"
-msgstr "wird nicht mehr gefolgt"
+#: ../../mod/contacts.php:195
+msgid "Contact has been archived"
+msgstr "Kontakt wurde archiviert"
+
+#: ../../mod/contacts.php:195
+msgid "Contact has been unarchived"
+msgstr "Kontakt wurde aus dem Archiv geholt"
 
-#: ../../mod/contacts.php:221
+#: ../../mod/contacts.php:208
 msgid "Contact has been removed."
 msgstr "Kontakt wurde entfernt."
 
-#: ../../mod/contacts.php:251
+#: ../../mod/contacts.php:238
 #, php-format
 msgid "You are mutual friends with %s"
 msgstr "Du hast mit %s eine beidseitige Freundschaft"
 
-#: ../../mod/contacts.php:255
+#: ../../mod/contacts.php:242
 #, php-format
 msgid "You are sharing with %s"
 msgstr "Du teilst mit %s"
 
-#: ../../mod/contacts.php:260
+#: ../../mod/contacts.php:247
 #, php-format
 msgid "%s is sharing with you"
 msgstr "%s teilt mit Dir"
 
-#: ../../mod/contacts.php:277
+#: ../../mod/contacts.php:264
 msgid "Private communications are not available for this contact."
 msgstr "Private Kommunikation ist für diesen Kontakt nicht verfügbar."
 
-#: ../../mod/contacts.php:280
+#: ../../mod/contacts.php:267
 msgid "Never"
 msgstr "Niemals"
 
-#: ../../mod/contacts.php:284
+#: ../../mod/contacts.php:271
 msgid "(Update was successful)"
 msgstr "(Aktualisierung war erfolgreich)"
 
-#: ../../mod/contacts.php:284
+#: ../../mod/contacts.php:271
 msgid "(Update was not successful)"
 msgstr "(Aktualisierung war nicht erfolgreich)"
 
-#: ../../mod/contacts.php:286
+#: ../../mod/contacts.php:273
 msgid "Suggest friends"
 msgstr "Kontakte vorschlagen"
 
-#: ../../mod/contacts.php:290
+#: ../../mod/contacts.php:277
 #, php-format
 msgid "Network type: %s"
 msgstr "Netzwerk Typ: %s"
 
-#: ../../mod/contacts.php:293
+#: ../../mod/contacts.php:280
 #, php-format
 msgid "%d contact in common"
 msgid_plural "%d contacts in common"
 msgstr[0] "%d gemeinsamer Kontakt"
 msgstr[1] "%d gemeinsame Kontakte"
 
-#: ../../mod/contacts.php:298
+#: ../../mod/contacts.php:285
 msgid "View all contacts"
 msgstr "Alle Kontakte anzeigen"
 
-#: ../../mod/contacts.php:303 ../../mod/contacts.php:350
-#: ../../mod/admin.php:579
+#: ../../mod/contacts.php:290 ../../mod/contacts.php:347
+#: ../../mod/admin.php:644
 msgid "Unblock"
 msgstr "Entsperren"
 
-#: ../../mod/contacts.php:303 ../../mod/contacts.php:350
-#: ../../mod/admin.php:578
+#: ../../mod/contacts.php:290 ../../mod/contacts.php:347
+#: ../../mod/admin.php:643
 msgid "Block"
 msgstr "Sperren"
 
-#: ../../mod/contacts.php:308 ../../mod/contacts.php:351
+#: ../../mod/contacts.php:293
+msgid "Toggle Blocked status"
+msgstr "Geblockt-Sttaus ein-/ausschalten"
+
+#: ../../mod/contacts.php:296 ../../mod/contacts.php:348
 msgid "Unignore"
 msgstr "Ignorieren aufheben"
 
-#: ../../mod/contacts.php:313
+#: ../../mod/contacts.php:299
+msgid "Toggle Ignored status"
+msgstr "Ignoriert-Status ein-/ausschalten"
+
+#: ../../mod/contacts.php:303
+msgid "Unarchive"
+msgstr "Unarchivieren"
+
+#: ../../mod/contacts.php:303
+msgid "Archive"
+msgstr "Archivieren"
+
+#: ../../mod/contacts.php:306
+msgid "Toggle Archive status"
+msgstr "Archiviert-Status ein-/ausschalten"
+
+#: ../../mod/contacts.php:309
 msgid "Repair"
 msgstr "Reparieren"
 
-#: ../../mod/contacts.php:323
+#: ../../mod/contacts.php:312
+msgid "Advanced Contact Settings"
+msgstr "Fortgeschrittene Kontakteinstellungen"
+
+#: ../../mod/contacts.php:320
 msgid "Contact Editor"
 msgstr "Kontakt Editor"
 
-#: ../../mod/contacts.php:326
+#: ../../mod/contacts.php:323
 msgid "Profile Visibility"
 msgstr "Profil Anzeige"
 
-#: ../../mod/contacts.php:327
+#: ../../mod/contacts.php:324
 #, php-format
 msgid ""
 "Please choose the profile you would like to display to %s when viewing your "
 "profile securely."
 msgstr "Bitte wähle eines deiner Profile das angezeigt werden soll, wenn %s dein Profil aufruft."
 
-#: ../../mod/contacts.php:328
+#: ../../mod/contacts.php:325
 msgid "Contact Information / Notes"
 msgstr "Kontakt Informationen / Notizen"
 
-#: ../../mod/contacts.php:329
+#: ../../mod/contacts.php:326
 msgid "Edit contact notes"
 msgstr "Notizen zum Kontakt bearbiten"
 
-#: ../../mod/contacts.php:334 ../../mod/contacts.php:507
+#: ../../mod/contacts.php:331 ../../mod/contacts.php:522
 #: ../../mod/viewcontacts.php:62 ../../mod/nogroup.php:40
 #, php-format
 msgid "Visit %s's profile [%s]"
 msgstr "Besuche %ss Profil [%s]"
 
-#: ../../mod/contacts.php:335
+#: ../../mod/contacts.php:332
 msgid "Block/Unblock contact"
 msgstr "Kontakt blockieren/freischalten"
 
-#: ../../mod/contacts.php:336
+#: ../../mod/contacts.php:333
 msgid "Ignore contact"
 msgstr "Ignoriere den Kontakt"
 
-#: ../../mod/contacts.php:337
+#: ../../mod/contacts.php:334
 msgid "Repair URL settings"
 msgstr "URL Einstellungen reparieren"
 
-#: ../../mod/contacts.php:338
+#: ../../mod/contacts.php:335
 msgid "View conversations"
 msgstr "Unterhaltungen anzeigen"
 
-#: ../../mod/contacts.php:340
+#: ../../mod/contacts.php:337
 msgid "Delete contact"
 msgstr "Lösche den Kontakt"
 
-#: ../../mod/contacts.php:344
+#: ../../mod/contacts.php:341
 msgid "Last update:"
 msgstr "letzte Aktualisierung:"
 
-#: ../../mod/contacts.php:345
+#: ../../mod/contacts.php:342
 msgid "Update public posts"
 msgstr "Öffentliche Beiträge aktualisieren"
 
-#: ../../mod/contacts.php:347 ../../mod/admin.php:1051
+#: ../../mod/contacts.php:344 ../../mod/admin.php:1115
 msgid "Update now"
 msgstr "Jetzt aktualisieren"
 
-#: ../../mod/contacts.php:354
+#: ../../mod/contacts.php:351
 msgid "Currently blocked"
 msgstr "Derzeit geblockt"
 
-#: ../../mod/contacts.php:355
+#: ../../mod/contacts.php:352
 msgid "Currently ignored"
 msgstr "Derzeit ignoriert"
 
-#: ../../mod/contacts.php:356
+#: ../../mod/contacts.php:353
+msgid "Currently archived"
+msgstr "Momentan archiviert"
+
+#: ../../mod/contacts.php:354
 msgid ""
 "Replies/likes to your public posts <strong>may</strong> still be visible"
 msgstr "Antworten/Likes auf deine öffentlichen Beiträge <strong>könnten</strong> weiterhin sichtbar sein"
 
-#: ../../mod/contacts.php:405
+#: ../../mod/contacts.php:407
 msgid "Suggestions"
 msgstr "Kontaktvorschläge"
 
-#: ../../mod/contacts.php:410 ../../mod/group.php:191
+#: ../../mod/contacts.php:410
+msgid "Suggest potential friends"
+msgstr "Freunde vorschlagen"
+
+#: ../../mod/contacts.php:413 ../../mod/group.php:191
 msgid "All Contacts"
 msgstr "Alle Kontakte"
 
-#: ../../mod/contacts.php:415
-msgid "Unblocked Contacts"
-msgstr "Nicht blockierte Kontakte"
+#: ../../mod/contacts.php:416
+msgid "Show all contacts"
+msgstr "Alle Kontakte anzeigen"
+
+#: ../../mod/contacts.php:419
+msgid "Unblocked"
+msgstr "Ungeblockt"
+
+#: ../../mod/contacts.php:422
+msgid "Only show unblocked contacts"
+msgstr "Nur nicht-blockierte Kontakte anzeigen"
 
-#: ../../mod/contacts.php:421
-msgid "Blocked Contacts"
-msgstr "Blockierte Kontakte"
+#: ../../mod/contacts.php:426
+msgid "Blocked"
+msgstr "Geblockt"
 
-#: ../../mod/contacts.php:427
-msgid "Ignored Contacts"
-msgstr "Ignorierte Kontakte"
+#: ../../mod/contacts.php:429
+msgid "Only show blocked contacts"
+msgstr "Nur blockierte Kontakte anzeigen"
 
 #: ../../mod/contacts.php:433
-msgid "Hidden Contacts"
-msgstr "Verborgene Kontakte"
+msgid "Ignored"
+msgstr "Ignoriert"
+
+#: ../../mod/contacts.php:436
+msgid "Only show ignored contacts"
+msgstr "Nur ignorierte Kontakte anzeigen"
+
+#: ../../mod/contacts.php:440
+msgid "Archived"
+msgstr "Archiviert"
+
+#: ../../mod/contacts.php:443
+msgid "Only show archived contacts"
+msgstr "Nur archivierte Kontakte anzeigen"
 
-#: ../../mod/contacts.php:483
+#: ../../mod/contacts.php:447
+msgid "Hidden"
+msgstr "Verborgen"
+
+#: ../../mod/contacts.php:450
+msgid "Only show hidden contacts"
+msgstr "Nur verborgene Kontakte anzeigen"
+
+#: ../../mod/contacts.php:498
 msgid "Mutual Friendship"
 msgstr "Beidseitige Freundschaft"
 
-#: ../../mod/contacts.php:487
+#: ../../mod/contacts.php:502
 msgid "is a fan of yours"
 msgstr "ist ein Fan von dir"
 
-#: ../../mod/contacts.php:491
+#: ../../mod/contacts.php:506
 msgid "you are a fan of"
 msgstr "du bist Fan von"
 
-#: ../../mod/contacts.php:508 ../../mod/nogroup.php:41
+#: ../../mod/contacts.php:523 ../../mod/nogroup.php:41
 msgid "Edit contact"
 msgstr "Kontakt bearbeiten"
 
-#: ../../mod/contacts.php:529
-#: ../../view/theme/diabook/diabook-green/theme.php:231
-#: ../../view/theme/diabook/diabook-red/theme.php:229
-#: ../../view/theme/diabook/diabook-blue/theme.php:229
-#: ../../view/theme/diabook/theme.php:248
-#: ../../view/theme/diabook/diabook-dark/theme.php:231
-#: ../../view/theme/diabook/diabook-aerith/theme.php:231
-#: ../../view/theme/diabook/diabook-pink/theme.php:231
+#: ../../mod/contacts.php:544 ../../view/theme/diabook/theme.php:272
 #: ../../include/nav.php:139
 msgid "Contacts"
 msgstr "Kontakte"
 
-#: ../../mod/contacts.php:533
+#: ../../mod/contacts.php:548
 msgid "Search your contacts"
 msgstr "Suche in deinen Kontakten"
 
-#: ../../mod/contacts.php:534 ../../mod/directory.php:57
+#: ../../mod/contacts.php:549 ../../mod/directory.php:57
 msgid "Finding: "
 msgstr "Funde: "
 
-#: ../../mod/contacts.php:535 ../../mod/directory.php:59
+#: ../../mod/contacts.php:550 ../../mod/directory.php:59
 #: ../../include/contact_widgets.php:33
 msgid "Find"
 msgstr "Finde"
@@ -1688,10 +1702,11 @@ msgstr "Anfrage zum Zurücksetzen des Passworts auf %s erhalten"
 
 #: ../../mod/lostpass.php:45 ../../mod/lostpass.php:107
 #: ../../mod/register.php:388 ../../mod/register.php:442
-#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:732
-#: ../../addon/facebook/facebook.php:650
-#: ../../addon/facebook/facebook.php:1136
-#: ../../addon/testdrive/testdrive.php:58 ../../include/items.php:2700
+#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:742
+#: ../../addon/facebook/facebook.php:658
+#: ../../addon/facebook/facebook.php:1148
+#: ../../addon/testdrive/testdrive.php:58 ../../include/items.php:2716
+#: ../../boot.php:686
 msgid "Administrator"
 msgstr "Administrator"
 
@@ -1701,7 +1716,7 @@ msgid ""
 "Password reset failed."
 msgstr "Anfrage konnte nicht verifiziert werden. (Eventuell hast du bereits eine ähnliche Anfrage gestellt.) Zurücksetzen des Passworts gescheitert."
 
-#: ../../mod/lostpass.php:83 ../../boot.php:809
+#: ../../mod/lostpass.php:83 ../../boot.php:818
 msgid "Password Reset"
 msgstr "Passwort zurücksetzen"
 
@@ -1769,468 +1784,475 @@ msgstr "Verbundene Programme"
 msgid "Export personal data"
 msgstr "Persönliche Daten exportieren"
 
-#: ../../mod/settings.php:83 ../../mod/admin.php:665 ../../mod/admin.php:870
+#: ../../mod/settings.php:80
+msgid "Remove account"
+msgstr "Account entfernen"
+
+#: ../../mod/settings.php:88 ../../mod/admin.php:730 ../../mod/admin.php:935
 #: ../../addon/mathjax/mathjax.php:36 ../../include/nav.php:137
 msgid "Settings"
 msgstr "Einstellungen"
 
-#: ../../mod/settings.php:126
+#: ../../mod/settings.php:131
 msgid "Missing some important data!"
 msgstr "Wichtige Daten fehlen!"
 
-#: ../../mod/settings.php:129 ../../mod/settings.php:558
-#: ../../mod/admin.php:97
+#: ../../mod/settings.php:134 ../../mod/settings.php:565
 msgid "Update"
 msgstr "Aktualisierungen"
 
-#: ../../mod/settings.php:234
+#: ../../mod/settings.php:239
 msgid "Failed to connect with email account using the settings provided."
 msgstr "Konnte das Email Konto mit den angegebenen Einstellungen nicht erreichen."
 
-#: ../../mod/settings.php:239
+#: ../../mod/settings.php:244
 msgid "Email settings updated."
 msgstr "EMail Einstellungen bearbeitet."
 
-#: ../../mod/settings.php:298
+#: ../../mod/settings.php:303
 msgid "Passwords do not match. Password unchanged."
 msgstr "Die Passwörter stimmen nicht überein. Das Passwort bleibt unverändert."
 
-#: ../../mod/settings.php:303
+#: ../../mod/settings.php:308
 msgid "Empty passwords are not allowed. Password unchanged."
 msgstr "Leere Passwörter sind nicht erlaubt. Passwort bleibt unverändert."
 
-#: ../../mod/settings.php:314
+#: ../../mod/settings.php:319
 msgid "Password changed."
 msgstr "Passwort ändern."
 
-#: ../../mod/settings.php:316
+#: ../../mod/settings.php:321
 msgid "Password update failed. Please try again."
 msgstr "Aktualisierung des Passworts gescheitert, bitte versuche es noch einmal."
 
-#: ../../mod/settings.php:379
+#: ../../mod/settings.php:385
 msgid " Please use a shorter name."
 msgstr " Bitte verwende einen kürzeren Namen."
 
-#: ../../mod/settings.php:381
+#: ../../mod/settings.php:387
 msgid " Name too short."
 msgstr " Name ist zu kurz."
 
-#: ../../mod/settings.php:387
+#: ../../mod/settings.php:393
 msgid " Not valid email."
 msgstr " Keine gültige E-Mail."
 
-#: ../../mod/settings.php:389
+#: ../../mod/settings.php:395
 msgid " Cannot change to that email."
 msgstr "Ändern der E-Mail nicht möglich. "
 
-#: ../../mod/settings.php:461 ../../addon/facebook/facebook.php:469
-#: ../../addon/impressum/impressum.php:75
+#: ../../mod/settings.php:468 ../../addon/facebook/facebook.php:470
+#: ../../addon/impressum/impressum.php:77
 #: ../../addon/openstreetmap/openstreetmap.php:80
 #: ../../addon/mathjax/mathjax.php:66 ../../addon/piwik/piwik.php:105
 #: ../../addon/twitter/twitter.php:370
 msgid "Settings updated."
 msgstr "Einstellungen aktualisiert."
 
-#: ../../mod/settings.php:531 ../../mod/settings.php:557
-#: ../../mod/settings.php:593
+#: ../../mod/settings.php:538 ../../mod/settings.php:564
+#: ../../mod/settings.php:600
 msgid "Add application"
 msgstr "Programm hinzufügen"
 
-#: ../../mod/settings.php:535 ../../mod/settings.php:561
+#: ../../mod/settings.php:542 ../../mod/settings.php:568
 #: ../../addon/statusnet/statusnet.php:547
 msgid "Consumer Key"
 msgstr "Consumer Key"
 
-#: ../../mod/settings.php:536 ../../mod/settings.php:562
+#: ../../mod/settings.php:543 ../../mod/settings.php:569
 #: ../../addon/statusnet/statusnet.php:546
 msgid "Consumer Secret"
 msgstr "Consumer Secret"
 
-#: ../../mod/settings.php:537 ../../mod/settings.php:563
+#: ../../mod/settings.php:544 ../../mod/settings.php:570
 msgid "Redirect"
 msgstr "Umleiten"
 
-#: ../../mod/settings.php:538 ../../mod/settings.php:564
+#: ../../mod/settings.php:545 ../../mod/settings.php:571
 msgid "Icon url"
 msgstr "Icon URL"
 
-#: ../../mod/settings.php:549
+#: ../../mod/settings.php:556
 msgid "You can't edit this application."
 msgstr "Du kannst dieses Programm nicht bearbeiten."
 
-#: ../../mod/settings.php:592
+#: ../../mod/settings.php:599
 msgid "Connected Apps"
 msgstr "Verbundene Programme"
 
-#: ../../mod/settings.php:596
+#: ../../mod/settings.php:603
 msgid "Client key starts with"
 msgstr "Anwender Schlüssel beginnt mit"
 
-#: ../../mod/settings.php:597
+#: ../../mod/settings.php:604
 msgid "No name"
 msgstr "Kein Name"
 
-#: ../../mod/settings.php:598
+#: ../../mod/settings.php:605
 msgid "Remove authorization"
 msgstr "Autorisierung entziehen"
 
-#: ../../mod/settings.php:609
+#: ../../mod/settings.php:616
 msgid "No Plugin settings configured"
 msgstr "Keine Plugin-Einstellungen konfiguriert"
 
-#: ../../mod/settings.php:617 ../../addon/widgets/widgets.php:123
+#: ../../mod/settings.php:624 ../../addon/widgets/widgets.php:123
 msgid "Plugin Settings"
 msgstr "Plugin-Einstellungen"
 
-#: ../../mod/settings.php:629 ../../mod/settings.php:630
+#: ../../mod/settings.php:636 ../../mod/settings.php:637
 #, php-format
 msgid "Built-in support for %s connectivity is %s"
 msgstr "Eingebaute Unterstützung für Verbindungen zu %s ist %s"
 
-#: ../../mod/settings.php:629 ../../mod/settings.php:630
+#: ../../mod/settings.php:636 ../../mod/settings.php:637
 msgid "enabled"
 msgstr "eingeschaltet"
 
-#: ../../mod/settings.php:629 ../../mod/settings.php:630
+#: ../../mod/settings.php:636 ../../mod/settings.php:637
 msgid "disabled"
 msgstr "ausgeschaltet"
 
-#: ../../mod/settings.php:630
+#: ../../mod/settings.php:637
 msgid "StatusNet"
 msgstr "StatusNet"
 
-#: ../../mod/settings.php:660
+#: ../../mod/settings.php:667
 msgid "Connector Settings"
 msgstr "Verbindungs-Einstellungen"
 
-#: ../../mod/settings.php:665
+#: ../../mod/settings.php:672
 msgid "Email/Mailbox Setup"
 msgstr "E-Mail/Postfach-Einstellungen"
 
-#: ../../mod/settings.php:666
+#: ../../mod/settings.php:673
 msgid ""
 "If you wish to communicate with email contacts using this service "
 "(optional), please specify how to connect to your mailbox."
 msgstr "Wenn du mit E-Mail-Kontakten über diesen Service kommunizieren möchtest (optional), gib bitte die Einstellungen für dein Postfach an."
 
-#: ../../mod/settings.php:667
+#: ../../mod/settings.php:674
 msgid "Last successful email check:"
 msgstr "Letzter erfolgreicher Email Check"
 
-#: ../../mod/settings.php:668
+#: ../../mod/settings.php:675
 msgid "Email access is disabled on this site."
 msgstr "Zugriff auf E-Mails für diese Seite deaktiviert."
 
-#: ../../mod/settings.php:669
+#: ../../mod/settings.php:676
 msgid "IMAP server name:"
 msgstr "IMAP-Server-Name:"
 
-#: ../../mod/settings.php:670
+#: ../../mod/settings.php:677
 msgid "IMAP port:"
 msgstr "IMAP-Port:"
 
-#: ../../mod/settings.php:671
+#: ../../mod/settings.php:678
 msgid "Security:"
 msgstr "Sicherheit:"
 
-#: ../../mod/settings.php:671 ../../mod/settings.php:676
+#: ../../mod/settings.php:678 ../../mod/settings.php:683
 msgid "None"
 msgstr "Keine"
 
-#: ../../mod/settings.php:672
+#: ../../mod/settings.php:679
 msgid "Email login name:"
 msgstr "E-Mail-Login-Name:"
 
-#: ../../mod/settings.php:673
+#: ../../mod/settings.php:680
 msgid "Email password:"
 msgstr "E-Mail-Passwort:"
 
-#: ../../mod/settings.php:674
+#: ../../mod/settings.php:681
 msgid "Reply-to address:"
 msgstr "Reply-to Adresse:"
 
-#: ../../mod/settings.php:675
+#: ../../mod/settings.php:682
 msgid "Send public posts to all email contacts:"
 msgstr "Sende öffentliche Beiträge an alle E-Mail-Kontakte:"
 
-#: ../../mod/settings.php:676
+#: ../../mod/settings.php:683
 msgid "Action after import:"
 msgstr "Aktion nach Import:"
 
-#: ../../mod/settings.php:676
+#: ../../mod/settings.php:683
 msgid "Mark as seen"
 msgstr "Als gelesen markieren"
 
-#: ../../mod/settings.php:676
+#: ../../mod/settings.php:683
 msgid "Move to folder"
 msgstr "In einen Ordner verschieben"
 
-#: ../../mod/settings.php:677
+#: ../../mod/settings.php:684
 msgid "Move to folder:"
 msgstr "In diesen Ordner verschieben:"
 
-#: ../../mod/settings.php:737
+#: ../../mod/settings.php:744
 msgid "Display Settings"
 msgstr "Anzeige Einstellungen"
 
-#: ../../mod/settings.php:743
+#: ../../mod/settings.php:750
 msgid "Display Theme:"
 msgstr "Theme:"
 
-#: ../../mod/settings.php:744
+#: ../../mod/settings.php:751
 msgid "Update browser every xx seconds"
 msgstr "Browser alle xx Sekunden aktualisieren"
 
-#: ../../mod/settings.php:744
+#: ../../mod/settings.php:751
 msgid "Minimum of 10 seconds, no maximum"
 msgstr "Minimal 10 Sekunden, kein Maximum"
 
-#: ../../mod/settings.php:745
+#: ../../mod/settings.php:752
 msgid "Number of items to display on the network page:"
-msgstr "Zahl der Beiträge, welche pro Netzwerkseite angezeigt werden sollen: "
+msgstr "Zahl der Beiträge, die pro Netzwerkseite angezeigt werden sollen: "
 
-#: ../../mod/settings.php:745
+#: ../../mod/settings.php:752
 msgid "Maximum of 100 items"
 msgstr "Maximal 100 Beiträge"
 
-#: ../../mod/settings.php:746
+#: ../../mod/settings.php:753
 msgid "Don't show emoticons"
 msgstr "Keine Smilies anzeigen"
 
-#: ../../mod/settings.php:811 ../../mod/admin.php:173 ../../mod/admin.php:551
+#: ../../mod/settings.php:821 ../../mod/admin.php:180 ../../mod/admin.php:616
 msgid "Normal Account"
 msgstr "Normaler Account"
 
-#: ../../mod/settings.php:812
+#: ../../mod/settings.php:822
 msgid "This account is a normal personal profile"
 msgstr "Dieser Account ist ein normales persönliches Profil"
 
-#: ../../mod/settings.php:815 ../../mod/admin.php:174 ../../mod/admin.php:552
+#: ../../mod/settings.php:825 ../../mod/admin.php:181 ../../mod/admin.php:617
 msgid "Soapbox Account"
 msgstr "Sandkasten-Account"
 
-#: ../../mod/settings.php:816
+#: ../../mod/settings.php:826
 msgid "Automatically approve all connection/friend requests as read-only fans"
-msgstr "Freundschaftsanfragen werden automatisch als Nurlese-Fans akzeptiert"
+msgstr "Kontaktanfragen werden automatisch als Nurlese-Fans akzeptiert"
 
-#: ../../mod/settings.php:819 ../../mod/admin.php:175 ../../mod/admin.php:553
+#: ../../mod/settings.php:829 ../../mod/admin.php:182 ../../mod/admin.php:618
 msgid "Community/Celebrity Account"
 msgstr "Gemeinschafts/Promi-Account"
 
-#: ../../mod/settings.php:820
+#: ../../mod/settings.php:830
 msgid ""
 "Automatically approve all connection/friend requests as read-write fans"
-msgstr "Freundschaftsanfragen werden automatisch als Lese-und-Schreib-Fans akzeptiert"
+msgstr "Kontaktanfragen werden automatisch als Lese-und-Schreib-Fans akzeptiert"
 
-#: ../../mod/settings.php:823 ../../mod/admin.php:176 ../../mod/admin.php:554
+#: ../../mod/settings.php:833 ../../mod/admin.php:183 ../../mod/admin.php:619
 msgid "Automatic Friend Account"
 msgstr "Automatischer Freundesaccount"
 
-#: ../../mod/settings.php:824
+#: ../../mod/settings.php:834
 msgid "Automatically approve all connection/friend requests as friends"
-msgstr "Freundschaftsanfragen werden automatisch als Freund akzeptiert"
+msgstr "Kontaktanfragen werden automatisch als Freund akzeptiert"
 
-#: ../../mod/settings.php:834
+#: ../../mod/settings.php:844
 msgid "OpenID:"
 msgstr "OpenID:"
 
-#: ../../mod/settings.php:834
+#: ../../mod/settings.php:844
 msgid "(Optional) Allow this OpenID to login to this account."
 msgstr "(Optional) Erlaube die Anmeldung für diesen Account mit dieser OpenID."
 
-#: ../../mod/settings.php:844
+#: ../../mod/settings.php:854
 msgid "Publish your default profile in your local site directory?"
 msgstr "Veröffentliche dein Standardprofil im Verzeichnis der lokalen Seite?"
 
-#: ../../mod/settings.php:850
+#: ../../mod/settings.php:860
 msgid "Publish your default profile in the global social directory?"
 msgstr "Veröffentliche dein Standardprofil im weltweiten Verzeichnis?"
 
-#: ../../mod/settings.php:858
+#: ../../mod/settings.php:868
 msgid "Hide your contact/friend list from viewers of your default profile?"
 msgstr "Liste der Kontakte vor Betrachtern des Standardprofils verbergen?"
 
-#: ../../mod/settings.php:862
+#: ../../mod/settings.php:872
 msgid "Hide your profile details from unknown viewers?"
 msgstr "Profil-Details vor unbekannten Betrachtern verbergen?"
 
-#: ../../mod/settings.php:867
+#: ../../mod/settings.php:877
 msgid "Allow friends to post to your profile page?"
 msgstr "Deinen Kontakten erlauben, auf deine Pinnwand zu schreiben?"
 
-#: ../../mod/settings.php:873
+#: ../../mod/settings.php:883
 msgid "Allow friends to tag your posts?"
 msgstr "Deinen Kontakten erlauben, deine Beiträge mit Schlagwörtern zu versehen?"
 
-#: ../../mod/settings.php:879
+#: ../../mod/settings.php:889
 msgid "Allow us to suggest you as a potential friend to new members?"
 msgstr "Erlaube uns dich als potentiellen Kontakt für neue Mitglieder vorzuschlagen?"
 
-#: ../../mod/settings.php:885
+#: ../../mod/settings.php:895
 msgid "Permit unknown people to send you private mail?"
 msgstr "Erlaube es Unbekannten dir private Nachrichten zu schicken?"
 
-#: ../../mod/settings.php:896
+#: ../../mod/settings.php:906
 msgid "Profile is <strong>not published</strong>."
 msgstr "Profil ist <strong>nicht veröffentlicht</strong>."
 
-#: ../../mod/settings.php:902 ../../mod/profile_photo.php:211
+#: ../../mod/settings.php:912 ../../mod/profile_photo.php:211
 msgid "or"
 msgstr "oder"
 
-#: ../../mod/settings.php:907
+#: ../../mod/settings.php:917
 msgid "Your Identity Address is"
 msgstr "Die Adresse deines Profils lautet:"
 
-#: ../../mod/settings.php:918
+#: ../../mod/settings.php:928
 msgid "Automatically expire posts after this many days:"
 msgstr "Beiträge verfallen automatisch nach dieser Anzahl von Tagen"
 
-#: ../../mod/settings.php:918
+#: ../../mod/settings.php:928
 msgid "If empty, posts will not expire. Expired posts will be deleted"
 msgstr "Wenn leer verfallen Beiträge nie automatisch. Verfallene Beiträge werden gelöscht."
 
-#: ../../mod/settings.php:919
+#: ../../mod/settings.php:929
 msgid "Advanced expiration settings"
 msgstr "Erweiterte Verfallseinstellungen"
 
-#: ../../mod/settings.php:920
+#: ../../mod/settings.php:930
 msgid "Advanced Expiration"
 msgstr "Erweitertes Verfallen"
 
-#: ../../mod/settings.php:921
+#: ../../mod/settings.php:931
 msgid "Expire posts:"
 msgstr "Beiträge verfallen lassen:"
 
-#: ../../mod/settings.php:922
+#: ../../mod/settings.php:932
 msgid "Expire personal notes:"
 msgstr "Persönliche Notizen verfallen lassen:"
 
-#: ../../mod/settings.php:923
+#: ../../mod/settings.php:933
 msgid "Expire starred posts:"
 msgstr "Markierte Beiträge verfallen lassen:"
 
-#: ../../mod/settings.php:924
+#: ../../mod/settings.php:934
 msgid "Expire photos:"
 msgstr "Fotos verfallen lassen:"
 
-#: ../../mod/settings.php:928
+#: ../../mod/settings.php:938
 msgid "Account Settings"
 msgstr "Account-Einstellungen"
 
-#: ../../mod/settings.php:937
+#: ../../mod/settings.php:947
 msgid "Password Settings"
 msgstr "Passwort-Einstellungen"
 
-#: ../../mod/settings.php:938
+#: ../../mod/settings.php:948
 msgid "New Password:"
 msgstr "Neues Passwort:"
 
-#: ../../mod/settings.php:939
+#: ../../mod/settings.php:949
 msgid "Confirm:"
 msgstr "Bestätigen:"
 
-#: ../../mod/settings.php:939
+#: ../../mod/settings.php:949
 msgid "Leave password fields blank unless changing"
 msgstr "Lass die Passwort-Felder leer, außer du willst das Passwort ändern"
 
-#: ../../mod/settings.php:943
+#: ../../mod/settings.php:953
 msgid "Basic Settings"
 msgstr "Grundeinstellungen"
 
-#: ../../mod/settings.php:944 ../../include/profile_advanced.php:15
+#: ../../mod/settings.php:954 ../../include/profile_advanced.php:15
 msgid "Full Name:"
 msgstr "Kompletter Name:"
 
-#: ../../mod/settings.php:945
+#: ../../mod/settings.php:955
 msgid "Email Address:"
 msgstr "Emailadresse:"
 
-#: ../../mod/settings.php:946
+#: ../../mod/settings.php:956
 msgid "Your Timezone:"
 msgstr "Deine Zeitzone:"
 
-#: ../../mod/settings.php:947
+#: ../../mod/settings.php:957
 msgid "Default Post Location:"
 msgstr "Standardstandort:"
 
-#: ../../mod/settings.php:948
+#: ../../mod/settings.php:958
 msgid "Use Browser Location:"
 msgstr "Verwende den Standort des Browsers:"
 
-#: ../../mod/settings.php:951
+#: ../../mod/settings.php:961
 msgid "Security and Privacy Settings"
 msgstr "Sicherheits- und Privatsphäre-Einstellungen"
 
-#: ../../mod/settings.php:953
+#: ../../mod/settings.php:963
 msgid "Maximum Friend Requests/Day:"
 msgstr "Maximale Anzahl von Freundschaftsanfragen/Tag:"
 
-#: ../../mod/settings.php:953 ../../mod/settings.php:968
+#: ../../mod/settings.php:963 ../../mod/settings.php:978
 msgid "(to prevent spam abuse)"
 msgstr "(um SPAM zu vermeiden)"
 
-#: ../../mod/settings.php:954
+#: ../../mod/settings.php:964
 msgid "Default Post Permissions"
 msgstr "Standard-Zugriffsrechte für Beiträge"
 
-#: ../../mod/settings.php:955
+#: ../../mod/settings.php:965
 msgid "(click to open/close)"
 msgstr "(klicke zum öffnen/schließen)"
 
-#: ../../mod/settings.php:968
+#: ../../mod/settings.php:978
 msgid "Maximum private messages per day from unknown people:"
 msgstr "Maximale Anzahl von privaten Nachrichten, die dir unbekannte Personen pro Tag senden dürfen:"
 
-#: ../../mod/settings.php:971
+#: ../../mod/settings.php:981
 msgid "Notification Settings"
 msgstr "Benachrichtigungseinstellungen"
 
-#: ../../mod/settings.php:972
+#: ../../mod/settings.php:982
 msgid "By default post a status message when:"
 msgstr "Standardmäßig eine Status-Nachricht posten wenn:"
 
-#: ../../mod/settings.php:973
+#: ../../mod/settings.php:983
 msgid "accepting a friend request"
-msgstr "akzeptieren einer Freundschaftsanfrage"
+msgstr "– du eine Kontaktanfrage akzeptierst"
+
+#: ../../mod/settings.php:984
+msgid "joining a forum/community"
+msgstr "– du einem Forum/einer Gemeinschaftsseite beitrittst"
 
-#: ../../mod/settings.php:974
+#: ../../mod/settings.php:985
 msgid "making an <em>interesting</em> profile change"
-msgstr "<em>interessante</em> Änderungen am Profil gemacht werden"
+msgstr "– du eine <em>interessante</em> Änderung an deinem Profil durchführst"
 
-#: ../../mod/settings.php:975
+#: ../../mod/settings.php:986
 msgid "Send a notification email when:"
 msgstr "Benachrichtigungs-E-Mail senden wenn:"
 
-#: ../../mod/settings.php:976
+#: ../../mod/settings.php:987
 msgid "You receive an introduction"
-msgstr "- du eine Kontaktanfrage erhältst"
+msgstr " du eine Kontaktanfrage erhältst"
 
-#: ../../mod/settings.php:977
+#: ../../mod/settings.php:988
 msgid "Your introductions are confirmed"
-msgstr "- eine deiner Kontaktanfragen akzeptiert wurde"
+msgstr " eine deiner Kontaktanfragen akzeptiert wurde"
 
-#: ../../mod/settings.php:978
+#: ../../mod/settings.php:989
 msgid "Someone writes on your profile wall"
-msgstr "- jemand etwas auf deine Pinnwand schreibt"
+msgstr " jemand etwas auf deine Pinnwand schreibt"
 
-#: ../../mod/settings.php:979
+#: ../../mod/settings.php:990
 msgid "Someone writes a followup comment"
-msgstr "- jemand auch einen Kommentar verfasst"
+msgstr " jemand auch einen Kommentar verfasst"
 
-#: ../../mod/settings.php:980
+#: ../../mod/settings.php:991
 msgid "You receive a private message"
-msgstr "- du eine private Nachricht erhältst"
+msgstr " du eine private Nachricht erhältst"
 
-#: ../../mod/settings.php:981
+#: ../../mod/settings.php:992
 msgid "You receive a friend suggestion"
 msgstr "- du eine Empfehlung erhältst"
 
-#: ../../mod/settings.php:982
+#: ../../mod/settings.php:993
 msgid "You are tagged in a post"
 msgstr "- du in einem Beitrag erwähnt wurdest"
 
-#: ../../mod/settings.php:985
+#: ../../mod/settings.php:996
 msgid "Advanced Page Settings"
 msgstr "Erweiterte Seiten-Einstellungen"
 
@@ -2268,23 +2290,47 @@ msgstr "hinzufügen"
 msgid "Commented Order"
 msgstr "Neueste Kommentare"
 
-#: ../../mod/network.php:176
+#: ../../mod/network.php:174
+msgid "Sort by Comment Date"
+msgstr "Nach Kommentardatum sortieren"
+
+#: ../../mod/network.php:177
 msgid "Posted Order"
 msgstr "Neueste Beiträge"
 
+#: ../../mod/network.php:180
+msgid "Sort by Post Date"
+msgstr "Nach Beitragsdatum sortieren"
+
 #: ../../mod/network.php:187
+msgid "Posts that mention or involve you"
+msgstr "Beiträge, in denen es um Dich geht"
+
+#: ../../mod/network.php:190
 msgid "New"
 msgstr "Neue"
 
-#: ../../mod/network.php:192
+#: ../../mod/network.php:193
+msgid "Activity Stream - by date"
+msgstr "Aktivitäten-Stream - nach Datum"
+
+#: ../../mod/network.php:196
 msgid "Starred"
 msgstr "Markierte"
 
-#: ../../mod/network.php:197
+#: ../../mod/network.php:199
+msgid "Favourite Posts"
+msgstr "Favorisierte Beiträge"
+
+#: ../../mod/network.php:202
 msgid "Shared Links"
 msgstr "Geteilte Links"
 
-#: ../../mod/network.php:274
+#: ../../mod/network.php:205
+msgid "Interesting Links"
+msgstr "Interessante Links"
+
+#: ../../mod/network.php:281
 #, php-format
 msgid "Warning: This group contains %s member from an insecure network."
 msgid_plural ""
@@ -2292,40 +2338,42 @@ msgid_plural ""
 msgstr[0] "Warnung: Diese Gruppe beinhaltet %s Person aus einem unsicheren Netzwerk."
 msgstr[1] "Warnung: Diese Gruppe beinhaltet %s Personen aus unsicheren Netzwerken."
 
-#: ../../mod/network.php:277
+#: ../../mod/network.php:284
 msgid "Private messages to this group are at risk of public disclosure."
 msgstr "Private Nachrichten an diese Gruppe könnten an die Öffentlichkeit geraten."
 
-#: ../../mod/network.php:322
+#: ../../mod/network.php:329
 msgid "No such group"
 msgstr "Es gibt keine solche Gruppe"
 
-#: ../../mod/network.php:333
+#: ../../mod/network.php:340
 msgid "Group is empty"
 msgstr "Gruppe ist leer"
 
-#: ../../mod/network.php:337
+#: ../../mod/network.php:344
 msgid "Group: "
 msgstr "Gruppe: "
 
-#: ../../mod/network.php:347
+#: ../../mod/network.php:354
 msgid "Contact: "
 msgstr "Kontakt: "
 
-#: ../../mod/network.php:349
+#: ../../mod/network.php:356
 msgid "Private messages to this person are at risk of public disclosure."
 msgstr "Private Nachrichten an diese Person könnten an die Öffentlichkeit gelangen."
 
-#: ../../mod/network.php:354
+#: ../../mod/network.php:361
 msgid "Invalid contact."
 msgstr "Ungültiger Kontakt."
 
-#: ../../mod/notes.php:44 ../../boot.php:1476
+#: ../../mod/notes.php:44 ../../boot.php:1499
 msgid "Personal Notes"
 msgstr "Persönliche Notizen"
 
 #: ../../mod/notes.php:63 ../../mod/filer.php:30
-#: ../../addon/facebook/facebook.php:715 ../../include/text.php:652
+#: ../../addon/facebook/facebook.php:726
+#: ../../addon/privacy_image_cache/privacy_image_cache.php:147
+#: ../../include/text.php:652
 msgid "Save"
 msgstr "Speichern"
 
@@ -2359,7 +2407,7 @@ msgid "No recipient."
 msgstr "Kein Empfänger."
 
 #: ../../mod/wallmessage.php:124 ../../mod/message.php:169
-#: ../../include/conversation.php:910
+#: ../../include/conversation.php:918
 msgid "Please enter a link URL:"
 msgstr "Bitte gib die URL des Links ein:"
 
@@ -2375,17 +2423,17 @@ msgid ""
 msgstr "Wenn du möchtest, dass %s dir antworten kann, überprüfe deine Privatsphären-Einstellungen und erlaube private Nachrichten von unbekannten Absendern."
 
 #: ../../mod/wallmessage.php:133 ../../mod/message.php:178
-#: ../../mod/message.php:347
+#: ../../mod/message.php:370
 msgid "To:"
 msgstr "An:"
 
 #: ../../mod/wallmessage.php:134 ../../mod/message.php:179
-#: ../../mod/message.php:348
+#: ../../mod/message.php:371
 msgid "Subject:"
 msgstr "Betreff:"
 
 #: ../../mod/wallmessage.php:140 ../../mod/message.php:183
-#: ../../mod/message.php:351 ../../mod/invite.php:113
+#: ../../mod/message.php:374 ../../mod/invite.php:113
 msgid "Your message:"
 msgstr "Deine Nachricht:"
 
@@ -2527,7 +2575,7 @@ msgstr "Gruppe nicht gefunden."
 msgid "Group name changed."
 msgstr "Gruppenname geändert."
 
-#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:308
+#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:305
 msgid "Permission denied"
 msgstr "Zugriff verweigert"
 
@@ -2567,16 +2615,9 @@ msgstr "Ungültiger Profil-Bezeichner"
 msgid "Profile Visibility Editor"
 msgstr "Editor für die Profil-Sichtbarkeit"
 
-#: ../../mod/profperm.php:103
-#: ../../view/theme/diabook/diabook-green/theme.php:230
-#: ../../view/theme/diabook/diabook-red/theme.php:228
-#: ../../view/theme/diabook/diabook-blue/theme.php:228
-#: ../../view/theme/diabook/theme.php:247
-#: ../../view/theme/diabook/diabook-dark/theme.php:230
-#: ../../view/theme/diabook/diabook-aerith/theme.php:230
-#: ../../view/theme/diabook/diabook-pink/theme.php:230
+#: ../../mod/profperm.php:103 ../../view/theme/diabook/theme.php:271
 #: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:74
-#: ../../include/nav.php:50 ../../boot.php:1458
+#: ../../include/nav.php:50 ../../boot.php:1478
 msgid "Profile"
 msgstr "Profil"
 
@@ -2725,7 +2766,7 @@ msgstr "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung mögli
 msgid "Your invitation ID: "
 msgstr "ID deiner Einladung: "
 
-#: ../../mod/register.php:553 ../../mod/admin.php:393
+#: ../../mod/register.php:553 ../../mod/admin.php:401
 msgid "Registration"
 msgstr "Registrierung"
 
@@ -2748,7 +2789,7 @@ msgstr "Wähle einen Spitznamen für dein Profil. Dieser muss mit einem Buchstab
 msgid "Choose a nickname: "
 msgstr "Spitznamen wählen: "
 
-#: ../../mod/register.php:567 ../../include/nav.php:81 ../../boot.php:775
+#: ../../mod/register.php:567 ../../include/nav.php:81 ../../boot.php:784
 msgid "Register"
 msgstr "Registrieren"
 
@@ -2757,39 +2798,20 @@ msgid "People Search"
 msgstr "Personen Suche"
 
 #: ../../mod/like.php:127 ../../mod/tagger.php:70
-#: ../../addon/facebook/facebook.php:1655
+#: ../../addon/facebook/facebook.php:1542
 #: ../../addon/communityhome/communityhome.php:158
 #: ../../addon/communityhome/communityhome.php:167
-#: ../../view/theme/diabook/diabook-green/theme.php:83
-#: ../../view/theme/diabook/diabook-green/theme.php:92
-#: ../../view/theme/diabook/diabook-red/theme.php:82
-#: ../../view/theme/diabook/diabook-red/theme.php:91
-#: ../../view/theme/diabook/diabook-blue/theme.php:82
-#: ../../view/theme/diabook/diabook-blue/theme.php:91
-#: ../../view/theme/diabook/theme.php:97
-#: ../../view/theme/diabook/theme.php:106
-#: ../../view/theme/diabook/diabook-dark/theme.php:83
-#: ../../view/theme/diabook/diabook-dark/theme.php:92
-#: ../../view/theme/diabook/diabook-aerith/theme.php:83
-#: ../../view/theme/diabook/diabook-aerith/theme.php:92
-#: ../../view/theme/diabook/diabook-pink/theme.php:83
-#: ../../view/theme/diabook/diabook-pink/theme.php:92
-#: ../../include/diaspora.php:1654 ../../include/conversation.php:48
-#: ../../include/conversation.php:57 ../../include/conversation.php:121
-#: ../../include/conversation.php:130
+#: ../../view/theme/diabook/theme.php:122
+#: ../../view/theme/diabook/theme.php:131 ../../include/diaspora.php:1654
+#: ../../include/conversation.php:48 ../../include/conversation.php:57
+#: ../../include/conversation.php:121 ../../include/conversation.php:130
 msgid "status"
 msgstr "Status"
 
-#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1659
+#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1546
 #: ../../addon/communityhome/communityhome.php:172
-#: ../../view/theme/diabook/diabook-green/theme.php:97
-#: ../../view/theme/diabook/diabook-red/theme.php:96
-#: ../../view/theme/diabook/diabook-blue/theme.php:96
-#: ../../view/theme/diabook/theme.php:111
-#: ../../view/theme/diabook/diabook-dark/theme.php:97
-#: ../../view/theme/diabook/diabook-aerith/theme.php:97
-#: ../../view/theme/diabook/diabook-pink/theme.php:97
-#: ../../include/diaspora.php:1670 ../../include/conversation.php:65
+#: ../../view/theme/diabook/theme.php:136 ../../include/diaspora.php:1670
+#: ../../include/conversation.php:65
 #, php-format
 msgid "%1$s likes %2$s's %3$s"
 msgstr "%1$s mag %2$ss %3$s"
@@ -2799,9 +2821,9 @@ msgstr "%1$s mag %2$ss %3$s"
 msgid "%1$s doesn't like %2$s's %3$s"
 msgstr "%1$s mag %2$ss %3$s nicht"
 
-#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:149
-#: ../../mod/admin.php:614 ../../mod/admin.php:813 ../../mod/display.php:37
-#: ../../mod/display.php:142 ../../include/items.php:3083
+#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:156
+#: ../../mod/admin.php:679 ../../mod/admin.php:878 ../../mod/display.php:37
+#: ../../mod/display.php:142 ../../include/items.php:3099
 msgid "Item not found."
 msgstr "Beitrag nicht gefunden."
 
@@ -2809,15 +2831,8 @@ msgstr "Beitrag nicht gefunden."
 msgid "Access denied."
 msgstr "Zugriff verweigert."
 
-#: ../../mod/fbrowser.php:23
-#: ../../view/theme/diabook/diabook-green/theme.php:232
-#: ../../view/theme/diabook/diabook-red/theme.php:230
-#: ../../view/theme/diabook/diabook-blue/theme.php:230
-#: ../../view/theme/diabook/theme.php:249
-#: ../../view/theme/diabook/diabook-dark/theme.php:232
-#: ../../view/theme/diabook/diabook-aerith/theme.php:232
-#: ../../view/theme/diabook/diabook-pink/theme.php:232
-#: ../../include/nav.php:51 ../../boot.php:1463
+#: ../../mod/fbrowser.php:23 ../../view/theme/diabook/theme.php:273
+#: ../../include/nav.php:51 ../../boot.php:1484
 msgid "Photos"
 msgstr "Bilder"
 
@@ -2846,8 +2861,8 @@ msgstr "Konnte den Originalbeitrag nicht finden."
 msgid "Empty post discarded."
 msgstr "Leerer Beitrag wurde verworfen."
 
-#: ../../mod/item.php:372 ../../mod/wall_upload.php:85
-#: ../../mod/wall_upload.php:94 ../../mod/wall_upload.php:101
+#: ../../mod/item.php:372 ../../mod/wall_upload.php:99
+#: ../../mod/wall_upload.php:108 ../../mod/wall_upload.php:115
 #: ../../include/message.php:144
 msgid "Wall Photos"
 msgstr "Pinnwand-Bilder"
@@ -2899,7 +2914,7 @@ msgstr "Drücke Umschalt+Neu Laden oder leere den Browser-Cache, falls das neue
 msgid "Unable to process image"
 msgstr "Bild konnte nicht verarbeitet werden"
 
-#: ../../mod/profile_photo.php:115 ../../mod/wall_upload.php:60
+#: ../../mod/profile_photo.php:115 ../../mod/wall_upload.php:74
 #, php-format
 msgid "Image exceeds size limit of %d"
 msgstr "Bildgröße überschreitet das Limit von %d"
@@ -2993,7 +3008,7 @@ msgstr "Du und %s"
 msgid "%s and You"
 msgstr "%s und Du"
 
-#: ../../mod/message.php:242 ../../mod/message.php:340
+#: ../../mod/message.php:242 ../../mod/message.php:363
 msgid "Delete conversation"
 msgstr "Unterhaltung löschen"
 
@@ -3012,17 +3027,17 @@ msgstr[1] "%d Nachrichten"
 msgid "Message not available."
 msgstr "Nachricht nicht verfügbar."
 
-#: ../../mod/message.php:324
+#: ../../mod/message.php:347
 msgid "Delete message"
 msgstr "Nachricht löschen"
 
-#: ../../mod/message.php:342
+#: ../../mod/message.php:365
 msgid ""
 "No secure communications available. You <strong>may</strong> be able to "
 "respond from the sender's profile page."
 msgstr "Sichere Kommunikation ist nicht verfügbar. <strong>Eventuell</strong> kannst du auf der Profilseite des Absenders antworten."
 
-#: ../../mod/message.php:346
+#: ../../mod/message.php:369
 msgid "Send Reply"
 msgstr "Antwort senden"
 
@@ -3039,534 +3054,598 @@ msgstr "Keine Freunde zum Anzeigen."
 msgid "Theme settings updated."
 msgstr "Themen Einstellungen aktualisiert."
 
-#: ../../mod/admin.php:93 ../../mod/admin.php:391
+#: ../../mod/admin.php:96 ../../mod/admin.php:399
 msgid "Site"
 msgstr "Seite"
 
-#: ../../mod/admin.php:94 ../../mod/admin.php:569 ../../mod/admin.php:581
+#: ../../mod/admin.php:97 ../../mod/admin.php:634 ../../mod/admin.php:646
 msgid "Users"
 msgstr "Nutzer"
 
-#: ../../mod/admin.php:95 ../../mod/admin.php:663 ../../mod/admin.php:705
+#: ../../mod/admin.php:98 ../../mod/admin.php:728 ../../mod/admin.php:770
 msgid "Plugins"
 msgstr "Plugins"
 
-#: ../../mod/admin.php:96 ../../mod/admin.php:868 ../../mod/admin.php:904
+#: ../../mod/admin.php:99 ../../mod/admin.php:933 ../../mod/admin.php:969
 msgid "Themes"
 msgstr "Themen"
 
-#: ../../mod/admin.php:111 ../../mod/admin.php:992
+#: ../../mod/admin.php:100
+msgid "DB updates"
+msgstr "DB Updates"
+
+#: ../../mod/admin.php:101
+msgid "Software Update"
+msgstr "Software Update"
+
+#: ../../mod/admin.php:115 ../../mod/admin.php:1056
 msgid "Logs"
 msgstr "Protokolle"
 
-#: ../../mod/admin.php:116
+#: ../../mod/admin.php:120
 msgid "User registrations waiting for confirmation"
 msgstr "Nutzeranmeldungen die auf Bestätigung warten"
 
-#: ../../mod/admin.php:188 ../../mod/admin.php:390 ../../mod/admin.php:568
-#: ../../mod/admin.php:662 ../../mod/admin.php:704 ../../mod/admin.php:867
-#: ../../mod/admin.php:903 ../../mod/admin.php:991
+#: ../../mod/admin.php:195 ../../mod/admin.php:398 ../../mod/admin.php:633
+#: ../../mod/admin.php:727 ../../mod/admin.php:769 ../../mod/admin.php:932
+#: ../../mod/admin.php:968 ../../mod/admin.php:1055
 msgid "Administration"
 msgstr "Administration"
 
-#: ../../mod/admin.php:189
+#: ../../mod/admin.php:196
 msgid "Summary"
 msgstr "Zusammenfassung"
 
-#: ../../mod/admin.php:190
+#: ../../mod/admin.php:197
 msgid "Registered users"
 msgstr "Registrierte Nutzer"
 
-#: ../../mod/admin.php:192
+#: ../../mod/admin.php:199
 msgid "Pending registrations"
 msgstr "Anstehende Anmeldungen"
 
-#: ../../mod/admin.php:193
+#: ../../mod/admin.php:200
 msgid "Version"
 msgstr "Version"
 
-#: ../../mod/admin.php:195
+#: ../../mod/admin.php:202
 msgid "Active plugins"
 msgstr "Aktive Plugins"
 
-#: ../../mod/admin.php:329
+#: ../../mod/admin.php:337
 msgid "Site settings updated."
 msgstr "Seiteneinstellungen aktualisiert."
 
-#: ../../mod/admin.php:377
+#: ../../mod/admin.php:385
 msgid "Closed"
 msgstr "Geschlossen"
 
-#: ../../mod/admin.php:378
+#: ../../mod/admin.php:386
 msgid "Requires approval"
 msgstr "Bedarf der Zustimmung"
 
-#: ../../mod/admin.php:379
+#: ../../mod/admin.php:387
 msgid "Open"
 msgstr "Offen"
 
-#: ../../mod/admin.php:383
+#: ../../mod/admin.php:391
 msgid "No SSL policy, links will track page SSL state"
 msgstr "Keine SSL Richtlinie, Links werden das verwendete Protokoll beibehalten"
 
-#: ../../mod/admin.php:384
+#: ../../mod/admin.php:392
 msgid "Force all links to use SSL"
 msgstr "SSL für alle Links erzwingen"
 
-#: ../../mod/admin.php:385
+#: ../../mod/admin.php:393
 msgid "Self-signed certificate, use SSL for local links only (discouraged)"
 msgstr "Selbst-unterzeichnetes Zertifikat, SSL nur für lokale Links verwenden (nicht empfohlen)"
 
-#: ../../mod/admin.php:394
+#: ../../mod/admin.php:402
 msgid "File upload"
 msgstr "Datei hochladen"
 
-#: ../../mod/admin.php:395
+#: ../../mod/admin.php:403
 msgid "Policies"
 msgstr "Regeln"
 
-#: ../../mod/admin.php:396
+#: ../../mod/admin.php:404
 msgid "Advanced"
 msgstr "Erweitert"
 
-#: ../../mod/admin.php:400 ../../addon/statusnet/statusnet.php:544
+#: ../../mod/admin.php:408 ../../addon/statusnet/statusnet.php:544
 msgid "Site name"
 msgstr "Seitenname"
 
-#: ../../mod/admin.php:401
+#: ../../mod/admin.php:409
 msgid "Banner/Logo"
 msgstr "Banner/Logo"
 
-#: ../../mod/admin.php:402
+#: ../../mod/admin.php:410
 msgid "System language"
 msgstr "Systemsprache"
 
-#: ../../mod/admin.php:403
+#: ../../mod/admin.php:411
 msgid "System theme"
 msgstr "Systemweites Thema"
 
-#: ../../mod/admin.php:403
+#: ../../mod/admin.php:411
 msgid ""
 "Default system theme - may be over-ridden by user profiles - <a href='#' "
 "id='cnftheme'>change theme settings</a>"
 msgstr "Vorgabe für das System-Theme - kann von Benutzerprofilen überschrieben werden - <a href='#' id='cnftheme'>Theme-Einstellungen ändern</a>"
 
-#: ../../mod/admin.php:404
+#: ../../mod/admin.php:412
 msgid "SSL link policy"
 msgstr "Regeln für SSL Links"
 
-#: ../../mod/admin.php:404
+#: ../../mod/admin.php:412
 msgid "Determines whether generated links should be forced to use SSL"
 msgstr "Bestimmt, ob generierte Links SSL verwenden müssen"
 
-#: ../../mod/admin.php:405
+#: ../../mod/admin.php:413
 msgid "Maximum image size"
 msgstr "Maximale Größe von Bildern"
 
-#: ../../mod/admin.php:405
+#: ../../mod/admin.php:413
 msgid ""
 "Maximum size in bytes of uploaded images. Default is 0, which means no "
 "limits."
 msgstr "Maximale Upload-Größe von Bildern in Bytes. Standard ist 0, d.h. ohne Limit."
 
-#: ../../mod/admin.php:407
+#: ../../mod/admin.php:415
 msgid "Register policy"
 msgstr "Registrierungsmethode"
 
-#: ../../mod/admin.php:408
+#: ../../mod/admin.php:416
 msgid "Register text"
 msgstr "Registrierungstext"
 
-#: ../../mod/admin.php:408
+#: ../../mod/admin.php:416
 msgid "Will be displayed prominently on the registration page."
 msgstr "Wird gut sichtbar auf der Registrierungs-Seite angezeigt."
 
-#: ../../mod/admin.php:409
+#: ../../mod/admin.php:417
 msgid "Accounts abandoned after x days"
 msgstr "Accounts gelten nach x Tagen als unbenutzt"
 
-#: ../../mod/admin.php:409
+#: ../../mod/admin.php:417
 msgid ""
 "Will not waste system resources polling external sites for abandonded "
 "accounts. Enter 0 for no time limit."
 msgstr "Verschwende keine System-Ressourcen auf das Pollen externer Seiten, wenn Accounts nicht mehr benutzt werden. 0 eingeben für kein Limit."
 
-#: ../../mod/admin.php:410
+#: ../../mod/admin.php:418
 msgid "Allowed friend domains"
 msgstr "Erlaubte Domains für Kontakte"
 
-#: ../../mod/admin.php:410
+#: ../../mod/admin.php:418
 msgid ""
 "Comma separated list of domains which are allowed to establish friendships "
 "with this site. Wildcards are accepted. Empty to allow any domains"
 msgstr "Liste der Domains, die für Freundschaften erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben."
 
-#: ../../mod/admin.php:411
+#: ../../mod/admin.php:419
 msgid "Allowed email domains"
 msgstr "Erlaubte Domains für Emails"
 
-#: ../../mod/admin.php:411
+#: ../../mod/admin.php:419
 msgid ""
 "Comma separated list of domains which are allowed in email addresses for "
 "registrations to this site. Wildcards are accepted. Empty to allow any "
 "domains"
 msgstr "Liste der Domains, die für E-Mail-Adressen bei der Registrierung erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben."
 
-#: ../../mod/admin.php:412
+#: ../../mod/admin.php:420
 msgid "Block public"
 msgstr "Öffentlichen Zugriff blockieren"
 
-#: ../../mod/admin.php:412
+#: ../../mod/admin.php:420
 msgid ""
 "Check to block public access to all otherwise public personal pages on this "
 "site unless you are currently logged in."
 msgstr "Klicken, um öffentlichen Zugriff auf sonst öffentliche Profile zu blockieren, wenn man nicht eingeloggt ist."
 
-#: ../../mod/admin.php:413
+#: ../../mod/admin.php:421
 msgid "Force publish"
 msgstr "Erzwinge Veröffentlichung"
 
-#: ../../mod/admin.php:413
+#: ../../mod/admin.php:421
 msgid ""
 "Check to force all profiles on this site to be listed in the site directory."
 msgstr "Klicken, um Anzeige aller Profile dieses Servers im Verzeichnis zu erzwingen."
 
-#: ../../mod/admin.php:414
+#: ../../mod/admin.php:422
 msgid "Global directory update URL"
 msgstr "URL für Updates beim weltweiten Verzeichnis"
 
-#: ../../mod/admin.php:414
+#: ../../mod/admin.php:422
 msgid ""
 "URL to update the global directory. If this is not set, the global directory"
 " is completely unavailable to the application."
 msgstr "URL für Update des globalen Verzeichnisses. Wenn nichts eingetragen ist, bleibt das globale Verzeichnis unerreichbar."
 
-#: ../../mod/admin.php:416
+#: ../../mod/admin.php:424
 msgid "Block multiple registrations"
 msgstr "Unterbinde Mehrfachregistrierung"
 
-#: ../../mod/admin.php:416
+#: ../../mod/admin.php:424
 msgid "Disallow users to register additional accounts for use as pages."
 msgstr "Benutzern nicht erlauben, weitere Accounts als zusätzliche Profile anzulegen."
 
-#: ../../mod/admin.php:417
+#: ../../mod/admin.php:425
 msgid "OpenID support"
 msgstr "OpenID Unterstützung"
 
-#: ../../mod/admin.php:417
+#: ../../mod/admin.php:425
 msgid "OpenID support for registration and logins."
 msgstr "OpenID-Unterstützung für Registrierung und Login."
 
-#: ../../mod/admin.php:418
+#: ../../mod/admin.php:426
 msgid "Fullname check"
 msgstr "Namen auf Vollständigkeit überprüfen"
 
-#: ../../mod/admin.php:418
+#: ../../mod/admin.php:426
 msgid ""
 "Force users to register with a space between firstname and lastname in Full "
 "name, as an antispam measure"
 msgstr "Leerzeichen zwischen Vor- und Nachname im vollständigen Namen erzwingen, um SPAM zu vermeiden."
 
-#: ../../mod/admin.php:419
+#: ../../mod/admin.php:427
 msgid "UTF-8 Regular expressions"
 msgstr "UTF-8 Reguläre Ausdrücke"
 
-#: ../../mod/admin.php:419
+#: ../../mod/admin.php:427
 msgid "Use PHP UTF8 regular expressions"
 msgstr "PHP UTF8 Ausdrücke verwenden"
 
-#: ../../mod/admin.php:420
+#: ../../mod/admin.php:428
 msgid "Show Community Page"
 msgstr "Gemeinschaftsseite anzeigen"
 
-#: ../../mod/admin.php:420
+#: ../../mod/admin.php:428
 msgid ""
 "Display a Community page showing all recent public postings on this site."
 msgstr "Zeige die Gemeinschaftsseite mit allen öffentlichen Beiträgen auf diesem Server."
 
-#: ../../mod/admin.php:421
+#: ../../mod/admin.php:429
 msgid "Enable OStatus support"
 msgstr "OStatus Unterstützung aktivieren"
 
-#: ../../mod/admin.php:421
+#: ../../mod/admin.php:429
 msgid ""
 "Provide built-in OStatus (identi.ca, status.net, etc.) compatibility. All "
 "communications in OStatus are public, so privacy warnings will be "
 "occasionally displayed."
 msgstr "Biete die eingebaute OStatus (identi.ca, status.net, etc.) Unterstützung an. Jede Kommunikation in OStatus ist öffentlich, so Privatsphäre Warnungen werden bei Bedarf angezeigt."
 
-#: ../../mod/admin.php:422
+#: ../../mod/admin.php:430
 msgid "Enable Diaspora support"
 msgstr "Diaspora-Support aktivieren"
 
-#: ../../mod/admin.php:422
+#: ../../mod/admin.php:430
 msgid "Provide built-in Diaspora network compatibility."
 msgstr "Verwende die eingebaute Diaspora-Verknüpfung."
 
-#: ../../mod/admin.php:423
+#: ../../mod/admin.php:431
 msgid "Only allow Friendica contacts"
 msgstr "Nur Friendica-Kontakte erlauben"
 
-#: ../../mod/admin.php:423
+#: ../../mod/admin.php:431
 msgid ""
 "All contacts must use Friendica protocols. All other built-in communication "
 "protocols disabled."
 msgstr "Alle Kontakte müssen das Friendica Protokoll nutzen. Alle anderen Kommunikationsprotokolle werden deaktiviert."
 
-#: ../../mod/admin.php:424
+#: ../../mod/admin.php:432
 msgid "Verify SSL"
 msgstr "SSL Überprüfen"
 
-#: ../../mod/admin.php:424
+#: ../../mod/admin.php:432
 msgid ""
 "If you wish, you can turn on strict certificate checking. This will mean you"
 " cannot connect (at all) to self-signed SSL sites."
 msgstr "Wenn gewollt, kann man hier eine strenge Zertifikat Kontrolle einstellen. Das bedeutet, dass man zu keinen Seiten mit selbst unterzeichnetem SSL eine Verbindung herstellen kann."
 
-#: ../../mod/admin.php:425
+#: ../../mod/admin.php:433
 msgid "Proxy user"
 msgstr "Proxy Nutzer"
 
-#: ../../mod/admin.php:426
+#: ../../mod/admin.php:434
 msgid "Proxy URL"
 msgstr "Proxy URL"
 
-#: ../../mod/admin.php:427
+#: ../../mod/admin.php:435
 msgid "Network timeout"
 msgstr "Netzwerk Wartezeit"
 
-#: ../../mod/admin.php:427
+#: ../../mod/admin.php:435
 msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
 msgstr "Der Wert ist in Sekunden. Setze 0 für unbegrenzt (nicht empfohlen)."
 
-#: ../../mod/admin.php:453
+#: ../../mod/admin.php:436
+msgid "Delivery interval"
+msgstr "Zustellungsintervall"
+
+#: ../../mod/admin.php:436
+msgid ""
+"Delay background delivery processes by this many seconds to reduce system "
+"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
+"for large dedicated servers."
+msgstr "Verzögere im Hintergrund laufende Auslieferungsprozesse um die angegebene Anzahl an Sekunden um die Systemlast zu verringern. Empfehlungen: 4-5 für Shared-Hosts, 2-3 für VPS, 0-1 für große dedizierte Server."
+
+#: ../../mod/admin.php:451
+msgid "Update has been marked successful"
+msgstr "Update wurde als erfolgreich markiert"
+
+#: ../../mod/admin.php:461
+#, php-format
+msgid "Executing %s failed. Check system logs."
+msgstr "Ausführung von %s schlug fehl. Systemprotokolle prüfen."
+
+#: ../../mod/admin.php:464
+#, php-format
+msgid "Update %s was successfully applied."
+msgstr "Update %s war erfolgreich."
+
+#: ../../mod/admin.php:468
+#, php-format
+msgid "Update %s did not return a status. Unknown if it succeeded."
+msgstr "Update %s hat keinen Status zurückgegeben. Unbekannter Status."
+
+#: ../../mod/admin.php:471
+#, php-format
+msgid "Update function %s could not be found."
+msgstr "Updatefunktion %s konnte nicht gefunden werden."
+
+#: ../../mod/admin.php:486
+msgid "No failed updates."
+msgstr "Keine fehlgeschlagenen Updates."
+
+#: ../../mod/admin.php:490
+msgid "Failed Updates"
+msgstr "Fehlgeschlagene Updates"
+
+#: ../../mod/admin.php:491
+msgid ""
+"This does not include updates prior to 1139, which did not return a status."
+msgstr "Ohne Updates vor 1139, da diese keinen Status zurückgegeben haben."
+
+#: ../../mod/admin.php:492
+msgid "Mark success (if update was manually applied)"
+msgstr "Als erfolgreich markieren (falls das Update manuell installiert wurde)"
+
+#: ../../mod/admin.php:493
+msgid "Attempt to execute this update step automatically"
+msgstr "Versuchen, diesen Schritt automatisch auszuführen"
+
+#: ../../mod/admin.php:518
 #, php-format
 msgid "%s user blocked/unblocked"
 msgid_plural "%s users blocked/unblocked"
 msgstr[0] "%s Benutzer geblockt/freigegeben"
 msgstr[1] "%s Benutzer geblockt/freigegeben"
 
-#: ../../mod/admin.php:460
+#: ../../mod/admin.php:525
 #, php-format
 msgid "%s user deleted"
 msgid_plural "%s users deleted"
 msgstr[0] "%s Nutzer gelöscht"
 msgstr[1] "%s Nutzer gelöscht"
 
-#: ../../mod/admin.php:499
+#: ../../mod/admin.php:564
 #, php-format
 msgid "User '%s' deleted"
 msgstr "Nutzer '%s' gelöscht"
 
-#: ../../mod/admin.php:507
+#: ../../mod/admin.php:572
 #, php-format
 msgid "User '%s' unblocked"
 msgstr "Nutzer '%s' entsperrt"
 
-#: ../../mod/admin.php:507
+#: ../../mod/admin.php:572
 #, php-format
 msgid "User '%s' blocked"
 msgstr "Nutzer '%s' gesperrt"
 
-#: ../../mod/admin.php:571
+#: ../../mod/admin.php:636
 msgid "select all"
 msgstr "Alle auswählen"
 
-#: ../../mod/admin.php:572
+#: ../../mod/admin.php:637
 msgid "User registrations waiting for confirm"
 msgstr "Neuanmeldungen, die auf deine Bestätigung warten"
 
-#: ../../mod/admin.php:573
+#: ../../mod/admin.php:638
 msgid "Request date"
 msgstr "Anfrage Datum"
 
-#: ../../mod/admin.php:573 ../../mod/admin.php:582
+#: ../../mod/admin.php:638 ../../mod/admin.php:647
 #: ../../include/contact_selectors.php:79
 msgid "Email"
 msgstr "Email"
 
-#: ../../mod/admin.php:574
+#: ../../mod/admin.php:639
 msgid "No registrations."
 msgstr "Keine Neuanmeldungen."
 
-#: ../../mod/admin.php:576
+#: ../../mod/admin.php:641
 msgid "Deny"
 msgstr "Verwehren"
 
-#: ../../mod/admin.php:582
+#: ../../mod/admin.php:647
 msgid "Register date"
 msgstr "Anmeldedatum"
 
-#: ../../mod/admin.php:582
+#: ../../mod/admin.php:647
 msgid "Last login"
 msgstr "Letzte Anmeldung"
 
-#: ../../mod/admin.php:582
+#: ../../mod/admin.php:647
 msgid "Last item"
 msgstr "Letzter Beitrag"
 
-#: ../../mod/admin.php:582
+#: ../../mod/admin.php:647
 msgid "Account"
 msgstr "Nutzerkonto"
 
-#: ../../mod/admin.php:584
+#: ../../mod/admin.php:649
 msgid ""
 "Selected users will be deleted!\\n\\nEverything these users had posted on "
 "this site will be permanently deleted!\\n\\nAre you sure?"
 msgstr "Die markierten Nutzer werden gelöscht!\\n\\nAlle Beiträge, die diese Nutzer auf dieser Seite veröffentlicht haben, werden permanent gelöscht!\\n\\nBist du sicher?"
 
-#: ../../mod/admin.php:585
+#: ../../mod/admin.php:650
 msgid ""
 "The user {0} will be deleted!\\n\\nEverything this user has posted on this "
 "site will be permanently deleted!\\n\\nAre you sure?"
 msgstr "Der Nutzer {0} wird gelöscht!\\n\\nAlles was dieser Nutzer auf dieser Seite veröffentlicht hat, wird permanent gelöscht!\\n\\nBist du sicher?"
 
-#: ../../mod/admin.php:626
+#: ../../mod/admin.php:691
 #, php-format
 msgid "Plugin %s disabled."
 msgstr "Plugin %s deaktiviert."
 
-#: ../../mod/admin.php:630
+#: ../../mod/admin.php:695
 #, php-format
 msgid "Plugin %s enabled."
 msgstr "Plugin %s aktiviert."
 
-#: ../../mod/admin.php:640 ../../mod/admin.php:838
+#: ../../mod/admin.php:705 ../../mod/admin.php:903
 msgid "Disable"
 msgstr "Ausschalten"
 
-#: ../../mod/admin.php:642 ../../mod/admin.php:840
+#: ../../mod/admin.php:707 ../../mod/admin.php:905
 msgid "Enable"
 msgstr "Einschalten"
 
-#: ../../mod/admin.php:664 ../../mod/admin.php:869
+#: ../../mod/admin.php:729 ../../mod/admin.php:934
 msgid "Toggle"
 msgstr "Umschalten"
 
-#: ../../mod/admin.php:672 ../../mod/admin.php:879
+#: ../../mod/admin.php:737 ../../mod/admin.php:944
 msgid "Author: "
 msgstr "Autor:"
 
-#: ../../mod/admin.php:673 ../../mod/admin.php:880
+#: ../../mod/admin.php:738 ../../mod/admin.php:945
 msgid "Maintainer: "
 msgstr "Betreuer:"
 
-#: ../../mod/admin.php:802
+#: ../../mod/admin.php:867
 msgid "No themes found."
 msgstr "Keine Themen gefunden."
 
-#: ../../mod/admin.php:861
+#: ../../mod/admin.php:926
 msgid "Screenshot"
 msgstr "Bildschirmfoto"
 
-#: ../../mod/admin.php:909
+#: ../../mod/admin.php:974
 msgid "[Experimental]"
 msgstr "[Experimentell]"
 
-#: ../../mod/admin.php:910
+#: ../../mod/admin.php:975
 msgid "[Unsupported]"
 msgstr "[Nicht unterstützt]"
 
-#: ../../mod/admin.php:937
+#: ../../mod/admin.php:1002
 msgid "Log settings updated."
 msgstr "Protokolleinstellungen aktualisiert."
 
-#: ../../mod/admin.php:994
+#: ../../mod/admin.php:1058
 msgid "Clear"
 msgstr "löschen"
 
-#: ../../mod/admin.php:1000
+#: ../../mod/admin.php:1064
 msgid "Debugging"
 msgstr "Protokoll führen"
 
-#: ../../mod/admin.php:1001
+#: ../../mod/admin.php:1065
 msgid "Log file"
 msgstr "Protokolldatei"
 
-#: ../../mod/admin.php:1001
+#: ../../mod/admin.php:1065
 msgid ""
 "Must be writable by web server. Relative to your Friendica top-level "
 "directory."
 msgstr "Webserver muss Schreibrechte besitzen. Abhängig vom Friendica-Installationsverzeichnis."
 
-#: ../../mod/admin.php:1002
+#: ../../mod/admin.php:1066
 msgid "Log level"
 msgstr "Protokoll-Level"
 
-#: ../../mod/admin.php:1052
+#: ../../mod/admin.php:1116
 msgid "Close"
 msgstr "Schließen"
 
-#: ../../mod/admin.php:1058
+#: ../../mod/admin.php:1122
 msgid "FTP Host"
 msgstr "FTP Host"
 
-#: ../../mod/admin.php:1059
+#: ../../mod/admin.php:1123
 msgid "FTP Path"
 msgstr "FTP Pfad"
 
-#: ../../mod/admin.php:1060
+#: ../../mod/admin.php:1124
 msgid "FTP User"
 msgstr "FTP Nutzername"
 
-#: ../../mod/admin.php:1061
+#: ../../mod/admin.php:1125
 msgid "FTP Password"
 msgstr "FTP Passwort"
 
-#: ../../mod/profile.php:21 ../../boot.php:940
+#: ../../mod/profile.php:21 ../../boot.php:949
 msgid "Requested profile is not available."
 msgstr "Das angefragte Profil ist nicht vorhanden."
 
-#: ../../mod/profile.php:124 ../../mod/display.php:75
+#: ../../mod/profile.php:126 ../../mod/display.php:75
 msgid "Access to this profile has been restricted."
 msgstr "Der Zugriff zu diesem Profil wurde eingeschränkt."
 
-#: ../../mod/profile.php:145
+#: ../../mod/profile.php:151
 msgid "Tips for New Members"
 msgstr "Tipps für neue Nutzer"
 
-#: ../../mod/ping.php:175
+#: ../../mod/ping.php:177
 msgid "{0} wants to be your friend"
 msgstr "{0} möchte mit dir in Kontakt treten"
 
-#: ../../mod/ping.php:180
+#: ../../mod/ping.php:182
 msgid "{0} sent you a message"
 msgstr "{0} hat dir eine Nachricht geschickt"
 
-#: ../../mod/ping.php:185
+#: ../../mod/ping.php:187
 msgid "{0} requested registration"
 msgstr "{0} möchte sich registrieren"
 
-#: ../../mod/ping.php:191
+#: ../../mod/ping.php:193
 #, php-format
 msgid "{0} commented %s's post"
 msgstr "{0} kommentierte einen Beitrag von %s"
 
-#: ../../mod/ping.php:196
+#: ../../mod/ping.php:198
 #, php-format
 msgid "{0} liked %s's post"
 msgstr "{0} mag %ss Beitrag"
 
-#: ../../mod/ping.php:201
+#: ../../mod/ping.php:203
 #, php-format
 msgid "{0} disliked %s's post"
 msgstr "{0} mag %ss Beitrag nicht"
 
-#: ../../mod/ping.php:206
+#: ../../mod/ping.php:208
 #, php-format
 msgid "{0} is now friends with %s"
 msgstr "{0} ist jetzt mit %s befreundet"
 
-#: ../../mod/ping.php:211
+#: ../../mod/ping.php:213
 msgid "{0} posted"
 msgstr "{0} hat etwas veröffentlicht"
 
-#: ../../mod/ping.php:216
+#: ../../mod/ping.php:218
 #, php-format
 msgid "{0} tagged %s's post with #%s"
 msgstr "{0} hat %ss Beitrag mit dem Schlagwort #%s versehen"
 
-#: ../../mod/ping.php:222
+#: ../../mod/ping.php:224
 msgid "{0} mentioned you in a post"
 msgstr "{0} hat dich in einem Beitrag erwähnt"
 
@@ -3657,8 +3736,8 @@ msgstr "Keine Applikationen installiert."
 msgid "Search This Site"
 msgstr "Diese Seite durchsuchen"
 
-#: ../../mod/profiles.php:21 ../../mod/profiles.php:339
-#: ../../mod/profiles.php:453 ../../mod/dfrn_confirm.php:62
+#: ../../mod/profiles.php:21 ../../mod/profiles.php:375
+#: ../../mod/profiles.php:489 ../../mod/dfrn_confirm.php:62
 msgid "Profile not found."
 msgstr "Profil nicht gefunden."
 
@@ -3666,263 +3745,277 @@ msgstr "Profil nicht gefunden."
 msgid "Profile Name is required."
 msgstr "Profilname ist erforderlich."
 
-#: ../../mod/profiles.php:143
+#: ../../mod/profiles.php:145
 msgid "Marital Status"
 msgstr "Familienstand"
 
-#: ../../mod/profiles.php:144
+#: ../../mod/profiles.php:149
 msgid "Romantic Partner"
 msgstr "Romanze"
 
-#: ../../mod/profiles.php:145
+#: ../../mod/profiles.php:153
 msgid "Work/Employment"
 msgstr "Arbeit / Beschäftigung"
 
-#: ../../mod/profiles.php:146
+#: ../../mod/profiles.php:156
 msgid "Religion"
 msgstr "Religion"
 
-#: ../../mod/profiles.php:147
+#: ../../mod/profiles.php:160
 msgid "Political Views"
 msgstr "Politische Ansichten"
 
-#: ../../mod/profiles.php:148
+#: ../../mod/profiles.php:164
 msgid "Gender"
 msgstr "Geschlecht"
 
-#: ../../mod/profiles.php:149
+#: ../../mod/profiles.php:168
 msgid "Sexual Preference"
 msgstr "Sexuelle Vorlieben"
 
-#: ../../mod/profiles.php:150
+#: ../../mod/profiles.php:172
 msgid "Homepage"
 msgstr "Webseite"
 
-#: ../../mod/profiles.php:151
+#: ../../mod/profiles.php:176
 msgid "Interests"
 msgstr "Interessen"
 
-#: ../../mod/profiles.php:154
+#: ../../mod/profiles.php:181
 msgid "Location"
 msgstr "Wohnort"
 
-#: ../../mod/profiles.php:225
+#: ../../mod/profiles.php:253
 msgid "Profile updated."
 msgstr "Profil aktualisiert."
 
-#: ../../mod/profiles.php:300
+#: ../../mod/profiles.php:320
+msgid " and "
+msgstr " und "
+
+#: ../../mod/profiles.php:328
 msgid "public profile"
 msgstr "öffentliches Profil"
 
-#: ../../mod/profiles.php:302
+#: ../../mod/profiles.php:331
+#, php-format
+msgid "%1$s changed %2$s to \"%3$s\""
+msgstr "%1$s änderte %2$s zu \"%3$s\""
+
+#: ../../mod/profiles.php:332
+#, php-format
+msgid " - Visit %1$s's %2$s"
+msgstr " - %1$s's %2$s besuchen"
+
+#: ../../mod/profiles.php:335
 #, php-format
 msgid "%1$s has an updated %2$s, changing %3$s."
 msgstr "%1$s hat folgendes aktualisiert %2$s, verändert wurde %3$s."
 
-#: ../../mod/profiles.php:358
+#: ../../mod/profiles.php:394
 msgid "Profile deleted."
 msgstr "Profil gelöscht."
 
-#: ../../mod/profiles.php:376 ../../mod/profiles.php:410
+#: ../../mod/profiles.php:412 ../../mod/profiles.php:446
 msgid "Profile-"
 msgstr "Profil-"
 
-#: ../../mod/profiles.php:395 ../../mod/profiles.php:437
+#: ../../mod/profiles.php:431 ../../mod/profiles.php:473
 msgid "New profile created."
 msgstr "Neues Profil angelegt."
 
-#: ../../mod/profiles.php:416
+#: ../../mod/profiles.php:452
 msgid "Profile unavailable to clone."
 msgstr "Profil nicht zum Duplizieren verfügbar."
 
-#: ../../mod/profiles.php:474
+#: ../../mod/profiles.php:510
 msgid "Hide your contact/friend list from viewers of this profile?"
 msgstr "Liste der Kontakte vor Betrachtern dieses Profils verbergen?"
 
-#: ../../mod/profiles.php:497
+#: ../../mod/profiles.php:533
 msgid "Edit Profile Details"
 msgstr "Profil bearbeiten"
 
-#: ../../mod/profiles.php:499
+#: ../../mod/profiles.php:535
 msgid "View this profile"
 msgstr "Dieses Profil anzeigen"
 
-#: ../../mod/profiles.php:500
+#: ../../mod/profiles.php:536
 msgid "Create a new profile using these settings"
 msgstr "Neues Profil anlegen und diese Einstellungen verwenden"
 
-#: ../../mod/profiles.php:501
+#: ../../mod/profiles.php:537
 msgid "Clone this profile"
 msgstr "Dieses Profil duplizieren"
 
-#: ../../mod/profiles.php:502
+#: ../../mod/profiles.php:538
 msgid "Delete this profile"
 msgstr "Dieses Profil löschen"
 
-#: ../../mod/profiles.php:503
+#: ../../mod/profiles.php:539
 msgid "Profile Name:"
 msgstr "Profilname:"
 
-#: ../../mod/profiles.php:504
+#: ../../mod/profiles.php:540
 msgid "Your Full Name:"
 msgstr "Dein kompletter Name:"
 
-#: ../../mod/profiles.php:505
+#: ../../mod/profiles.php:541
 msgid "Title/Description:"
 msgstr "Titel/Beschreibung:"
 
-#: ../../mod/profiles.php:506
+#: ../../mod/profiles.php:542
 msgid "Your Gender:"
 msgstr "Dein Geschlecht:"
 
-#: ../../mod/profiles.php:507
+#: ../../mod/profiles.php:543
 #, php-format
 msgid "Birthday (%s):"
 msgstr "Geburtstag (%s):"
 
-#: ../../mod/profiles.php:508
+#: ../../mod/profiles.php:544
 msgid "Street Address:"
 msgstr "Adresse:"
 
-#: ../../mod/profiles.php:509
+#: ../../mod/profiles.php:545
 msgid "Locality/City:"
 msgstr "Wohnort/Stadt:"
 
-#: ../../mod/profiles.php:510
+#: ../../mod/profiles.php:546
 msgid "Postal/Zip Code:"
 msgstr "Postleitzahl:"
 
-#: ../../mod/profiles.php:511
+#: ../../mod/profiles.php:547
 msgid "Country:"
 msgstr "Land:"
 
-#: ../../mod/profiles.php:512
+#: ../../mod/profiles.php:548
 msgid "Region/State:"
 msgstr "Region/Bundesstaat:"
 
-#: ../../mod/profiles.php:513
+#: ../../mod/profiles.php:549
 msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
 msgstr "<span class=\"heart\">&hearts;</span> Beziehungsstatus:"
 
-#: ../../mod/profiles.php:514
+#: ../../mod/profiles.php:550
 msgid "Who: (if applicable)"
 msgstr "Wer: (falls anwendbar)"
 
-#: ../../mod/profiles.php:515
+#: ../../mod/profiles.php:551
 msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
 msgstr "Beispiele: cathy123, Cathy Williams, cathy@example.com"
 
-#: ../../mod/profiles.php:516 ../../include/profile_advanced.php:43
+#: ../../mod/profiles.php:552 ../../include/profile_advanced.php:43
 msgid "Sexual Preference:"
 msgstr "Sexuelle Vorlieben:"
 
-#: ../../mod/profiles.php:517
+#: ../../mod/profiles.php:553
 msgid "Homepage URL:"
 msgstr "Adresse der Homepage:"
 
-#: ../../mod/profiles.php:518 ../../include/profile_advanced.php:49
+#: ../../mod/profiles.php:554 ../../include/profile_advanced.php:49
 msgid "Political Views:"
 msgstr "Politische Ansichten:"
 
-#: ../../mod/profiles.php:519
+#: ../../mod/profiles.php:555
 msgid "Religious Views:"
 msgstr "Religiöse Ansichten:"
 
-#: ../../mod/profiles.php:520
+#: ../../mod/profiles.php:556
 msgid "Public Keywords:"
 msgstr "Öffentliche Schlüsselwörter:"
 
-#: ../../mod/profiles.php:521
+#: ../../mod/profiles.php:557
 msgid "Private Keywords:"
 msgstr "Private Schlüsselwörter:"
 
-#: ../../mod/profiles.php:522
+#: ../../mod/profiles.php:558
 msgid "Example: fishing photography software"
 msgstr "Beispiel: Fischen Fotografie Software"
 
-#: ../../mod/profiles.php:523
+#: ../../mod/profiles.php:559
 msgid "(Used for suggesting potential friends, can be seen by others)"
 msgstr "(Wird verwendet um potentielle Freunde zu finden, könnte von Fremden eingesehen werden)"
 
-#: ../../mod/profiles.php:524
+#: ../../mod/profiles.php:560
 msgid "(Used for searching profiles, never shown to others)"
 msgstr "(Wird für die Suche nach Profilen verwendet und niemals veröffentlicht)"
 
-#: ../../mod/profiles.php:525
+#: ../../mod/profiles.php:561
 msgid "Tell us about yourself..."
 msgstr "Erzähle uns ein bisschen von dir …"
 
-#: ../../mod/profiles.php:526
+#: ../../mod/profiles.php:562
 msgid "Hobbies/Interests"
 msgstr "Hobbies/Interessen"
 
-#: ../../mod/profiles.php:527
+#: ../../mod/profiles.php:563
 msgid "Contact information and Social Networks"
 msgstr "Kontaktinformationen und Soziale Netzwerke"
 
-#: ../../mod/profiles.php:528
+#: ../../mod/profiles.php:564
 msgid "Musical interests"
 msgstr "Musikalische Interessen"
 
-#: ../../mod/profiles.php:529
+#: ../../mod/profiles.php:565
 msgid "Books, literature"
 msgstr "Literatur/Bücher"
 
-#: ../../mod/profiles.php:530
+#: ../../mod/profiles.php:566
 msgid "Television"
 msgstr "Fernsehen"
 
-#: ../../mod/profiles.php:531
+#: ../../mod/profiles.php:567
 msgid "Film/dance/culture/entertainment"
 msgstr "Filme/Tänze/Kultur/Unterhaltung"
 
-#: ../../mod/profiles.php:532
+#: ../../mod/profiles.php:568
 msgid "Love/romance"
 msgstr "Liebesleben"
 
-#: ../../mod/profiles.php:533
+#: ../../mod/profiles.php:569
 msgid "Work/employment"
 msgstr "Arbeit/Beschäftigung"
 
-#: ../../mod/profiles.php:534
+#: ../../mod/profiles.php:570
 msgid "School/education"
 msgstr "Schule/Ausbildung"
 
-#: ../../mod/profiles.php:539
+#: ../../mod/profiles.php:575
 msgid ""
 "This is your <strong>public</strong> profile.<br />It <strong>may</strong> "
 "be visible to anybody using the internet."
 msgstr "Dies ist dein <strong>öffentliches</strong> Profil.<br />Es <strong>könnte</strong> für jeden Nutzer des Internets sichtbar sein."
 
-#: ../../mod/profiles.php:549 ../../mod/directory.php:111
+#: ../../mod/profiles.php:585 ../../mod/directory.php:111
 msgid "Age: "
 msgstr "Alter: "
 
-#: ../../mod/profiles.php:584
+#: ../../mod/profiles.php:620
 msgid "Edit/Manage Profiles"
 msgstr "Verwalte/Editiere Profile"
 
-#: ../../mod/profiles.php:585 ../../boot.php:1049
+#: ../../mod/profiles.php:621 ../../boot.php:1058
 msgid "Change profile photo"
 msgstr "Profilbild ändern"
 
-#: ../../mod/profiles.php:586 ../../boot.php:1050
+#: ../../mod/profiles.php:622 ../../boot.php:1059
 msgid "Create New Profile"
 msgstr "Neues Profil anlegen"
 
-#: ../../mod/profiles.php:597 ../../boot.php:1060
+#: ../../mod/profiles.php:633 ../../boot.php:1069
 msgid "Profile Image"
 msgstr "Profilbild"
 
-#: ../../mod/profiles.php:599 ../../boot.php:1063
+#: ../../mod/profiles.php:635 ../../boot.php:1072
 msgid "visible to everybody"
 msgstr "sichtbar für jeden"
 
-#: ../../mod/profiles.php:600 ../../boot.php:1064
+#: ../../mod/profiles.php:636 ../../boot.php:1073
 msgid "Edit visibility"
 msgstr "Sichtbarkeit bearbeiten"
 
-#: ../../mod/filer.php:29 ../../include/conversation.php:914
+#: ../../mod/filer.php:29 ../../include/conversation.php:922
 msgid "Save to Folder:"
 msgstr "In diesen Ordner verschieben:"
 
@@ -3970,14 +4063,7 @@ msgstr "Hinzufügen"
 msgid "No entries."
 msgstr "Keine Einträge"
 
-#: ../../mod/suggest.php:38
-#: ../../view/theme/diabook/diabook-green/theme.php:145
-#: ../../view/theme/diabook/diabook-red/theme.php:143
-#: ../../view/theme/diabook/diabook-blue/theme.php:143
-#: ../../view/theme/diabook/theme.php:158
-#: ../../view/theme/diabook/diabook-dark/theme.php:145
-#: ../../view/theme/diabook/diabook-aerith/theme.php:145
-#: ../../view/theme/diabook/diabook-pink/theme.php:145
+#: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:183
 #: ../../include/contact_widgets.php:34
 msgid "Friend Suggestions"
 msgstr "Kontaktvorschläge"
@@ -3992,14 +4078,7 @@ msgstr "Keine Vorschläge. Falls der Server frisch aufgesetzt wurde, versuche es
 msgid "Ignore/Hide"
 msgstr "Ignorieren/Verbergen"
 
-#: ../../mod/directory.php:47
-#: ../../view/theme/diabook/diabook-green/theme.php:143
-#: ../../view/theme/diabook/diabook-red/theme.php:141
-#: ../../view/theme/diabook/diabook-blue/theme.php:141
-#: ../../view/theme/diabook/theme.php:156
-#: ../../view/theme/diabook/diabook-dark/theme.php:143
-#: ../../view/theme/diabook/diabook-aerith/theme.php:143
-#: ../../view/theme/diabook/diabook-pink/theme.php:143
+#: ../../mod/directory.php:47 ../../view/theme/diabook/theme.php:181
 msgid "Global Directory"
 msgstr "Weltweites Verzeichnis"
 
@@ -4057,7 +4136,7 @@ msgstr "Besuche %s für eine Liste der öffentlichen Server, denen du beitreten
 msgid ""
 "To accept this invitation, please visit and register at %s or any other "
 "public Friendica website."
-msgstr "Um diese Freundschaftsanfrage zu akzeptieren, besuche und registriere dich bitte bei %s oder einer anderen öffentlichen Friendica Website."
+msgstr "Um diese Kontaktanfrage zu akzeptieren, besuche und registriere dich bitte bei %s oder einer anderen öffentlichen Friendica Website."
 
 #: ../../mod/invite.php:103
 #, php-format
@@ -4138,118 +4217,123 @@ msgstr "Kontaktanfrage schlug fehl oder wurde zurück gezogen."
 msgid "Unable to set contact photo."
 msgstr "Konnte das Bild des Kontakts nicht speichern."
 
-#: ../../mod/dfrn_confirm.php:477 ../../include/diaspora.php:507
+#: ../../mod/dfrn_confirm.php:482 ../../include/diaspora.php:507
 #: ../../include/conversation.php:101
 #, php-format
 msgid "%1$s is now friends with %2$s"
 msgstr "%1$s ist nun mit %2$s befreundet"
 
-#: ../../mod/dfrn_confirm.php:548
+#: ../../mod/dfrn_confirm.php:554
 #, php-format
 msgid "No user record found for '%s' "
 msgstr "Für '%s' wurde kein Nutzer gefunden"
 
-#: ../../mod/dfrn_confirm.php:558
+#: ../../mod/dfrn_confirm.php:564
 msgid "Our site encryption key is apparently messed up."
 msgstr "Der Verschlüsselungsschlüssel unserer Seite ist anscheinend im Arsch."
 
-#: ../../mod/dfrn_confirm.php:569
+#: ../../mod/dfrn_confirm.php:575
 msgid "Empty site URL was provided or URL could not be decrypted by us."
 msgstr "Leere URL für die Seite erhalten oder die URL konnte nicht entschlüsselt werden."
 
-#: ../../mod/dfrn_confirm.php:590
+#: ../../mod/dfrn_confirm.php:596
 msgid "Contact record was not found for you on our site."
 msgstr "Für diesen Kontakt wurde auf unserer Seite kein Eintrag gefunden."
 
-#: ../../mod/dfrn_confirm.php:604
+#: ../../mod/dfrn_confirm.php:610
 #, php-format
 msgid "Site public key not available in contact record for URL %s."
 msgstr "Die Kontaktdaten für URL %s enthalten keinen Public Key für den Server."
 
-#: ../../mod/dfrn_confirm.php:624
+#: ../../mod/dfrn_confirm.php:630
 msgid ""
 "The ID provided by your system is a duplicate on our system. It should work "
 "if you try again."
 msgstr "Die ID, die uns dein System angeboten hat, ist hier bereits vergeben. Bitte versuche es noch einmal."
 
-#: ../../mod/dfrn_confirm.php:635
+#: ../../mod/dfrn_confirm.php:641
 msgid "Unable to set your contact credentials on our system."
 msgstr "Deine Kontaktreferenzen konnten nicht in unserem System gespeichert werden."
 
-#: ../../mod/dfrn_confirm.php:700
+#: ../../mod/dfrn_confirm.php:706
 msgid "Unable to update your contact profile details on our system"
 msgstr "Die Updates für dein Profil konnten nicht gespeichert werden"
 
-#: ../../mod/dfrn_confirm.php:730
+#: ../../mod/dfrn_confirm.php:740
 #, php-format
 msgid "Connection accepted at %s"
 msgstr "Auf %s wurde die Verbindung akzeptiert"
 
-#: ../../addon/facebook/facebook.php:490
+#: ../../mod/dfrn_confirm.php:789
+#, php-format
+msgid "%1$s has joined %2$s"
+msgstr "%1$s ist %2$s beigetreten"
+
+#: ../../addon/facebook/facebook.php:491
 msgid "Facebook disabled"
 msgstr "Facebook deaktiviert"
 
-#: ../../addon/facebook/facebook.php:495
+#: ../../addon/facebook/facebook.php:496
 msgid "Updating contacts"
 msgstr "Aktualisiere Kontakte"
 
-#: ../../addon/facebook/facebook.php:515
+#: ../../addon/facebook/facebook.php:516
 msgid "Facebook API key is missing."
 msgstr "Facebook-API-Schlüssel nicht gefunden"
 
-#: ../../addon/facebook/facebook.php:522
+#: ../../addon/facebook/facebook.php:523
 msgid "Facebook Connect"
 msgstr "Mit Facebook verbinden"
 
-#: ../../addon/facebook/facebook.php:528
+#: ../../addon/facebook/facebook.php:529
 msgid "Install Facebook connector for this account."
 msgstr "Facebook-Connector für diesen Account installieren."
 
-#: ../../addon/facebook/facebook.php:535
+#: ../../addon/facebook/facebook.php:536
 msgid "Remove Facebook connector"
 msgstr "Facebook-Connector entfernen"
 
-#: ../../addon/facebook/facebook.php:540
+#: ../../addon/facebook/facebook.php:541
 msgid ""
 "Re-authenticate [This is necessary whenever your Facebook password is "
 "changed.]"
 msgstr "Neu authentifizieren [Das ist immer dann nötig, wenn Du Dein Facebook-Passwort geändert hast.]"
 
-#: ../../addon/facebook/facebook.php:547
+#: ../../addon/facebook/facebook.php:548
 msgid "Post to Facebook by default"
 msgstr "Veröffentliche standardmäßig bei Facebook"
 
-#: ../../addon/facebook/facebook.php:551
+#: ../../addon/facebook/facebook.php:552
 msgid "Link all your Facebook friends and conversations on this website"
 msgstr "All meine Facebook-Kontakte und -Konversationen hier auf diese Website importieren"
 
-#: ../../addon/facebook/facebook.php:553
+#: ../../addon/facebook/facebook.php:554
 msgid ""
 "Facebook conversations consist of your <em>profile wall</em> and your friend"
 " <em>stream</em>."
 msgstr "Facebook-Konversationen bestehen aus deinen Beiträgen auf deiner<em>Pinnwand</em>, sowie den Beiträgen deiner Freunde <em>Stream</em>."
 
-#: ../../addon/facebook/facebook.php:554
+#: ../../addon/facebook/facebook.php:555
 msgid "On this website, your Facebook friend stream is only visible to you."
 msgstr "Hier auf dieser Webseite kannst nur du die Beiträge Deiner Facebook-Freunde (Stream) sehen."
 
-#: ../../addon/facebook/facebook.php:555
+#: ../../addon/facebook/facebook.php:556
 msgid ""
 "The following settings determine the privacy of your Facebook profile wall "
 "on this website."
 msgstr "Mit den folgenden Einstellungen kannst Du die Privatsphäre der Kopie Deiner Facebook-Pinnwand hier auf dieser Seite einstellen."
 
-#: ../../addon/facebook/facebook.php:559
+#: ../../addon/facebook/facebook.php:560
 msgid ""
 "On this website your Facebook profile wall conversations will only be "
 "visible to you"
 msgstr "Meine Facebook-Pinnwand hier auf dieser Webseite nur für mich sichtbar machen"
 
-#: ../../addon/facebook/facebook.php:564
+#: ../../addon/facebook/facebook.php:565
 msgid "Do not import your Facebook profile wall conversations"
 msgstr "Facebook-Pinnwand nicht importieren"
 
-#: ../../addon/facebook/facebook.php:566
+#: ../../addon/facebook/facebook.php:567
 msgid ""
 "If you choose to link conversations and leave both of these boxes unchecked,"
 " your Facebook profile wall will be merged with your profile wall on this "
@@ -4257,114 +4341,120 @@ msgid ""
 "who may see the conversations."
 msgstr "Wenn Du Facebook-Konversationen importierst und diese beiden Häkchen nicht setzt, wird Deine Facebook-Pinnwand mit der Pinnwand hier auf dieser Webseite vereinigt. Die Privatsphäre-Einstellungen für Deine Pinnwand auf dieser Webseite geben dann an, wer die Konversationen sehen kann."
 
-#: ../../addon/facebook/facebook.php:571
+#: ../../addon/facebook/facebook.php:572
 msgid "Comma separated applications to ignore"
 msgstr "Komma separiert Anwendungen, die ignoriert werden sollen"
 
-#: ../../addon/facebook/facebook.php:648
+#: ../../addon/facebook/facebook.php:656
 msgid "Problems with Facebook Real-Time Updates"
 msgstr "Probleme mit Facebook Echtzeit-Updates"
 
-#: ../../addon/facebook/facebook.php:675
+#: ../../addon/facebook/facebook.php:684
 #: ../../include/contact_selectors.php:81
 msgid "Facebook"
 msgstr "Facebook"
 
-#: ../../addon/facebook/facebook.php:676
+#: ../../addon/facebook/facebook.php:685
 msgid "Facebook Connector Settings"
 msgstr "Facebook-Verbindungseinstellungen"
 
-#: ../../addon/facebook/facebook.php:691
+#: ../../addon/facebook/facebook.php:700
 msgid "Facebook API Key"
 msgstr "Facebook API Schlüssel"
 
-#: ../../addon/facebook/facebook.php:700
+#: ../../addon/facebook/facebook.php:710
 msgid ""
 "Error: it appears that you have specified the App-ID and -Secret in your "
 ".htconfig.php file. As long as they are specified there, they cannot be set "
 "using this form.<br><br>"
 msgstr "Fehler: du scheinst die App-ID und das App-Geheimnis in deiner .htconfig.php Datei angegeben zu haben. Solange sie dort festgelegt werden kannst du dieses Formular hier nicht verwenden.<br><br>"
 
-#: ../../addon/facebook/facebook.php:705
+#: ../../addon/facebook/facebook.php:715
 msgid ""
 "Error: the given API Key seems to be incorrect (the application access token"
 " could not be retrieved)."
 msgstr "Fehler: der angegebene API Schlüssel scheint nicht korrekt zu sein (Zugriffstoken konnte nicht empfangen werden)."
 
-#: ../../addon/facebook/facebook.php:707
+#: ../../addon/facebook/facebook.php:717
 msgid "The given API Key seems to work correctly."
 msgstr "Der angegebene API Schlüssel scheint korrekt zu funktionieren."
 
-#: ../../addon/facebook/facebook.php:709
+#: ../../addon/facebook/facebook.php:719
 msgid ""
 "The correctness of the API Key could not be detected. Somthing strange's "
 "going on."
 msgstr "Die Echtheit des API Schlüssels konnte nicht überprüft werden. Etwas Merkwürdiges ist hier im Gange."
 
-#: ../../addon/facebook/facebook.php:712
+#: ../../addon/facebook/facebook.php:722
 msgid "App-ID / API-Key"
 msgstr "App-ID / API-Key"
 
-#: ../../addon/facebook/facebook.php:713
+#: ../../addon/facebook/facebook.php:723
 msgid "Application secret"
 msgstr "Anwendungs-Geheimnis"
 
-#: ../../addon/facebook/facebook.php:714
+#: ../../addon/facebook/facebook.php:724
 #, php-format
-msgid "Polling Interval (min. %1$s minutes)"
-msgstr "Abrufintervall (min. %1$s Minuten)"
+msgid "Polling Interval in minutes (minimum %1$s minutes)"
+msgstr "Abfrage-Intervall in Minuten (min %1$s Minuten)"
 
-#: ../../addon/facebook/facebook.php:718
+#: ../../addon/facebook/facebook.php:725
+msgid ""
+"Synchronize comments (no comments on Facebook are missed, at the cost of "
+"increased system load)"
+msgstr "Kommentare synchronisieren (Kein Kommentar von Facebook geht verlohren, verursacht höhere Last auf dem Server)"
+
+#: ../../addon/facebook/facebook.php:729
 msgid "Real-Time Updates"
 msgstr "Echt-Zeit Aktualisierungen"
 
-#: ../../addon/facebook/facebook.php:722
+#: ../../addon/facebook/facebook.php:733
 msgid "Real-Time Updates are activated."
 msgstr "Echtzeit-Updates sind aktiviert."
 
-#: ../../addon/facebook/facebook.php:723
+#: ../../addon/facebook/facebook.php:734
 msgid "Deactivate Real-Time Updates"
 msgstr "Echtzeit-Updates deaktivieren"
 
-#: ../../addon/facebook/facebook.php:725
+#: ../../addon/facebook/facebook.php:736
 msgid "Real-Time Updates not activated."
 msgstr "Echtzeit-Updates nicht aktiviert."
 
-#: ../../addon/facebook/facebook.php:725
+#: ../../addon/facebook/facebook.php:736
 msgid "Activate Real-Time Updates"
 msgstr "Echtzeit-Updates aktivieren"
 
-#: ../../addon/facebook/facebook.php:743
+#: ../../addon/facebook/facebook.php:755
 msgid "The new values have been saved."
 msgstr "Die neuen Einstellungen wurden gespeichert."
 
-#: ../../addon/facebook/facebook.php:767
+#: ../../addon/facebook/facebook.php:779
 msgid "Post to Facebook"
 msgstr "Bei Facebook veröffentlichen"
 
-#: ../../addon/facebook/facebook.php:865
+#: ../../addon/facebook/facebook.php:877
 msgid ""
 "Post to Facebook cancelled because of multi-network access permission "
 "conflict."
 msgstr "Beitrag wurde nicht bei Facebook veröffentlicht, da Konflikte bei den Multi-Netzwerk-Zugriffsrechten vorliegen."
 
-#: ../../addon/facebook/facebook.php:1085
+#: ../../addon/facebook/facebook.php:1097
 msgid "View on Friendica"
 msgstr "In Friendica betrachten"
 
-#: ../../addon/facebook/facebook.php:1118
+#: ../../addon/facebook/facebook.php:1130
 msgid "Facebook post failed. Queued for retry."
 msgstr "Veröffentlichung bei Facebook gescheitert. Wir versuchen es später erneut."
 
-#: ../../addon/facebook/facebook.php:1158
+#: ../../addon/facebook/facebook.php:1170
 msgid "Your Facebook connection became invalid. Please Re-authenticate."
 msgstr "Deine Facebook Anmeldedaten sind ungültig geworden. Bitte re-authentifiziere dich."
 
-#: ../../addon/facebook/facebook.php:1159
+#: ../../addon/facebook/facebook.php:1171
 msgid "Facebook connection became invalid"
 msgstr "Facebook Anmeldedaten sind ungültig geworden"
 
-#: ../../addon/facebook/facebook.php:1160
+#: ../../addon/facebook/facebook.php:1172
 #, php-format
 msgid ""
 "Hi %1$s,\n"
@@ -4372,6 +4462,26 @@ msgid ""
 "The connection between your accounts on %2$s and Facebook became invalid. This usually happens after you change your Facebook-password. To enable the connection again, you have to %3$sre-authenticate the Facebook-connector%4$s."
 msgstr "Hi %1$s,\n\ndie Verbindung von deinem Account auf %2$s und Facebook funktioniert derzeit nicht. Dies ist im Allgemeinen das Ergebnis einer Passwortänderung bei Facebook. Um die Verbindung wieder zu aktivieren musst du  %3$sden Facebook-Connector neu Authentifizieren%4$s."
 
+#: ../../addon/privacy_image_cache/privacy_image_cache.php:144
+msgid "Lifetime of the cache (in hours)"
+msgstr "Lebenszeit des Caches (in Stunden)"
+
+#: ../../addon/privacy_image_cache/privacy_image_cache.php:149
+msgid "Cache Statistics"
+msgstr "Cache Statistik"
+
+#: ../../addon/privacy_image_cache/privacy_image_cache.php:152
+msgid "Number of items"
+msgstr "Anzahl der Einträge"
+
+#: ../../addon/privacy_image_cache/privacy_image_cache.php:154
+msgid "Size of the cache"
+msgstr "Größe des Caches"
+
+#: ../../addon/privacy_image_cache/privacy_image_cache.php:156
+msgid "Delete the whole cache"
+msgstr "Cache leeren"
+
 #: ../../addon/widgets/widget_like.php:58
 #, php-format
 msgid "%d person likes this"
@@ -4386,6 +4496,10 @@ msgid_plural "%d people don't like this"
 msgstr[0] " %d Person mag das nicht"
 msgstr[1] "%d Leute mögen das nicht"
 
+#: ../../addon/widgets/widget_friendheader.php:40
+msgid "Get added to this list!"
+msgstr "Werde Mitglied dieser Liste"
+
 #: ../../addon/widgets/widgets.php:56
 msgid "Generate new key"
 msgstr "Neuen Schlüssel erstellen"
@@ -4501,7 +4615,7 @@ msgstr "Aktiviere Planeten Plugin"
 #: ../../addon/communityhome/communityhome.php:34
 #: ../../addon/communityhome/twillingham/communityhome.php:28
 #: ../../addon/communityhome/twillingham/communityhome.php:34
-#: ../../include/nav.php:64 ../../boot.php:796
+#: ../../include/nav.php:64 ../../boot.php:805
 msgid "Login"
 msgstr "Anmeldung"
 
@@ -4529,15 +4643,8 @@ msgid "Latest likes"
 msgstr "Neueste Favoriten"
 
 #: ../../addon/communityhome/communityhome.php:155
-#: ../../view/theme/diabook/diabook-green/theme.php:80
-#: ../../view/theme/diabook/diabook-red/theme.php:79
-#: ../../view/theme/diabook/diabook-blue/theme.php:79
-#: ../../view/theme/diabook/theme.php:94
-#: ../../view/theme/diabook/diabook-dark/theme.php:80
-#: ../../view/theme/diabook/diabook-aerith/theme.php:80
-#: ../../view/theme/diabook/diabook-pink/theme.php:80
-#: ../../include/text.php:1302 ../../include/conversation.php:45
-#: ../../include/conversation.php:118
+#: ../../view/theme/diabook/theme.php:119 ../../include/text.php:1302
+#: ../../include/conversation.php:45 ../../include/conversation.php:118
 msgid "event"
 msgstr "Veranstaltung"
 
@@ -4745,68 +4852,70 @@ msgstr "OEmbed für Youtube Videos verwenden"
 msgid "URL to embed:"
 msgstr "URL zum Einbetten:"
 
-#: ../../addon/impressum/impressum.php:34
+#: ../../addon/impressum/impressum.php:36
 msgid "Impressum"
 msgstr "Impressum"
 
-#: ../../addon/impressum/impressum.php:47
 #: ../../addon/impressum/impressum.php:49
-#: ../../addon/impressum/impressum.php:81
+#: ../../addon/impressum/impressum.php:51
+#: ../../addon/impressum/impressum.php:83
 msgid "Site Owner"
 msgstr "Betreiber der Seite"
 
-#: ../../addon/impressum/impressum.php:47
-#: ../../addon/impressum/impressum.php:85
+#: ../../addon/impressum/impressum.php:49
+#: ../../addon/impressum/impressum.php:87
 msgid "Email Address"
 msgstr "Email Adresse"
 
-#: ../../addon/impressum/impressum.php:52
-#: ../../addon/impressum/impressum.php:83
+#: ../../addon/impressum/impressum.php:54
+#: ../../addon/impressum/impressum.php:85
 msgid "Postal Address"
 msgstr "Postalische Anschrift"
 
-#: ../../addon/impressum/impressum.php:58
+#: ../../addon/impressum/impressum.php:60
 msgid ""
 "The impressum addon needs to be configured!<br />Please add at least the "
 "<tt>owner</tt> variable to your config file. For other variables please "
 "refer to the README file of the addon."
 msgstr "Das Impressums-Plugin muss noch konfiguriert werden.<br />Bitte gebe mindestens den <tt>Betreiber</tt> in der Konfiguration an. Alle weiteren Parameter werden in der README-Datei des Addons erläutert."
 
-#: ../../addon/impressum/impressum.php:81
+#: ../../addon/impressum/impressum.php:83
 msgid "The page operators name."
 msgstr "Name des Server-Administrators"
 
-#: ../../addon/impressum/impressum.php:82
+#: ../../addon/impressum/impressum.php:84
 msgid "Site Owners Profile"
 msgstr "Profil des Seitenbetreibers"
 
-#: ../../addon/impressum/impressum.php:82
+#: ../../addon/impressum/impressum.php:84
 msgid "Profile address of the operator."
 msgstr "Profil-Adresse des Server-Administrators"
 
-#: ../../addon/impressum/impressum.php:83
-msgid "How to contact the operator via snail mail."
-msgstr "Wie erreicht man den Betreiber der Seite postalisch."
+#: ../../addon/impressum/impressum.php:85
+msgid "How to contact the operator via snail mail. You can use BBCode here."
+msgstr "Kontaktmöglichkeiten zum Administrator via Schneckenpost. Du kannst BBCode verwenden."
 
-#: ../../addon/impressum/impressum.php:84
+#: ../../addon/impressum/impressum.php:86
 msgid "Notes"
 msgstr "Hinweise"
 
-#: ../../addon/impressum/impressum.php:84
-msgid "Additional notes that are displayed beneath the contact information."
-msgstr "Zusätzliche Angaben, die unterhalb der Kontakt-Informationen angezeigt werden."
+#: ../../addon/impressum/impressum.php:86
+msgid ""
+"Additional notes that are displayed beneath the contact information. You can"
+" use BBCode here."
+msgstr "Zusätzliche Informationen die neben den Kontaktmöglichkeiten angezeigt werden. Du kannst BBCode verwenden."
 
-#: ../../addon/impressum/impressum.php:85
+#: ../../addon/impressum/impressum.php:87
 msgid "How to contact the operator via email. (will be displayed obfuscated)"
 msgstr "Wie erreichts man den Betreiber per Email. (Adresse wird verschleiert dargestellt)"
 
-#: ../../addon/impressum/impressum.php:86
+#: ../../addon/impressum/impressum.php:88
 msgid "Footer note"
 msgstr "Fußnote"
 
-#: ../../addon/impressum/impressum.php:86
-msgid "Text for the footer."
-msgstr "Text für die Fußnote"
+#: ../../addon/impressum/impressum.php:88
+msgid "Text for the footer. You can use BBCode here."
+msgstr "Text für die Fußzeile. Du kannst BBCode verwenden."
 
 #: ../../addon/buglink/buglink.php:15
 msgid "Report Bug"
@@ -5110,7 +5219,7 @@ msgid ""
 "If enabled all your <strong>public</strong> postings can be posted to the "
 "associated StatusNet account. You can choose to do so by default (here) or "
 "for every posting separately in the posting options when writing the entry."
-msgstr "Wenn aktiviert, so können all deine <strong>öffentlichen</strong> Einträge auf dem verbundenen StatusNet Konto veröffentlicht werden. Du kannst das (hier) als Standardverhalten einstellen oder beim Schreiben eines Beitrags in den Beitragsoptionen festlegen."
+msgstr "Wenn aktiviert, können all deine <strong>öffentlichen</strong> Einträge auf dem verbundenen StatusNet-Konto veröffentlicht werden. Du kannst das (hier) als Standardverhalten einstellen oder beim Schreiben eines Beitrags in den Beitragsoptionen festlegen."
 
 #: ../../addon/statusnet/statusnet.php:336
 msgid ""
@@ -5244,7 +5353,7 @@ msgid "Show More Settings saved."
 msgstr "\"Mehr zeigen\" Einstellungen gesichert."
 
 #: ../../addon/showmore/showmore.php:87 ../../include/conversation.php:466
-#: ../../boot.php:496
+#: ../../boot.php:507
 msgid "show more"
 msgstr "mehr anzeigen"
 
@@ -5324,7 +5433,7 @@ msgid ""
 "If enabled all your <strong>public</strong> postings can be posted to the "
 "associated Twitter account. You can choose to do so by default (here) or for"
 " every posting separately in the posting options when writing the entry."
-msgstr "Wenn aktiviert, so können all deine <strong>öffentlichen</strong> Einträge auf dem verbundenen Twitter Konto veröffentlicht werden. Du kannst dies (hier) als Standardverhalten einstellen oder beim Schreiben eines Beitrags in den Beitragsoptionen festlegen."
+msgstr "Wenn aktiviert, können all deine <strong>öffentlichen</strong> Einträge auf dem verbundenen Twitter-Konto veröffentlicht werden. Du kannst dies (hier) als Standardverhalten einstellen oder beim Schreiben eines Beitrags in den Beitragsoptionen festlegen."
 
 #: ../../addon/twitter/twitter.php:192
 msgid ""
@@ -5430,228 +5539,104 @@ msgstr "Posterous-Passwort"
 msgid "Post to Posterous by default"
 msgstr "Veröffentliche öffentliche Beiträge standardmäßig bei Posterous"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:29
-#: ../../view/theme/diabook/diabook-red/theme.php:28
-#: ../../view/theme/diabook/diabook-blue/theme.php:28
-#: ../../view/theme/diabook/theme.php:43
-#: ../../view/theme/diabook/diabook-dark/theme.php:29
-#: ../../view/theme/diabook/diabook-aerith/theme.php:29
-#: ../../view/theme/diabook/diabook-pink/theme.php:29
+#: ../../view/theme/cleanzero/config.php:73
+#: ../../view/theme/diabook/config.php:93
+#: ../../view/theme/quattro/config.php:54 ../../view/theme/dispy/config.php:72
+msgid "Theme settings"
+msgstr "Themen Einstellungen"
+
+#: ../../view/theme/cleanzero/config.php:74
+msgid "Set resize level for images in posts and comments (width and height)"
+msgstr "Wähle das Vergrößerungsmaß für Bilder in Beiträgen und Kommentaren (Höhe und Breite)"
+
+#: ../../view/theme/cleanzero/config.php:75
+#: ../../view/theme/diabook/config.php:94 ../../view/theme/dispy/config.php:73
+msgid "Set font-size for posts and comments"
+msgstr "Schriftgröße für Beiträge und Kommentare festlegen"
+
+#: ../../view/theme/cleanzero/config.php:76
+#: ../../view/theme/quattro/config.php:56
+msgid "Color scheme"
+msgstr "Farbschema"
+
+#: ../../view/theme/diabook/theme.php:48
+msgid "Community Profiles"
+msgstr "Community-Profile"
+
+#: ../../view/theme/diabook/theme.php:68
 msgid "Last users"
 msgstr "Letzte Nutzer"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:58
-#: ../../view/theme/diabook/diabook-red/theme.php:57
-#: ../../view/theme/diabook/diabook-blue/theme.php:57
-#: ../../view/theme/diabook/theme.php:72
-#: ../../view/theme/diabook/diabook-dark/theme.php:58
-#: ../../view/theme/diabook/diabook-aerith/theme.php:58
-#: ../../view/theme/diabook/diabook-pink/theme.php:58
+#: ../../view/theme/diabook/theme.php:97
 msgid "Last likes"
 msgstr "Zuletzt gemocht"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:103
-#: ../../view/theme/diabook/diabook-red/theme.php:102
-#: ../../view/theme/diabook/diabook-blue/theme.php:102
-#: ../../view/theme/diabook/theme.php:117
-#: ../../view/theme/diabook/diabook-dark/theme.php:103
-#: ../../view/theme/diabook/diabook-aerith/theme.php:103
-#: ../../view/theme/diabook/diabook-pink/theme.php:103
+#: ../../view/theme/diabook/theme.php:142
 msgid "Last photos"
 msgstr "Letzte Fotos"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:141
-#: ../../view/theme/diabook/diabook-red/theme.php:139
-#: ../../view/theme/diabook/diabook-blue/theme.php:139
-#: ../../view/theme/diabook/theme.php:154
-#: ../../view/theme/diabook/diabook-dark/theme.php:141
-#: ../../view/theme/diabook/diabook-aerith/theme.php:141
-#: ../../view/theme/diabook/diabook-pink/theme.php:141
+#: ../../view/theme/diabook/theme.php:179
 msgid "Find Friends"
 msgstr "Freunde finden"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:142
-#: ../../view/theme/diabook/diabook-red/theme.php:140
-#: ../../view/theme/diabook/diabook-blue/theme.php:140
-#: ../../view/theme/diabook/theme.php:155
-#: ../../view/theme/diabook/diabook-dark/theme.php:142
-#: ../../view/theme/diabook/diabook-aerith/theme.php:142
-#: ../../view/theme/diabook/diabook-pink/theme.php:142
+#: ../../view/theme/diabook/theme.php:180
 msgid "Local Directory"
 msgstr "Lokales Verzeichnis"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:144
-#: ../../view/theme/diabook/diabook-red/theme.php:142
-#: ../../view/theme/diabook/diabook-blue/theme.php:142
-#: ../../view/theme/diabook/theme.php:157
-#: ../../view/theme/diabook/diabook-dark/theme.php:144
-#: ../../view/theme/diabook/diabook-aerith/theme.php:144
-#: ../../view/theme/diabook/diabook-pink/theme.php:144
-#: ../../include/contact_widgets.php:35
+#: ../../view/theme/diabook/theme.php:182 ../../include/contact_widgets.php:35
 msgid "Similar Interests"
 msgstr "Ähnliche Interessen"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:146
-#: ../../view/theme/diabook/diabook-red/theme.php:144
-#: ../../view/theme/diabook/diabook-blue/theme.php:144
-#: ../../view/theme/diabook/theme.php:159
-#: ../../view/theme/diabook/diabook-dark/theme.php:146
-#: ../../view/theme/diabook/diabook-aerith/theme.php:146
-#: ../../view/theme/diabook/diabook-pink/theme.php:146
-#: ../../include/contact_widgets.php:37
+#: ../../view/theme/diabook/theme.php:184 ../../include/contact_widgets.php:37
 msgid "Invite Friends"
 msgstr "Freunde einladen"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:161
-#: ../../view/theme/diabook/diabook-green/theme.php:236
-#: ../../view/theme/diabook/diabook-red/theme.php:159
-#: ../../view/theme/diabook/diabook-red/theme.php:234
-#: ../../view/theme/diabook/diabook-blue/theme.php:159
-#: ../../view/theme/diabook/diabook-blue/theme.php:234
-#: ../../view/theme/diabook/theme.php:175
-#: ../../view/theme/diabook/theme.php:253
-#: ../../view/theme/diabook/diabook-dark/theme.php:161
-#: ../../view/theme/diabook/diabook-dark/theme.php:236
-#: ../../view/theme/diabook/diabook-aerith/theme.php:161
-#: ../../view/theme/diabook/diabook-aerith/theme.php:236
-#: ../../view/theme/diabook/diabook-pink/theme.php:161
-#: ../../view/theme/diabook/diabook-pink/theme.php:236
+#: ../../view/theme/diabook/theme.php:199
+#: ../../view/theme/diabook/theme.php:277
 msgid "Community Pages"
 msgstr "Foren"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:194
-#: ../../view/theme/diabook/diabook-red/theme.php:192
-#: ../../view/theme/diabook/diabook-blue/theme.php:192
-#: ../../view/theme/diabook/theme.php:208
-#: ../../view/theme/diabook/diabook-dark/theme.php:194
-#: ../../view/theme/diabook/diabook-aerith/theme.php:194
-#: ../../view/theme/diabook/diabook-pink/theme.php:194
+#: ../../view/theme/diabook/theme.php:232
 msgid "Help or @NewHere ?"
 msgstr "Hilfe oder @NewHere"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:200
-#: ../../view/theme/diabook/diabook-red/theme.php:198
-#: ../../view/theme/diabook/diabook-blue/theme.php:198
-#: ../../view/theme/diabook/theme.php:214
-#: ../../view/theme/diabook/diabook-dark/theme.php:200
-#: ../../view/theme/diabook/diabook-aerith/theme.php:200
-#: ../../view/theme/diabook/diabook-pink/theme.php:200
+#: ../../view/theme/diabook/theme.php:238
 msgid "Connect Services"
 msgstr "Verbinde Dienste"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:229
-#: ../../view/theme/diabook/diabook-red/theme.php:227
-#: ../../view/theme/diabook/diabook-blue/theme.php:227
-#: ../../view/theme/diabook/theme.php:246
-#: ../../view/theme/diabook/diabook-dark/theme.php:229
-#: ../../view/theme/diabook/diabook-aerith/theme.php:229
-#: ../../view/theme/diabook/diabook-pink/theme.php:229
-#: ../../include/nav.php:49 ../../include/nav.php:115
+#: ../../view/theme/diabook/theme.php:270 ../../include/nav.php:49
+#: ../../include/nav.php:115
 msgid "Your posts and conversations"
 msgstr "Deine Beiträge und Unterhaltungen"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:230
-#: ../../view/theme/diabook/diabook-red/theme.php:228
-#: ../../view/theme/diabook/diabook-blue/theme.php:228
-#: ../../view/theme/diabook/theme.php:247
-#: ../../view/theme/diabook/diabook-dark/theme.php:230
-#: ../../view/theme/diabook/diabook-aerith/theme.php:230
-#: ../../view/theme/diabook/diabook-pink/theme.php:230
-#: ../../include/nav.php:50
+#: ../../view/theme/diabook/theme.php:271 ../../include/nav.php:50
 msgid "Your profile page"
 msgstr "Deine Profilseite"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:231
-#: ../../view/theme/diabook/diabook-red/theme.php:229
-#: ../../view/theme/diabook/diabook-blue/theme.php:229
-#: ../../view/theme/diabook/theme.php:248
-#: ../../view/theme/diabook/diabook-dark/theme.php:231
-#: ../../view/theme/diabook/diabook-aerith/theme.php:231
-#: ../../view/theme/diabook/diabook-pink/theme.php:231
+#: ../../view/theme/diabook/theme.php:272
 msgid "Your contacts"
 msgstr "Deine Kontakte"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:232
-#: ../../view/theme/diabook/diabook-red/theme.php:230
-#: ../../view/theme/diabook/diabook-blue/theme.php:230
-#: ../../view/theme/diabook/theme.php:249
-#: ../../view/theme/diabook/diabook-dark/theme.php:232
-#: ../../view/theme/diabook/diabook-aerith/theme.php:232
-#: ../../view/theme/diabook/diabook-pink/theme.php:232
-#: ../../include/nav.php:51
+#: ../../view/theme/diabook/theme.php:273 ../../include/nav.php:51
 msgid "Your photos"
 msgstr "Deine Fotos"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:233
-#: ../../view/theme/diabook/diabook-red/theme.php:231
-#: ../../view/theme/diabook/diabook-blue/theme.php:231
-#: ../../view/theme/diabook/theme.php:250
-#: ../../view/theme/diabook/diabook-dark/theme.php:233
-#: ../../view/theme/diabook/diabook-aerith/theme.php:233
-#: ../../view/theme/diabook/diabook-pink/theme.php:233
-#: ../../include/nav.php:52
+#: ../../view/theme/diabook/theme.php:274 ../../include/nav.php:52
 msgid "Your events"
 msgstr "Deine Ereignisse"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:234
-#: ../../view/theme/diabook/diabook-red/theme.php:232
-#: ../../view/theme/diabook/diabook-blue/theme.php:232
-#: ../../view/theme/diabook/theme.php:251
-#: ../../view/theme/diabook/diabook-dark/theme.php:234
-#: ../../view/theme/diabook/diabook-aerith/theme.php:234
-#: ../../view/theme/diabook/diabook-pink/theme.php:234
-#: ../../include/nav.php:53
+#: ../../view/theme/diabook/theme.php:275 ../../include/nav.php:53
 msgid "Personal notes"
 msgstr "Persönliche Notizen"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:234
-#: ../../view/theme/diabook/diabook-red/theme.php:232
-#: ../../view/theme/diabook/diabook-blue/theme.php:232
-#: ../../view/theme/diabook/theme.php:251
-#: ../../view/theme/diabook/diabook-dark/theme.php:234
-#: ../../view/theme/diabook/diabook-aerith/theme.php:234
-#: ../../view/theme/diabook/diabook-pink/theme.php:234
-#: ../../include/nav.php:53
+#: ../../view/theme/diabook/theme.php:275 ../../include/nav.php:53
 msgid "Your personal photos"
 msgstr "Deine privaten Fotos"
 
-#: ../../view/theme/diabook/diabook-green/config.php:78
-#: ../../view/theme/diabook/diabook-red/config.php:78
-#: ../../view/theme/diabook/diabook-blue/config.php:78
-#: ../../view/theme/diabook/diabook-dark/config.php:78
-#: ../../view/theme/diabook/diabook-aerith/config.php:78
-#: ../../view/theme/diabook/diabook-pink/config.php:78
-#: ../../view/theme/diabook/config.php:93
-#: ../../view/theme/quattro/config.php:54
-msgid "Theme settings"
-msgstr "Themen Einstellungen"
-
-#: ../../view/theme/diabook/diabook-green/config.php:79
-#: ../../view/theme/diabook/diabook-red/config.php:79
-#: ../../view/theme/diabook/diabook-blue/config.php:79
-#: ../../view/theme/diabook/diabook-dark/config.php:79
-#: ../../view/theme/diabook/diabook-aerith/config.php:79
-#: ../../view/theme/diabook/diabook-pink/config.php:79
-#: ../../view/theme/diabook/config.php:94
-msgid "Set font-size for posts and comments"
-msgstr "Schriftgröße für Beiträge und Kommentare festlegen"
-
-#: ../../view/theme/diabook/diabook-green/config.php:80
-#: ../../view/theme/diabook/diabook-red/config.php:80
-#: ../../view/theme/diabook/diabook-blue/config.php:80
-#: ../../view/theme/diabook/diabook-dark/config.php:80
-#: ../../view/theme/diabook/diabook-aerith/config.php:80
-#: ../../view/theme/diabook/diabook-pink/config.php:80
-#: ../../view/theme/diabook/config.php:95
+#: ../../view/theme/diabook/config.php:95 ../../view/theme/dispy/config.php:74
 msgid "Set line-height for posts and comments"
 msgstr "Liniengröße für Beiträge und Kommantare festlegen"
 
-#: ../../view/theme/diabook/diabook-green/config.php:81
-#: ../../view/theme/diabook/diabook-red/config.php:81
-#: ../../view/theme/diabook/diabook-blue/config.php:81
-#: ../../view/theme/diabook/diabook-dark/config.php:81
-#: ../../view/theme/diabook/diabook-aerith/config.php:81
-#: ../../view/theme/diabook/diabook-pink/config.php:81
 #: ../../view/theme/diabook/config.php:96
 msgid "Set resolution for middle column"
 msgstr "Auflösung für die Mittelspalte setzen"
@@ -5672,11 +5657,11 @@ msgstr "Links"
 msgid "Center"
 msgstr "Mitte"
 
-#: ../../view/theme/quattro/config.php:56
-msgid "Color scheme"
-msgstr "Farbschema"
+#: ../../view/theme/dispy/config.php:75
+msgid "Set colour scheme"
+msgstr "Farbschema wählen"
 
-#: ../../include/profile_advanced.php:17 ../../boot.php:1085
+#: ../../include/profile_advanced.php:17 ../../boot.php:1094
 msgid "Gender:"
 msgstr "Geschlecht:"
 
@@ -5697,11 +5682,11 @@ msgstr "Geburtstag:"
 msgid "Age:"
 msgstr "Alter:"
 
-#: ../../include/profile_advanced.php:37 ../../boot.php:1088
+#: ../../include/profile_advanced.php:37 ../../boot.php:1097
 msgid "Status:"
 msgstr "Status:"
 
-#: ../../include/profile_advanced.php:45 ../../boot.php:1090
+#: ../../include/profile_advanced.php:45 ../../boot.php:1099
 msgid "Homepage:"
 msgstr "Homepage:"
 
@@ -5881,179 +5866,179 @@ msgstr "Andere"
 msgid "Undecided"
 msgstr "Unentschieden"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Males"
 msgstr "Männer"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Females"
 msgstr "Frauen"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Gay"
 msgstr "Schwul"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Lesbian"
 msgstr "Lesbisch"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "No Preference"
 msgstr "Keine Vorlieben"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Bisexual"
 msgstr "Bisexuell"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Autosexual"
 msgstr "Autosexual"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Abstinent"
 msgstr "Abstinent"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Virgin"
 msgstr "Jungfrauen"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Deviant"
 msgstr "Deviant"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Fetish"
 msgstr "Fetish"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Oodles"
 msgstr "Oodles"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Nonsexual"
 msgstr "Nonsexual"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Single"
 msgstr "Single"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Lonely"
 msgstr "Einsam"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Available"
 msgstr "Verfügbar"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Unavailable"
 msgstr "Nicht verfügbar"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Has crush"
 msgstr "verknallt"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Infatuated"
 msgstr "verliebt"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Dating"
 msgstr "Dating"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Unfaithful"
 msgstr "Untreu"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Sex Addict"
 msgstr "Sexbesessen"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Friends"
 msgstr "Freunde"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Friends/Benefits"
 msgstr "Freunde/Zuwendungen"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Casual"
 msgstr "Casual"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Engaged"
 msgstr "Verlobt"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Married"
 msgstr "Verheiratet"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Imaginarily married"
 msgstr "imaginär verheiratet"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Partners"
 msgstr "Partner"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Cohabiting"
 msgstr "zusammenlebend"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Common law"
 msgstr "wilde Ehe"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Happy"
 msgstr "Glücklich"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Not looking"
 msgstr "Nicht auf der Suche"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Swinger"
 msgstr "Swinger"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Betrayed"
 msgstr "Betrogen"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Separated"
 msgstr "Getrennt"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Unstable"
 msgstr "Unstabil"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Divorced"
 msgstr "Geschieden"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Imaginarily divorced"
 msgstr "imaginär geschieden"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Widowed"
 msgstr "Verwitwet"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Uncertain"
 msgstr "Unsicher"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "It's complicated"
 msgstr "Ist kompliziert"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Don't care"
 msgstr "Ist mir nicht wichtig"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Ask me"
 msgstr "Frag mich"
 
@@ -6065,12 +6050,12 @@ msgstr "Beginnt:"
 msgid "Finishes:"
 msgstr "Endet:"
 
-#: ../../include/delivery.php:434 ../../include/notifier.php:651
+#: ../../include/delivery.php:434 ../../include/notifier.php:652
 msgid "(no subject)"
 msgstr "(kein Betreff)"
 
 #: ../../include/delivery.php:441 ../../include/enotify.php:23
-#: ../../include/notifier.php:658
+#: ../../include/notifier.php:659
 msgid "noreply"
 msgstr "noreply"
 
@@ -6285,7 +6270,7 @@ msgstr "Neue Gruppe erstellen"
 msgid "Contacts not in any group"
 msgstr "Kontakte in keiner Gruppe"
 
-#: ../../include/nav.php:46 ../../boot.php:795
+#: ../../include/nav.php:46 ../../boot.php:804
 msgid "Logout"
 msgstr "Abmelden"
 
@@ -6293,7 +6278,7 @@ msgstr "Abmelden"
 msgid "End this session"
 msgstr "Diese Sitzung beenden"
 
-#: ../../include/nav.php:49 ../../boot.php:1453
+#: ../../include/nav.php:49 ../../boot.php:1472
 msgid "Status"
 msgstr "Status"
 
@@ -6373,11 +6358,11 @@ msgstr "Verwalten"
 msgid "Manage other pages"
 msgstr "Andere Seiten verwalten"
 
-#: ../../include/nav.php:138 ../../boot.php:1043
+#: ../../include/nav.php:138 ../../boot.php:1052
 msgid "Profiles"
 msgstr "Profile"
 
-#: ../../include/nav.php:138 ../../boot.php:1043
+#: ../../include/nav.php:138 ../../boot.php:1052
 msgid "Manage/edit profiles"
 msgstr "Profile verwalten/editieren"
 
@@ -6456,6 +6441,13 @@ msgstr "Alles"
 msgid "Categories"
 msgstr "Kategorien"
 
+#: ../../include/contact_widgets.php:183
+#, php-format
+msgid "%d friend in common"
+msgid_plural "%d friends in common"
+msgstr[0] "%d gemeinsamer Freund"
+msgstr[1] "%d gemeinsame Freunde"
+
 #: ../../include/auth.php:29
 msgid "Logged out."
 msgstr "Abgemeldet."
@@ -6543,7 +6535,7 @@ msgstr "Sekunden"
 msgid "%1$d %2$s ago"
 msgstr "%1$d %2$s her"
 
-#: ../../include/poller.php:543
+#: ../../include/onepoll.php:402
 msgid "From: "
 msgstr "Von: "
 
@@ -6551,7 +6543,7 @@ msgstr "Von: "
 msgid "$1 wrote:"
 msgstr "$1 hat geschrieben:"
 
-#: ../../include/bbcode.php:238 ../../include/bbcode.php:304
+#: ../../include/bbcode.php:238 ../../include/bbcode.php:307
 msgid "Image/photo"
 msgstr "Bild/Foto"
 
@@ -6703,7 +6695,7 @@ msgstr "%s markierte %s"
 
 #: ../../include/enotify.php:121
 msgid "your post"
-msgstr "Deinen Beitrag"
+msgstr "deinen Beitrag"
 
 #: ../../include/enotify.php:130
 msgid "[Friendica:Notify] Introduction received"
@@ -6764,11 +6756,11 @@ msgstr "Foto:"
 msgid "Please visit %s to approve or reject the suggestion."
 msgstr "Bitte besuche %s, um den Vorschlag zu akzeptieren oder abzulehnen."
 
-#: ../../include/items.php:2698
+#: ../../include/items.php:2714
 msgid "A new person is sharing with you at "
 msgstr "Eine neue Person teilt mit dir auf "
 
-#: ../../include/items.php:2698
+#: ../../include/items.php:2714
 msgid "You have a new follower at "
 msgstr "Du hast einen neuen Kontakt auf "
 
@@ -6799,30 +6791,34 @@ msgid ""
 "form has been opened for too long (>3 hours) before submitting it."
 msgstr "Das Sicherheits-Merkmal war nicht korrekt. Das passiert meistens wenn das Formular vor dem Absenden zu lange geöffnet war (länger als 3 Stunden)."
 
-#: ../../include/Contact.php:145 ../../include/conversation.php:809
+#: ../../include/Contact.php:111
+msgid "stopped following"
+msgstr "wird nicht mehr gefolgt"
+
+#: ../../include/Contact.php:203 ../../include/conversation.php:817
 msgid "View Status"
 msgstr "Pinnwand anschauen"
 
-#: ../../include/Contact.php:146 ../../include/conversation.php:810
+#: ../../include/Contact.php:204 ../../include/conversation.php:818
 msgid "View Profile"
 msgstr "Profil anschauen"
 
-#: ../../include/Contact.php:147 ../../include/conversation.php:811
+#: ../../include/Contact.php:205 ../../include/conversation.php:819
 msgid "View Photos"
 msgstr "Bilder anschauen"
 
-#: ../../include/Contact.php:148 ../../include/Contact.php:161
-#: ../../include/conversation.php:812
+#: ../../include/Contact.php:206 ../../include/Contact.php:219
+#: ../../include/conversation.php:820
 msgid "Network Posts"
-msgstr "Netzwerk Beiträge"
+msgstr "Netzwerk-Beiträge"
 
-#: ../../include/Contact.php:149 ../../include/Contact.php:161
-#: ../../include/conversation.php:813
+#: ../../include/Contact.php:207 ../../include/Contact.php:219
+#: ../../include/conversation.php:821
 msgid "Edit Contact"
 msgstr "Kontakt bearbeiten"
 
-#: ../../include/Contact.php:150 ../../include/Contact.php:161
-#: ../../include/conversation.php:814
+#: ../../include/Contact.php:208 ../../include/Contact.php:219
+#: ../../include/conversation.php:822
 msgid "Send PM"
 msgstr "Private Nachricht senden"
 
@@ -6835,17 +6831,17 @@ msgstr "Nachricht/Beitrag"
 msgid "%1$s marked %2$s's %3$s as favorite"
 msgstr "%1$s hat %2$s\\s %3$s als Favorit markiert"
 
-#: ../../include/conversation.php:317 ../../include/conversation.php:575
+#: ../../include/conversation.php:317 ../../include/conversation.php:583
 msgid "Select"
 msgstr "Auswählen"
 
-#: ../../include/conversation.php:334 ../../include/conversation.php:668
-#: ../../include/conversation.php:669
+#: ../../include/conversation.php:334 ../../include/conversation.php:676
+#: ../../include/conversation.php:677
 #, php-format
 msgid "View %s's profile @ %s"
 msgstr "Das Profil von %s auf %s betrachten."
 
-#: ../../include/conversation.php:344 ../../include/conversation.php:680
+#: ../../include/conversation.php:344 ../../include/conversation.php:688
 #, php-format
 msgid "%s from %s"
 msgstr "%s von %s"
@@ -6877,209 +6873,267 @@ msgstr "Teile dieses"
 msgid "share"
 msgstr "Teilen"
 
-#: ../../include/conversation.php:588
+#: ../../include/conversation.php:556
+msgid "Bold"
+msgstr "Fett"
+
+#: ../../include/conversation.php:557
+msgid "Italic"
+msgstr "Kursiv"
+
+#: ../../include/conversation.php:558
+msgid "Underline"
+msgstr "Unterstrichen"
+
+#: ../../include/conversation.php:559
+msgid "Quote"
+msgstr "Zitat"
+
+#: ../../include/conversation.php:560
+msgid "Code"
+msgstr "Code"
+
+#: ../../include/conversation.php:561
+msgid "Image"
+msgstr "Bild"
+
+#: ../../include/conversation.php:562
+msgid "Link"
+msgstr "Verweis"
+
+#: ../../include/conversation.php:563
+msgid "Video"
+msgstr "Video"
+
+#: ../../include/conversation.php:596
 msgid "add star"
 msgstr "markieren"
 
-#: ../../include/conversation.php:589
+#: ../../include/conversation.php:597
 msgid "remove star"
 msgstr "Markierung entfernen"
 
-#: ../../include/conversation.php:590
+#: ../../include/conversation.php:598
 msgid "toggle star status"
 msgstr "Markierung umschalten"
 
-#: ../../include/conversation.php:593
+#: ../../include/conversation.php:601
 msgid "starred"
 msgstr "markiert"
 
-#: ../../include/conversation.php:594
+#: ../../include/conversation.php:602
 msgid "add tag"
 msgstr "Tag hinzufügen"
 
-#: ../../include/conversation.php:598
+#: ../../include/conversation.php:606
 msgid "save to folder"
 msgstr "In Ordner speichern"
 
-#: ../../include/conversation.php:670
+#: ../../include/conversation.php:678
 msgid "to"
 msgstr "zu"
 
-#: ../../include/conversation.php:671
+#: ../../include/conversation.php:679
 msgid "Wall-to-Wall"
 msgstr "Wall-to-Wall"
 
-#: ../../include/conversation.php:672
+#: ../../include/conversation.php:680
 msgid "via Wall-To-Wall:"
 msgstr "via Wall-To-Wall:"
 
-#: ../../include/conversation.php:717
+#: ../../include/conversation.php:725
 msgid "Delete Selected Items"
 msgstr "Lösche die markierten Beiträge"
 
-#: ../../include/conversation.php:868
+#: ../../include/conversation.php:876
 #, php-format
 msgid "%s likes this."
 msgstr "%s mag das."
 
-#: ../../include/conversation.php:868
+#: ../../include/conversation.php:876
 #, php-format
 msgid "%s doesn't like this."
 msgstr "%s mag das nicht."
 
-#: ../../include/conversation.php:872
+#: ../../include/conversation.php:880
 #, php-format
 msgid "<span  %1$s>%2$d people</span> like this."
 msgstr "<span  %1$s>%2$d Leute</span> mögen das."
 
-#: ../../include/conversation.php:874
+#: ../../include/conversation.php:882
 #, php-format
 msgid "<span  %1$s>%2$d people</span> don't like this."
 msgstr "<span  %1$s>%2$d Leute</span> mögen das nicht."
 
-#: ../../include/conversation.php:880
+#: ../../include/conversation.php:888
 msgid "and"
 msgstr "und"
 
-#: ../../include/conversation.php:883
+#: ../../include/conversation.php:891
 #, php-format
 msgid ", and %d other people"
 msgstr " und %d andere"
 
-#: ../../include/conversation.php:884
+#: ../../include/conversation.php:892
 #, php-format
 msgid "%s like this."
 msgstr "%s mögen das."
 
-#: ../../include/conversation.php:884
+#: ../../include/conversation.php:892
 #, php-format
 msgid "%s don't like this."
 msgstr "%s mögen das nicht."
 
-#: ../../include/conversation.php:909
+#: ../../include/conversation.php:917
 msgid "Visible to <strong>everybody</strong>"
 msgstr "Für <strong>jedermann</strong> sichtbar"
 
-#: ../../include/conversation.php:911
+#: ../../include/conversation.php:919
 msgid "Please enter a video link/URL:"
 msgstr "Bitte Link/URL zum Video einfügen:"
 
-#: ../../include/conversation.php:912
+#: ../../include/conversation.php:920
 msgid "Please enter an audio link/URL:"
 msgstr "Bitte Link/URL zum Audio einfügen:"
 
-#: ../../include/conversation.php:913
+#: ../../include/conversation.php:921
 msgid "Tag term:"
 msgstr "Tag:"
 
-#: ../../include/conversation.php:915
+#: ../../include/conversation.php:923
 msgid "Where are you right now?"
 msgstr "Wo hältst du dich jetzt gerade auf?"
 
-#: ../../include/conversation.php:958
+#: ../../include/conversation.php:966
 msgid "upload photo"
 msgstr "Bild hochladen"
 
-#: ../../include/conversation.php:960
+#: ../../include/conversation.php:968
 msgid "attach file"
 msgstr "Datei anhängen"
 
-#: ../../include/conversation.php:962
+#: ../../include/conversation.php:970
 msgid "web link"
 msgstr "Weblink"
 
-#: ../../include/conversation.php:963
+#: ../../include/conversation.php:971
 msgid "Insert video link"
 msgstr "Video-Adresse einfügen"
 
-#: ../../include/conversation.php:964
+#: ../../include/conversation.php:972
 msgid "video link"
 msgstr "Video-Link"
 
-#: ../../include/conversation.php:965
+#: ../../include/conversation.php:973
 msgid "Insert audio link"
 msgstr "Audio-Adresse einfügen"
 
-#: ../../include/conversation.php:966
+#: ../../include/conversation.php:974
 msgid "audio link"
 msgstr "Audio-Link"
 
-#: ../../include/conversation.php:968
+#: ../../include/conversation.php:976
 msgid "set location"
 msgstr "Ort setzen"
 
-#: ../../include/conversation.php:970
+#: ../../include/conversation.php:978
 msgid "clear location"
 msgstr "Ort löschen"
 
-#: ../../include/conversation.php:977
+#: ../../include/conversation.php:985
 msgid "permissions"
 msgstr "Zugriffsrechte"
 
-#: ../../boot.php:494
+#: ../../boot.php:505
 msgid "Delete this item?"
 msgstr "Diesen Beitrag löschen?"
 
-#: ../../boot.php:497
+#: ../../boot.php:508
 msgid "show fewer"
 msgstr "weniger anzeigen"
 
-#: ../../boot.php:774
+#: ../../boot.php:681
+#, php-format
+msgid "Update %s failed. See error logs."
+msgstr "Update %s fehlgeschlagen. Bitte Fehlerprotokoll überprüfen."
+
+#: ../../boot.php:683
+#, php-format
+msgid "Update Error at %s"
+msgstr "Updatefehler bei %s"
+
+#: ../../boot.php:783
 msgid "Create a New Account"
 msgstr "Neuen Account erstellen"
 
-#: ../../boot.php:798
+#: ../../boot.php:807
 msgid "Nickname or Email address: "
 msgstr "Spitzname oder Email-Adresse: "
 
-#: ../../boot.php:799
+#: ../../boot.php:808
 msgid "Password: "
 msgstr "Passwort: "
 
-#: ../../boot.php:802
+#: ../../boot.php:811
 msgid "Or login using OpenID: "
 msgstr "Oder melde dich mit deiner OpenID an: "
 
-#: ../../boot.php:808
+#: ../../boot.php:817
 msgid "Forgot your password?"
 msgstr "Passwort vergessen?"
 
-#: ../../boot.php:975
+#: ../../boot.php:984
 msgid "Edit profile"
 msgstr "Profil bearbeiten"
 
-#: ../../boot.php:1035
+#: ../../boot.php:1044
 msgid "Message"
 msgstr "Nachricht"
 
-#: ../../boot.php:1151 ../../boot.php:1223
+#: ../../boot.php:1160 ../../boot.php:1236
 msgid "g A l F d"
 msgstr "l, d. F G \\U\\h\\r"
 
-#: ../../boot.php:1152 ../../boot.php:1224
+#: ../../boot.php:1161 ../../boot.php:1237
 msgid "F d"
 msgstr "d. F"
 
-#: ../../boot.php:1177
+#: ../../boot.php:1206 ../../boot.php:1277
+msgid "[today]"
+msgstr "[heute]"
+
+#: ../../boot.php:1218
 msgid "Birthday Reminders"
 msgstr "Geburtstagserinnerungen"
 
-#: ../../boot.php:1178
+#: ../../boot.php:1219
 msgid "Birthdays this week:"
 msgstr "Geburtstage diese Woche:"
 
-#: ../../boot.php:1201 ../../boot.php:1266
-msgid "[today]"
-msgstr "[heute]"
+#: ../../boot.php:1270
+msgid "[No description]"
+msgstr "[keine Beschreibung]"
 
-#: ../../boot.php:1247
+#: ../../boot.php:1288
 msgid "Event Reminders"
 msgstr "Veranstaltungserinnerungen"
 
-#: ../../boot.php:1248
+#: ../../boot.php:1289
 msgid "Events this week:"
 msgstr "Veranstaltungen diese Woche"
 
-#: ../../boot.php:1260
-msgid "[No description]"
-msgstr "[keine Beschreibung]"
+#: ../../boot.php:1475
+msgid "Status Messages and Posts"
+msgstr "Statusnachrichten und Beiträge"
+
+#: ../../boot.php:1481
+msgid "Profile Details"
+msgstr "Profildetails"
+
+#: ../../boot.php:1496
+msgid "Events and Calendar"
+msgstr "Ereignisse und Kalender"
+
+#: ../../boot.php:1502
+msgid "Only You Can See This"
+msgstr "Nur Du Kannst Das Sehen"
index d1c0e5ff4c91039b1e258d086371cba346c2b194..fffee2247d61b513fd081a437fe91909635cad08 100644 (file)
@@ -1,34 +1,34 @@
-\r
-Hallo $[username],\r
-       Danke für deine Anmeldung auf $[sitename]. Dein Account wurde angelegt. \r
-Die Login Details sind die folgenden:\r
-\r
-\r
-Adresse der Seite:     $[siteurl]\r
-Login Name:    $[email]\r
-Passwort:      $[password]\r
-\r
-Du kannst das Passwort in den "Einstellungen" zu deinem Account ändern \r
-nachdem du dich eingeloggt hast.\r
-\r
-Bitte nimm dir einige Augenblicke Zeit um die anderen Einstellungen auf der Seite zu überprüfen.\r
-\r
-Eventuell möchtest du außerdem einige grundlegenden Informationen in dein Standart-Profil eintragen \r
-(auf der "Profile" Seite) damit andere Leute dich einfacher finden können.\r
-\r
-Wir empfehlen den kompletten Namen anzugeben, ein eigenes Profil-Foto,\r
-ein paar "Profil-Schlüsselwörter" anzugeben (damit man leichter Gleichinteressierte finden kann) - und \r
-natürlich in welchen Land Du lebst; wenn Du es nicht genauer angeben möchtest\r
-dann das.\r
-\r
-Wir respektieren Ihr Recht auf Privatsphäre, und keines dieser Elemente sind notwendig. \r
-Wenn Du hier neu bist und keinen kennst, wird man Dir helfen\r
-ein paar neue und interessante Freunde zu  finden.  \r
-\r
-\r
-Danke dir und willkommen auf $[sitename].\r
-\r
-Beste Grüße,\r
-       $[sitename] Administrator\r
-\r
+
+Hallo $[username],
+       Danke für deine Anmeldung auf $[sitename]. Dein Account wurde angelegt. 
+Die Login Details sind die folgenden:
+
+
+Adresse der Seite:     $[siteurl]
+Login Name:    $[email]
+Passwort:      $[password]
+
+Du kannst das Passwort in den "Einstellungen" zu deinem Account ändern 
+nachdem du dich eingeloggt hast.
+
+Bitte nimm dir einige Augenblicke Zeit um die anderen Einstellungen auf der Seite zu überprüfen.
+
+Eventuell möchtest du außerdem einige grundlegenden Informationen in dein Standart-Profil eintragen 
+(auf der "Profile" Seite) damit andere Leute dich einfacher finden können.
+
+Wir empfehlen den kompletten Namen anzugeben, ein eigenes Profil-Foto,
+ein paar "Profil-Schlüsselwörter" anzugeben (damit man leichter Gleichinteressierte finden kann) - und 
+natürlich in welchen Land Du lebst; wenn Du es nicht genauer angeben möchtest
+dann das.
+
+Wir respektieren Ihr Recht auf Privatsphäre, und keines dieser Elemente sind notwendig. 
+Wenn Du hier neu bist und keinen kennst, wird man Dir helfen
+ein paar neue und interessante Freunde zu  finden.  
+
+
+Danke dir und willkommen auf $[sitename].
+
+Beste Grüße,
+       $[sitename] Administrator
+
  
\ No newline at end of file
index 74125549d419d5fa482f2bc730cfa760954d7b34..f88c969d9c7ada4c279ea97019dd21b83cb95a76 100644 (file)
@@ -138,7 +138,7 @@ $a->strings["Permission settings"] = "Berechtigungseinstellungen";
 $a->strings["CC: email addresses"] = "Cc:-E-Mail-Addressen";
 $a->strings["Public post"] = "Öffentlicher Beitrag";
 $a->strings["Set title"] = "Titel setzen";
-$a->strings["Categories (comma-separated list)"] = "Kategorien (mit Komma separierte Liste)";
+$a->strings["Categories (comma-separated list)"] = "Kategorien (kommasepariert)";
 $a->strings["Example: bob@example.com, mary@example.com"] = "Z.B.: bob@example.com, mary@example.com";
 $a->strings["This introduction has already been accepted."] = "Diese Kontaktanfrage wurde bereits akzeptiert.";
 $a->strings["Profile location is not valid or does not contain profile information."] = "Profiladresse ist ungültig oder stellt einige Profildaten nicht zur Verfügung.";
@@ -301,7 +301,8 @@ $a->strings["Contact has been blocked"] = "Kontakt wurde blockiert";
 $a->strings["Contact has been unblocked"] = "Kontakt wurde wieder freigegeben";
 $a->strings["Contact has been ignored"] = "Kontakt wurde ignoriert";
 $a->strings["Contact has been unignored"] = "Kontakt wird nicht mehr ignoriert";
-$a->strings["stopped following"] = "wird nicht mehr gefolgt";
+$a->strings["Contact has been archived"] = "Kontakt wurde archiviert";
+$a->strings["Contact has been unarchived"] = "Kontakt wurde aus dem Archiv geholt";
 $a->strings["Contact has been removed."] = "Kontakt wurde entfernt.";
 $a->strings["You are mutual friends with %s"] = "Du hast mit %s eine beidseitige Freundschaft";
 $a->strings["You are sharing with %s"] = "Du teilst mit %s";
@@ -319,8 +320,14 @@ $a->strings["%d contact in common"] = array(
 $a->strings["View all contacts"] = "Alle Kontakte anzeigen";
 $a->strings["Unblock"] = "Entsperren";
 $a->strings["Block"] = "Sperren";
+$a->strings["Toggle Blocked status"] = "Geblockt-Sttaus ein-/ausschalten";
 $a->strings["Unignore"] = "Ignorieren aufheben";
+$a->strings["Toggle Ignored status"] = "Ignoriert-Status ein-/ausschalten";
+$a->strings["Unarchive"] = "Unarchivieren";
+$a->strings["Archive"] = "Archivieren";
+$a->strings["Toggle Archive status"] = "Archiviert-Status ein-/ausschalten";
 $a->strings["Repair"] = "Reparieren";
+$a->strings["Advanced Contact Settings"] = "Fortgeschrittene Kontakteinstellungen";
 $a->strings["Contact Editor"] = "Kontakt Editor";
 $a->strings["Profile Visibility"] = "Profil Anzeige";
 $a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Bitte wähle eines deiner Profile das angezeigt werden soll, wenn %s dein Profil aufruft.";
@@ -337,13 +344,22 @@ $a->strings["Update public posts"] = "Öffentliche Beiträge aktualisieren";
 $a->strings["Update now"] = "Jetzt aktualisieren";
 $a->strings["Currently blocked"] = "Derzeit geblockt";
 $a->strings["Currently ignored"] = "Derzeit ignoriert";
+$a->strings["Currently archived"] = "Momentan archiviert";
 $a->strings["Replies/likes to your public posts <strong>may</strong> still be visible"] = "Antworten/Likes auf deine öffentlichen Beiträge <strong>könnten</strong> weiterhin sichtbar sein";
 $a->strings["Suggestions"] = "Kontaktvorschläge";
+$a->strings["Suggest potential friends"] = "Freunde vorschlagen";
 $a->strings["All Contacts"] = "Alle Kontakte";
-$a->strings["Unblocked Contacts"] = "Nicht blockierte Kontakte";
-$a->strings["Blocked Contacts"] = "Blockierte Kontakte";
-$a->strings["Ignored Contacts"] = "Ignorierte Kontakte";
-$a->strings["Hidden Contacts"] = "Verborgene Kontakte";
+$a->strings["Show all contacts"] = "Alle Kontakte anzeigen";
+$a->strings["Unblocked"] = "Ungeblockt";
+$a->strings["Only show unblocked contacts"] = "Nur nicht-blockierte Kontakte anzeigen";
+$a->strings["Blocked"] = "Geblockt";
+$a->strings["Only show blocked contacts"] = "Nur blockierte Kontakte anzeigen";
+$a->strings["Ignored"] = "Ignoriert";
+$a->strings["Only show ignored contacts"] = "Nur ignorierte Kontakte anzeigen";
+$a->strings["Archived"] = "Archiviert";
+$a->strings["Only show archived contacts"] = "Nur archivierte Kontakte anzeigen";
+$a->strings["Hidden"] = "Verborgen";
+$a->strings["Only show hidden contacts"] = "Nur verborgene Kontakte anzeigen";
 $a->strings["Mutual Friendship"] = "Beidseitige Freundschaft";
 $a->strings["is a fan of yours"] = "ist ein Fan von dir";
 $a->strings["you are a fan of"] = "du bist Fan von";
@@ -373,6 +389,7 @@ $a->strings["Connector settings"] = "Connector-Einstellungen";
 $a->strings["Plugin settings"] = "Plugin-Einstellungen";
 $a->strings["Connected apps"] = "Verbundene Programme";
 $a->strings["Export personal data"] = "Persönliche Daten exportieren";
+$a->strings["Remove account"] = "Account entfernen";
 $a->strings["Settings"] = "Einstellungen";
 $a->strings["Missing some important data!"] = "Wichtige Daten fehlen!";
 $a->strings["Update"] = "Aktualisierungen";
@@ -424,17 +441,17 @@ $a->strings["Display Settings"] = "Anzeige Einstellungen";
 $a->strings["Display Theme:"] = "Theme:";
 $a->strings["Update browser every xx seconds"] = "Browser alle xx Sekunden aktualisieren";
 $a->strings["Minimum of 10 seconds, no maximum"] = "Minimal 10 Sekunden, kein Maximum";
-$a->strings["Number of items to display on the network page:"] = "Zahl der Beiträge, welche pro Netzwerkseite angezeigt werden sollen: ";
+$a->strings["Number of items to display on the network page:"] = "Zahl der Beiträge, die pro Netzwerkseite angezeigt werden sollen: ";
 $a->strings["Maximum of 100 items"] = "Maximal 100 Beiträge";
 $a->strings["Don't show emoticons"] = "Keine Smilies anzeigen";
 $a->strings["Normal Account"] = "Normaler Account";
 $a->strings["This account is a normal personal profile"] = "Dieser Account ist ein normales persönliches Profil";
 $a->strings["Soapbox Account"] = "Sandkasten-Account";
-$a->strings["Automatically approve all connection/friend requests as read-only fans"] = "Freundschaftsanfragen werden automatisch als Nurlese-Fans akzeptiert";
+$a->strings["Automatically approve all connection/friend requests as read-only fans"] = "Kontaktanfragen werden automatisch als Nurlese-Fans akzeptiert";
 $a->strings["Community/Celebrity Account"] = "Gemeinschafts/Promi-Account";
-$a->strings["Automatically approve all connection/friend requests as read-write fans"] = "Freundschaftsanfragen werden automatisch als Lese-und-Schreib-Fans akzeptiert";
+$a->strings["Automatically approve all connection/friend requests as read-write fans"] = "Kontaktanfragen werden automatisch als Lese-und-Schreib-Fans akzeptiert";
 $a->strings["Automatic Friend Account"] = "Automatischer Freundesaccount";
-$a->strings["Automatically approve all connection/friend requests as friends"] = "Freundschaftsanfragen werden automatisch als Freund akzeptiert";
+$a->strings["Automatically approve all connection/friend requests as friends"] = "Kontaktanfragen werden automatisch als Freund akzeptiert";
 $a->strings["OpenID:"] = "OpenID:";
 $a->strings["(Optional) Allow this OpenID to login to this account."] = "(Optional) Erlaube die Anmeldung für diesen Account mit dieser OpenID.";
 $a->strings["Publish your default profile in your local site directory?"] = "Veröffentliche dein Standardprofil im Verzeichnis der lokalen Seite?";
@@ -475,14 +492,15 @@ $a->strings["(click to open/close)"] = "(klicke zum öffnen/schließen)";
 $a->strings["Maximum private messages per day from unknown people:"] = "Maximale Anzahl von privaten Nachrichten, die dir unbekannte Personen pro Tag senden dürfen:";
 $a->strings["Notification Settings"] = "Benachrichtigungseinstellungen";
 $a->strings["By default post a status message when:"] = "Standardmäßig eine Status-Nachricht posten wenn:";
-$a->strings["accepting a friend request"] = "akzeptieren einer Freundschaftsanfrage";
-$a->strings["making an <em>interesting</em> profile change"] = "<em>interessante</em> Änderungen am Profil gemacht werden";
+$a->strings["accepting a friend request"] = "– du eine Kontaktanfrage akzeptierst";
+$a->strings["joining a forum/community"] = "– du einem Forum/einer Gemeinschaftsseite beitrittst";
+$a->strings["making an <em>interesting</em> profile change"] = "– du eine <em>interessante</em> Änderung an deinem Profil durchführst";
 $a->strings["Send a notification email when:"] = "Benachrichtigungs-E-Mail senden wenn:";
-$a->strings["You receive an introduction"] = "- du eine Kontaktanfrage erhältst";
-$a->strings["Your introductions are confirmed"] = "- eine deiner Kontaktanfragen akzeptiert wurde";
-$a->strings["Someone writes on your profile wall"] = "- jemand etwas auf deine Pinnwand schreibt";
-$a->strings["Someone writes a followup comment"] = "- jemand auch einen Kommentar verfasst";
-$a->strings["You receive a private message"] = "- du eine private Nachricht erhältst";
+$a->strings["You receive an introduction"] = " du eine Kontaktanfrage erhältst";
+$a->strings["Your introductions are confirmed"] = " eine deiner Kontaktanfragen akzeptiert wurde";
+$a->strings["Someone writes on your profile wall"] = " jemand etwas auf deine Pinnwand schreibt";
+$a->strings["Someone writes a followup comment"] = " jemand auch einen Kommentar verfasst";
+$a->strings["You receive a private message"] = " du eine private Nachricht erhältst";
 $a->strings["You receive a friend suggestion"] = "- du eine Empfehlung erhältst";
 $a->strings["You are tagged in a post"] = "- du in einem Beitrag erwähnt wurdest";
 $a->strings["Advanced Page Settings"] = "Erweiterte Seiten-Einstellungen";
@@ -494,10 +512,16 @@ $a->strings["Remove term"] = "Begriff entfernen";
 $a->strings["Saved Searches"] = "Gespeicherte Suchen";
 $a->strings["add"] = "hinzufügen";
 $a->strings["Commented Order"] = "Neueste Kommentare";
+$a->strings["Sort by Comment Date"] = "Nach Kommentardatum sortieren";
 $a->strings["Posted Order"] = "Neueste Beiträge";
+$a->strings["Sort by Post Date"] = "Nach Beitragsdatum sortieren";
+$a->strings["Posts that mention or involve you"] = "Beiträge, in denen es um Dich geht";
 $a->strings["New"] = "Neue";
+$a->strings["Activity Stream - by date"] = "Aktivitäten-Stream - nach Datum";
 $a->strings["Starred"] = "Markierte";
+$a->strings["Favourite Posts"] = "Favorisierte Beiträge";
 $a->strings["Shared Links"] = "Geteilte Links";
+$a->strings["Interesting Links"] = "Interessante Links";
 $a->strings["Warning: This group contains %s member from an insecure network."] = array(
        0 => "Warnung: Diese Gruppe beinhaltet %s Person aus einem unsicheren Netzwerk.",
        1 => "Warnung: Diese Gruppe beinhaltet %s Personen aus unsicheren Netzwerken.",
@@ -659,6 +683,8 @@ $a->strings["Site"] = "Seite";
 $a->strings["Users"] = "Nutzer";
 $a->strings["Plugins"] = "Plugins";
 $a->strings["Themes"] = "Themen";
+$a->strings["DB updates"] = "DB Updates";
+$a->strings["Software Update"] = "Software Update";
 $a->strings["Logs"] = "Protokolle";
 $a->strings["User registrations waiting for confirmation"] = "Nutzeranmeldungen die auf Bestätigung warten";
 $a->strings["Administration"] = "Administration";
@@ -723,6 +749,18 @@ $a->strings["Proxy user"] = "Proxy Nutzer";
 $a->strings["Proxy URL"] = "Proxy URL";
 $a->strings["Network timeout"] = "Netzwerk Wartezeit";
 $a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Der Wert ist in Sekunden. Setze 0 für unbegrenzt (nicht empfohlen).";
+$a->strings["Delivery interval"] = "Zustellungsintervall";
+$a->strings["Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers."] = "Verzögere im Hintergrund laufende Auslieferungsprozesse um die angegebene Anzahl an Sekunden um die Systemlast zu verringern. Empfehlungen: 4-5 für Shared-Hosts, 2-3 für VPS, 0-1 für große dedizierte Server.";
+$a->strings["Update has been marked successful"] = "Update wurde als erfolgreich markiert";
+$a->strings["Executing %s failed. Check system logs."] = "Ausführung von %s schlug fehl. Systemprotokolle prüfen.";
+$a->strings["Update %s was successfully applied."] = "Update %s war erfolgreich.";
+$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "Update %s hat keinen Status zurückgegeben. Unbekannter Status.";
+$a->strings["Update function %s could not be found."] = "Updatefunktion %s konnte nicht gefunden werden.";
+$a->strings["No failed updates."] = "Keine fehlgeschlagenen Updates.";
+$a->strings["Failed Updates"] = "Fehlgeschlagene Updates";
+$a->strings["This does not include updates prior to 1139, which did not return a status."] = "Ohne Updates vor 1139, da diese keinen Status zurückgegeben haben.";
+$a->strings["Mark success (if update was manually applied)"] = "Als erfolgreich markieren (falls das Update manuell installiert wurde)";
+$a->strings["Attempt to execute this update step automatically"] = "Versuchen, diesen Schritt automatisch auszuführen";
 $a->strings["%s user blocked/unblocked"] = array(
        0 => "%s Benutzer geblockt/freigegeben",
        1 => "%s Benutzer geblockt/freigegeben",
@@ -814,7 +852,10 @@ $a->strings["Homepage"] = "Webseite";
 $a->strings["Interests"] = "Interessen";
 $a->strings["Location"] = "Wohnort";
 $a->strings["Profile updated."] = "Profil aktualisiert.";
+$a->strings[" and "] = " und ";
 $a->strings["public profile"] = "öffentliches Profil";
+$a->strings["%1\$s changed %2\$s to \"%3\$s\""] = "%1\$s änderte %2\$s zu \"%3\$s\"";
+$a->strings[" - Visit %1\$s's %2\$s"] = " - %1\$s's %2\$s besuchen";
 $a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s hat folgendes aktualisiert %2\$s, verändert wurde %3\$s.";
 $a->strings["Profile deleted."] = "Profil gelöscht.";
 $a->strings["Profile-"] = "Profil-";
@@ -894,7 +935,7 @@ $a->strings["%d message sent."] = array(
 );
 $a->strings["You have no more invitations available"] = "Du hast keine weiteren Einladungen";
 $a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = "Besuche %s für eine Liste der öffentlichen Server, denen du beitreten kannst. Friendica Mitglieder unterschiedlicher Server können sich sowohl alle miteinander verbinden, als auch mit Mitgliedern anderer Sozialer Netzwerke.";
-$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "Um diese Freundschaftsanfrage zu akzeptieren, besuche und registriere dich bitte bei %s oder einer anderen öffentlichen Friendica Website.";
+$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "Um diese Kontaktanfrage zu akzeptieren, besuche und registriere dich bitte bei %s oder einer anderen öffentlichen Friendica Website.";
 $a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = "Friendica Server verbinden sich alle untereinander, um ein großes datenschutzorientiertes Soziales Netzwerk zu bilden, das von seinen Mitgliedern betrieben und kontrolliert wird. Sie können sich auch mit vielen üblichen Sozialen Netzwerken verbinden. Besuche %s für eine Liste alternativer Friendica Server, denen du beitreten kannst.";
 $a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = "Es tut uns Leid. Dieses System ist zurzeit nicht dafür konfiguriert, sich mit anderen öffentlichen Seiten zu verbinden oder Mitglieder einzuladen.";
 $a->strings["Send invitations"] = "Einladungen senden";
@@ -921,6 +962,7 @@ $a->strings["The ID provided by your system is a duplicate on our system. It sho
 $a->strings["Unable to set your contact credentials on our system."] = "Deine Kontaktreferenzen konnten nicht in unserem System gespeichert werden.";
 $a->strings["Unable to update your contact profile details on our system"] = "Die Updates für dein Profil konnten nicht gespeichert werden";
 $a->strings["Connection accepted at %s"] = "Auf %s wurde die Verbindung akzeptiert";
+$a->strings["%1\$s has joined %2\$s"] = "%1\$s ist %2\$s beigetreten";
 $a->strings["Facebook disabled"] = "Facebook deaktiviert";
 $a->strings["Updating contacts"] = "Aktualisiere Kontakte";
 $a->strings["Facebook API key is missing."] = "Facebook-API-Schlüssel nicht gefunden";
@@ -947,7 +989,8 @@ $a->strings["The given API Key seems to work correctly."] = "Der angegebene API
 $a->strings["The correctness of the API Key could not be detected. Somthing strange's going on."] = "Die Echtheit des API Schlüssels konnte nicht überprüft werden. Etwas Merkwürdiges ist hier im Gange.";
 $a->strings["App-ID / API-Key"] = "App-ID / API-Key";
 $a->strings["Application secret"] = "Anwendungs-Geheimnis";
-$a->strings["Polling Interval (min. %1\$s minutes)"] = "Abrufintervall (min. %1\$s Minuten)";
+$a->strings["Polling Interval in minutes (minimum %1\$s minutes)"] = "Abfrage-Intervall in Minuten (min %1\$s Minuten)";
+$a->strings["Synchronize comments (no comments on Facebook are missed, at the cost of increased system load)"] = "Kommentare synchronisieren (Kein Kommentar von Facebook geht verlohren, verursacht höhere Last auf dem Server)";
 $a->strings["Real-Time Updates"] = "Echt-Zeit Aktualisierungen";
 $a->strings["Real-Time Updates are activated."] = "Echtzeit-Updates sind aktiviert.";
 $a->strings["Deactivate Real-Time Updates"] = "Echtzeit-Updates deaktivieren";
@@ -961,6 +1004,11 @@ $a->strings["Facebook post failed. Queued for retry."] = "Veröffentlichung bei
 $a->strings["Your Facebook connection became invalid. Please Re-authenticate."] = "Deine Facebook Anmeldedaten sind ungültig geworden. Bitte re-authentifiziere dich.";
 $a->strings["Facebook connection became invalid"] = "Facebook Anmeldedaten sind ungültig geworden";
 $a->strings["Hi %1\$s,\n\nThe connection between your accounts on %2\$s and Facebook became invalid. This usually happens after you change your Facebook-password. To enable the connection again, you have to %3\$sre-authenticate the Facebook-connector%4\$s."] = "Hi %1\$s,\n\ndie Verbindung von deinem Account auf %2\$s und Facebook funktioniert derzeit nicht. Dies ist im Allgemeinen das Ergebnis einer Passwortänderung bei Facebook. Um die Verbindung wieder zu aktivieren musst du  %3\$sden Facebook-Connector neu Authentifizieren%4\$s.";
+$a->strings["Lifetime of the cache (in hours)"] = "Lebenszeit des Caches (in Stunden)";
+$a->strings["Cache Statistics"] = "Cache Statistik";
+$a->strings["Number of items"] = "Anzahl der Einträge";
+$a->strings["Size of the cache"] = "Größe des Caches";
+$a->strings["Delete the whole cache"] = "Cache leeren";
 $a->strings["%d person likes this"] = array(
        0 => "%d Person mag das",
        1 => "%d Leuten mögen das",
@@ -969,6 +1017,7 @@ $a->strings["%d person doesn't like this"] = array(
        0 => " %d Person mag das nicht",
        1 => "%d Leute mögen das nicht",
 );
+$a->strings["Get added to this list!"] = "Werde Mitglied dieser Liste";
 $a->strings["Generate new key"] = "Neuen Schlüssel erstellen";
 $a->strings["Widgets key"] = "Widgets Schlüssel";
 $a->strings["Widgets available"] = "Verfügbare Widgets";
@@ -1058,12 +1107,12 @@ $a->strings["The impressum addon needs to be configured!<br />Please add at leas
 $a->strings["The page operators name."] = "Name des Server-Administrators";
 $a->strings["Site Owners Profile"] = "Profil des Seitenbetreibers";
 $a->strings["Profile address of the operator."] = "Profil-Adresse des Server-Administrators";
-$a->strings["How to contact the operator via snail mail."] = "Wie erreicht man den Betreiber der Seite postalisch.";
+$a->strings["How to contact the operator via snail mail. You can use BBCode here."] = "Kontaktmöglichkeiten zum Administrator via Schneckenpost. Du kannst BBCode verwenden.";
 $a->strings["Notes"] = "Hinweise";
-$a->strings["Additional notes that are displayed beneath the contact information."] = "Zusätzliche Angaben, die unterhalb der Kontakt-Informationen angezeigt werden.";
+$a->strings["Additional notes that are displayed beneath the contact information. You can use BBCode here."] = "Zusätzliche Informationen die neben den Kontaktmöglichkeiten angezeigt werden. Du kannst BBCode verwenden.";
 $a->strings["How to contact the operator via email. (will be displayed obfuscated)"] = "Wie erreichts man den Betreiber per Email. (Adresse wird verschleiert dargestellt)";
 $a->strings["Footer note"] = "Fußnote";
-$a->strings["Text for the footer."] = "Text für die Fußnote";
+$a->strings["Text for the footer. You can use BBCode here."] = "Text für die Fußzeile. Du kannst BBCode verwenden.";
 $a->strings["Report Bug"] = "Fehlerreport erstellen";
 $a->strings["\"Blockem\" Settings"] = "\"Blockem\"-Einstellungen";
 $a->strings["Comma separated profile URLS to block"] = "Profil-URLs, die blockiert werden sollen (durch Kommas getrennt)";
@@ -1131,7 +1180,7 @@ $a->strings["Cancel Connection Process"] = "Verbindungsprozess abbrechen";
 $a->strings["Current StatusNet API is"] = "Derzeitige StatusNet-API-URL lautet";
 $a->strings["Cancel StatusNet Connection"] = "Verbindung zum StatusNet Server abbrechen";
 $a->strings["Currently connected to: "] = "Momentan verbunden mit: ";
-$a->strings["If enabled all your <strong>public</strong> postings can be posted to the associated StatusNet account. You can choose to do so by default (here) or for every posting separately in the posting options when writing the entry."] = "Wenn aktiviert, so können all deine <strong>öffentlichen</strong> Einträge auf dem verbundenen StatusNet Konto veröffentlicht werden. Du kannst das (hier) als Standardverhalten einstellen oder beim Schreiben eines Beitrags in den Beitragsoptionen festlegen.";
+$a->strings["If enabled all your <strong>public</strong> postings can be posted to the associated StatusNet account. You can choose to do so by default (here) or for every posting separately in the posting options when writing the entry."] = "Wenn aktiviert, können all deine <strong>öffentlichen</strong> Einträge auf dem verbundenen StatusNet-Konto veröffentlicht werden. Du kannst das (hier) als Standardverhalten einstellen oder beim Schreiben eines Beitrags in den Beitragsoptionen festlegen.";
 $a->strings["<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to StatusNet will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "<strong>Hinweis</strong>: Aufgrund deiner Privatsphären-Einstellungen (<em>Profil-Details vor unbekannten Betrachtern verbergen?</em>) wird der Link, der eventuell an deinen StatusNet Account angehängt wird, um auf den original Artikel zu verweisen, den Betrachter auf eine leere Seite führen, die ihn darüber informiert, dass der Zugriff eingeschränkt wurde.";
 $a->strings["Allow posting to StatusNet"] = "Veröffentlichung bei StatusNet erlauben";
 $a->strings["Send public postings to StatusNet by default"] = "Veröffentliche öffentliche Beiträge standardmäßig bei StatusNet";
@@ -1178,7 +1227,7 @@ $a->strings["No consumer key pair for Twitter found. Please contact your site ad
 $a->strings["At this Friendica instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter."] = "Auf diesem Friendica-Server wurde das Twitter-Plugin aktiviert, aber du hast deinen Account noch nicht mit deinem Twitter-Account verbunden. Klicke dazu auf die Schaltfläche unten. Du erhältst dann eine PIN von Twitter, die du dann in das Eingabefeld unten einfügst. Denk daran, den Senden-Knopf zu drücken! Nur <strong>öffentliche</strong> Beiträge werden bei Twitter veröffentlicht.";
 $a->strings["Log in with Twitter"] = "bei Twitter anmelden";
 $a->strings["Copy the PIN from Twitter here"] = "Kopiere die Twitter-PIN hier her";
-$a->strings["If enabled all your <strong>public</strong> postings can be posted to the associated Twitter account. You can choose to do so by default (here) or for every posting separately in the posting options when writing the entry."] = "Wenn aktiviert, so können all deine <strong>öffentlichen</strong> Einträge auf dem verbundenen Twitter Konto veröffentlicht werden. Du kannst dies (hier) als Standardverhalten einstellen oder beim Schreiben eines Beitrags in den Beitragsoptionen festlegen.";
+$a->strings["If enabled all your <strong>public</strong> postings can be posted to the associated Twitter account. You can choose to do so by default (here) or for every posting separately in the posting options when writing the entry."] = "Wenn aktiviert, können all deine <strong>öffentlichen</strong> Einträge auf dem verbundenen Twitter-Konto veröffentlicht werden. Du kannst dies (hier) als Standardverhalten einstellen oder beim Schreiben eines Beitrags in den Beitragsoptionen festlegen.";
 $a->strings["<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to Twitter will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "<strong>Hinweis</strong>: Aufgrund deiner Privatsphären-Einstellungen (<em>Profil-Details vor unbekannten Betrachtern verbergen?</em>) wird der Link, der eventuell an an deinen Twitter Account angehängt wird, um auf den original Artikel zu verweisen, den Betrachter auf eine leere Seite führen, die ihn darüber informiert, dass der Zugriff eingeschränkt wurde.";
 $a->strings["Allow posting to Twitter"] = "Veröffentlichung bei Twitter erlauben";
 $a->strings["Send public postings to Twitter by default"] = "Veröffentliche öffentliche Beiträge standardmäßig bei Twitter";
@@ -1204,6 +1253,11 @@ $a->strings["Enable Posterous Post Plugin"] = "Posterous-Plugin aktivieren";
 $a->strings["Posterous login"] = "Posterous-Anmeldename";
 $a->strings["Posterous password"] = "Posterous-Passwort";
 $a->strings["Post to Posterous by default"] = "Veröffentliche öffentliche Beiträge standardmäßig bei Posterous";
+$a->strings["Theme settings"] = "Themen Einstellungen";
+$a->strings["Set resize level for images in posts and comments (width and height)"] = "Wähle das Vergrößerungsmaß für Bilder in Beiträgen und Kommentaren (Höhe und Breite)";
+$a->strings["Set font-size for posts and comments"] = "Schriftgröße für Beiträge und Kommentare festlegen";
+$a->strings["Color scheme"] = "Farbschema";
+$a->strings["Community Profiles"] = "Community-Profile";
 $a->strings["Last users"] = "Letzte Nutzer";
 $a->strings["Last likes"] = "Zuletzt gemocht";
 $a->strings["Last photos"] = "Letzte Fotos";
@@ -1221,15 +1275,13 @@ $a->strings["Your photos"] = "Deine Fotos";
 $a->strings["Your events"] = "Deine Ereignisse";
 $a->strings["Personal notes"] = "Persönliche Notizen";
 $a->strings["Your personal photos"] = "Deine privaten Fotos";
-$a->strings["Theme settings"] = "Themen Einstellungen";
-$a->strings["Set font-size for posts and comments"] = "Schriftgröße für Beiträge und Kommentare festlegen";
 $a->strings["Set line-height for posts and comments"] = "Liniengröße für Beiträge und Kommantare festlegen";
 $a->strings["Set resolution for middle column"] = "Auflösung für die Mittelspalte setzen";
 $a->strings["Set color scheme"] = "Wähle Farbschema";
 $a->strings["Alignment"] = "Ausrichtung";
 $a->strings["Left"] = "Links";
 $a->strings["Center"] = "Mitte";
-$a->strings["Color scheme"] = "Farbschema";
+$a->strings["Set colour scheme"] = "Farbschema wählen";
 $a->strings["Gender:"] = "Geschlecht:";
 $a->strings["j F, Y"] = "j F, Y";
 $a->strings["j F"] = "j F";
@@ -1428,6 +1480,10 @@ $a->strings["All Networks"] = "Alle Netzwerke";
 $a->strings["Saved Folders"] = "Gespeicherte Ordner";
 $a->strings["Everything"] = "Alles";
 $a->strings["Categories"] = "Kategorien";
+$a->strings["%d friend in common"] = array(
+       0 => "%d gemeinsamer Freund",
+       1 => "%d gemeinsame Freunde",
+);
 $a->strings["Logged out."] = "Abgemeldet.";
 $a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Beim versuch dich mit der von dir angegebenen OpenID anzumelden trat ein Problem auf. Bitte überprüfe dass du die OpenID richtig geschrieben hast.";
 $a->strings["The error message was:"] = "Die Fehlermeldung lautete:";
@@ -1483,7 +1539,7 @@ $a->strings["tagged you"] = "erwähnte Dich";
 $a->strings["[Friendica:Notify] %s tagged your post"] = "[Friendica Meldung] %s markierte Deinen Beitrag";
 $a->strings["%s tagged your post at %s"] = "%s hat deinen Beitrag auf %s getaggt";
 $a->strings["%s tagged %s"] = "%s markierte %s";
-$a->strings["your post"] = "Deinen Beitrag";
+$a->strings["your post"] = "deinen Beitrag";
 $a->strings["[Friendica:Notify] Introduction received"] = "[Friendica Meldung] Kontaktanfrage erhalten";
 $a->strings["You've received an introduction from '%s' at %s"] = "Du hast eine Kontaktanfrage von '%s' auf %s erhalten";
 $a->strings["You've received %s from %s."] = "Du hast %s von %s erhalten.";
@@ -1505,10 +1561,11 @@ $a->strings["Welcome "] = "Willkommen ";
 $a->strings["Please upload a profile photo."] = "Bitte lade ein Profilbild hoch.";
 $a->strings["Welcome back "] = "Willkommen zurück ";
 $a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "Das Sicherheits-Merkmal war nicht korrekt. Das passiert meistens wenn das Formular vor dem Absenden zu lange geöffnet war (länger als 3 Stunden).";
+$a->strings["stopped following"] = "wird nicht mehr gefolgt";
 $a->strings["View Status"] = "Pinnwand anschauen";
 $a->strings["View Profile"] = "Profil anschauen";
 $a->strings["View Photos"] = "Bilder anschauen";
-$a->strings["Network Posts"] = "Netzwerk Beiträge";
+$a->strings["Network Posts"] = "Netzwerk-Beiträge";
 $a->strings["Edit Contact"] = "Kontakt bearbeiten";
 $a->strings["Send PM"] = "Private Nachricht senden";
 $a->strings["post/item"] = "Nachricht/Beitrag";
@@ -1525,6 +1582,14 @@ $a->strings["like"] = "mag ich";
 $a->strings["dislike"] = "mag ich nicht";
 $a->strings["Share this"] = "Teile dieses";
 $a->strings["share"] = "Teilen";
+$a->strings["Bold"] = "Fett";
+$a->strings["Italic"] = "Kursiv";
+$a->strings["Underline"] = "Unterstrichen";
+$a->strings["Quote"] = "Zitat";
+$a->strings["Code"] = "Code";
+$a->strings["Image"] = "Bild";
+$a->strings["Link"] = "Verweis";
+$a->strings["Video"] = "Video";
 $a->strings["add star"] = "markieren";
 $a->strings["remove star"] = "Markierung entfernen";
 $a->strings["toggle star status"] = "Markierung umschalten";
@@ -1560,6 +1625,8 @@ $a->strings["clear location"] = "Ort löschen";
 $a->strings["permissions"] = "Zugriffsrechte";
 $a->strings["Delete this item?"] = "Diesen Beitrag löschen?";
 $a->strings["show fewer"] = "weniger anzeigen";
+$a->strings["Update %s failed. See error logs."] = "Update %s fehlgeschlagen. Bitte Fehlerprotokoll überprüfen.";
+$a->strings["Update Error at %s"] = "Updatefehler bei %s";
 $a->strings["Create a New Account"] = "Neuen Account erstellen";
 $a->strings["Nickname or Email address: "] = "Spitzname oder Email-Adresse: ";
 $a->strings["Password: "] = "Passwort: ";
@@ -1569,9 +1636,13 @@ $a->strings["Edit profile"] = "Profil bearbeiten";
 $a->strings["Message"] = "Nachricht";
 $a->strings["g A l F d"] = "l, d. F G \\U\\h\\r";
 $a->strings["F d"] = "d. F";
+$a->strings["[today]"] = "[heute]";
 $a->strings["Birthday Reminders"] = "Geburtstagserinnerungen";
 $a->strings["Birthdays this week:"] = "Geburtstage diese Woche:";
-$a->strings["[today]"] = "[heute]";
+$a->strings["[No description]"] = "[keine Beschreibung]";
 $a->strings["Event Reminders"] = "Veranstaltungserinnerungen";
 $a->strings["Events this week:"] = "Veranstaltungen diese Woche";
-$a->strings["[No description]"] = "[keine Beschreibung]";
+$a->strings["Status Messages and Posts"] = "Statusnachrichten und Beiträge";
+$a->strings["Profile Details"] = "Profildetails";
+$a->strings["Events and Calendar"] = "Ereignisse und Kalender";
+$a->strings["Only You Can See This"] = "Nur Du Kannst Das Sehen";
index 26be1786fce98774c5c30fcd00883786bf24dacd..cfb55e2405da62fe4464275e63de6ee59a2d0c89 100644 (file)
@@ -1,12 +1,11 @@
-Hey, \r
-Ich bin's,  $sitename.   \r
-Die Friendica-Entwickler haben gerade Update $update freigegeben, \r
-aber als ich es installieren wollte, ist irgendetwas schief gegangen.  \r
-Das sollte schnell repariert werden und alleine schaffe ich es nicht. \r
-Wende dich bitte an einen Friendica-Entwickler, wenn du mir nicht selbst helfen kannst. \r
-Meine Datenbank könnte ziemlich durcheinander sein. \r
+Hi, \r
+ich bin $sitename.   \r
+Die friendica Entwickler haben jüngst Update $update veröffentlicht, \r
+aber als ich versucht habe es zu installieren ist etwas schrecklich schief gegangen.  \r
+Das sollte schnellst möglichst behoben werden und ich kann das nicht alleine machen. \r
+Bitte wende dich an einen friendica Entwickler, falls du mir nicht alleine helfen kannst. Meine Datenbank könnte unbrauchbar sein. \r
 \r
-Die Fehlermeldung ist '$error'.   \r
+Die Fehlermeldung lautet '$error'.   \r
 \r
-Tut mir leid, \r
-dein Friendica Server unter $siteurl
\ No newline at end of file
+Tut mir Leid! \r
+Deine friendica Instanz auf $siteurl
\ No newline at end of file
diff --git a/view/en/update_fail_eml.tpl b/view/en/update_fail_eml.tpl
new file mode 100644 (file)
index 0000000..f68a3de
--- /dev/null
@@ -0,0 +1,11 @@
+Hey, \r
+I'm $sitename.   \r
+The friendica developers released update $update recently, \r
+but when I tried to install it, something went terribly wrong.  \r
+This needs to be fixed soon and I can't do it alone. Please contact a \r
+friendica developer if you can not help me on your own. My database might be invalid. \r
+\r
+The error message is '$error'.   \r
+\r
+I'm sorry, \r
+your friendica server at $siteurl
\ No newline at end of file
index a09c949a6f6aa17e05d754c6a0df2c0e63229660..5931273396d911d468da6ff041febb6844fdb581 100644 (file)
@@ -9,8 +9,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: friendica\n"
 "Report-Msgid-Bugs-To: http://bugs.friendica.com/\n"
-"POT-Creation-Date: 2012-04-23 10:00-0700\n"
-"PO-Revision-Date: 2012-04-25 06:35+0000\n"
+"POT-Creation-Date: 2012-05-03 17:20-0700\n"
+"PO-Revision-Date: 2012-05-04 09:50+0000\n"
 "Last-Translator: Martin Schmitt <mas@scsy.de>\n"
 "Language-Team: Esperanto (http://www.transifex.net/projects/p/friendica/language/eo/)\n"
 "MIME-Version: 1.0\n"
@@ -37,12 +37,12 @@ msgid "Contact update failed."
 msgstr "Ĝisdatigo de kontakto malsukcesis."
 
 #: ../../mod/crepair.php:115 ../../mod/wall_attach.php:44
-#: ../../mod/fsuggest.php:78 ../../mod/events.php:110 ../../mod/api.php:26
+#: ../../mod/fsuggest.php:78 ../../mod/events.php:138 ../../mod/api.php:26
 #: ../../mod/api.php:31 ../../mod/photos.php:130 ../../mod/photos.php:865
 #: ../../mod/editpost.php:10 ../../mod/install.php:171
 #: ../../mod/notifications.php:66 ../../mod/contacts.php:125
-#: ../../mod/settings.php:99 ../../mod/settings.php:514
-#: ../../mod/settings.php:519 ../../mod/manage.php:86 ../../mod/network.php:6
+#: ../../mod/settings.php:104 ../../mod/settings.php:521
+#: ../../mod/settings.php:526 ../../mod/manage.php:86 ../../mod/network.php:6
 #: ../../mod/notes.php:20 ../../mod/wallmessage.php:9
 #: ../../mod/wallmessage.php:33 ../../mod/wallmessage.php:79
 #: ../../mod/wallmessage.php:103 ../../mod/attach.php:33
@@ -54,11 +54,11 @@ msgstr "Ĝisdatigo de kontakto malsukcesis."
 #: ../../mod/message.php:90 ../../mod/allfriends.php:9
 #: ../../mod/nogroup.php:25 ../../mod/wall_upload.php:53
 #: ../../mod/follow.php:8 ../../mod/common.php:9 ../../mod/display.php:138
-#: ../../mod/profiles.php:7 ../../mod/profiles.php:329
+#: ../../mod/profiles.php:7 ../../mod/profiles.php:365
 #: ../../mod/delegate.php:6 ../../mod/suggest.php:28 ../../mod/invite.php:13
 #: ../../mod/invite.php:81 ../../mod/dfrn_confirm.php:53
-#: ../../addon/facebook/facebook.php:484 ../../include/items.php:3171
-#: ../../index.php:309
+#: ../../addon/facebook/facebook.php:485 ../../include/items.php:3187
+#: ../../index.php:306
 msgid "Permission denied."
 msgstr "Malpermesita."
 
@@ -87,8 +87,8 @@ msgstr "Bonvolu klaki 'malantaŭen' en via retesplorilo <strong>nun</strong> se
 msgid "Return to contact editor"
 msgstr "Reen al kontakta redaktilo"
 
-#: ../../mod/crepair.php:148 ../../mod/settings.php:534
-#: ../../mod/settings.php:560 ../../mod/admin.php:573 ../../mod/admin.php:582
+#: ../../mod/crepair.php:148 ../../mod/settings.php:541
+#: ../../mod/settings.php:567 ../../mod/admin.php:638 ../../mod/admin.php:647
 msgid "Name"
 msgstr "Nomo"
 
@@ -125,23 +125,23 @@ msgid "New photo from this URL"
 msgstr "Nova bildo el tiu adreso"
 
 #: ../../mod/crepair.php:166 ../../mod/fsuggest.php:107
-#: ../../mod/events.php:400 ../../mod/photos.php:900 ../../mod/photos.php:958
+#: ../../mod/events.php:428 ../../mod/photos.php:900 ../../mod/photos.php:958
 #: ../../mod/photos.php:1193 ../../mod/photos.php:1233
 #: ../../mod/photos.php:1273 ../../mod/photos.php:1304
 #: ../../mod/install.php:251 ../../mod/install.php:289
-#: ../../mod/localtime.php:45 ../../mod/contacts.php:325
-#: ../../mod/settings.php:532 ../../mod/settings.php:678
-#: ../../mod/settings.php:739 ../../mod/settings.php:930
-#: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/admin.php:392
-#: ../../mod/admin.php:570 ../../mod/admin.php:706 ../../mod/admin.php:905
-#: ../../mod/admin.php:993 ../../mod/profiles.php:498 ../../mod/invite.php:119
-#: ../../addon/facebook/facebook.php:574 ../../addon/yourls/yourls.php:76
-#: ../../addon/ljpost/ljpost.php:93 ../../addon/nsfw/nsfw.php:57
-#: ../../addon/planets/planets.php:158
+#: ../../mod/localtime.php:45 ../../mod/contacts.php:322
+#: ../../mod/settings.php:539 ../../mod/settings.php:685
+#: ../../mod/settings.php:746 ../../mod/settings.php:940
+#: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/admin.php:400
+#: ../../mod/admin.php:635 ../../mod/admin.php:771 ../../mod/admin.php:970
+#: ../../mod/admin.php:1057 ../../mod/profiles.php:534
+#: ../../mod/invite.php:119 ../../addon/facebook/facebook.php:575
+#: ../../addon/yourls/yourls.php:76 ../../addon/ljpost/ljpost.php:93
+#: ../../addon/nsfw/nsfw.php:57 ../../addon/planets/planets.php:158
 #: ../../addon/uhremotestorage/uhremotestorage.php:89
 #: ../../addon/randplace/randplace.php:177 ../../addon/dwpost/dwpost.php:93
 #: ../../addon/drpost/drpost.php:110 ../../addon/geonames/geonames.php:187
-#: ../../addon/oembed.old/oembed.php:41 ../../addon/impressum/impressum.php:80
+#: ../../addon/oembed.old/oembed.php:41 ../../addon/impressum/impressum.php:82
 #: ../../addon/blockem/blockem.php:57 ../../addon/qcomment/qcomment.php:61
 #: ../../addon/openstreetmap/openstreetmap.php:70
 #: ../../addon/mathjax/mathjax.php:42 ../../addon/editplain/editplain.php:84
@@ -160,14 +160,10 @@ msgstr "Nova bildo el tiu adreso"
 #: ../../addon/twitter/twitter.php:209 ../../addon/twitter/twitter.php:375
 #: ../../addon/irc/irc.php:55 ../../addon/blogger/blogger.php:102
 #: ../../addon/posterous/posterous.php:90
-#: ../../view/theme/diabook/diabook-green/config.php:76
-#: ../../view/theme/diabook/diabook-red/config.php:76
-#: ../../view/theme/diabook/diabook-blue/config.php:76
-#: ../../view/theme/diabook/diabook-dark/config.php:76
-#: ../../view/theme/diabook/diabook-aerith/config.php:76
-#: ../../view/theme/diabook/diabook-pink/config.php:76
+#: ../../view/theme/cleanzero/config.php:71
 #: ../../view/theme/diabook/config.php:91
-#: ../../view/theme/quattro/config.php:52 ../../include/conversation.php:555
+#: ../../view/theme/quattro/config.php:52 ../../view/theme/dispy/config.php:70
+#: ../../include/conversation.php:555
 msgid "Submit"
 msgstr "Sendi"
 
@@ -179,11 +175,11 @@ msgstr "Helpo:"
 msgid "Help"
 msgstr "Helpo"
 
-#: ../../mod/help.php:38 ../../index.php:228
+#: ../../mod/help.php:38 ../../index.php:225
 msgid "Not Found"
 msgstr "Ne trovita"
 
-#: ../../mod/help.php:41 ../../index.php:231
+#: ../../mod/help.php:41 ../../index.php:228
 msgid "Page not found."
 msgstr "Paĝo ne trovita"
 
@@ -209,91 +205,84 @@ msgstr "Sugesti amikojn"
 msgid "Suggest a friend for %s"
 msgstr "Sugesti amikon por %s"
 
-#: ../../mod/events.php:62
+#: ../../mod/events.php:65
 msgid "Event description and start time are required."
 msgstr "Okazo bezonas priskribon kaj startotempon."
 
-#: ../../mod/events.php:230
+#: ../../mod/events.php:258
 msgid "l, F j"
 msgstr "l, F j"
 
-#: ../../mod/events.php:252
+#: ../../mod/events.php:280
 msgid "Edit event"
 msgstr "Redakti okazon"
 
-#: ../../mod/events.php:272 ../../include/text.php:1053
+#: ../../mod/events.php:300 ../../include/text.php:1053
 msgid "link to source"
 msgstr "ligi al fonto"
 
-#: ../../mod/events.php:296
-#: ../../view/theme/diabook/diabook-green/theme.php:233
-#: ../../view/theme/diabook/diabook-red/theme.php:231
-#: ../../view/theme/diabook/diabook-blue/theme.php:231
-#: ../../view/theme/diabook/theme.php:250
-#: ../../view/theme/diabook/diabook-dark/theme.php:233
-#: ../../view/theme/diabook/diabook-aerith/theme.php:233
-#: ../../view/theme/diabook/diabook-pink/theme.php:233
-#: ../../include/nav.php:52 ../../boot.php:1471
+#: ../../mod/events.php:324 ../../view/theme/diabook/theme.php:69
+#: ../../include/nav.php:52 ../../boot.php:1493
 msgid "Events"
 msgstr "Okazoj"
 
-#: ../../mod/events.php:297
+#: ../../mod/events.php:325
 msgid "Create New Event"
 msgstr "Krei novan okazon"
 
-#: ../../mod/events.php:298
+#: ../../mod/events.php:326
 msgid "Previous"
 msgstr "antaŭa"
 
-#: ../../mod/events.php:299 ../../mod/install.php:210
+#: ../../mod/events.php:327 ../../mod/install.php:210
 msgid "Next"
 msgstr "sekva"
 
-#: ../../mod/events.php:371
+#: ../../mod/events.php:399
 msgid "hour:minute"
 msgstr "horo:minuto"
 
-#: ../../mod/events.php:380
+#: ../../mod/events.php:408
 msgid "Event details"
 msgstr "Detaloj de okazo"
 
-#: ../../mod/events.php:381
+#: ../../mod/events.php:409
 #, php-format
 msgid "Format is %s %s. Starting date and Description are required."
 msgstr "Formato estas %s %s. Startotempo kaj priskribo estas bezonataj"
 
-#: ../../mod/events.php:383
+#: ../../mod/events.php:411
 msgid "Event Starts:"
 msgstr "Okazo startas:"
 
-#: ../../mod/events.php:386
+#: ../../mod/events.php:414
 msgid "Finish date/time is not known or not relevant"
 msgstr "Fina dato/tempo ne estas konata aŭ ne bezonata"
 
-#: ../../mod/events.php:388
+#: ../../mod/events.php:416
 msgid "Event Finishes:"
 msgstr "Okazo finas:"
 
-#: ../../mod/events.php:391
+#: ../../mod/events.php:419
 msgid "Adjust for viewer timezone"
 msgstr "Agordi al horzono de la leganto"
 
-#: ../../mod/events.php:393
+#: ../../mod/events.php:421
 msgid "Description:"
 msgstr "Priskribo"
 
-#: ../../mod/events.php:395 ../../include/event.php:37
-#: ../../include/bb2diaspora.php:260 ../../boot.php:1083
+#: ../../mod/events.php:423 ../../include/event.php:37
+#: ../../include/bb2diaspora.php:260 ../../boot.php:1092
 msgid "Location:"
 msgstr "Loko:"
 
-#: ../../mod/events.php:397
+#: ../../mod/events.php:425
 msgid "Share this event"
 msgstr "Kunhavigi la okazon"
 
 #: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94
-#: ../../mod/dfrn_request.php:800 ../../mod/settings.php:533
-#: ../../mod/settings.php:559 ../../addon/js_upload/js_upload.php:45
+#: ../../mod/dfrn_request.php:818 ../../mod/settings.php:540
+#: ../../mod/settings.php:566 ../../addon/js_upload/js_upload.php:45
 msgid "Cancel"
 msgstr "Nuligi"
 
@@ -336,42 +325,36 @@ msgid ""
 " and/or create new posts for you?"
 msgstr "Ĉu rajtigi ĉi tiun programon por atingi viajn afiŝojn kaj kontaktojn kaj/aŭ krei novajn afiŝojn?"
 
-#: ../../mod/api.php:105 ../../mod/dfrn_request.php:788
-#: ../../mod/settings.php:844 ../../mod/settings.php:850
-#: ../../mod/settings.php:858 ../../mod/settings.php:862
-#: ../../mod/settings.php:867 ../../mod/settings.php:873
-#: ../../mod/settings.php:879 ../../mod/settings.php:885
-#: ../../mod/settings.php:921 ../../mod/settings.php:922
-#: ../../mod/settings.php:923 ../../mod/settings.php:924
-#: ../../mod/register.php:532 ../../mod/profiles.php:475
+#: ../../mod/api.php:105 ../../mod/dfrn_request.php:806
+#: ../../mod/settings.php:854 ../../mod/settings.php:860
+#: ../../mod/settings.php:868 ../../mod/settings.php:872
+#: ../../mod/settings.php:877 ../../mod/settings.php:883
+#: ../../mod/settings.php:889 ../../mod/settings.php:895
+#: ../../mod/settings.php:931 ../../mod/settings.php:932
+#: ../../mod/settings.php:933 ../../mod/settings.php:934
+#: ../../mod/register.php:532 ../../mod/profiles.php:511
 msgid "Yes"
 msgstr "Jes"
 
-#: ../../mod/api.php:106 ../../mod/dfrn_request.php:789
-#: ../../mod/settings.php:844 ../../mod/settings.php:850
-#: ../../mod/settings.php:858 ../../mod/settings.php:862
-#: ../../mod/settings.php:867 ../../mod/settings.php:873
-#: ../../mod/settings.php:879 ../../mod/settings.php:885
-#: ../../mod/settings.php:921 ../../mod/settings.php:922
-#: ../../mod/settings.php:923 ../../mod/settings.php:924
-#: ../../mod/register.php:533 ../../mod/profiles.php:476
+#: ../../mod/api.php:106 ../../mod/dfrn_request.php:807
+#: ../../mod/settings.php:854 ../../mod/settings.php:860
+#: ../../mod/settings.php:868 ../../mod/settings.php:872
+#: ../../mod/settings.php:877 ../../mod/settings.php:883
+#: ../../mod/settings.php:889 ../../mod/settings.php:895
+#: ../../mod/settings.php:931 ../../mod/settings.php:932
+#: ../../mod/settings.php:933 ../../mod/settings.php:934
+#: ../../mod/register.php:533 ../../mod/profiles.php:512
 msgid "No"
 msgstr "Ne"
 
-#: ../../mod/photos.php:43
+#: ../../mod/photos.php:43 ../../boot.php:1487
 msgid "Photo Albums"
 msgstr "Bildalbumoj"
 
 #: ../../mod/photos.php:51 ../../mod/photos.php:151 ../../mod/photos.php:879
 #: ../../mod/photos.php:950 ../../mod/photos.php:965 ../../mod/photos.php:1382
 #: ../../mod/photos.php:1394 ../../addon/communityhome/communityhome.php:110
-#: ../../view/theme/diabook/diabook-green/theme.php:116
-#: ../../view/theme/diabook/diabook-red/theme.php:115
-#: ../../view/theme/diabook/diabook-blue/theme.php:115
-#: ../../view/theme/diabook/theme.php:130
-#: ../../view/theme/diabook/diabook-dark/theme.php:116
-#: ../../view/theme/diabook/diabook-aerith/theme.php:116
-#: ../../view/theme/diabook/diabook-pink/theme.php:116
+#: ../../view/theme/diabook/theme.php:436
 msgid "Contact Photos"
 msgstr "Kontaktbildoj"
 
@@ -394,13 +377,7 @@ msgstr "Kontaktoj informoj ne disponeblas"
 #: ../../mod/profile_photo.php:74 ../../mod/profile_photo.php:174
 #: ../../mod/profile_photo.php:252 ../../mod/profile_photo.php:261
 #: ../../addon/communityhome/communityhome.php:111
-#: ../../view/theme/diabook/diabook-green/theme.php:117
-#: ../../view/theme/diabook/diabook-red/theme.php:116
-#: ../../view/theme/diabook/diabook-blue/theme.php:116
-#: ../../view/theme/diabook/theme.php:131
-#: ../../view/theme/diabook/diabook-dark/theme.php:117
-#: ../../view/theme/diabook/diabook-aerith/theme.php:117
-#: ../../view/theme/diabook/diabook-pink/theme.php:117
+#: ../../view/theme/diabook/theme.php:437
 msgid "Profile Photos"
 msgstr "Profilbildoj"
 
@@ -422,15 +399,9 @@ msgstr "estas markita en"
 
 #: ../../mod/photos.php:528 ../../mod/like.php:127 ../../mod/tagger.php:70
 #: ../../addon/communityhome/communityhome.php:163
-#: ../../view/theme/diabook/diabook-green/theme.php:88
-#: ../../view/theme/diabook/diabook-red/theme.php:87
-#: ../../view/theme/diabook/diabook-blue/theme.php:87
-#: ../../view/theme/diabook/theme.php:102
-#: ../../view/theme/diabook/diabook-dark/theme.php:88
-#: ../../view/theme/diabook/diabook-aerith/theme.php:88
-#: ../../view/theme/diabook/diabook-pink/theme.php:88
-#: ../../include/text.php:1304 ../../include/diaspora.php:1654
-#: ../../include/conversation.php:53 ../../include/conversation.php:126
+#: ../../view/theme/diabook/theme.php:408 ../../include/text.php:1304
+#: ../../include/diaspora.php:1654 ../../include/conversation.php:53
+#: ../../include/conversation.php:126
 msgid "photo"
 msgstr "bildo"
 
@@ -457,7 +428,7 @@ msgid "Image upload failed."
 msgstr "Alŝuto de bildo malsukcesis."
 
 #: ../../mod/photos.php:759 ../../mod/community.php:16
-#: ../../mod/dfrn_request.php:719 ../../mod/viewcontacts.php:17
+#: ../../mod/dfrn_request.php:732 ../../mod/viewcontacts.php:17
 #: ../../mod/display.php:7 ../../mod/search.php:71 ../../mod/directory.php:29
 msgid "Public access denied."
 msgstr "Publika atingo ne permesita."
@@ -559,14 +530,14 @@ msgstr "Mi ŝatas tion (ŝalti)"
 msgid "I don't like this (toggle)"
 msgstr "Mi malŝatas tion(ŝalti)"
 
-#: ../../mod/photos.php:1213 ../../include/conversation.php:956
+#: ../../mod/photos.php:1213 ../../include/conversation.php:964
 msgid "Share"
 msgstr "Kunhavigi"
 
 #: ../../mod/photos.php:1214 ../../mod/editpost.php:104
 #: ../../mod/wallmessage.php:145 ../../mod/message.php:188
-#: ../../mod/message.php:357 ../../include/conversation.php:361
-#: ../../include/conversation.php:698 ../../include/conversation.php:975
+#: ../../mod/message.php:380 ../../include/conversation.php:361
+#: ../../include/conversation.php:706 ../../include/conversation.php:983
 msgid "Please wait"
 msgstr "Bonvolu atendi"
 
@@ -577,18 +548,18 @@ msgstr "Tiu estas vi"
 
 #: ../../mod/photos.php:1232 ../../mod/photos.php:1272
 #: ../../mod/photos.php:1303 ../../include/conversation.php:554
-#: ../../boot.php:495
+#: ../../boot.php:506
 msgid "Comment"
 msgstr "Komenti"
 
 #: ../../mod/photos.php:1234 ../../mod/editpost.php:125
-#: ../../include/conversation.php:556 ../../include/conversation.php:993
+#: ../../include/conversation.php:564 ../../include/conversation.php:1001
 msgid "Preview"
 msgstr "Antaŭrigardi"
 
-#: ../../mod/photos.php:1331 ../../mod/settings.php:595
-#: ../../mod/settings.php:676 ../../mod/group.php:168 ../../mod/admin.php:577
-#: ../../include/conversation.php:318 ../../include/conversation.php:576
+#: ../../mod/photos.php:1331 ../../mod/settings.php:602
+#: ../../mod/settings.php:683 ../../mod/group.php:168 ../../mod/admin.php:642
+#: ../../include/conversation.php:318 ../../include/conversation.php:584
 msgid "Delete"
 msgstr "Forviŝi"
 
@@ -604,51 +575,44 @@ msgstr "̂Ĵusaj bildoj"
 msgid "Not available."
 msgstr "Ne disponebla."
 
-#: ../../mod/community.php:30
-#: ../../view/theme/diabook/diabook-green/theme.php:235
-#: ../../view/theme/diabook/diabook-red/theme.php:233
-#: ../../view/theme/diabook/diabook-blue/theme.php:233
-#: ../../view/theme/diabook/theme.php:252
-#: ../../view/theme/diabook/diabook-dark/theme.php:235
-#: ../../view/theme/diabook/diabook-aerith/theme.php:235
-#: ../../view/theme/diabook/diabook-pink/theme.php:235
+#: ../../mod/community.php:30 ../../view/theme/diabook/theme.php:71
 #: ../../include/nav.php:101
 msgid "Community"
 msgstr "Komunumo"
 
-#: ../../mod/community.php:61 ../../mod/search.php:115
+#: ../../mod/community.php:61 ../../mod/search.php:128
 msgid "No results."
 msgstr "Nenion trovita."
 
-#: ../../mod/friendica.php:47
+#: ../../mod/friendica.php:55
 msgid "This is Friendica, version"
 msgstr "Tio estas Friendica en la versio"
 
-#: ../../mod/friendica.php:48
+#: ../../mod/friendica.php:56
 msgid "running at web location"
 msgstr "instalita ĉe la adreso"
 
-#: ../../mod/friendica.php:50
+#: ../../mod/friendica.php:58
 msgid ""
 "Please visit <a href=\"http://friendica.com\">Friendica.com</a> to learn "
 "more about the Friendica project."
 msgstr "Bonvolu iri al <a href=\"http://friendica.com\">Friendica.com</a> por lerni pli pri la projekto Friendica"
 
-#: ../../mod/friendica.php:52
+#: ../../mod/friendica.php:60
 msgid "Bug reports and issues: please visit"
 msgstr "Cimraportoj kaj atendindaĵo: bonvolu iri al"
 
-#: ../../mod/friendica.php:53
+#: ../../mod/friendica.php:61
 msgid ""
 "Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - "
 "dot com"
 msgstr "Sugestoj, laŭdoj, donacoj ktp - bonvolu sendi mesĝon al \"Info\" ĉe Friendica - punkto com"
 
-#: ../../mod/friendica.php:58
+#: ../../mod/friendica.php:75
 msgid "Installed plugins/addons/apps:"
 msgstr "Instalitaj kromprogramoj/programoj:"
 
-#: ../../mod/friendica.php:71
+#: ../../mod/friendica.php:88
 msgid "No installed plugins/addons/apps"
 msgstr "Neniom da instalitaj aldonaĵoj/programoj"
 
@@ -660,28 +624,28 @@ msgstr "Elemento ne trovita"
 msgid "Edit post"
 msgstr "Redakti afiŝon"
 
-#: ../../mod/editpost.php:80 ../../include/conversation.php:942
+#: ../../mod/editpost.php:80 ../../include/conversation.php:950
 msgid "Post to Email"
 msgstr "Sendi tra retpoŝto"
 
-#: ../../mod/editpost.php:95 ../../mod/settings.php:594
-#: ../../include/conversation.php:563
+#: ../../mod/editpost.php:95 ../../mod/settings.php:601
+#: ../../include/conversation.php:571
 msgid "Edit"
 msgstr "Redakti"
 
 #: ../../mod/editpost.php:96 ../../mod/wallmessage.php:143
-#: ../../mod/message.php:186 ../../mod/message.php:355
-#: ../../include/conversation.php:957
+#: ../../mod/message.php:186 ../../mod/message.php:378
+#: ../../include/conversation.php:965
 msgid "Upload photo"
 msgstr "Alŝuti bildon"
 
-#: ../../mod/editpost.php:97 ../../include/conversation.php:959
+#: ../../mod/editpost.php:97 ../../include/conversation.php:967
 msgid "Attach file"
 msgstr "Kunligi dosieron"
 
 #: ../../mod/editpost.php:98 ../../mod/wallmessage.php:144
-#: ../../mod/message.php:187 ../../mod/message.php:356
-#: ../../include/conversation.php:961
+#: ../../mod/message.php:187 ../../mod/message.php:379
+#: ../../include/conversation.php:969
 msgid "Insert web link"
 msgstr "Enmeti retan adreson"
 
@@ -697,35 +661,35 @@ msgstr "Enmeti videton en formato Vorbis [.ogg]"
 msgid "Insert Vorbis [.ogg] audio"
 msgstr "Enmeti sonon en formato Vorbis [.ogg]"
 
-#: ../../mod/editpost.php:102 ../../include/conversation.php:967
+#: ../../mod/editpost.php:102 ../../include/conversation.php:975
 msgid "Set your location"
 msgstr "Agordi vian lokon"
 
-#: ../../mod/editpost.php:103 ../../include/conversation.php:969
+#: ../../mod/editpost.php:103 ../../include/conversation.php:977
 msgid "Clear browser location"
 msgstr "Forviŝu retesplorilan lokon"
 
-#: ../../mod/editpost.php:105 ../../include/conversation.php:976
+#: ../../mod/editpost.php:105 ../../include/conversation.php:984
 msgid "Permission settings"
 msgstr "Permesagordoj"
 
-#: ../../mod/editpost.php:113 ../../include/conversation.php:985
+#: ../../mod/editpost.php:113 ../../include/conversation.php:993
 msgid "CC: email addresses"
 msgstr "CC: retpoŝtadresojn"
 
-#: ../../mod/editpost.php:114 ../../include/conversation.php:986
+#: ../../mod/editpost.php:114 ../../include/conversation.php:994
 msgid "Public post"
 msgstr "Publika afiŝo"
 
-#: ../../mod/editpost.php:117 ../../include/conversation.php:972
+#: ../../mod/editpost.php:117 ../../include/conversation.php:980
 msgid "Set title"
 msgstr "Redakti titolon"
 
-#: ../../mod/editpost.php:119 ../../include/conversation.php:974
+#: ../../mod/editpost.php:119 ../../include/conversation.php:982
 msgid "Categories (comma-separated list)"
 msgstr "Kategorioj (disigita per komo)"
 
-#: ../../mod/editpost.php:120 ../../include/conversation.php:988
+#: ../../mod/editpost.php:120 ../../include/conversation.php:996
 msgid "Example: bob@example.com, mary@example.com"
 msgstr "Ekzemple: bob@example.com, mary@example.com"
 
@@ -733,19 +697,19 @@ msgstr "Ekzemple: bob@example.com, mary@example.com"
 msgid "This introduction has already been accepted."
 msgstr "Tia prezento jam estas akceptita"
 
-#: ../../mod/dfrn_request.php:117 ../../mod/dfrn_request.php:475
+#: ../../mod/dfrn_request.php:117 ../../mod/dfrn_request.php:487
 msgid "Profile location is not valid or does not contain profile information."
 msgstr "La adreso de la profilo ne validas aŭ ne enhavas profilinformojn."
 
-#: ../../mod/dfrn_request.php:122 ../../mod/dfrn_request.php:480
+#: ../../mod/dfrn_request.php:122 ../../mod/dfrn_request.php:492
 msgid "Warning: profile location has no identifiable owner name."
 msgstr "Averto: La adreso de la profilo ne enhavas identeblan personan nomon."
 
-#: ../../mod/dfrn_request.php:124 ../../mod/dfrn_request.php:482
+#: ../../mod/dfrn_request.php:124 ../../mod/dfrn_request.php:494
 msgid "Warning: profile location has no profile photo."
 msgstr "Averto: La adreso de la profilo ne enhavas bildon."
 
-#: ../../mod/dfrn_request.php:127 ../../mod/dfrn_request.php:485
+#: ../../mod/dfrn_request.php:127 ../../mod/dfrn_request.php:497
 #, php-format
 msgid "%d required parameter was not found at the given location"
 msgid_plural "%d required parameters were not found at the given location"
@@ -789,128 +753,128 @@ msgstr "Nevalida repoŝtadreso."
 msgid "This account has not been configured for email. Request failed."
 msgstr "La konto ne estas agordita por retpoŝto. La peto malsukcesis."
 
-#: ../../mod/dfrn_request.php:420
+#: ../../mod/dfrn_request.php:432
 msgid "Unable to resolve your name at the provided location."
 msgstr "Via nomo ne troveblas al la donita adreso."
 
-#: ../../mod/dfrn_request.php:433
+#: ../../mod/dfrn_request.php:445
 msgid "You have already introduced yourself here."
 msgstr "Vi vin jam prezentis tie."
 
-#: ../../mod/dfrn_request.php:437
+#: ../../mod/dfrn_request.php:449
 #, php-format
 msgid "Apparently you are already friends with %s."
 msgstr "Ŝajnas kvazaŭ vi jam amikiĝis kun %s."
 
-#: ../../mod/dfrn_request.php:458
+#: ../../mod/dfrn_request.php:470
 msgid "Invalid profile URL."
 msgstr "Nevalida adreso de profilo."
 
-#: ../../mod/dfrn_request.php:464 ../../mod/follow.php:20
+#: ../../mod/dfrn_request.php:476 ../../mod/follow.php:20
 msgid "Disallowed profile URL."
 msgstr "Malpermesita adreso de profilo."
 
-#: ../../mod/dfrn_request.php:533 ../../mod/contacts.php:102
+#: ../../mod/dfrn_request.php:545 ../../mod/contacts.php:102
 msgid "Failed to update contact record."
 msgstr "Ĝisdatigo de via kontaktrikordo malsukcesis."
 
-#: ../../mod/dfrn_request.php:554
+#: ../../mod/dfrn_request.php:566
 msgid "Your introduction has been sent."
 msgstr "Via prezento estas sendita."
 
-#: ../../mod/dfrn_request.php:607
+#: ../../mod/dfrn_request.php:619
 msgid "Please login to confirm introduction."
 msgstr "Bonvolu ensaluti por jesigi la prezenton."
 
-#: ../../mod/dfrn_request.php:621
+#: ../../mod/dfrn_request.php:633
 msgid ""
 "Incorrect identity currently logged in. Please login to "
 "<strong>this</strong> profile."
 msgstr "Malĝusta identaĵo ensalutata. Bonvolu ensaluti en <strong>tiun</strong> profilon."
 
-#: ../../mod/dfrn_request.php:633
+#: ../../mod/dfrn_request.php:645
 #, php-format
 msgid "Welcome home %s."
 msgstr "Bonvenon hejme, %s."
 
-#: ../../mod/dfrn_request.php:634
+#: ../../mod/dfrn_request.php:646
 #, php-format
 msgid "Please confirm your introduction/connection request to %s."
 msgstr "Bonvolu konfirmi vian prezenton / kontaktpeton al %s."
 
-#: ../../mod/dfrn_request.php:635
+#: ../../mod/dfrn_request.php:647
 msgid "Confirm"
 msgstr "Konfirmi."
 
-#: ../../mod/dfrn_request.php:676 ../../include/items.php:2691
+#: ../../mod/dfrn_request.php:688 ../../include/items.php:2707
 msgid "[Name Withheld]"
 msgstr "[Kaŝita nomo]"
 
-#: ../../mod/dfrn_request.php:763
+#: ../../mod/dfrn_request.php:781
 msgid ""
 "Please enter your 'Identity Address' from one of the following supported "
 "communications networks:"
 msgstr "Bonvolu entajpi vian 'Identecan Adreson' de iu de tiuj subtenataj komunikaj retejoj: "
 
-#: ../../mod/dfrn_request.php:779
+#: ../../mod/dfrn_request.php:797
 msgid "<strike>Connect as an email follower</strike> (Coming soon)"
 msgstr "<strike>Konektu kiel retpoŝta sekvanto</strike> (Baldaŭ venos)"
 
-#: ../../mod/dfrn_request.php:781
+#: ../../mod/dfrn_request.php:799
 msgid ""
 "If you are not yet a member of the free social web, <a "
 "href=\"http://dir.friendica.com/siteinfo\">follow this link to find a public"
 " Friendica site and join us today</a>."
 msgstr "Se vi ne estas membro de la libra interkona reto, <a href=\"http://dir.friendica.com/siteinfo\">sekvu ĉi-ligilon por trovi publikan Friendica retejon kaj aliĝi kun ni hodiaŭ</a>."
 
-#: ../../mod/dfrn_request.php:784
+#: ../../mod/dfrn_request.php:802
 msgid "Friend/Connection Request"
 msgstr "Prezento / Konektpeto"
 
-#: ../../mod/dfrn_request.php:785
+#: ../../mod/dfrn_request.php:803
 msgid ""
 "Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, "
 "testuser@identi.ca"
 msgstr "Ekzemploj: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"
 
-#: ../../mod/dfrn_request.php:786
+#: ../../mod/dfrn_request.php:804
 msgid "Please answer the following:"
 msgstr "Bonvolu respondi:"
 
-#: ../../mod/dfrn_request.php:787
+#: ../../mod/dfrn_request.php:805
 #, php-format
 msgid "Does %s know you?"
 msgstr "Ĉu %s konas vin?"
 
-#: ../../mod/dfrn_request.php:790
+#: ../../mod/dfrn_request.php:808
 msgid "Add a personal note:"
 msgstr "Aldoni personan noton:"
 
-#: ../../mod/dfrn_request.php:792 ../../include/contact_selectors.php:76
+#: ../../mod/dfrn_request.php:810 ../../include/contact_selectors.php:76
 msgid "Friendica"
 msgstr "Friendica"
 
-#: ../../mod/dfrn_request.php:793
+#: ../../mod/dfrn_request.php:811
 msgid "StatusNet/Federated Social Web"
 msgstr "StatusNet/Federaciaj interkonaj retejoj"
 
-#: ../../mod/dfrn_request.php:794 ../../mod/settings.php:629
+#: ../../mod/dfrn_request.php:812 ../../mod/settings.php:636
 #: ../../include/contact_selectors.php:80
 msgid "Diaspora"
 msgstr "Diaspora"
 
-#: ../../mod/dfrn_request.php:795
+#: ../../mod/dfrn_request.php:813
 #, php-format
 msgid ""
 " - please do not use this form.  Instead, enter %s into your Diaspora search"
 " bar."
 msgstr " - bonvolu ne uzi ĉi formo.  Anstataŭe, entajpu %s en la Diaspora serĉilo."
 
-#: ../../mod/dfrn_request.php:796
+#: ../../mod/dfrn_request.php:814
 msgid "Your Identity Address:"
 msgstr "Via identeca adreso:"
 
-#: ../../mod/dfrn_request.php:799
+#: ../../mod/dfrn_request.php:817
 msgid "Submit Request"
 msgstr "Sendi peton"
 
@@ -1206,7 +1170,7 @@ msgid "is interested in:"
 msgstr "interesiĝas pri:"
 
 #: ../../mod/match.php:58 ../../mod/suggest.php:59
-#: ../../include/contact_widgets.php:9 ../../boot.php:1027
+#: ../../include/contact_widgets.php:9 ../../boot.php:1036
 msgid "Connect"
 msgstr "Konekti"
 
@@ -1237,8 +1201,8 @@ msgid "Discard"
 msgstr "Forviŝi"
 
 #: ../../mod/notifications.php:51 ../../mod/notifications.php:160
-#: ../../mod/notifications.php:206 ../../mod/contacts.php:308
-#: ../../mod/contacts.php:351
+#: ../../mod/notifications.php:206 ../../mod/contacts.php:296
+#: ../../mod/contacts.php:348
 msgid "Ignore"
 msgstr "Ignori"
 
@@ -1250,18 +1214,11 @@ msgstr "Sistemo"
 msgid "Network"
 msgstr "Reto"
 
-#: ../../mod/notifications.php:85 ../../mod/network.php:182
+#: ../../mod/notifications.php:85 ../../mod/network.php:184
 msgid "Personal"
 msgstr "Propra"
 
-#: ../../mod/notifications.php:90
-#: ../../view/theme/diabook/diabook-green/theme.php:229
-#: ../../view/theme/diabook/diabook-red/theme.php:227
-#: ../../view/theme/diabook/diabook-blue/theme.php:227
-#: ../../view/theme/diabook/theme.php:246
-#: ../../view/theme/diabook/diabook-dark/theme.php:229
-#: ../../view/theme/diabook/diabook-aerith/theme.php:229
-#: ../../view/theme/diabook/diabook-pink/theme.php:229
+#: ../../mod/notifications.php:90 ../../view/theme/diabook/theme.php:65
 #: ../../include/nav.php:77 ../../include/nav.php:115
 msgid "Home"
 msgstr "Hejmo"
@@ -1297,7 +1254,7 @@ msgid "suggested by %s"
 msgstr "sugestita de %s"
 
 #: ../../mod/notifications.php:153 ../../mod/notifications.php:200
-#: ../../mod/contacts.php:356
+#: ../../mod/contacts.php:354
 msgid "Hide this contact from others"
 msgstr "Kaŝi ĉi tiun kontakton al aliaj"
 
@@ -1310,7 +1267,7 @@ msgid "if applicable"
 msgstr "se aplikebla"
 
 #: ../../mod/notifications.php:157 ../../mod/notifications.php:204
-#: ../../mod/admin.php:575
+#: ../../mod/admin.php:640
 msgid "Approve"
 msgstr "Aprobi"
 
@@ -1447,218 +1404,275 @@ msgstr "Kontakto estas ignorita."
 msgid "Contact has been unignored"
 msgstr "Kontakto estas malignorita."
 
-#: ../../mod/contacts.php:200
-msgid "stopped following"
-msgstr "ne plu sekvas"
+#: ../../mod/contacts.php:195
+msgid "Contact has been archived"
+msgstr "Enarkivigis kontakton"
+
+#: ../../mod/contacts.php:195
+msgid "Contact has been unarchived"
+msgstr "Elarkivigis kontakton"
 
-#: ../../mod/contacts.php:221
+#: ../../mod/contacts.php:208
 msgid "Contact has been removed."
 msgstr "Kontakto estas forigita."
 
-#: ../../mod/contacts.php:251
+#: ../../mod/contacts.php:238
 #, php-format
 msgid "You are mutual friends with %s"
 msgstr "Vi estas reciproka amiko de %s"
 
-#: ../../mod/contacts.php:255
+#: ../../mod/contacts.php:242
 #, php-format
 msgid "You are sharing with %s"
 msgstr "Vi kunhavigas kun %s"
 
-#: ../../mod/contacts.php:260
+#: ../../mod/contacts.php:247
 #, php-format
 msgid "%s is sharing with you"
 msgstr "%s kunhavigas kun vi"
 
-#: ../../mod/contacts.php:277
+#: ../../mod/contacts.php:264
 msgid "Private communications are not available for this contact."
 msgstr "Privataj komunikadoj ne disponeblas por ĉi tiu kontakto."
 
-#: ../../mod/contacts.php:280
+#: ../../mod/contacts.php:267
 msgid "Never"
 msgstr "Neniam"
 
-#: ../../mod/contacts.php:284
+#: ../../mod/contacts.php:271
 msgid "(Update was successful)"
 msgstr "(Ĝisdatigo sukcesis.)"
 
-#: ../../mod/contacts.php:284
+#: ../../mod/contacts.php:271
 msgid "(Update was not successful)"
 msgstr "(Ĝisdatigo malsukcesis.)"
 
-#: ../../mod/contacts.php:286
+#: ../../mod/contacts.php:273
 msgid "Suggest friends"
 msgstr "Sugesti amikojn"
 
-#: ../../mod/contacts.php:290
+#: ../../mod/contacts.php:277
 #, php-format
 msgid "Network type: %s"
 msgstr "Reta tipo: %s"
 
-#: ../../mod/contacts.php:293
+#: ../../mod/contacts.php:280
 #, php-format
 msgid "%d contact in common"
 msgid_plural "%d contacts in common"
 msgstr[0] "%d komuna kontakto"
 msgstr[1] "%d komunaj kontaktoj"
 
-#: ../../mod/contacts.php:298
+#: ../../mod/contacts.php:285
 msgid "View all contacts"
 msgstr "Vidi ĉiujn kontaktojn"
 
-#: ../../mod/contacts.php:303 ../../mod/contacts.php:350
-#: ../../mod/admin.php:579
+#: ../../mod/contacts.php:290 ../../mod/contacts.php:347
+#: ../../mod/admin.php:644
 msgid "Unblock"
 msgstr "Malbloki"
 
-#: ../../mod/contacts.php:303 ../../mod/contacts.php:350
-#: ../../mod/admin.php:578
+#: ../../mod/contacts.php:290 ../../mod/contacts.php:347
+#: ../../mod/admin.php:643
 msgid "Block"
 msgstr "Bloki"
 
-#: ../../mod/contacts.php:308 ../../mod/contacts.php:351
+#: ../../mod/contacts.php:293
+msgid "Toggle Blocked status"
+msgstr "Ŝalti/malŝalti Blokitan staton"
+
+#: ../../mod/contacts.php:296 ../../mod/contacts.php:348
 msgid "Unignore"
 msgstr "Malignori"
 
-#: ../../mod/contacts.php:313
+#: ../../mod/contacts.php:299
+msgid "Toggle Ignored status"
+msgstr "Ŝalti/malŝalti Ignoritan staton"
+
+#: ../../mod/contacts.php:303
+msgid "Unarchive"
+msgstr "Elarkivigi"
+
+#: ../../mod/contacts.php:303
+msgid "Archive"
+msgstr "Enarkivigi"
+
+#: ../../mod/contacts.php:306
+msgid "Toggle Archive status"
+msgstr "Ŝalti/malŝalti Enarkivigitan staton"
+
+#: ../../mod/contacts.php:309
 msgid "Repair"
 msgstr "Ripari"
 
-#: ../../mod/contacts.php:323
+#: ../../mod/contacts.php:312
+msgid "Advanced Contact Settings"
+msgstr "Specialaj Kontaktagordoj"
+
+#: ../../mod/contacts.php:320
 msgid "Contact Editor"
 msgstr "Kontakta redaktilo."
 
-#: ../../mod/contacts.php:326
+#: ../../mod/contacts.php:323
 msgid "Profile Visibility"
 msgstr "Videbleco de profilo"
 
-#: ../../mod/contacts.php:327
+#: ../../mod/contacts.php:324
 #, php-format
 msgid ""
 "Please choose the profile you would like to display to %s when viewing your "
 "profile securely."
 msgstr "Bonvolu elekti la profilon kiu vi volas montri al %s aspektinde kiam sekure aspektante vian profilon."
 
-#: ../../mod/contacts.php:328
+#: ../../mod/contacts.php:325
 msgid "Contact Information / Notes"
 msgstr "Kontaktaj informoj / Notoj"
 
-#: ../../mod/contacts.php:329
+#: ../../mod/contacts.php:326
 msgid "Edit contact notes"
 msgstr "Redakti kontaktnotojn"
 
-#: ../../mod/contacts.php:334 ../../mod/contacts.php:507
+#: ../../mod/contacts.php:331 ../../mod/contacts.php:522
 #: ../../mod/viewcontacts.php:62 ../../mod/nogroup.php:40
 #, php-format
 msgid "Visit %s's profile [%s]"
 msgstr "Viziti la profilon de %s [%s]"
 
-#: ../../mod/contacts.php:335
+#: ../../mod/contacts.php:332
 msgid "Block/Unblock contact"
 msgstr "Bloki/Malbloki kontakton"
 
-#: ../../mod/contacts.php:336
+#: ../../mod/contacts.php:333
 msgid "Ignore contact"
 msgstr "Ignori kontakton"
 
-#: ../../mod/contacts.php:337
+#: ../../mod/contacts.php:334
 msgid "Repair URL settings"
 msgstr "Ripari URL agordoj"
 
-#: ../../mod/contacts.php:338
+#: ../../mod/contacts.php:335
 msgid "View conversations"
 msgstr "Vidi konversaciojn"
 
-#: ../../mod/contacts.php:340
+#: ../../mod/contacts.php:337
 msgid "Delete contact"
 msgstr "Forviŝi kontakton"
 
-#: ../../mod/contacts.php:344
+#: ../../mod/contacts.php:341
 msgid "Last update:"
 msgstr "Plej ĵusa ĝisdatigo:"
 
-#: ../../mod/contacts.php:345
+#: ../../mod/contacts.php:342
 msgid "Update public posts"
 msgstr "Ĝisdatigi publikajn afiŝojn"
 
-#: ../../mod/contacts.php:347 ../../mod/admin.php:1051
+#: ../../mod/contacts.php:344 ../../mod/admin.php:1115
 msgid "Update now"
 msgstr "Ĝisdatigi nun"
 
-#: ../../mod/contacts.php:354
+#: ../../mod/contacts.php:351
 msgid "Currently blocked"
 msgstr "Nuntempe blokata"
 
-#: ../../mod/contacts.php:355
+#: ../../mod/contacts.php:352
 msgid "Currently ignored"
 msgstr "Nuntempe ignorata"
 
-#: ../../mod/contacts.php:356
+#: ../../mod/contacts.php:353
+msgid "Currently archived"
+msgstr "Nuntempe enarkivigita"
+
+#: ../../mod/contacts.php:354
 msgid ""
 "Replies/likes to your public posts <strong>may</strong> still be visible"
 msgstr "Rispondoj/ŝataĵo al viaj publikaj afiŝoj <strong>eble</strong> plu estos videbla"
 
-#: ../../mod/contacts.php:405
+#: ../../mod/contacts.php:407
 msgid "Suggestions"
 msgstr "Sugestoj"
 
-#: ../../mod/contacts.php:410 ../../mod/group.php:191
+#: ../../mod/contacts.php:410
+msgid "Suggest potential friends"
+msgstr "Sugesti amikojn"
+
+#: ../../mod/contacts.php:413 ../../mod/group.php:191
 msgid "All Contacts"
 msgstr "Ĉiuj Kontaktoj"
 
-#: ../../mod/contacts.php:415
-msgid "Unblocked Contacts"
-msgstr "Malblokitaj Kontaktoj"
+#: ../../mod/contacts.php:416
+msgid "Show all contacts"
+msgstr "Montri ĉiujn kontaktojn"
+
+#: ../../mod/contacts.php:419
+msgid "Unblocked"
+msgstr "Malblokita"
 
-#: ../../mod/contacts.php:421
-msgid "Blocked Contacts"
-msgstr "Blokitaj Kontaktoj"
+#: ../../mod/contacts.php:422
+msgid "Only show unblocked contacts"
+msgstr "Nur montri neblokitajn kontaktojn"
 
-#: ../../mod/contacts.php:427
-msgid "Ignored Contacts"
-msgstr "Ignoritaj Kontaktoj"
+#: ../../mod/contacts.php:426
+msgid "Blocked"
+msgstr "Blokita"
+
+#: ../../mod/contacts.php:429
+msgid "Only show blocked contacts"
+msgstr "Nur montri blokitajn kontaktojn"
 
 #: ../../mod/contacts.php:433
-msgid "Hidden Contacts"
-msgstr "Kaŝitaj Kontaktoj"
+msgid "Ignored"
+msgstr "Ignorita"
+
+#: ../../mod/contacts.php:436
+msgid "Only show ignored contacts"
+msgstr "Nur montri ignoritajn kontaktojn"
+
+#: ../../mod/contacts.php:440
+msgid "Archived"
+msgstr "Enarkivigita"
+
+#: ../../mod/contacts.php:443
+msgid "Only show archived contacts"
+msgstr "Nur montri enarkivigitajn kontaktojn"
+
+#: ../../mod/contacts.php:447
+msgid "Hidden"
+msgstr "Kaŝita"
+
+#: ../../mod/contacts.php:450
+msgid "Only show hidden contacts"
+msgstr "Nur montri kaŝitajn kontaktojn"
 
-#: ../../mod/contacts.php:483
+#: ../../mod/contacts.php:498
 msgid "Mutual Friendship"
 msgstr "Reciproka amikeco"
 
-#: ../../mod/contacts.php:487
+#: ../../mod/contacts.php:502
 msgid "is a fan of yours"
 msgstr "estas admiranto de vi"
 
-#: ../../mod/contacts.php:491
+#: ../../mod/contacts.php:506
 msgid "you are a fan of"
 msgstr "vi estas admiranto de"
 
-#: ../../mod/contacts.php:508 ../../mod/nogroup.php:41
+#: ../../mod/contacts.php:523 ../../mod/nogroup.php:41
 msgid "Edit contact"
 msgstr "Redakti kontakton"
 
-#: ../../mod/contacts.php:529
-#: ../../view/theme/diabook/diabook-green/theme.php:231
-#: ../../view/theme/diabook/diabook-red/theme.php:229
-#: ../../view/theme/diabook/diabook-blue/theme.php:229
-#: ../../view/theme/diabook/theme.php:248
-#: ../../view/theme/diabook/diabook-dark/theme.php:231
-#: ../../view/theme/diabook/diabook-aerith/theme.php:231
-#: ../../view/theme/diabook/diabook-pink/theme.php:231
+#: ../../mod/contacts.php:544 ../../view/theme/diabook/theme.php:67
 #: ../../include/nav.php:139
 msgid "Contacts"
 msgstr "Kontaktoj"
 
-#: ../../mod/contacts.php:533
+#: ../../mod/contacts.php:548
 msgid "Search your contacts"
 msgstr "Serĉi viajn kontaktojn"
 
-#: ../../mod/contacts.php:534 ../../mod/directory.php:57
+#: ../../mod/contacts.php:549 ../../mod/directory.php:57
 msgid "Finding: "
 msgstr "Trovata:"
 
-#: ../../mod/contacts.php:535 ../../mod/directory.php:59
+#: ../../mod/contacts.php:550 ../../mod/directory.php:59
 #: ../../include/contact_widgets.php:33
 msgid "Find"
 msgstr "Trovi"
@@ -1678,10 +1692,11 @@ msgstr "Pasvorta riparado petita je %s"
 
 #: ../../mod/lostpass.php:45 ../../mod/lostpass.php:107
 #: ../../mod/register.php:388 ../../mod/register.php:442
-#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:732
-#: ../../addon/facebook/facebook.php:650
-#: ../../addon/facebook/facebook.php:1139
-#: ../../addon/testdrive/testdrive.php:58 ../../include/items.php:2700
+#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:742
+#: ../../addon/facebook/facebook.php:658
+#: ../../addon/facebook/facebook.php:1148
+#: ../../addon/testdrive/testdrive.php:58 ../../include/items.php:2716
+#: ../../boot.php:686
 msgid "Administrator"
 msgstr "Administranto"
 
@@ -1691,7 +1706,7 @@ msgid ""
 "Password reset failed."
 msgstr "Ne povis konfirmi la peton. (Eble vi sendis ĝin antaŭ.) Pasvorta riparado malsukcesis."
 
-#: ../../mod/lostpass.php:83 ../../boot.php:809
+#: ../../mod/lostpass.php:83 ../../boot.php:818
 msgid "Password Reset"
 msgstr "Pasvorta riparado"
 
@@ -1759,468 +1774,475 @@ msgstr "Konektitaj programoj"
 msgid "Export personal data"
 msgstr "Eksporto"
 
-#: ../../mod/settings.php:83 ../../mod/admin.php:665 ../../mod/admin.php:870
+#: ../../mod/settings.php:80
+msgid "Remove account"
+msgstr "Forigi konton"
+
+#: ../../mod/settings.php:88 ../../mod/admin.php:730 ../../mod/admin.php:935
 #: ../../addon/mathjax/mathjax.php:36 ../../include/nav.php:137
 msgid "Settings"
 msgstr "Agordoj"
 
-#: ../../mod/settings.php:126
+#: ../../mod/settings.php:131
 msgid "Missing some important data!"
 msgstr "Mankas importantaj datumoj!"
 
-#: ../../mod/settings.php:129 ../../mod/settings.php:558
-#: ../../mod/admin.php:97
+#: ../../mod/settings.php:134 ../../mod/settings.php:565
 msgid "Update"
 msgstr "Ĝisdatigi"
 
-#: ../../mod/settings.php:234
+#: ../../mod/settings.php:239
 msgid "Failed to connect with email account using the settings provided."
 msgstr "Ne sukcesis konekti al retpoŝtkonto kun la provizitaj agordoj."
 
-#: ../../mod/settings.php:239
+#: ../../mod/settings.php:244
 msgid "Email settings updated."
 msgstr "Retpoŝtagordoj ĝisdatigita"
 
-#: ../../mod/settings.php:298
+#: ../../mod/settings.php:303
 msgid "Passwords do not match. Password unchanged."
 msgstr "La pasvortoj ne estas egala. Pasvorto ne ŝanĝita."
 
-#: ../../mod/settings.php:303
+#: ../../mod/settings.php:308
 msgid "Empty passwords are not allowed. Password unchanged."
 msgstr "Malplenaj pasvortoj ne estas permesita. Pasvorto ne ŝanĝita."
 
-#: ../../mod/settings.php:314
+#: ../../mod/settings.php:319
 msgid "Password changed."
 msgstr "Pasvorto ŝanĝita."
 
-#: ../../mod/settings.php:316
+#: ../../mod/settings.php:321
 msgid "Password update failed. Please try again."
 msgstr "Ĝisdatigo de pasvorto malsukcesis. Bonvolu provi refoje."
 
-#: ../../mod/settings.php:379
+#: ../../mod/settings.php:385
 msgid " Please use a shorter name."
 msgstr " Bonvolu uzi pli mallongan nomon."
 
-#: ../../mod/settings.php:381
+#: ../../mod/settings.php:387
 msgid " Name too short."
 msgstr " Nomo estas tro mallonga."
 
-#: ../../mod/settings.php:387
+#: ../../mod/settings.php:393
 msgid " Not valid email."
 msgstr " Repoŝtadreso ne validas."
 
-#: ../../mod/settings.php:389
+#: ../../mod/settings.php:395
 msgid " Cannot change to that email."
 msgstr " Ne povas ŝanĝi al tio retpoŝtadreso."
 
-#: ../../mod/settings.php:461 ../../addon/facebook/facebook.php:469
-#: ../../addon/impressum/impressum.php:75
+#: ../../mod/settings.php:468 ../../addon/facebook/facebook.php:470
+#: ../../addon/impressum/impressum.php:77
 #: ../../addon/openstreetmap/openstreetmap.php:80
 #: ../../addon/mathjax/mathjax.php:66 ../../addon/piwik/piwik.php:105
 #: ../../addon/twitter/twitter.php:370
 msgid "Settings updated."
 msgstr "Agordoj ĝisdatigita."
 
-#: ../../mod/settings.php:531 ../../mod/settings.php:557
-#: ../../mod/settings.php:593
+#: ../../mod/settings.php:538 ../../mod/settings.php:564
+#: ../../mod/settings.php:600
 msgid "Add application"
 msgstr "Aldoni programon"
 
-#: ../../mod/settings.php:535 ../../mod/settings.php:561
+#: ../../mod/settings.php:542 ../../mod/settings.php:568
 #: ../../addon/statusnet/statusnet.php:547
 msgid "Consumer Key"
 msgstr "Ŝlosilo de kliento"
 
-#: ../../mod/settings.php:536 ../../mod/settings.php:562
+#: ../../mod/settings.php:543 ../../mod/settings.php:569
 #: ../../addon/statusnet/statusnet.php:546
 msgid "Consumer Secret"
 msgstr "Sekreto de kliento"
 
-#: ../../mod/settings.php:537 ../../mod/settings.php:563
+#: ../../mod/settings.php:544 ../../mod/settings.php:570
 msgid "Redirect"
 msgstr "Alidirekto"
 
-#: ../../mod/settings.php:538 ../../mod/settings.php:564
+#: ../../mod/settings.php:545 ../../mod/settings.php:571
 msgid "Icon url"
 msgstr "Piktograma adreso"
 
-#: ../../mod/settings.php:549
+#: ../../mod/settings.php:556
 msgid "You can't edit this application."
 msgstr "Ĉi tio programo ne estas redaktebla."
 
-#: ../../mod/settings.php:592
+#: ../../mod/settings.php:599
 msgid "Connected Apps"
 msgstr "Konektitaj Programoj"
 
-#: ../../mod/settings.php:596
+#: ../../mod/settings.php:603
 msgid "Client key starts with"
 msgstr "Ŝlosilo de kliento komencas kun"
 
-#: ../../mod/settings.php:597
+#: ../../mod/settings.php:604
 msgid "No name"
 msgstr "Neniu nomo"
 
-#: ../../mod/settings.php:598
+#: ../../mod/settings.php:605
 msgid "Remove authorization"
 msgstr "Forviŝi rajtigon"
 
-#: ../../mod/settings.php:609
+#: ../../mod/settings.php:616
 msgid "No Plugin settings configured"
 msgstr "Neniom da kromprogramoagordoj farita"
 
-#: ../../mod/settings.php:617 ../../addon/widgets/widgets.php:123
+#: ../../mod/settings.php:624 ../../addon/widgets/widgets.php:123
 msgid "Plugin Settings"
 msgstr "Kromprogramoagordoj"
 
-#: ../../mod/settings.php:629 ../../mod/settings.php:630
+#: ../../mod/settings.php:636 ../../mod/settings.php:637
 #, php-format
 msgid "Built-in support for %s connectivity is %s"
 msgstr "Integrita subteno por %s koneto estas %s"
 
-#: ../../mod/settings.php:629 ../../mod/settings.php:630
+#: ../../mod/settings.php:636 ../../mod/settings.php:637
 msgid "enabled"
 msgstr "ŝaltita"
 
-#: ../../mod/settings.php:629 ../../mod/settings.php:630
+#: ../../mod/settings.php:636 ../../mod/settings.php:637
 msgid "disabled"
 msgstr "malŝaltita"
 
-#: ../../mod/settings.php:630
+#: ../../mod/settings.php:637
 msgid "StatusNet"
 msgstr "StatusNet"
 
-#: ../../mod/settings.php:660
+#: ../../mod/settings.php:667
 msgid "Connector Settings"
 msgstr "Konektiloagordoj"
 
-#: ../../mod/settings.php:665
+#: ../../mod/settings.php:672
 msgid "Email/Mailbox Setup"
 msgstr "Agordoj pri Retpoŝto"
 
-#: ../../mod/settings.php:666
+#: ../../mod/settings.php:673
 msgid ""
 "If you wish to communicate with email contacts using this service "
 "(optional), please specify how to connect to your mailbox."
 msgstr "Se vi volas uzi ĉi tiun servon por komuniki tra retpoŝto (nedeviga), bonvolu specifi kiel konekti al vian retpoŝtkonton."
 
-#: ../../mod/settings.php:667
+#: ../../mod/settings.php:674
 msgid "Last successful email check:"
 msgstr "Plej ĵusa sukcesa kontrolo de poŝto:"
 
-#: ../../mod/settings.php:668
+#: ../../mod/settings.php:675
 msgid "Email access is disabled on this site."
 msgstr "Retpoŝta atingo ne disponeblas ĉi tie."
 
-#: ../../mod/settings.php:669
+#: ../../mod/settings.php:676
 msgid "IMAP server name:"
 msgstr "Nomo de IMAP servilo:"
 
-#: ../../mod/settings.php:670
+#: ../../mod/settings.php:677
 msgid "IMAP port:"
 msgstr "Numero de IMAP pordo:"
 
-#: ../../mod/settings.php:671
+#: ../../mod/settings.php:678
 msgid "Security:"
 msgstr "Sekureco:"
 
-#: ../../mod/settings.php:671 ../../mod/settings.php:676
+#: ../../mod/settings.php:678 ../../mod/settings.php:683
 msgid "None"
 msgstr "Nenio"
 
-#: ../../mod/settings.php:672
+#: ../../mod/settings.php:679
 msgid "Email login name:"
 msgstr "Retpoŝta salutnomo:"
 
-#: ../../mod/settings.php:673
+#: ../../mod/settings.php:680
 msgid "Email password:"
 msgstr "Retpoŝta pasvorto:"
 
-#: ../../mod/settings.php:674
+#: ../../mod/settings.php:681
 msgid "Reply-to address:"
 msgstr "Responda adreso (Reply-to):"
 
-#: ../../mod/settings.php:675
+#: ../../mod/settings.php:682
 msgid "Send public posts to all email contacts:"
 msgstr "Sendu publikajn afiŝojn al ĉiuj retpoŝtkontaktoj:"
 
-#: ../../mod/settings.php:676
+#: ../../mod/settings.php:683
 msgid "Action after import:"
 msgstr "Ago post la importado:"
 
-#: ../../mod/settings.php:676
+#: ../../mod/settings.php:683
 msgid "Mark as seen"
 msgstr "Marki kiel legita"
 
-#: ../../mod/settings.php:676
+#: ../../mod/settings.php:683
 msgid "Move to folder"
 msgstr "Movi al dosierujo"
 
-#: ../../mod/settings.php:677
+#: ../../mod/settings.php:684
 msgid "Move to folder:"
 msgstr "Movi al dosierujo:"
 
-#: ../../mod/settings.php:737
+#: ../../mod/settings.php:744
 msgid "Display Settings"
 msgstr "Ekranagordoj"
 
-#: ../../mod/settings.php:743
+#: ../../mod/settings.php:750
 msgid "Display Theme:"
 msgstr "Vidiga etoso:"
 
-#: ../../mod/settings.php:744
+#: ../../mod/settings.php:751
 msgid "Update browser every xx seconds"
 msgstr "Ĝisdatigu retesplorilon ĉiu xxx sekundoj"
 
-#: ../../mod/settings.php:744
+#: ../../mod/settings.php:751
 msgid "Minimum of 10 seconds, no maximum"
 msgstr "Minimume 10 sekundoj, sen maksimumo"
 
-#: ../../mod/settings.php:745
+#: ../../mod/settings.php:752
 msgid "Number of items to display on the network page:"
 msgstr "Kvanto da elementoj kiuj estos montrata ĉe la reto paĝo."
 
-#: ../../mod/settings.php:745
+#: ../../mod/settings.php:752
 msgid "Maximum of 100 items"
 msgstr "Maksimume 100 eroj"
 
-#: ../../mod/settings.php:746
+#: ../../mod/settings.php:753
 msgid "Don't show emoticons"
 msgstr "Ne montru ridetulojn"
 
-#: ../../mod/settings.php:811 ../../mod/admin.php:173 ../../mod/admin.php:551
+#: ../../mod/settings.php:821 ../../mod/admin.php:180 ../../mod/admin.php:616
 msgid "Normal Account"
 msgstr "Normala konto"
 
-#: ../../mod/settings.php:812
+#: ../../mod/settings.php:822
 msgid "This account is a normal personal profile"
 msgstr "Tiu konto estas normala persona profilo"
 
-#: ../../mod/settings.php:815 ../../mod/admin.php:174 ../../mod/admin.php:552
+#: ../../mod/settings.php:825 ../../mod/admin.php:181 ../../mod/admin.php:617
 msgid "Soapbox Account"
 msgstr "Soapbox Konto"
 
-#: ../../mod/settings.php:816
+#: ../../mod/settings.php:826
 msgid "Automatically approve all connection/friend requests as read-only fans"
 msgstr "Aŭtomate konfirmi ĉiujn kontaktpetojn kiel nurlegaj admirantoj"
 
-#: ../../mod/settings.php:819 ../../mod/admin.php:175 ../../mod/admin.php:553
+#: ../../mod/settings.php:829 ../../mod/admin.php:182 ../../mod/admin.php:618
 msgid "Community/Celebrity Account"
 msgstr "Komunuma/eminentula Konto"
 
-#: ../../mod/settings.php:820
+#: ../../mod/settings.php:830
 msgid ""
 "Automatically approve all connection/friend requests as read-write fans"
 msgstr "Aŭtomate konfirmi ĉiujn kontaktpetojn kiel admirantoj kapable legi kaj skribi"
 
-#: ../../mod/settings.php:823 ../../mod/admin.php:176 ../../mod/admin.php:554
+#: ../../mod/settings.php:833 ../../mod/admin.php:183 ../../mod/admin.php:619
 msgid "Automatic Friend Account"
 msgstr "Aŭtomata Amika Konto"
 
-#: ../../mod/settings.php:824
+#: ../../mod/settings.php:834
 msgid "Automatically approve all connection/friend requests as friends"
 msgstr "Aŭtomate konfirmi ĉiujn kontaktpetojn kiel amikoj"
 
-#: ../../mod/settings.php:834
+#: ../../mod/settings.php:844
 msgid "OpenID:"
 msgstr "OpenID:"
 
-#: ../../mod/settings.php:834
+#: ../../mod/settings.php:844
 msgid "(Optional) Allow this OpenID to login to this account."
 msgstr "(Nedeviga) Permesi atingon al la konton al ĉi tio OpenID."
 
-#: ../../mod/settings.php:844
+#: ../../mod/settings.php:854
 msgid "Publish your default profile in your local site directory?"
 msgstr "Publikigi vian defaŭltan profilon en la loka reteja katalogo?"
 
-#: ../../mod/settings.php:850
+#: ../../mod/settings.php:860
 msgid "Publish your default profile in the global social directory?"
 msgstr "Publikigi vian defaŭltan profilon en la tutmonda interkona katalogo?"
 
-#: ../../mod/settings.php:858
+#: ../../mod/settings.php:868
 msgid "Hide your contact/friend list from viewers of your default profile?"
 msgstr "Kaŝi vian liston de kontaktoj/amiko al spektantoj de via defaŭlta profilo?"
 
-#: ../../mod/settings.php:862
+#: ../../mod/settings.php:872
 msgid "Hide your profile details from unknown viewers?"
 msgstr "Kaŝi viajn profilajn detalojn al nekonataj spektantoj?"
 
-#: ../../mod/settings.php:867
+#: ../../mod/settings.php:877
 msgid "Allow friends to post to your profile page?"
 msgstr "Ĉu amikoj povu afiŝi al via profilo?"
 
-#: ../../mod/settings.php:873
+#: ../../mod/settings.php:883
 msgid "Allow friends to tag your posts?"
 msgstr "Ĉu amikoj povu aldoni markojn al viaj afiŝoj?"
 
-#: ../../mod/settings.php:879
+#: ../../mod/settings.php:889
 msgid "Allow us to suggest you as a potential friend to new members?"
 msgstr "Ĉu ni povu sugesti vin kiel amiko al novaj membroj?"
 
-#: ../../mod/settings.php:885
+#: ../../mod/settings.php:895
 msgid "Permit unknown people to send you private mail?"
 msgstr "Permesigi nekonatulojn sendi retpoŝton al vi?"
 
-#: ../../mod/settings.php:896
+#: ../../mod/settings.php:906
 msgid "Profile is <strong>not published</strong>."
 msgstr "Profilo <strong>ne estas publika</strong>."
 
-#: ../../mod/settings.php:902 ../../mod/profile_photo.php:211
+#: ../../mod/settings.php:912 ../../mod/profile_photo.php:211
 msgid "or"
 msgstr "aŭ"
 
-#: ../../mod/settings.php:907
+#: ../../mod/settings.php:917
 msgid "Your Identity Address is"
 msgstr "Via identeca adreso estas"
 
-#: ../../mod/settings.php:918
+#: ../../mod/settings.php:928
 msgid "Automatically expire posts after this many days:"
 msgstr "Automatike senvalidigi afiŝojn post tiom da tagoj:"
 
-#: ../../mod/settings.php:918
+#: ../../mod/settings.php:928
 msgid "If empty, posts will not expire. Expired posts will be deleted"
 msgstr "Se malplena, afiŝoj neniam senvalidiĝos. Senvalidigitajn afiŝon estos forviŝata"
 
-#: ../../mod/settings.php:919
+#: ../../mod/settings.php:929
 msgid "Advanced expiration settings"
 msgstr "Detalaj agordoj rilate al senvalidiĝo"
 
-#: ../../mod/settings.php:920
+#: ../../mod/settings.php:930
 msgid "Advanced Expiration"
 msgstr "Detala senvalidiĝo"
 
-#: ../../mod/settings.php:921
+#: ../../mod/settings.php:931
 msgid "Expire posts:"
 msgstr "Senvalidigi afiŝojn:"
 
-#: ../../mod/settings.php:922
+#: ../../mod/settings.php:932
 msgid "Expire personal notes:"
 msgstr "Senvalidigi personajn notojn:"
 
-#: ../../mod/settings.php:923
+#: ../../mod/settings.php:933
 msgid "Expire starred posts:"
 msgstr "Senvalidigi steligitajn afiŝojn:"
 
-#: ../../mod/settings.php:924
+#: ../../mod/settings.php:934
 msgid "Expire photos:"
 msgstr "Senvalidigi bildojn:"
 
-#: ../../mod/settings.php:928
+#: ../../mod/settings.php:938
 msgid "Account Settings"
 msgstr "Kontoagordoj"
 
-#: ../../mod/settings.php:937
+#: ../../mod/settings.php:947
 msgid "Password Settings"
 msgstr "Agordoj pri Pasvorto"
 
-#: ../../mod/settings.php:938
+#: ../../mod/settings.php:948
 msgid "New Password:"
 msgstr "Nova pasvorto:"
 
-#: ../../mod/settings.php:939
+#: ../../mod/settings.php:949
 msgid "Confirm:"
 msgstr "Konfirmi:"
 
-#: ../../mod/settings.php:939
+#: ../../mod/settings.php:949
 msgid "Leave password fields blank unless changing"
 msgstr "Lasu pasvortkampojn malplenaj se vi ne ŝanĝas la pasvorton."
 
-#: ../../mod/settings.php:943
+#: ../../mod/settings.php:953
 msgid "Basic Settings"
 msgstr "Bazaj Agordoj"
 
-#: ../../mod/settings.php:944 ../../include/profile_advanced.php:15
+#: ../../mod/settings.php:954 ../../include/profile_advanced.php:15
 msgid "Full Name:"
 msgstr "Plena Nomo:"
 
-#: ../../mod/settings.php:945
+#: ../../mod/settings.php:955
 msgid "Email Address:"
 msgstr "Retpoŝtadreso:"
 
-#: ../../mod/settings.php:946
+#: ../../mod/settings.php:956
 msgid "Your Timezone:"
 msgstr "Via Horzono:"
 
-#: ../../mod/settings.php:947
+#: ../../mod/settings.php:957
 msgid "Default Post Location:"
 msgstr "Defaŭlta Loko por Afiŝoj:"
 
-#: ../../mod/settings.php:948
+#: ../../mod/settings.php:958
 msgid "Use Browser Location:"
 msgstr "Uzu Lokon laŭ Retesplorilo:"
 
-#: ../../mod/settings.php:951
+#: ../../mod/settings.php:961
 msgid "Security and Privacy Settings"
 msgstr "Agordoj pri Sekureco kaj Privateco"
 
-#: ../../mod/settings.php:953
+#: ../../mod/settings.php:963
 msgid "Maximum Friend Requests/Day:"
 msgstr "Taga maksimumo da kontaktpetoj:"
 
-#: ../../mod/settings.php:953 ../../mod/settings.php:968
+#: ../../mod/settings.php:963 ../../mod/settings.php:978
 msgid "(to prevent spam abuse)"
 msgstr "(por malhelpi spamaĵojn)"
 
-#: ../../mod/settings.php:954
+#: ../../mod/settings.php:964
 msgid "Default Post Permissions"
 msgstr "Defaŭltaj permesoj por afiŝoj"
 
-#: ../../mod/settings.php:955
+#: ../../mod/settings.php:965
 msgid "(click to open/close)"
 msgstr "(klaku por malfermi/fermi)"
 
-#: ../../mod/settings.php:968
+#: ../../mod/settings.php:978
 msgid "Maximum private messages per day from unknown people:"
 msgstr "Taga maksimumo da privataj mesaĝoj."
 
-#: ../../mod/settings.php:971
+#: ../../mod/settings.php:981
 msgid "Notification Settings"
 msgstr "Agordoj pri Atentigoj"
 
-#: ../../mod/settings.php:972
+#: ../../mod/settings.php:982
 msgid "By default post a status message when:"
 msgstr "Defaŭlte afiŝi statmesaĝon okaze de:"
 
-#: ../../mod/settings.php:973
+#: ../../mod/settings.php:983
 msgid "accepting a friend request"
 msgstr "akcepti kontaktpeton"
 
-#: ../../mod/settings.php:974
+#: ../../mod/settings.php:984
+msgid "joining a forum/community"
+msgstr "aliĝi forumon/komunumon"
+
+#: ../../mod/settings.php:985
 msgid "making an <em>interesting</em> profile change"
 msgstr "fari <em>interesan</em> profilŝanĝon"
 
-#: ../../mod/settings.php:975
+#: ../../mod/settings.php:986
 msgid "Send a notification email when:"
 msgstr "Sendu atentiga repoŝton se:"
 
-#: ../../mod/settings.php:976
+#: ../../mod/settings.php:987
 msgid "You receive an introduction"
 msgstr "Vi ricevas inviton"
 
-#: ../../mod/settings.php:977
+#: ../../mod/settings.php:988
 msgid "Your introductions are confirmed"
 msgstr "Viaj prezentoj estas konfirmata."
 
-#: ../../mod/settings.php:978
+#: ../../mod/settings.php:989
 msgid "Someone writes on your profile wall"
 msgstr "Iu skribas je via profila muro."
 
-#: ../../mod/settings.php:979
+#: ../../mod/settings.php:990
 msgid "Someone writes a followup comment"
 msgstr "Iu skribas sekvan komenton"
 
-#: ../../mod/settings.php:980
+#: ../../mod/settings.php:991
 msgid "You receive a private message"
 msgstr "Vi ricevas privatan mesaĝon."
 
-#: ../../mod/settings.php:981
+#: ../../mod/settings.php:992
 msgid "You receive a friend suggestion"
 msgstr "Vi ricevas amikosugeston"
 
-#: ../../mod/settings.php:982
+#: ../../mod/settings.php:993
 msgid "You are tagged in a post"
 msgstr "Vi estas markita en afiŝon"
 
-#: ../../mod/settings.php:985
+#: ../../mod/settings.php:996
 msgid "Advanced Page Settings"
 msgstr "Specialaj agordoj pri paĝoj"
 
@@ -2258,23 +2280,47 @@ msgstr "aldoni"
 msgid "Commented Order"
 msgstr "Komenta Ordo"
 
-#: ../../mod/network.php:176
+#: ../../mod/network.php:174
+msgid "Sort by Comment Date"
+msgstr "Ordigi laŭ Dato de Komento"
+
+#: ../../mod/network.php:177
 msgid "Posted Order"
 msgstr "Afiŝita Ordo"
 
+#: ../../mod/network.php:180
+msgid "Sort by Post Date"
+msgstr "Ordigi laŭ Dato de Afiŝado"
+
 #: ../../mod/network.php:187
+msgid "Posts that mention or involve you"
+msgstr "Afiŝoj menciantaj vin aŭ pri vi"
+
+#: ../../mod/network.php:190
 msgid "New"
 msgstr "Nova"
 
-#: ../../mod/network.php:192
+#: ../../mod/network.php:193
+msgid "Activity Stream - by date"
+msgstr "Fluo de Aktiveco - laŭ dato"
+
+#: ../../mod/network.php:196
 msgid "Starred"
 msgstr "Steligita"
 
-#: ../../mod/network.php:197
+#: ../../mod/network.php:199
+msgid "Favourite Posts"
+msgstr "Favorigitaj Afiŝoj"
+
+#: ../../mod/network.php:202
 msgid "Shared Links"
 msgstr "Kunhavigitaj Ligiloj"
 
-#: ../../mod/network.php:274
+#: ../../mod/network.php:205
+msgid "Interesting Links"
+msgstr "Interesaj Ligiloj"
+
+#: ../../mod/network.php:281
 #, php-format
 msgid "Warning: This group contains %s member from an insecure network."
 msgid_plural ""
@@ -2282,40 +2328,40 @@ msgid_plural ""
 msgstr[0] "Averto: La grupo enhavas %s membron el nesekuraj retejoj."
 msgstr[1] "Averto: La grupo enhavas %s membrojn el nesekuraj retejoj."
 
-#: ../../mod/network.php:277
+#: ../../mod/network.php:284
 msgid "Private messages to this group are at risk of public disclosure."
 msgstr "La privateco de privataj mesaĝoj al ĉi tiu grupo ne ĉiam estas garantita."
 
-#: ../../mod/network.php:322
+#: ../../mod/network.php:329
 msgid "No such group"
 msgstr "Grupo ne estas trovita"
 
-#: ../../mod/network.php:333
+#: ../../mod/network.php:340
 msgid "Group is empty"
 msgstr "Grupo estas malplena"
 
-#: ../../mod/network.php:337
+#: ../../mod/network.php:344
 msgid "Group: "
 msgstr "Grupo:"
 
-#: ../../mod/network.php:347
+#: ../../mod/network.php:354
 msgid "Contact: "
 msgstr "Kontakto:"
 
-#: ../../mod/network.php:349
+#: ../../mod/network.php:356
 msgid "Private messages to this person are at risk of public disclosure."
 msgstr "La privateco de privataj mesaĝoj al ĉi tiu persono ne ĉiam estas garantita."
 
-#: ../../mod/network.php:354
+#: ../../mod/network.php:361
 msgid "Invalid contact."
 msgstr "Nevalida kontakto."
 
-#: ../../mod/notes.php:44 ../../boot.php:1476
+#: ../../mod/notes.php:44 ../../boot.php:1499
 msgid "Personal Notes"
 msgstr "Personaj Notoj"
 
 #: ../../mod/notes.php:63 ../../mod/filer.php:30
-#: ../../addon/facebook/facebook.php:717
+#: ../../addon/facebook/facebook.php:726
 #: ../../addon/privacy_image_cache/privacy_image_cache.php:147
 #: ../../include/text.php:652
 msgid "Save"
@@ -2351,7 +2397,7 @@ msgid "No recipient."
 msgstr "Neniom da ricevontoj."
 
 #: ../../mod/wallmessage.php:124 ../../mod/message.php:169
-#: ../../include/conversation.php:910
+#: ../../include/conversation.php:918
 msgid "Please enter a link URL:"
 msgstr "Bonvolu entajpu adreson de ligilo:"
 
@@ -2367,17 +2413,17 @@ msgid ""
 msgstr "Se vi deziras ke %s respondu, bonvolu kontroli ke la privatecaj agordoj je via retejo permesas privatajn mesaĝojn de nekonataj sendantoj."
 
 #: ../../mod/wallmessage.php:133 ../../mod/message.php:178
-#: ../../mod/message.php:347
+#: ../../mod/message.php:370
 msgid "To:"
 msgstr "Al:"
 
 #: ../../mod/wallmessage.php:134 ../../mod/message.php:179
-#: ../../mod/message.php:348
+#: ../../mod/message.php:371
 msgid "Subject:"
 msgstr "Temo:"
 
 #: ../../mod/wallmessage.php:140 ../../mod/message.php:183
-#: ../../mod/message.php:351 ../../mod/invite.php:113
+#: ../../mod/message.php:374 ../../mod/invite.php:113
 msgid "Your message:"
 msgstr "Via mesaĝo:"
 
@@ -2519,7 +2565,7 @@ msgstr "Grupo ne estas trovita."
 msgid "Group name changed."
 msgstr "La nomo de la grupo estas ŝanĝita."
 
-#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:308
+#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:305
 msgid "Permission denied"
 msgstr "Malpermesita"
 
@@ -2559,16 +2605,9 @@ msgstr "Nevaliada profila identigilo."
 msgid "Profile Visibility Editor"
 msgstr "Redaktilo por profila videbleco."
 
-#: ../../mod/profperm.php:103
-#: ../../view/theme/diabook/diabook-green/theme.php:230
-#: ../../view/theme/diabook/diabook-red/theme.php:228
-#: ../../view/theme/diabook/diabook-blue/theme.php:228
-#: ../../view/theme/diabook/theme.php:247
-#: ../../view/theme/diabook/diabook-dark/theme.php:230
-#: ../../view/theme/diabook/diabook-aerith/theme.php:230
-#: ../../view/theme/diabook/diabook-pink/theme.php:230
+#: ../../mod/profperm.php:103 ../../view/theme/diabook/theme.php:66
 #: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:74
-#: ../../include/nav.php:50 ../../boot.php:1458
+#: ../../include/nav.php:50 ../../boot.php:1478
 msgid "Profile"
 msgstr "Profilo"
 
@@ -2717,7 +2756,7 @@ msgstr "Membriĝi ĉi tie nur eblas laŭ invito."
 msgid "Your invitation ID: "
 msgstr "Via invita idento: "
 
-#: ../../mod/register.php:553 ../../mod/admin.php:393
+#: ../../mod/register.php:553 ../../mod/admin.php:401
 msgid "Registration"
 msgstr "Registrado"
 
@@ -2740,7 +2779,7 @@ msgstr "Elektu kaŝnomon por la profilo. Tiu bezonas komenci kun teksta litero.
 msgid "Choose a nickname: "
 msgstr "Elektu kaŝnomon: "
 
-#: ../../mod/register.php:567 ../../include/nav.php:81 ../../boot.php:775
+#: ../../mod/register.php:567 ../../include/nav.php:81 ../../boot.php:784
 msgid "Register"
 msgstr "Registri"
 
@@ -2749,39 +2788,20 @@ msgid "People Search"
 msgstr "Serĉi Membrojn"
 
 #: ../../mod/like.php:127 ../../mod/tagger.php:70
-#: ../../addon/facebook/facebook.php:1533
+#: ../../addon/facebook/facebook.php:1542
 #: ../../addon/communityhome/communityhome.php:158
 #: ../../addon/communityhome/communityhome.php:167
-#: ../../view/theme/diabook/diabook-green/theme.php:83
-#: ../../view/theme/diabook/diabook-green/theme.php:92
-#: ../../view/theme/diabook/diabook-red/theme.php:82
-#: ../../view/theme/diabook/diabook-red/theme.php:91
-#: ../../view/theme/diabook/diabook-blue/theme.php:82
-#: ../../view/theme/diabook/diabook-blue/theme.php:91
-#: ../../view/theme/diabook/theme.php:97
-#: ../../view/theme/diabook/theme.php:106
-#: ../../view/theme/diabook/diabook-dark/theme.php:83
-#: ../../view/theme/diabook/diabook-dark/theme.php:92
-#: ../../view/theme/diabook/diabook-aerith/theme.php:83
-#: ../../view/theme/diabook/diabook-aerith/theme.php:92
-#: ../../view/theme/diabook/diabook-pink/theme.php:83
-#: ../../view/theme/diabook/diabook-pink/theme.php:92
-#: ../../include/diaspora.php:1654 ../../include/conversation.php:48
-#: ../../include/conversation.php:57 ../../include/conversation.php:121
-#: ../../include/conversation.php:130
+#: ../../view/theme/diabook/theme.php:403
+#: ../../view/theme/diabook/theme.php:412 ../../include/diaspora.php:1654
+#: ../../include/conversation.php:48 ../../include/conversation.php:57
+#: ../../include/conversation.php:121 ../../include/conversation.php:130
 msgid "status"
 msgstr "staton"
 
-#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1537
+#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1546
 #: ../../addon/communityhome/communityhome.php:172
-#: ../../view/theme/diabook/diabook-green/theme.php:97
-#: ../../view/theme/diabook/diabook-red/theme.php:96
-#: ../../view/theme/diabook/diabook-blue/theme.php:96
-#: ../../view/theme/diabook/theme.php:111
-#: ../../view/theme/diabook/diabook-dark/theme.php:97
-#: ../../view/theme/diabook/diabook-aerith/theme.php:97
-#: ../../view/theme/diabook/diabook-pink/theme.php:97
-#: ../../include/diaspora.php:1670 ../../include/conversation.php:65
+#: ../../view/theme/diabook/theme.php:417 ../../include/diaspora.php:1670
+#: ../../include/conversation.php:65
 #, php-format
 msgid "%1$s likes %2$s's %3$s"
 msgstr "%1$s ŝatas la %3$s de %2$s"
@@ -2791,9 +2811,9 @@ msgstr "%1$s ŝatas la %3$s de %2$s"
 msgid "%1$s doesn't like %2$s's %3$s"
 msgstr "%1$s malŝatas la %3$s de %2$s"
 
-#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:149
-#: ../../mod/admin.php:614 ../../mod/admin.php:813 ../../mod/display.php:37
-#: ../../mod/display.php:142 ../../include/items.php:3083
+#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:156
+#: ../../mod/admin.php:679 ../../mod/admin.php:878 ../../mod/display.php:37
+#: ../../mod/display.php:142 ../../include/items.php:3099
 msgid "Item not found."
 msgstr "Elemento ne estas trovita."
 
@@ -2801,15 +2821,8 @@ msgstr "Elemento ne estas trovita."
 msgid "Access denied."
 msgstr "Atingo nepermesita."
 
-#: ../../mod/fbrowser.php:23
-#: ../../view/theme/diabook/diabook-green/theme.php:232
-#: ../../view/theme/diabook/diabook-red/theme.php:230
-#: ../../view/theme/diabook/diabook-blue/theme.php:230
-#: ../../view/theme/diabook/theme.php:249
-#: ../../view/theme/diabook/diabook-dark/theme.php:232
-#: ../../view/theme/diabook/diabook-aerith/theme.php:232
-#: ../../view/theme/diabook/diabook-pink/theme.php:232
-#: ../../include/nav.php:51 ../../boot.php:1463
+#: ../../mod/fbrowser.php:23 ../../view/theme/diabook/theme.php:68
+#: ../../include/nav.php:51 ../../boot.php:1484
 msgid "Photos"
 msgstr "Bildoj"
 
@@ -2844,29 +2857,29 @@ msgstr "Forviŝis malplenan afiŝon."
 msgid "Wall Photos"
 msgstr "Muraj Bildoj"
 
-#: ../../mod/item.php:762
+#: ../../mod/item.php:781
 msgid "System error. Post not saved."
 msgstr "Sistema eraro. Afiŝo ne registrita."
 
-#: ../../mod/item.php:787
+#: ../../mod/item.php:806
 #, php-format
 msgid ""
 "This message was sent to you by %s, a member of the Friendica social "
 "network."
 msgstr "Ĉi mesaĝo estas sendita al vi de %s, membro de la Friendica interkona reto."
 
-#: ../../mod/item.php:789
+#: ../../mod/item.php:808
 #, php-format
 msgid "You may visit them online at %s"
 msgstr "Vi povas viziti ilin rete ĉe %s"
 
-#: ../../mod/item.php:790
+#: ../../mod/item.php:809
 msgid ""
 "Please contact the sender by replying to this post if you do not wish to "
 "receive these messages."
 msgstr "Bonvolu rispondi al ĉi mesaĝo kaj kontaktu la sendinto se vi ne volas ricevi tiujn mesaĝojn."
 
-#: ../../mod/item.php:792
+#: ../../mod/item.php:811
 #, php-format
 msgid "%s posted an update."
 msgstr "%s publikigis afiŝon."
@@ -2985,7 +2998,7 @@ msgstr "Vi kaj %s"
 msgid "%s and You"
 msgstr "%s kaj vi"
 
-#: ../../mod/message.php:242 ../../mod/message.php:340
+#: ../../mod/message.php:242 ../../mod/message.php:363
 msgid "Delete conversation"
 msgstr "Forviŝi dialogon"
 
@@ -3004,17 +3017,17 @@ msgstr[1] "%d mesaĝoj"
 msgid "Message not available."
 msgstr "Mesaĝo nedisponebla."
 
-#: ../../mod/message.php:324
+#: ../../mod/message.php:347
 msgid "Delete message"
 msgstr "Forviŝu mesaĝon"
 
-#: ../../mod/message.php:342
+#: ../../mod/message.php:365
 msgid ""
 "No secure communications available. You <strong>may</strong> be able to "
 "respond from the sender's profile page."
 msgstr "Sekura komunikado ne disponeblas. Vi <strong>eble</strong> povus respondi sur la profilpaĝo de la sendanto."
 
-#: ../../mod/message.php:346
+#: ../../mod/message.php:369
 msgid "Send Reply"
 msgstr "Respondi"
 
@@ -3031,489 +3044,553 @@ msgstr "Neniom da amiko al montri."
 msgid "Theme settings updated."
 msgstr "Gisdatigis agordojn pri etosoj."
 
-#: ../../mod/admin.php:93 ../../mod/admin.php:391
+#: ../../mod/admin.php:96 ../../mod/admin.php:399
 msgid "Site"
 msgstr "Retejo"
 
-#: ../../mod/admin.php:94 ../../mod/admin.php:569 ../../mod/admin.php:581
+#: ../../mod/admin.php:97 ../../mod/admin.php:634 ../../mod/admin.php:646
 msgid "Users"
 msgstr "Uzantoj"
 
-#: ../../mod/admin.php:95 ../../mod/admin.php:663 ../../mod/admin.php:705
+#: ../../mod/admin.php:98 ../../mod/admin.php:728 ../../mod/admin.php:770
 msgid "Plugins"
 msgstr "Kromprogramoj"
 
-#: ../../mod/admin.php:96 ../../mod/admin.php:868 ../../mod/admin.php:904
+#: ../../mod/admin.php:99 ../../mod/admin.php:933 ../../mod/admin.php:969
 msgid "Themes"
 msgstr "Etosoj"
 
-#: ../../mod/admin.php:111 ../../mod/admin.php:992
+#: ../../mod/admin.php:100
+msgid "DB updates"
+msgstr "DB ĝisdatigoj"
+
+#: ../../mod/admin.php:101
+msgid "Software Update"
+msgstr "Friendica Ĝisdatigoj"
+
+#: ../../mod/admin.php:115 ../../mod/admin.php:1056
 msgid "Logs"
 msgstr "Protokoloj"
 
-#: ../../mod/admin.php:116
+#: ../../mod/admin.php:120
 msgid "User registrations waiting for confirmation"
 msgstr "Uzantaj registradoj atendante konfirmon"
 
-#: ../../mod/admin.php:188 ../../mod/admin.php:390 ../../mod/admin.php:568
-#: ../../mod/admin.php:662 ../../mod/admin.php:704 ../../mod/admin.php:867
-#: ../../mod/admin.php:903 ../../mod/admin.php:991
+#: ../../mod/admin.php:195 ../../mod/admin.php:398 ../../mod/admin.php:633
+#: ../../mod/admin.php:727 ../../mod/admin.php:769 ../../mod/admin.php:932
+#: ../../mod/admin.php:968 ../../mod/admin.php:1055
 msgid "Administration"
 msgstr "Administrado"
 
-#: ../../mod/admin.php:189
+#: ../../mod/admin.php:196
 msgid "Summary"
 msgstr "Resumo"
 
-#: ../../mod/admin.php:190
+#: ../../mod/admin.php:197
 msgid "Registered users"
 msgstr "Registrataj uzantoj"
 
-#: ../../mod/admin.php:192
+#: ../../mod/admin.php:199
 msgid "Pending registrations"
 msgstr "Okazontaj registradoj"
 
-#: ../../mod/admin.php:193
+#: ../../mod/admin.php:200
 msgid "Version"
 msgstr "Versio"
 
-#: ../../mod/admin.php:195
+#: ../../mod/admin.php:202
 msgid "Active plugins"
 msgstr "Ŝaltitaj kromprogramoj"
 
-#: ../../mod/admin.php:329
+#: ../../mod/admin.php:337
 msgid "Site settings updated."
 msgstr "Ĝisdatigis retejaj agordoj."
 
-#: ../../mod/admin.php:377
+#: ../../mod/admin.php:385
 msgid "Closed"
 msgstr "Ferma"
 
-#: ../../mod/admin.php:378
+#: ../../mod/admin.php:386
 msgid "Requires approval"
 msgstr "Bezonas aprobon"
 
-#: ../../mod/admin.php:379
+#: ../../mod/admin.php:387
 msgid "Open"
 msgstr "Malferma"
 
-#: ../../mod/admin.php:383
+#: ../../mod/admin.php:391
 msgid "No SSL policy, links will track page SSL state"
 msgstr "Sen SSL strategio. Ligiloj sekvos la SSL staton de la paĝo."
 
-#: ../../mod/admin.php:384
+#: ../../mod/admin.php:392
 msgid "Force all links to use SSL"
 msgstr "Devigi ke ĉiuj ligiloj uzu SSL."
 
-#: ../../mod/admin.php:385
+#: ../../mod/admin.php:393
 msgid "Self-signed certificate, use SSL for local links only (discouraged)"
 msgstr "Memsubskribita atestilo, nur uzu SSL por lokaj ligiloj (malkuraĝigata)"
 
-#: ../../mod/admin.php:394
+#: ../../mod/admin.php:402
 msgid "File upload"
 msgstr "Alŝuto"
 
-#: ../../mod/admin.php:395
+#: ../../mod/admin.php:403
 msgid "Policies"
 msgstr "Politiko"
 
-#: ../../mod/admin.php:396
+#: ../../mod/admin.php:404
 msgid "Advanced"
 msgstr "Altnivela"
 
-#: ../../mod/admin.php:400 ../../addon/statusnet/statusnet.php:544
+#: ../../mod/admin.php:408 ../../addon/statusnet/statusnet.php:544
 msgid "Site name"
 msgstr "Nomo de retejo"
 
-#: ../../mod/admin.php:401
+#: ../../mod/admin.php:409
 msgid "Banner/Logo"
 msgstr "Emblemo"
 
-#: ../../mod/admin.php:402
+#: ../../mod/admin.php:410
 msgid "System language"
 msgstr "Sistema lingvo"
 
-#: ../../mod/admin.php:403
+#: ../../mod/admin.php:411
 msgid "System theme"
 msgstr "Sistema etoso"
 
-#: ../../mod/admin.php:403
+#: ../../mod/admin.php:411
 msgid ""
 "Default system theme - may be over-ridden by user profiles - <a href='#' "
 "id='cnftheme'>change theme settings</a>"
 msgstr "Defaŭlta sistema etoso - transpasebla de uzantprofiloj -  <a href='#' id='cnftheme'>redakti agordoj pri etosoj</a>"
 
-#: ../../mod/admin.php:404
+#: ../../mod/admin.php:412
 msgid "SSL link policy"
 msgstr "Strategio por SSL ligiloj"
 
-#: ../../mod/admin.php:404
+#: ../../mod/admin.php:412
 msgid "Determines whether generated links should be forced to use SSL"
 msgstr "Difinas ĉu generotaj ligiloj devige uzu SSL."
 
-#: ../../mod/admin.php:405
+#: ../../mod/admin.php:413
 msgid "Maximum image size"
 msgstr "Maksimuma bildgrando"
 
-#: ../../mod/admin.php:405
+#: ../../mod/admin.php:413
 msgid ""
 "Maximum size in bytes of uploaded images. Default is 0, which means no "
 "limits."
 msgstr "Maksimuma grando en bajtoj por alŝutotaj bildoj. Defaŭlte 0, kio signifas neniu limito."
 
-#: ../../mod/admin.php:407
+#: ../../mod/admin.php:415
 msgid "Register policy"
 msgstr "Interkonsento pri registrado"
 
-#: ../../mod/admin.php:408
+#: ../../mod/admin.php:416
 msgid "Register text"
 msgstr "Interkonsento teksto"
 
-#: ../../mod/admin.php:408
+#: ../../mod/admin.php:416
 msgid "Will be displayed prominently on the registration page."
 msgstr "Tio estos eminente montrata en la registro paĝo."
 
-#: ../../mod/admin.php:409
+#: ../../mod/admin.php:417
 msgid "Accounts abandoned after x days"
 msgstr "Kontoj forlasitaj post x tagoj"
 
-#: ../../mod/admin.php:409
+#: ../../mod/admin.php:417
 msgid ""
 "Will not waste system resources polling external sites for abandonded "
 "accounts. Enter 0 for no time limit."
 msgstr "Mi ne malŝparu energion por enketi aliajn retejojn pri forlasitaj kontoj. Entajpu 0 por ne uzi templimo."
 
-#: ../../mod/admin.php:410
+#: ../../mod/admin.php:418
 msgid "Allowed friend domains"
 msgstr "Permesitaj amikaj domainoj"
 
-#: ../../mod/admin.php:410
+#: ../../mod/admin.php:418
 msgid ""
 "Comma separated list of domains which are allowed to establish friendships "
 "with this site. Wildcards are accepted. Empty to allow any domains"
 msgstr "Perkome disigita listo da domajnoj kiuj rajtas konstrui amikecojn kun ĉi tiu retejo. Ĵokeroj eblas. Malplena por rajtigi ĉiujn ajn domajnojn."
 
-#: ../../mod/admin.php:411
+#: ../../mod/admin.php:419
 msgid "Allowed email domains"
 msgstr "Permesitaj retpoŝtaj domajnoj"
 
-#: ../../mod/admin.php:411
+#: ../../mod/admin.php:419
 msgid ""
 "Comma separated list of domains which are allowed in email addresses for "
 "registrations to this site. Wildcards are accepted. Empty to allow any "
 "domains"
 msgstr "Perkome disigita listo da domajnoj kiuj uzeblas kiel retpoŝtaj adresoj en novaj registradoj. Ĵokeroj eblas. Malplena por rajtigi ĉiujn ajn domajnojn."
 
-#: ../../mod/admin.php:412
+#: ../../mod/admin.php:420
 msgid "Block public"
 msgstr "Bloki publike"
 
-#: ../../mod/admin.php:412
+#: ../../mod/admin.php:420
 msgid ""
 "Check to block public access to all otherwise public personal pages on this "
 "site unless you are currently logged in."
 msgstr "Elektu por bloki publikan atingon al ĉiuj alie publikajn paĝojn en ĉi tiu retejo kiam vi ne estas ensalutita."
 
-#: ../../mod/admin.php:413
+#: ../../mod/admin.php:421
 msgid "Force publish"
 msgstr "Devigi publikigon"
 
-#: ../../mod/admin.php:413
+#: ../../mod/admin.php:421
 msgid ""
 "Check to force all profiles on this site to be listed in the site directory."
 msgstr "Elektu por devigi la registradon en la loka katalogo al ĉiuj profiloj en ĉi tiu retejo."
 
-#: ../../mod/admin.php:414
+#: ../../mod/admin.php:422
 msgid "Global directory update URL"
 msgstr "Ĝenerala adreso por ĝisdatigi la katalogon"
 
-#: ../../mod/admin.php:414
+#: ../../mod/admin.php:422
 msgid ""
 "URL to update the global directory. If this is not set, the global directory"
 " is completely unavailable to the application."
 msgstr "URL adreso por ĝisdatigi la tutmondan katalogon. Se ne agordita, la tutmonda katatolge tute ne disponeblas al la programo."
 
-#: ../../mod/admin.php:416
+#: ../../mod/admin.php:424
 msgid "Block multiple registrations"
 msgstr "Bloki pluroblajn registradojn."
 
-#: ../../mod/admin.php:416
+#: ../../mod/admin.php:424
 msgid "Disallow users to register additional accounts for use as pages."
 msgstr "Malpermesi al uzantoj la permeson por registri pluajn kontojn kiel paĝoj."
 
-#: ../../mod/admin.php:417
+#: ../../mod/admin.php:425
 msgid "OpenID support"
 msgstr "Subteno por OpenID"
 
-#: ../../mod/admin.php:417
+#: ../../mod/admin.php:425
 msgid "OpenID support for registration and logins."
 msgstr "Subteni OpenID por registrado kaj ensaluto."
 
-#: ../../mod/admin.php:418
+#: ../../mod/admin.php:426
 msgid "Fullname check"
 msgstr "Kontroli plenan nomon"
 
-#: ../../mod/admin.php:418
+#: ../../mod/admin.php:426
 msgid ""
 "Force users to register with a space between firstname and lastname in Full "
 "name, as an antispam measure"
 msgstr "Kiel kontraŭspamilo, devigi uzantoj al registrado kun spaceto inter la persona nomo kaj la familia nomo."
 
-#: ../../mod/admin.php:419
+#: ../../mod/admin.php:427
 msgid "UTF-8 Regular expressions"
 msgstr "UTF-8 regulaj exprimoj"
 
-#: ../../mod/admin.php:419
+#: ../../mod/admin.php:427
 msgid "Use PHP UTF8 regular expressions"
 msgstr "Uzi PHP UTF8 regulajn esprimojn."
 
-#: ../../mod/admin.php:420
+#: ../../mod/admin.php:428
 msgid "Show Community Page"
 msgstr "Montri Komunuma Paĝo"
 
-#: ../../mod/admin.php:420
+#: ../../mod/admin.php:428
 msgid ""
 "Display a Community page showing all recent public postings on this site."
 msgstr "Montri komunuma paĝo kun ĉiuj ĵusaj afiŝoj en ĉi tiu retejo."
 
-#: ../../mod/admin.php:421
+#: ../../mod/admin.php:429
 msgid "Enable OStatus support"
 msgstr "Ŝalti subtenon por OStatus"
 
-#: ../../mod/admin.php:421
+#: ../../mod/admin.php:429
 msgid ""
 "Provide built-in OStatus (identi.ca, status.net, etc.) compatibility. All "
 "communications in OStatus are public, so privacy warnings will be "
 "occasionally displayed."
 msgstr "Provizi integritan OStatus (identi.ca, status.net ktp) subtenon. Ĉiuj komunikadoj en OStatus estas publikaj, do privatecaj avertoj aperos de tempo al tempo."
 
-#: ../../mod/admin.php:422
+#: ../../mod/admin.php:430
 msgid "Enable Diaspora support"
 msgstr "Ŝalti subtenon por Diaspora"
 
-#: ../../mod/admin.php:422
+#: ../../mod/admin.php:430
 msgid "Provide built-in Diaspora network compatibility."
 msgstr "Provizi integritan Diaspora subtenon."
 
-#: ../../mod/admin.php:423
+#: ../../mod/admin.php:431
 msgid "Only allow Friendica contacts"
 msgstr "Nur permesigi Friendica kontaktojn"
 
-#: ../../mod/admin.php:423
+#: ../../mod/admin.php:431
 msgid ""
 "All contacts must use Friendica protocols. All other built-in communication "
 "protocols disabled."
 msgstr "Ĉiuj kontaktoj devas uzi Friendica protokolojn. Ĉiuj aliaj komunikaj protokoloj malaktivita."
 
-#: ../../mod/admin.php:424
+#: ../../mod/admin.php:432
 msgid "Verify SSL"
 msgstr "Kontroli SSL"
 
-#: ../../mod/admin.php:424
+#: ../../mod/admin.php:432
 msgid ""
 "If you wish, you can turn on strict certificate checking. This will mean you"
 " cannot connect (at all) to self-signed SSL sites."
 msgstr "Se vi deziras, vi povas aktivigi severan kontroladon de SSL atestiloj. Pro tio, vie (tute) ne eblos konekti al SSL retejoj kun memsubskribitaj atestiloj."
 
-#: ../../mod/admin.php:425
+#: ../../mod/admin.php:433
 msgid "Proxy user"
 msgstr "Uzantnomo por retperanto"
 
-#: ../../mod/admin.php:426
+#: ../../mod/admin.php:434
 msgid "Proxy URL"
 msgstr "URL adreso de retperanto"
 
-#: ../../mod/admin.php:427
+#: ../../mod/admin.php:435
 msgid "Network timeout"
 msgstr "Reta tempolimo"
 
-#: ../../mod/admin.php:427
+#: ../../mod/admin.php:435
 msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
 msgstr "Valoro en sekundoj. Uzu 0 por mallimitigi (ne rekomendata)."
 
-#: ../../mod/admin.php:453
+#: ../../mod/admin.php:436
+msgid "Delivery interval"
+msgstr "Intervalo de liverado"
+
+#: ../../mod/admin.php:436
+msgid ""
+"Delay background delivery processes by this many seconds to reduce system "
+"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
+"for large dedicated servers."
+msgstr "Malfruigi fonan liveradon dum tiom da sekundoj por malpliigi la ŝargon de la sistemo. Rekomendoj: 4-5 por komunaj serviloj, 2-3 por virtualaj privataj serviloj, 0-1 por grandaj dediĉitaj serviloj."
+
+#: ../../mod/admin.php:451
+msgid "Update has been marked successful"
+msgstr "Ĝisdatigo estas markita sukcesa"
+
+#: ../../mod/admin.php:461
+#, php-format
+msgid "Executing %s failed. Check system logs."
+msgstr "Ne sukcesis plenumi %s. Kontrolu la sistemprotokolojn."
+
+#: ../../mod/admin.php:464
+#, php-format
+msgid "Update %s was successfully applied."
+msgstr "Sukcese aplikis la ĝisdatigo %s."
+
+#: ../../mod/admin.php:468
+#, php-format
+msgid "Update %s did not return a status. Unknown if it succeeded."
+msgstr "Ĝisdatigo %s ne liveris elirstaton. "
+
+#: ../../mod/admin.php:471
+#, php-format
+msgid "Update function %s could not be found."
+msgstr "Ne troveblas ĝisdatigo funkcio %s."
+
+#: ../../mod/admin.php:486
+msgid "No failed updates."
+msgstr "Neniom da malsukcesaj ĝisdatigoj."
+
+#: ../../mod/admin.php:490
+msgid "Failed Updates"
+msgstr "Malsukcesaj Ĝisdatigoj"
+
+#: ../../mod/admin.php:491
+msgid ""
+"This does not include updates prior to 1139, which did not return a status."
+msgstr "Ne inkluzivas ĝisdatigojn antaŭ 1139, kiuj ne liveris elirstaton."
+
+#: ../../mod/admin.php:492
+msgid "Mark success (if update was manually applied)"
+msgstr "Marki sukcesa (se la ĝisdatigo estas instalita mane)"
+
+#: ../../mod/admin.php:493
+msgid "Attempt to execute this update step automatically"
+msgstr "Provi automate plenumi ĉi tian paŝon de la ĝisdatigo."
+
+#: ../../mod/admin.php:518
 #, php-format
 msgid "%s user blocked/unblocked"
 msgid_plural "%s users blocked/unblocked"
 msgstr[0] "Blokis/malblokis %s uzanton"
 msgstr[1] "Blokis/malblokis %s uzantojn"
 
-#: ../../mod/admin.php:460
+#: ../../mod/admin.php:525
 #, php-format
 msgid "%s user deleted"
 msgid_plural "%s users deleted"
 msgstr[0] "%s uzanto forviŝita"
 msgstr[1] "%s uzanto forviŝitaj"
 
-#: ../../mod/admin.php:499
+#: ../../mod/admin.php:564
 #, php-format
 msgid "User '%s' deleted"
 msgstr "Uzanto '%s' forviŝita"
 
-#: ../../mod/admin.php:507
+#: ../../mod/admin.php:572
 #, php-format
 msgid "User '%s' unblocked"
 msgstr "Uzanto '%s' malblokita"
 
-#: ../../mod/admin.php:507
+#: ../../mod/admin.php:572
 #, php-format
 msgid "User '%s' blocked"
 msgstr "Uzanto '%s' blokita"
 
-#: ../../mod/admin.php:571
+#: ../../mod/admin.php:636
 msgid "select all"
 msgstr "elekti ĉiujn"
 
-#: ../../mod/admin.php:572
+#: ../../mod/admin.php:637
 msgid "User registrations waiting for confirm"
 msgstr "Registriĝoj atendante aprobon"
 
-#: ../../mod/admin.php:573
+#: ../../mod/admin.php:638
 msgid "Request date"
 msgstr "Dato de peto"
 
-#: ../../mod/admin.php:573 ../../mod/admin.php:582
+#: ../../mod/admin.php:638 ../../mod/admin.php:647
 #: ../../include/contact_selectors.php:79
 msgid "Email"
 msgstr "Retpoŝto"
 
-#: ../../mod/admin.php:574
+#: ../../mod/admin.php:639
 msgid "No registrations."
 msgstr "Neniom da registriĝoj."
 
-#: ../../mod/admin.php:576
+#: ../../mod/admin.php:641
 msgid "Deny"
 msgstr "Negi"
 
-#: ../../mod/admin.php:582
+#: ../../mod/admin.php:647
 msgid "Register date"
 msgstr "Dato de registrado"
 
-#: ../../mod/admin.php:582
+#: ../../mod/admin.php:647
 msgid "Last login"
 msgstr "Plej ĵusa ensaluto"
 
-#: ../../mod/admin.php:582
+#: ../../mod/admin.php:647
 msgid "Last item"
 msgstr "Plej ĵusa elemento"
 
-#: ../../mod/admin.php:582
+#: ../../mod/admin.php:647
 msgid "Account"
 msgstr "Konto"
 
-#: ../../mod/admin.php:584
+#: ../../mod/admin.php:649
 msgid ""
 "Selected users will be deleted!\\n\\nEverything these users had posted on "
 "this site will be permanently deleted!\\n\\nAre you sure?"
 msgstr "La elektitaj uzantkontoj estas forviŝotaj!\\n\\nĈiuj elementoj kiujn ili afiŝis je la retpaĝo estos permanente forviŝitaj.\\n\\nĈu vi certas?"
 
-#: ../../mod/admin.php:585
+#: ../../mod/admin.php:650
 msgid ""
 "The user {0} will be deleted!\\n\\nEverything this user has posted on this "
 "site will be permanently deleted!\\n\\nAre you sure?"
 msgstr "La uzanto {0} estas forviŝota!\\n\\nĈiuj elementoj kiujn li afiŝis je la retpaĝo estos permanente forviŝitaj.\\n\\nĈu vi certas?"
 
-#: ../../mod/admin.php:626
+#: ../../mod/admin.php:691
 #, php-format
 msgid "Plugin %s disabled."
 msgstr "Kromprogramo %s estas malŝaltita."
 
-#: ../../mod/admin.php:630
+#: ../../mod/admin.php:695
 #, php-format
 msgid "Plugin %s enabled."
 msgstr "Kromprogramo %s estas ŝaltita."
 
-#: ../../mod/admin.php:640 ../../mod/admin.php:838
+#: ../../mod/admin.php:705 ../../mod/admin.php:903
 msgid "Disable"
 msgstr "Malŝalti"
 
-#: ../../mod/admin.php:642 ../../mod/admin.php:840
+#: ../../mod/admin.php:707 ../../mod/admin.php:905
 msgid "Enable"
 msgstr "Ŝalti"
 
-#: ../../mod/admin.php:664 ../../mod/admin.php:869
+#: ../../mod/admin.php:729 ../../mod/admin.php:934
 msgid "Toggle"
 msgstr "Ŝalti/Malŝalti"
 
-#: ../../mod/admin.php:672 ../../mod/admin.php:879
+#: ../../mod/admin.php:737 ../../mod/admin.php:944
 msgid "Author: "
 msgstr "Aŭtoro: "
 
-#: ../../mod/admin.php:673 ../../mod/admin.php:880
+#: ../../mod/admin.php:738 ../../mod/admin.php:945
 msgid "Maintainer: "
 msgstr "Prizorganto: "
 
-#: ../../mod/admin.php:802
+#: ../../mod/admin.php:867
 msgid "No themes found."
 msgstr "Ne trovis etosojn."
 
-#: ../../mod/admin.php:861
+#: ../../mod/admin.php:926
 msgid "Screenshot"
 msgstr "Ekrankopio"
 
-#: ../../mod/admin.php:909
+#: ../../mod/admin.php:974
 msgid "[Experimental]"
 msgstr "[Eksperimenta]"
 
-#: ../../mod/admin.php:910
+#: ../../mod/admin.php:975
 msgid "[Unsupported]"
 msgstr "[Nesubtenata]"
 
-#: ../../mod/admin.php:937
+#: ../../mod/admin.php:1002
 msgid "Log settings updated."
 msgstr "Protokolagordoj ĝisdatigitaj."
 
-#: ../../mod/admin.php:994
+#: ../../mod/admin.php:1058
 msgid "Clear"
 msgstr "Forviŝi"
 
-#: ../../mod/admin.php:1000
+#: ../../mod/admin.php:1064
 msgid "Debugging"
 msgstr "Sencimigado"
 
-#: ../../mod/admin.php:1001
+#: ../../mod/admin.php:1065
 msgid "Log file"
 msgstr "Protokolo"
 
-#: ../../mod/admin.php:1001
+#: ../../mod/admin.php:1065
 msgid ""
 "Must be writable by web server. Relative to your Friendica top-level "
 "directory."
 msgstr "Devas esti skribebla de la retservilo. Relativa al via plej supra Friendica dosierujo."
 
-#: ../../mod/admin.php:1002
+#: ../../mod/admin.php:1066
 msgid "Log level"
 msgstr "Protokolnivelo"
 
-#: ../../mod/admin.php:1052
+#: ../../mod/admin.php:1116
 msgid "Close"
 msgstr "Fermi"
 
-#: ../../mod/admin.php:1058
+#: ../../mod/admin.php:1122
 msgid "FTP Host"
 msgstr "FTP Servilo"
 
-#: ../../mod/admin.php:1059
+#: ../../mod/admin.php:1123
 msgid "FTP Path"
 msgstr "FTP Vojo"
 
-#: ../../mod/admin.php:1060
+#: ../../mod/admin.php:1124
 msgid "FTP User"
 msgstr "FTP Uzanto"
 
-#: ../../mod/admin.php:1061
+#: ../../mod/admin.php:1125
 msgid "FTP Password"
 msgstr "FTP Pasvorto"
 
-#: ../../mod/profile.php:21 ../../boot.php:940
+#: ../../mod/profile.php:21 ../../boot.php:949
 msgid "Requested profile is not available."
 msgstr "La petita profilo ne disponeblas."
 
-#: ../../mod/profile.php:124 ../../mod/display.php:75
+#: ../../mod/profile.php:126 ../../mod/display.php:75
 msgid "Access to this profile has been restricted."
 msgstr "Atingo al ĉi tio profilo estas limitigita"
 
-#: ../../mod/profile.php:145
+#: ../../mod/profile.php:151
 msgid "Tips for New Members"
 msgstr "Konsilo por novaj membroj"
 
@@ -3649,8 +3726,8 @@ msgstr "Neniom da instalitaj programoj."
 msgid "Search This Site"
 msgstr "Serĉi ĉi-tiun retejon"
 
-#: ../../mod/profiles.php:21 ../../mod/profiles.php:339
-#: ../../mod/profiles.php:453 ../../mod/dfrn_confirm.php:62
+#: ../../mod/profiles.php:21 ../../mod/profiles.php:375
+#: ../../mod/profiles.php:489 ../../mod/dfrn_confirm.php:62
 msgid "Profile not found."
 msgstr "Profilo ne trovita."
 
@@ -3658,263 +3735,272 @@ msgstr "Profilo ne trovita."
 msgid "Profile Name is required."
 msgstr "Nomo de profilo estas bezonata."
 
-#: ../../mod/profiles.php:143
+#: ../../mod/profiles.php:145
 msgid "Marital Status"
 msgstr "Amrilata Stato"
 
-#: ../../mod/profiles.php:144
+#: ../../mod/profiles.php:149
 msgid "Romantic Partner"
 msgstr "Kora Partnero"
 
-#: ../../mod/profiles.php:145
+#: ../../mod/profiles.php:153
 msgid "Work/Employment"
 msgstr "Laboro"
 
-#: ../../mod/profiles.php:146
+#: ../../mod/profiles.php:156
 msgid "Religion"
 msgstr "Religio"
 
-#: ../../mod/profiles.php:147
+#: ../../mod/profiles.php:160
 msgid "Political Views"
 msgstr "Politikaj Opinioj"
 
-#: ../../mod/profiles.php:148
+#: ../../mod/profiles.php:164
 msgid "Gender"
 msgstr "Sekso"
 
-#: ../../mod/profiles.php:149
+#: ../../mod/profiles.php:168
 msgid "Sexual Preference"
 msgstr "Seksa Prefero"
 
-#: ../../mod/profiles.php:150
+#: ../../mod/profiles.php:172
 msgid "Homepage"
 msgstr "Hejmpaĝo"
 
-#: ../../mod/profiles.php:151
+#: ../../mod/profiles.php:176
 msgid "Interests"
 msgstr "Interesoj"
 
-#: ../../mod/profiles.php:154
+#: ../../mod/profiles.php:181
 msgid "Location"
 msgstr "Loko"
 
-#: ../../mod/profiles.php:225
+#: ../../mod/profiles.php:253
 msgid "Profile updated."
 msgstr "Profilo ĝisdatigita."
 
-#: ../../mod/profiles.php:300
+#: ../../mod/profiles.php:320
+msgid " and "
+msgstr " kaj "
+
+#: ../../mod/profiles.php:328
 msgid "public profile"
 msgstr "publika profilo"
 
-#: ../../mod/profiles.php:302
+#: ../../mod/profiles.php:331
+#, php-format
+msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
+msgstr "%1$s ŝanĝis %2$s al &ldquo;%3$s&rdquo;"
+
+#: ../../mod/profiles.php:335
 #, php-format
 msgid "%1$s has an updated %2$s, changing %3$s."
 msgstr "%1$s havas ĝisdatigigan %2$s, ŝanĝas %3$s."
 
-#: ../../mod/profiles.php:358
+#: ../../mod/profiles.php:394
 msgid "Profile deleted."
 msgstr "Profilo forviŝita."
 
-#: ../../mod/profiles.php:376 ../../mod/profiles.php:410
+#: ../../mod/profiles.php:412 ../../mod/profiles.php:446
 msgid "Profile-"
 msgstr "Profilo-"
 
-#: ../../mod/profiles.php:395 ../../mod/profiles.php:437
+#: ../../mod/profiles.php:431 ../../mod/profiles.php:473
 msgid "New profile created."
 msgstr "Nova profilo kreita."
 
-#: ../../mod/profiles.php:416
+#: ../../mod/profiles.php:452
 msgid "Profile unavailable to clone."
 msgstr "Ne eblas kopii profilon."
 
-#: ../../mod/profiles.php:474
+#: ../../mod/profiles.php:510
 msgid "Hide your contact/friend list from viewers of this profile?"
 msgstr "Kaŝi vian liston de kontaktoj/amikoj al vidantoj de ĉi-tio profilo?"
 
-#: ../../mod/profiles.php:497
+#: ../../mod/profiles.php:533
 msgid "Edit Profile Details"
 msgstr "Redakti Detalojn de Profilo"
 
-#: ../../mod/profiles.php:499
+#: ../../mod/profiles.php:535
 msgid "View this profile"
 msgstr "Vidi la profilon."
 
-#: ../../mod/profiles.php:500
+#: ../../mod/profiles.php:536
 msgid "Create a new profile using these settings"
 msgstr "Krei novan profilon kun tiaj agordoj"
 
-#: ../../mod/profiles.php:501
+#: ../../mod/profiles.php:537
 msgid "Clone this profile"
 msgstr "Kopii ĉi tiun profilon"
 
-#: ../../mod/profiles.php:502
+#: ../../mod/profiles.php:538
 msgid "Delete this profile"
 msgstr "Forviŝi ĉi tiun profilon"
 
-#: ../../mod/profiles.php:503
+#: ../../mod/profiles.php:539
 msgid "Profile Name:"
 msgstr "Nomo de Profilo:"
 
-#: ../../mod/profiles.php:504
+#: ../../mod/profiles.php:540
 msgid "Your Full Name:"
 msgstr "Via Plena Nomo:"
 
-#: ../../mod/profiles.php:505
+#: ../../mod/profiles.php:541
 msgid "Title/Description:"
 msgstr "Titolo/Priskribo:"
 
-#: ../../mod/profiles.php:506
+#: ../../mod/profiles.php:542
 msgid "Your Gender:"
 msgstr "Via Sekso:"
 
-#: ../../mod/profiles.php:507
+#: ../../mod/profiles.php:543
 #, php-format
 msgid "Birthday (%s):"
 msgstr "Naskiĝtago (%s):"
 
-#: ../../mod/profiles.php:508
+#: ../../mod/profiles.php:544
 msgid "Street Address:"
 msgstr "Adreso:"
 
-#: ../../mod/profiles.php:509
+#: ../../mod/profiles.php:545
 msgid "Locality/City:"
 msgstr "Urbo:"
 
-#: ../../mod/profiles.php:510
+#: ../../mod/profiles.php:546
 msgid "Postal/Zip Code:"
 msgstr "Poŝtkodo:"
 
-#: ../../mod/profiles.php:511
+#: ../../mod/profiles.php:547
 msgid "Country:"
 msgstr "Lando:"
 
-#: ../../mod/profiles.php:512
+#: ../../mod/profiles.php:548
 msgid "Region/State:"
 msgstr "Ŝtato:"
 
-#: ../../mod/profiles.php:513
+#: ../../mod/profiles.php:549
 msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
 msgstr "<span class=\"heart\">&hearts;</span> Civita Stato:"
 
-#: ../../mod/profiles.php:514
+#: ../../mod/profiles.php:550
 msgid "Who: (if applicable)"
 msgstr "Kiu (se aplikeble):"
 
-#: ../../mod/profiles.php:515
+#: ../../mod/profiles.php:551
 msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
 msgstr "Ekzemploj: cathy123, Cathy Williams, cathy@example.com"
 
-#: ../../mod/profiles.php:516 ../../include/profile_advanced.php:43
+#: ../../mod/profiles.php:552 ../../include/profile_advanced.php:43
 msgid "Sexual Preference:"
 msgstr "Seksa Prefero:"
 
-#: ../../mod/profiles.php:517
+#: ../../mod/profiles.php:553
 msgid "Homepage URL:"
 msgstr "Adreso de Hejmpaĝo:"
 
-#: ../../mod/profiles.php:518 ../../include/profile_advanced.php:49
+#: ../../mod/profiles.php:554 ../../include/profile_advanced.php:49
 msgid "Political Views:"
 msgstr "Politikaj Opinioj:"
 
-#: ../../mod/profiles.php:519
+#: ../../mod/profiles.php:555
 msgid "Religious Views:"
 msgstr "Religiaj Opinioj:"
 
-#: ../../mod/profiles.php:520
+#: ../../mod/profiles.php:556
 msgid "Public Keywords:"
 msgstr "Publikaj ŝlosilvortoj:"
 
-#: ../../mod/profiles.php:521
+#: ../../mod/profiles.php:557
 msgid "Private Keywords:"
 msgstr "Privataj ŝlosilvortoj:"
 
-#: ../../mod/profiles.php:522
+#: ../../mod/profiles.php:558
 msgid "Example: fishing photography software"
 msgstr "Ekzemple: fiŝkapti fotografio programaro"
 
-#: ../../mod/profiles.php:523
+#: ../../mod/profiles.php:559
 msgid "(Used for suggesting potential friends, can be seen by others)"
 msgstr "(Por sugesti amikoj. Videbla al aliaj.)"
 
-#: ../../mod/profiles.php:524
+#: ../../mod/profiles.php:560
 msgid "(Used for searching profiles, never shown to others)"
 msgstr "(Por serĉi profilojn. Neniam videbla al aliaj.)"
 
-#: ../../mod/profiles.php:525
+#: ../../mod/profiles.php:561
 msgid "Tell us about yourself..."
 msgstr "Diru al ni pri vi..."
 
-#: ../../mod/profiles.php:526
+#: ../../mod/profiles.php:562
 msgid "Hobbies/Interests"
 msgstr "Ŝatokupoj/Interesoj"
 
-#: ../../mod/profiles.php:527
+#: ../../mod/profiles.php:563
 msgid "Contact information and Social Networks"
 msgstr "Kontaktaj informoj kaj Interkonaj Retejoj"
 
-#: ../../mod/profiles.php:528
+#: ../../mod/profiles.php:564
 msgid "Musical interests"
 msgstr "Muzikaj interesoj"
 
-#: ../../mod/profiles.php:529
+#: ../../mod/profiles.php:565
 msgid "Books, literature"
 msgstr "Libroj, literaturo"
 
-#: ../../mod/profiles.php:530
+#: ../../mod/profiles.php:566
 msgid "Television"
 msgstr "Televido"
 
-#: ../../mod/profiles.php:531
+#: ../../mod/profiles.php:567
 msgid "Film/dance/culture/entertainment"
 msgstr "Filmoj/dancoj/arto/amuzaĵoj"
 
-#: ../../mod/profiles.php:532
+#: ../../mod/profiles.php:568
 msgid "Love/romance"
 msgstr "Amo/romanco"
 
-#: ../../mod/profiles.php:533
+#: ../../mod/profiles.php:569
 msgid "Work/employment"
 msgstr "Laboro"
 
-#: ../../mod/profiles.php:534
+#: ../../mod/profiles.php:570
 msgid "School/education"
 msgstr "Lernejo/eduko"
 
-#: ../../mod/profiles.php:539
+#: ../../mod/profiles.php:575
 msgid ""
 "This is your <strong>public</strong> profile.<br />It <strong>may</strong> "
 "be visible to anybody using the internet."
 msgstr "Ĉi tio estas via <strong>publika</strong> profilo. Ĝi <strong>eble</strong> estas videbla al ĉiuj en interreto. "
 
-#: ../../mod/profiles.php:549 ../../mod/directory.php:111
+#: ../../mod/profiles.php:585 ../../mod/directory.php:111
 msgid "Age: "
 msgstr "Aĝo:"
 
-#: ../../mod/profiles.php:584
+#: ../../mod/profiles.php:620
 msgid "Edit/Manage Profiles"
 msgstr "Redakti/administri Profilojn"
 
-#: ../../mod/profiles.php:585 ../../boot.php:1049
+#: ../../mod/profiles.php:621 ../../boot.php:1058
 msgid "Change profile photo"
 msgstr "Ŝanĝi profilbildon"
 
-#: ../../mod/profiles.php:586 ../../boot.php:1050
+#: ../../mod/profiles.php:622 ../../boot.php:1059
 msgid "Create New Profile"
 msgstr "Krei novan profilon"
 
-#: ../../mod/profiles.php:597 ../../boot.php:1060
+#: ../../mod/profiles.php:633 ../../boot.php:1069
 msgid "Profile Image"
 msgstr "Profilbildo"
 
-#: ../../mod/profiles.php:599 ../../boot.php:1063
+#: ../../mod/profiles.php:635 ../../boot.php:1072
 msgid "visible to everybody"
 msgstr "videbla al ĉiuj"
 
-#: ../../mod/profiles.php:600 ../../boot.php:1064
+#: ../../mod/profiles.php:636 ../../boot.php:1073
 msgid "Edit visibility"
 msgstr "Redakti videblecon"
 
-#: ../../mod/filer.php:29 ../../include/conversation.php:914
+#: ../../mod/filer.php:29 ../../include/conversation.php:922
 msgid "Save to Folder:"
 msgstr "Konservi en Dosierujo:"
 
@@ -3962,17 +4048,10 @@ msgstr "Aldoni"
 msgid "No entries."
 msgstr "Neniom da afiŝoj."
 
-#: ../../mod/suggest.php:38
-#: ../../view/theme/diabook/diabook-green/theme.php:145
-#: ../../view/theme/diabook/diabook-red/theme.php:143
-#: ../../view/theme/diabook/diabook-blue/theme.php:143
-#: ../../view/theme/diabook/theme.php:158
-#: ../../view/theme/diabook/diabook-dark/theme.php:145
-#: ../../view/theme/diabook/diabook-aerith/theme.php:145
-#: ../../view/theme/diabook/diabook-pink/theme.php:145
+#: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:464
 #: ../../include/contact_widgets.php:34
 msgid "Friend Suggestions"
-msgstr "Amikosugestoj."
+msgstr "Amikosugestoj"
 
 #: ../../mod/suggest.php:44
 msgid ""
@@ -3984,14 +4063,7 @@ msgstr "Neniu sugestoj disponeblas. Se ĉi tiu estas nova retejo, bonvolu reprov
 msgid "Ignore/Hide"
 msgstr "Ignori/Kaŝi"
 
-#: ../../mod/directory.php:47
-#: ../../view/theme/diabook/diabook-green/theme.php:143
-#: ../../view/theme/diabook/diabook-red/theme.php:141
-#: ../../view/theme/diabook/diabook-blue/theme.php:141
-#: ../../view/theme/diabook/theme.php:156
-#: ../../view/theme/diabook/diabook-dark/theme.php:143
-#: ../../view/theme/diabook/diabook-aerith/theme.php:143
-#: ../../view/theme/diabook/diabook-pink/theme.php:143
+#: ../../mod/directory.php:47 ../../view/theme/diabook/theme.php:462
 msgid "Global Directory"
 msgstr "Tutmonda Katalogo"
 
@@ -4130,118 +4202,123 @@ msgstr "La prezento malsukcesis au estas revokita."
 msgid "Unable to set contact photo."
 msgstr "Neeblas agordi la kontaktbildo."
 
-#: ../../mod/dfrn_confirm.php:477 ../../include/diaspora.php:507
+#: ../../mod/dfrn_confirm.php:482 ../../include/diaspora.php:507
 #: ../../include/conversation.php:101
 #, php-format
 msgid "%1$s is now friends with %2$s"
 msgstr "%1$s amikiĝis kun %2$s"
 
-#: ../../mod/dfrn_confirm.php:548
+#: ../../mod/dfrn_confirm.php:554
 #, php-format
 msgid "No user record found for '%s' "
 msgstr "Ne trovis uzanton '%s' "
 
-#: ../../mod/dfrn_confirm.php:558
+#: ../../mod/dfrn_confirm.php:564
 msgid "Our site encryption key is apparently messed up."
 msgstr "Ŝajnas kvazaŭ la ĉifroŝlosilo de nia retejo estas fuŝita."
 
-#: ../../mod/dfrn_confirm.php:569
+#: ../../mod/dfrn_confirm.php:575
 msgid "Empty site URL was provided or URL could not be decrypted by us."
 msgstr "Malplena adreso de retejo provizita, aŭ ni ne povis malĉifri la adreson."
 
-#: ../../mod/dfrn_confirm.php:590
+#: ../../mod/dfrn_confirm.php:596
 msgid "Contact record was not found for you on our site."
 msgstr "Kontakto ne trovita por vi en via retejo."
 
-#: ../../mod/dfrn_confirm.php:604
+#: ../../mod/dfrn_confirm.php:610
 #, php-format
 msgid "Site public key not available in contact record for URL %s."
 msgstr "Publika ŝlosilo de retejo ne disponeblas en la kontaktrikordo por la URL adreso %s."
 
-#: ../../mod/dfrn_confirm.php:624
+#: ../../mod/dfrn_confirm.php:630
 msgid ""
 "The ID provided by your system is a duplicate on our system. It should work "
 "if you try again."
 msgstr "La identeco provizita de via sistemo estas duoblo ĉe nia sistemo. Ĝi eble funkcias se vi provas refoje."
 
-#: ../../mod/dfrn_confirm.php:635
+#: ../../mod/dfrn_confirm.php:641
 msgid "Unable to set your contact credentials on our system."
 msgstr "Ne sukcesis agordi la legitimaĵojn de via kontakto ĉe nia sistemo."
 
-#: ../../mod/dfrn_confirm.php:700
+#: ../../mod/dfrn_confirm.php:706
 msgid "Unable to update your contact profile details on our system"
 msgstr "Neeblas ĝisdatigi viajn profildetalojn ĉe nia sistemo."
 
-#: ../../mod/dfrn_confirm.php:730
+#: ../../mod/dfrn_confirm.php:740
 #, php-format
 msgid "Connection accepted at %s"
 msgstr "Konekto akceptita je %s"
 
-#: ../../addon/facebook/facebook.php:490
+#: ../../mod/dfrn_confirm.php:789
+#, php-format
+msgid "%1$s has joined %2$s"
+msgstr "%1$s aliĝis al %2$s"
+
+#: ../../addon/facebook/facebook.php:491
 msgid "Facebook disabled"
 msgstr "Facebook malŝaltita"
 
-#: ../../addon/facebook/facebook.php:495
+#: ../../addon/facebook/facebook.php:496
 msgid "Updating contacts"
 msgstr "Mi ĝisdatigas la kontaktojn."
 
-#: ../../addon/facebook/facebook.php:515
+#: ../../addon/facebook/facebook.php:516
 msgid "Facebook API key is missing."
 msgstr "La API ŝlosilo de Facebook ne estas konata ĉi tie."
 
-#: ../../addon/facebook/facebook.php:522
+#: ../../addon/facebook/facebook.php:523
 msgid "Facebook Connect"
 msgstr "Kontekto al Facebook"
 
-#: ../../addon/facebook/facebook.php:528
+#: ../../addon/facebook/facebook.php:529
 msgid "Install Facebook connector for this account."
 msgstr "Instali la Facebook konektilo por ĉi tiu konto."
 
-#: ../../addon/facebook/facebook.php:535
+#: ../../addon/facebook/facebook.php:536
 msgid "Remove Facebook connector"
 msgstr "Forigi la Facebook konektilon."
 
-#: ../../addon/facebook/facebook.php:540
+#: ../../addon/facebook/facebook.php:541
 msgid ""
 "Re-authenticate [This is necessary whenever your Facebook password is "
 "changed.]"
 msgstr "Reaŭtentiĝi [Tio estas bezonata ĉiam kiam vi ŝanĝis vian pasvorton ĉe Facebook.]"
 
-#: ../../addon/facebook/facebook.php:547
+#: ../../addon/facebook/facebook.php:548
 msgid "Post to Facebook by default"
 msgstr "Ĉiam afiŝi al Facebook."
 
-#: ../../addon/facebook/facebook.php:551
+#: ../../addon/facebook/facebook.php:552
 msgid "Link all your Facebook friends and conversations on this website"
 msgstr "Alligu ĉiujn viajn Facebook amikojn kaj konversaciojn je ĉi-tiu retejo."
 
-#: ../../addon/facebook/facebook.php:553
+#: ../../addon/facebook/facebook.php:554
 msgid ""
 "Facebook conversations consist of your <em>profile wall</em> and your friend"
 " <em>stream</em>."
 msgstr "Facebok konversacioj konsistas el via <em>profilmuro</em> kaj la <em>fluo</em> de viaj amikoj."
 
-#: ../../addon/facebook/facebook.php:554
+#: ../../addon/facebook/facebook.php:555
 msgid "On this website, your Facebook friend stream is only visible to you."
 msgstr "Je ĉi-tiu retejo, la fluo de viaj amikoj ĉe Facebook nur videblas al vi."
 
-#: ../../addon/facebook/facebook.php:555
+#: ../../addon/facebook/facebook.php:556
 msgid ""
 "The following settings determine the privacy of your Facebook profile wall "
 "on this website."
 msgstr "La sekvontaj agordoj difinas la privatecon de via Facebook profilmuro je ĉi-tiu retejo."
 
-#: ../../addon/facebook/facebook.php:559
+#: ../../addon/facebook/facebook.php:560
 msgid ""
 "On this website your Facebook profile wall conversations will only be "
 "visible to you"
 msgstr "Je ĉi-tiu retejo, la conversacioj sur via Facebook profilmuro nur videblas al vi."
 
-#: ../../addon/facebook/facebook.php:564
+#: ../../addon/facebook/facebook.php:565
 msgid "Do not import your Facebook profile wall conversations"
 msgstr "Ne importi konversaciojn de via Facebook profilmuro"
 
-#: ../../addon/facebook/facebook.php:566
+#: ../../addon/facebook/facebook.php:567
 msgid ""
 "If you choose to link conversations and leave both of these boxes unchecked,"
 " your Facebook profile wall will be merged with your profile wall on this "
@@ -4249,120 +4326,120 @@ msgid ""
 "who may see the conversations."
 msgstr "Se vi elektas alligi conversaciojn kaj ne elektas tiujn butonojn, via Facebook profilmuro estas kunigota kun via profilmuro ĉi tie. Viaj privatecaj agordoj ĉi tie difinos kiu povas vidi la coversaciojn."
 
-#: ../../addon/facebook/facebook.php:571
+#: ../../addon/facebook/facebook.php:572
 msgid "Comma separated applications to ignore"
 msgstr "Ignorotaj programoj, disigita per komo"
 
-#: ../../addon/facebook/facebook.php:648
+#: ../../addon/facebook/facebook.php:656
 msgid "Problems with Facebook Real-Time Updates"
 msgstr "Problemoj kun Facebook Realtempaj Ĝisdatigoj"
 
-#: ../../addon/facebook/facebook.php:675
+#: ../../addon/facebook/facebook.php:684
 #: ../../include/contact_selectors.php:81
 msgid "Facebook"
 msgstr "Facebook"
 
-#: ../../addon/facebook/facebook.php:676
+#: ../../addon/facebook/facebook.php:685
 msgid "Facebook Connector Settings"
 msgstr "Agordoj por la Facebook konektilo"
 
-#: ../../addon/facebook/facebook.php:691
+#: ../../addon/facebook/facebook.php:700
 msgid "Facebook API Key"
 msgstr "Facebook API ŝlosilo"
 
-#: ../../addon/facebook/facebook.php:701
+#: ../../addon/facebook/facebook.php:710
 msgid ""
 "Error: it appears that you have specified the App-ID and -Secret in your "
 ".htconfig.php file. As long as they are specified there, they cannot be set "
 "using this form.<br><br>"
 msgstr "Eraro: Ŝajnas kvazaŭ vi agordis la App-ID kaj la sekreton en via .htconfig.php dosiero. Kiam ili estas agordita tie, vi ne povas agordi ĝin tra tiu ĉi formo.<br><br>"
 
-#: ../../addon/facebook/facebook.php:706
+#: ../../addon/facebook/facebook.php:715
 msgid ""
 "Error: the given API Key seems to be incorrect (the application access token"
 " could not be retrieved)."
 msgstr "Eraro: La API ŝlosilo aspektas malĝusta (ne eblas ricevi la programa atingoĵetono)."
 
-#: ../../addon/facebook/facebook.php:708
+#: ../../addon/facebook/facebook.php:717
 msgid "The given API Key seems to work correctly."
 msgstr "La API ŝlosilo ŝajne ĝuste funkcias."
 
-#: ../../addon/facebook/facebook.php:710
+#: ../../addon/facebook/facebook.php:719
 msgid ""
 "The correctness of the API Key could not be detected. Somthing strange's "
 "going on."
 msgstr "Ne povis kontroli la ĝustecon de la API ŝlosilo. Ia stranga afero okazas. "
 
-#: ../../addon/facebook/facebook.php:713
+#: ../../addon/facebook/facebook.php:722
 msgid "App-ID / API-Key"
 msgstr "Programo ID / API Ŝlosilo"
 
-#: ../../addon/facebook/facebook.php:714
+#: ../../addon/facebook/facebook.php:723
 msgid "Application secret"
 msgstr "Programo sekreto"
 
-#: ../../addon/facebook/facebook.php:715
+#: ../../addon/facebook/facebook.php:724
 #, php-format
-msgid "Polling Interval (min. %1$s minutes)"
-msgstr "Intervalo por la enketilo (poller intervalo, minimume %1$s mintuoj) "
+msgid "Polling Interval in minutes (minimum %1$s minutes)"
+msgstr "Intervalo de enketo en minutoj (minimume %1$s minutoj)"
 
-#: ../../addon/facebook/facebook.php:716
+#: ../../addon/facebook/facebook.php:725
 msgid ""
 "Synchronize comments (no comments on Facebook are missed, at the cost of "
 "increased system load)"
 msgstr "Sinkronigi komentojn (vi ricevas ĉiujn komentojn de Facebook, sed la ŝargo de la sistemo iom kreskas)"
 
-#: ../../addon/facebook/facebook.php:720
+#: ../../addon/facebook/facebook.php:729
 msgid "Real-Time Updates"
 msgstr "Realtempaj Ĝisdatigoj"
 
-#: ../../addon/facebook/facebook.php:724
+#: ../../addon/facebook/facebook.php:733
 msgid "Real-Time Updates are activated."
 msgstr "Realtempaj Ĝisdatigoj estas ŝaltita"
 
-#: ../../addon/facebook/facebook.php:725
+#: ../../addon/facebook/facebook.php:734
 msgid "Deactivate Real-Time Updates"
 msgstr "Malŝalti Realtempaj Ĝisdatigoj"
 
-#: ../../addon/facebook/facebook.php:727
+#: ../../addon/facebook/facebook.php:736
 msgid "Real-Time Updates not activated."
 msgstr "Realtempaj Ĝisdatigoj estas malŝaltita"
 
-#: ../../addon/facebook/facebook.php:727
+#: ../../addon/facebook/facebook.php:736
 msgid "Activate Real-Time Updates"
 msgstr "Ŝalti Realtempaj Ĝisdatigoj"
 
-#: ../../addon/facebook/facebook.php:746
+#: ../../addon/facebook/facebook.php:755
 msgid "The new values have been saved."
 msgstr "Konservis novajn valorojn."
 
-#: ../../addon/facebook/facebook.php:770
+#: ../../addon/facebook/facebook.php:779
 msgid "Post to Facebook"
 msgstr "Afiŝi al Facebook"
 
-#: ../../addon/facebook/facebook.php:868
+#: ../../addon/facebook/facebook.php:877
 msgid ""
 "Post to Facebook cancelled because of multi-network access permission "
 "conflict."
 msgstr "Afiŝado al Facebook nuligita ĉar okazis konflikto en la multretpermesoj."
 
-#: ../../addon/facebook/facebook.php:1088
+#: ../../addon/facebook/facebook.php:1097
 msgid "View on Friendica"
 msgstr "Vidi ĉe Friendica"
 
-#: ../../addon/facebook/facebook.php:1121
+#: ../../addon/facebook/facebook.php:1130
 msgid "Facebook post failed. Queued for retry."
 msgstr "Malsukcesis afiŝi ĉe Facebook. Enigita en vico."
 
-#: ../../addon/facebook/facebook.php:1161
+#: ../../addon/facebook/facebook.php:1170
 msgid "Your Facebook connection became invalid. Please Re-authenticate."
 msgstr "Via Facbook konekto iĝis nevalida. Bonvolu reaŭtentiĝi."
 
-#: ../../addon/facebook/facebook.php:1162
+#: ../../addon/facebook/facebook.php:1171
 msgid "Facebook connection became invalid"
 msgstr "Facebook konekto iĝis nevalida."
 
-#: ../../addon/facebook/facebook.php:1163
+#: ../../addon/facebook/facebook.php:1172
 #, php-format
 msgid ""
 "Hi %1$s,\n"
@@ -4404,6 +4481,10 @@ msgid_plural "%d people don't like this"
 msgstr[0] "%d homo malŝatas tiun"
 msgstr[1] "%d homo malŝatas tiun"
 
+#: ../../addon/widgets/widget_friendheader.php:40
+msgid "Get added to this list!"
+msgstr "Iĝu membro de ĉi tiu listo!"
+
 #: ../../addon/widgets/widgets.php:56
 msgid "Generate new key"
 msgstr "Generi novan ĉifroŝlosilon"
@@ -4503,10 +4584,15 @@ msgstr "NSFW agordoj konservitaj."
 msgid "%s - Click to open/close"
 msgstr "%s - Klaku por malfermi/fermi"
 
-#: ../../addon/page/page.php:47
+#: ../../addon/page/page.php:48
 msgid "Forums"
 msgstr "Forumoj"
 
+#: ../../addon/page/page.php:63 ../../addon/showmore/showmore.php:87
+#: ../../include/conversation.php:466 ../../boot.php:507
+msgid "show more"
+msgstr "montri pli"
+
 #: ../../addon/planets/planets.php:150
 msgid "Planets Settings"
 msgstr "Agordo pri Planets"
@@ -4519,7 +4605,7 @@ msgstr "Ŝalti la Planets kromprogamon"
 #: ../../addon/communityhome/communityhome.php:34
 #: ../../addon/communityhome/twillingham/communityhome.php:28
 #: ../../addon/communityhome/twillingham/communityhome.php:34
-#: ../../include/nav.php:64 ../../boot.php:796
+#: ../../include/nav.php:64 ../../boot.php:805
 msgid "Login"
 msgstr "Ensaluti"
 
@@ -4547,15 +4633,8 @@ msgid "Latest likes"
 msgstr "Ĵusaj ŝatitaĵoj"
 
 #: ../../addon/communityhome/communityhome.php:155
-#: ../../view/theme/diabook/diabook-green/theme.php:80
-#: ../../view/theme/diabook/diabook-red/theme.php:79
-#: ../../view/theme/diabook/diabook-blue/theme.php:79
-#: ../../view/theme/diabook/theme.php:94
-#: ../../view/theme/diabook/diabook-dark/theme.php:80
-#: ../../view/theme/diabook/diabook-aerith/theme.php:80
-#: ../../view/theme/diabook/diabook-pink/theme.php:80
-#: ../../include/text.php:1302 ../../include/conversation.php:45
-#: ../../include/conversation.php:118
+#: ../../view/theme/diabook/theme.php:400 ../../include/text.php:1302
+#: ../../include/conversation.php:45 ../../include/conversation.php:118
 msgid "event"
 msgstr "okazo"
 
@@ -4707,7 +4786,7 @@ msgid "Post to Drupal by default"
 msgstr "Defaŭlte afiŝi ĉe Drupal"
 
 #: ../../addon/drpost/drpost.php:184 ../../addon/wppost/wppost.php:190
-#: ../../addon/blogger/blogger.php:172 ../../addon/posterous/posterous.php:173
+#: ../../addon/blogger/blogger.php:172 ../../addon/posterous/posterous.php:177
 msgid "Post from Friendica"
 msgstr "Afiŝo de Friendica"
 
@@ -4763,68 +4842,70 @@ msgstr "Uzi OEmbed por YouTube videtoj"
 msgid "URL to embed:"
 msgstr "Enigi la URL adreson:"
 
-#: ../../addon/impressum/impressum.php:34
+#: ../../addon/impressum/impressum.php:36
 msgid "Impressum"
 msgstr "Kolofono"
 
-#: ../../addon/impressum/impressum.php:47
 #: ../../addon/impressum/impressum.php:49
-#: ../../addon/impressum/impressum.php:81
+#: ../../addon/impressum/impressum.php:51
+#: ../../addon/impressum/impressum.php:83
 msgid "Site Owner"
 msgstr "Proprietulo de la paĝo"
 
-#: ../../addon/impressum/impressum.php:47
-#: ../../addon/impressum/impressum.php:85
+#: ../../addon/impressum/impressum.php:49
+#: ../../addon/impressum/impressum.php:87
 msgid "Email Address"
 msgstr "Retpoŝta Adreso"
 
-#: ../../addon/impressum/impressum.php:52
-#: ../../addon/impressum/impressum.php:83
+#: ../../addon/impressum/impressum.php:54
+#: ../../addon/impressum/impressum.php:85
 msgid "Postal Address"
 msgstr "Poŝta Adreso"
 
-#: ../../addon/impressum/impressum.php:58
+#: ../../addon/impressum/impressum.php:60
 msgid ""
 "The impressum addon needs to be configured!<br />Please add at least the "
 "<tt>owner</tt> variable to your config file. For other variables please "
 "refer to the README file of the addon."
 msgstr "La kolofono (impressum) kromprogramo bezonas agordojn!<br />Bonvolu aldoni minimume la <tt>owner</tt> variablon al via agorda dosiero. Por aliaj variabloj, bonvolu legi la README dosieron de la kromprogramo."
 
-#: ../../addon/impressum/impressum.php:81
+#: ../../addon/impressum/impressum.php:83
 msgid "The page operators name."
 msgstr "La nomo de la funkciigisto de la retejo."
 
-#: ../../addon/impressum/impressum.php:82
+#: ../../addon/impressum/impressum.php:84
 msgid "Site Owners Profile"
 msgstr "Profilo de la Proprietulo de la Retejo"
 
-#: ../../addon/impressum/impressum.php:82
+#: ../../addon/impressum/impressum.php:84
 msgid "Profile address of the operator."
 msgstr "La profilo de la funkciigisto de la retejo."
 
-#: ../../addon/impressum/impressum.php:83
-msgid "How to contact the operator via snail mail."
-msgstr "Kiel kontakti la funkciigiston de la retejo tra paperpoŝto."
+#: ../../addon/impressum/impressum.php:85
+msgid "How to contact the operator via snail mail. You can use BBCode here."
+msgstr "Kiel poŝte kontakti la funkciigisto de la retejo. Vi eblas uzi BBCode ĉi tie."
 
-#: ../../addon/impressum/impressum.php:84
+#: ../../addon/impressum/impressum.php:86
 msgid "Notes"
 msgstr "Notoj"
 
-#: ../../addon/impressum/impressum.php:84
-msgid "Additional notes that are displayed beneath the contact information."
-msgstr "Pliaj notoj kiuj estas montrigota malsupre la kontaktinformojn."
+#: ../../addon/impressum/impressum.php:86
+msgid ""
+"Additional notes that are displayed beneath the contact information. You can"
+" use BBCode here."
+msgstr "Pli da notoj kiuj aperas sub la kontaktinformoj. Vi eblas uzi BBCode ĉi tie."
 
-#: ../../addon/impressum/impressum.php:85
+#: ../../addon/impressum/impressum.php:87
 msgid "How to contact the operator via email. (will be displayed obfuscated)"
 msgstr "Kiel kontakti la funkciigiston de la retejo tra retpoŝto. (montriĝos vuale) "
 
-#: ../../addon/impressum/impressum.php:86
+#: ../../addon/impressum/impressum.php:88
 msgid "Footer note"
 msgstr "Paĝpiednoto"
 
-#: ../../addon/impressum/impressum.php:86
-msgid "Text for the footer."
-msgstr "Teksto por la paĝpiedo."
+#: ../../addon/impressum/impressum.php:88
+msgid "Text for the footer. You can use BBCode here."
+msgstr "Teksto por la paĝpiedo. Vie eblas uzi BBCode ĉi tie."
 
 #: ../../addon/buglink/buglink.php:15
 msgid "Report Bug"
@@ -5261,11 +5342,6 @@ msgstr "Limitigi afiŝojn al kiom da literoj"
 msgid "Show More Settings saved."
 msgstr "Konservis \"montri pli\" agordojn."
 
-#: ../../addon/showmore/showmore.php:87 ../../include/conversation.php:466
-#: ../../boot.php:496
-msgid "show more"
-msgstr "montri pli"
-
 #: ../../addon/piwik/piwik.php:79
 msgid ""
 "This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> "
@@ -5448,228 +5524,104 @@ msgstr "Posterous pasvorto"
 msgid "Post to Posterous by default"
 msgstr "Defaŭlte afiŝi al Posterous"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:29
-#: ../../view/theme/diabook/diabook-red/theme.php:28
-#: ../../view/theme/diabook/diabook-blue/theme.php:28
-#: ../../view/theme/diabook/theme.php:43
-#: ../../view/theme/diabook/diabook-dark/theme.php:29
-#: ../../view/theme/diabook/diabook-aerith/theme.php:29
-#: ../../view/theme/diabook/diabook-pink/theme.php:29
-msgid "Last users"
-msgstr "Ĵusaj uzantoj"
-
-#: ../../view/theme/diabook/diabook-green/theme.php:58
-#: ../../view/theme/diabook/diabook-red/theme.php:57
-#: ../../view/theme/diabook/diabook-blue/theme.php:57
-#: ../../view/theme/diabook/theme.php:72
-#: ../../view/theme/diabook/diabook-dark/theme.php:58
-#: ../../view/theme/diabook/diabook-aerith/theme.php:58
-#: ../../view/theme/diabook/diabook-pink/theme.php:58
-msgid "Last likes"
-msgstr "Ĵusaj ŝatitaj elementoj"
-
-#: ../../view/theme/diabook/diabook-green/theme.php:103
-#: ../../view/theme/diabook/diabook-red/theme.php:102
-#: ../../view/theme/diabook/diabook-blue/theme.php:102
-#: ../../view/theme/diabook/theme.php:117
-#: ../../view/theme/diabook/diabook-dark/theme.php:103
-#: ../../view/theme/diabook/diabook-aerith/theme.php:103
-#: ../../view/theme/diabook/diabook-pink/theme.php:103
-msgid "Last photos"
-msgstr "Ĵusaj bildoj"
-
-#: ../../view/theme/diabook/diabook-green/theme.php:141
-#: ../../view/theme/diabook/diabook-red/theme.php:139
-#: ../../view/theme/diabook/diabook-blue/theme.php:139
-#: ../../view/theme/diabook/theme.php:154
-#: ../../view/theme/diabook/diabook-dark/theme.php:141
-#: ../../view/theme/diabook/diabook-aerith/theme.php:141
-#: ../../view/theme/diabook/diabook-pink/theme.php:141
-msgid "Find Friends"
-msgstr "Trovi Amikojn"
-
-#: ../../view/theme/diabook/diabook-green/theme.php:142
-#: ../../view/theme/diabook/diabook-red/theme.php:140
-#: ../../view/theme/diabook/diabook-blue/theme.php:140
-#: ../../view/theme/diabook/theme.php:155
-#: ../../view/theme/diabook/diabook-dark/theme.php:142
-#: ../../view/theme/diabook/diabook-aerith/theme.php:142
-#: ../../view/theme/diabook/diabook-pink/theme.php:142
-msgid "Local Directory"
-msgstr "Loka Katalogo"
-
-#: ../../view/theme/diabook/diabook-green/theme.php:144
-#: ../../view/theme/diabook/diabook-red/theme.php:142
-#: ../../view/theme/diabook/diabook-blue/theme.php:142
-#: ../../view/theme/diabook/theme.php:157
-#: ../../view/theme/diabook/diabook-dark/theme.php:144
-#: ../../view/theme/diabook/diabook-aerith/theme.php:144
-#: ../../view/theme/diabook/diabook-pink/theme.php:144
-#: ../../include/contact_widgets.php:35
-msgid "Similar Interests"
-msgstr "Similaj Interesoj"
-
-#: ../../view/theme/diabook/diabook-green/theme.php:146
-#: ../../view/theme/diabook/diabook-red/theme.php:144
-#: ../../view/theme/diabook/diabook-blue/theme.php:144
-#: ../../view/theme/diabook/theme.php:159
-#: ../../view/theme/diabook/diabook-dark/theme.php:146
-#: ../../view/theme/diabook/diabook-aerith/theme.php:146
-#: ../../view/theme/diabook/diabook-pink/theme.php:146
-#: ../../include/contact_widgets.php:37
-msgid "Invite Friends"
-msgstr "Inviti amikojn"
+#: ../../view/theme/cleanzero/config.php:73
+#: ../../view/theme/diabook/config.php:93
+#: ../../view/theme/quattro/config.php:54 ../../view/theme/dispy/config.php:72
+msgid "Theme settings"
+msgstr "Agordoj pri la etoso"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:161
-#: ../../view/theme/diabook/diabook-green/theme.php:236
-#: ../../view/theme/diabook/diabook-red/theme.php:159
-#: ../../view/theme/diabook/diabook-red/theme.php:234
-#: ../../view/theme/diabook/diabook-blue/theme.php:159
-#: ../../view/theme/diabook/diabook-blue/theme.php:234
-#: ../../view/theme/diabook/theme.php:175
-#: ../../view/theme/diabook/theme.php:253
-#: ../../view/theme/diabook/diabook-dark/theme.php:161
-#: ../../view/theme/diabook/diabook-dark/theme.php:236
-#: ../../view/theme/diabook/diabook-aerith/theme.php:161
-#: ../../view/theme/diabook/diabook-aerith/theme.php:236
-#: ../../view/theme/diabook/diabook-pink/theme.php:161
-#: ../../view/theme/diabook/diabook-pink/theme.php:236
-msgid "Community Pages"
-msgstr "Komunumaj paĝoj"
+#: ../../view/theme/cleanzero/config.php:74
+msgid "Set resize level for images in posts and comments (width and height)"
+msgstr "Agordi la regrandignivelo por bildoj en afiŝoj kaj komentoj (larĝo kaj alto)"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:194
-#: ../../view/theme/diabook/diabook-red/theme.php:192
-#: ../../view/theme/diabook/diabook-blue/theme.php:192
-#: ../../view/theme/diabook/theme.php:208
-#: ../../view/theme/diabook/diabook-dark/theme.php:194
-#: ../../view/theme/diabook/diabook-aerith/theme.php:194
-#: ../../view/theme/diabook/diabook-pink/theme.php:194
-msgid "Help or @NewHere ?"
-msgstr "Helpu aŭ @NewHere ?"
+#: ../../view/theme/cleanzero/config.php:75
+#: ../../view/theme/diabook/config.php:94 ../../view/theme/dispy/config.php:73
+msgid "Set font-size for posts and comments"
+msgstr "Agordi la tiparan grandon por afiŝoj kaj komentoj"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:200
-#: ../../view/theme/diabook/diabook-red/theme.php:198
-#: ../../view/theme/diabook/diabook-blue/theme.php:198
-#: ../../view/theme/diabook/theme.php:214
-#: ../../view/theme/diabook/diabook-dark/theme.php:200
-#: ../../view/theme/diabook/diabook-aerith/theme.php:200
-#: ../../view/theme/diabook/diabook-pink/theme.php:200
-msgid "Connect Services"
-msgstr "Konekti Servojn"
+#: ../../view/theme/cleanzero/config.php:76
+#: ../../view/theme/quattro/config.php:56
+msgid "Color scheme"
+msgstr "Kolorskemo"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:229
-#: ../../view/theme/diabook/diabook-red/theme.php:227
-#: ../../view/theme/diabook/diabook-blue/theme.php:227
-#: ../../view/theme/diabook/theme.php:246
-#: ../../view/theme/diabook/diabook-dark/theme.php:229
-#: ../../view/theme/diabook/diabook-aerith/theme.php:229
-#: ../../view/theme/diabook/diabook-pink/theme.php:229
-#: ../../include/nav.php:49 ../../include/nav.php:115
+#: ../../view/theme/diabook/theme.php:65 ../../include/nav.php:49
+#: ../../include/nav.php:115
 msgid "Your posts and conversations"
 msgstr "Viaj afiŝoj kaj komunikadoj"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:230
-#: ../../view/theme/diabook/diabook-red/theme.php:228
-#: ../../view/theme/diabook/diabook-blue/theme.php:228
-#: ../../view/theme/diabook/theme.php:247
-#: ../../view/theme/diabook/diabook-dark/theme.php:230
-#: ../../view/theme/diabook/diabook-aerith/theme.php:230
-#: ../../view/theme/diabook/diabook-pink/theme.php:230
-#: ../../include/nav.php:50
+#: ../../view/theme/diabook/theme.php:66 ../../include/nav.php:50
 msgid "Your profile page"
 msgstr "Via profilo"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:231
-#: ../../view/theme/diabook/diabook-red/theme.php:229
-#: ../../view/theme/diabook/diabook-blue/theme.php:229
-#: ../../view/theme/diabook/theme.php:248
-#: ../../view/theme/diabook/diabook-dark/theme.php:231
-#: ../../view/theme/diabook/diabook-aerith/theme.php:231
-#: ../../view/theme/diabook/diabook-pink/theme.php:231
+#: ../../view/theme/diabook/theme.php:67
 msgid "Your contacts"
 msgstr "Viaj kontaktoj"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:232
-#: ../../view/theme/diabook/diabook-red/theme.php:230
-#: ../../view/theme/diabook/diabook-blue/theme.php:230
-#: ../../view/theme/diabook/theme.php:249
-#: ../../view/theme/diabook/diabook-dark/theme.php:232
-#: ../../view/theme/diabook/diabook-aerith/theme.php:232
-#: ../../view/theme/diabook/diabook-pink/theme.php:232
-#: ../../include/nav.php:51
+#: ../../view/theme/diabook/theme.php:68 ../../include/nav.php:51
 msgid "Your photos"
 msgstr "Viaj bildoj"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:233
-#: ../../view/theme/diabook/diabook-red/theme.php:231
-#: ../../view/theme/diabook/diabook-blue/theme.php:231
-#: ../../view/theme/diabook/theme.php:250
-#: ../../view/theme/diabook/diabook-dark/theme.php:233
-#: ../../view/theme/diabook/diabook-aerith/theme.php:233
-#: ../../view/theme/diabook/diabook-pink/theme.php:233
-#: ../../include/nav.php:52
+#: ../../view/theme/diabook/theme.php:69 ../../include/nav.php:52
 msgid "Your events"
 msgstr "Viaj okazoj"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:234
-#: ../../view/theme/diabook/diabook-red/theme.php:232
-#: ../../view/theme/diabook/diabook-blue/theme.php:232
-#: ../../view/theme/diabook/theme.php:251
-#: ../../view/theme/diabook/diabook-dark/theme.php:234
-#: ../../view/theme/diabook/diabook-aerith/theme.php:234
-#: ../../view/theme/diabook/diabook-pink/theme.php:234
-#: ../../include/nav.php:53
+#: ../../view/theme/diabook/theme.php:70 ../../include/nav.php:53
 msgid "Personal notes"
 msgstr "Personaj notoj"
 
-#: ../../view/theme/diabook/diabook-green/theme.php:234
-#: ../../view/theme/diabook/diabook-red/theme.php:232
-#: ../../view/theme/diabook/diabook-blue/theme.php:232
-#: ../../view/theme/diabook/theme.php:251
-#: ../../view/theme/diabook/diabook-dark/theme.php:234
-#: ../../view/theme/diabook/diabook-aerith/theme.php:234
-#: ../../view/theme/diabook/diabook-pink/theme.php:234
-#: ../../include/nav.php:53
+#: ../../view/theme/diabook/theme.php:70 ../../include/nav.php:53
 msgid "Your personal photos"
 msgstr "Viaj personaj bildoj"
 
-#: ../../view/theme/diabook/diabook-green/config.php:78
-#: ../../view/theme/diabook/diabook-red/config.php:78
-#: ../../view/theme/diabook/diabook-blue/config.php:78
-#: ../../view/theme/diabook/diabook-dark/config.php:78
-#: ../../view/theme/diabook/diabook-aerith/config.php:78
-#: ../../view/theme/diabook/diabook-pink/config.php:78
-#: ../../view/theme/diabook/config.php:93
-#: ../../view/theme/quattro/config.php:54
-msgid "Theme settings"
-msgstr "Agordoj pri la etoso"
+#: ../../view/theme/diabook/theme.php:72
+#: ../../view/theme/diabook/theme.php:481
+msgid "Community Pages"
+msgstr "Komunumaj paĝoj"
 
-#: ../../view/theme/diabook/diabook-green/config.php:79
-#: ../../view/theme/diabook/diabook-red/config.php:79
-#: ../../view/theme/diabook/diabook-blue/config.php:79
-#: ../../view/theme/diabook/diabook-dark/config.php:79
-#: ../../view/theme/diabook/diabook-aerith/config.php:79
-#: ../../view/theme/diabook/diabook-pink/config.php:79
-#: ../../view/theme/diabook/config.php:94
-msgid "Set font-size for posts and comments"
-msgstr "Agordi la tiparan grandon por afiŝoj kaj komentoj"
+#: ../../view/theme/diabook/theme.php:328
+msgid "Community Profiles"
+msgstr "Komunumaj Profiloj"
+
+#: ../../view/theme/diabook/theme.php:349
+msgid "Last users"
+msgstr "Ĵusaj uzantoj"
+
+#: ../../view/theme/diabook/theme.php:378
+msgid "Last likes"
+msgstr "Ĵusaj ŝatitaj elementoj"
+
+#: ../../view/theme/diabook/theme.php:423
+msgid "Last photos"
+msgstr "Ĵusaj bildoj"
+
+#: ../../view/theme/diabook/theme.php:460
+msgid "Find Friends"
+msgstr "Trovi Amikojn"
+
+#: ../../view/theme/diabook/theme.php:461
+msgid "Local Directory"
+msgstr "Loka Katalogo"
+
+#: ../../view/theme/diabook/theme.php:463 ../../include/contact_widgets.php:35
+msgid "Similar Interests"
+msgstr "Similaj Interesoj"
+
+#: ../../view/theme/diabook/theme.php:465 ../../include/contact_widgets.php:37
+msgid "Invite Friends"
+msgstr "Inviti amikojn"
+
+#: ../../view/theme/diabook/theme.php:515
+msgid "Help or @NewHere ?"
+msgstr "Helpu aŭ @NewHere ?"
+
+#: ../../view/theme/diabook/theme.php:522
+msgid "Connect Services"
+msgstr "Konekti Servojn"
 
-#: ../../view/theme/diabook/diabook-green/config.php:80
-#: ../../view/theme/diabook/diabook-red/config.php:80
-#: ../../view/theme/diabook/diabook-blue/config.php:80
-#: ../../view/theme/diabook/diabook-dark/config.php:80
-#: ../../view/theme/diabook/diabook-aerith/config.php:80
-#: ../../view/theme/diabook/diabook-pink/config.php:80
-#: ../../view/theme/diabook/config.php:95
+#: ../../view/theme/diabook/config.php:95 ../../view/theme/dispy/config.php:74
 msgid "Set line-height for posts and comments"
 msgstr "Agordi la linigrandon por afiŝoj kaj komentoj"
 
-#: ../../view/theme/diabook/diabook-green/config.php:81
-#: ../../view/theme/diabook/diabook-red/config.php:81
-#: ../../view/theme/diabook/diabook-blue/config.php:81
-#: ../../view/theme/diabook/diabook-dark/config.php:81
-#: ../../view/theme/diabook/diabook-aerith/config.php:81
-#: ../../view/theme/diabook/diabook-pink/config.php:81
 #: ../../view/theme/diabook/config.php:96
 msgid "Set resolution for middle column"
 msgstr "Agordi la distingivon por la meza kolumno"
@@ -5690,11 +5642,11 @@ msgstr "Maldekstren"
 msgid "Center"
 msgstr "Centren"
 
-#: ../../view/theme/quattro/config.php:56
-msgid "Color scheme"
-msgstr "Kolorskemo"
+#: ../../view/theme/dispy/config.php:75
+msgid "Set colour scheme"
+msgstr "Agordi Kolorskemon"
 
-#: ../../include/profile_advanced.php:17 ../../boot.php:1085
+#: ../../include/profile_advanced.php:17 ../../boot.php:1094
 msgid "Gender:"
 msgstr "Sekso:"
 
@@ -5715,11 +5667,11 @@ msgstr "Naskiĝtago:"
 msgid "Age:"
 msgstr "Aĝo:"
 
-#: ../../include/profile_advanced.php:37 ../../boot.php:1088
+#: ../../include/profile_advanced.php:37 ../../boot.php:1097
 msgid "Status:"
 msgstr "Stato:"
 
-#: ../../include/profile_advanced.php:45 ../../boot.php:1090
+#: ../../include/profile_advanced.php:45 ../../boot.php:1099
 msgid "Homepage:"
 msgstr "Hejmpaĝo:"
 
@@ -5899,179 +5851,179 @@ msgstr "Alia"
 msgid "Undecided"
 msgstr "Nedecida"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Males"
 msgstr "Viroj"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Females"
 msgstr "Inoj"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Gay"
 msgstr "Geja"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Lesbian"
 msgstr "Lesba"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "No Preference"
 msgstr "Neniu Prefero"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Bisexual"
 msgstr "Ambaŭseksema"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Autosexual"
 msgstr "Memseksema"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Abstinent"
 msgstr "Abstinema"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Virgin"
 msgstr "Virgulino"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Deviant"
 msgstr "Devia"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Fetish"
 msgstr "Fetiĉo"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Oodles"
 msgstr "Amasa"
 
-#: ../../include/profile_selectors.php:19
+#: ../../include/profile_selectors.php:21
 msgid "Nonsexual"
 msgstr "Neseksa"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Single"
 msgstr "Sola"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Lonely"
 msgstr "Soleca"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Available"
 msgstr "Havebla"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Unavailable"
 msgstr "Nehavebla"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Has crush"
 msgstr "Sekrete enamiĝinta"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Infatuated"
 msgstr "Blinda amo"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Dating"
 msgstr "Rendevuanta"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Unfaithful"
 msgstr "Malfidela"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Sex Addict"
 msgstr "Seksmaniulo"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Friends"
 msgstr "Amikoj"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Friends/Benefits"
 msgstr "Amikoj/Avantaĝoj"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Casual"
 msgstr "Neformala"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Engaged"
 msgstr "Fianĉiginta"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Married"
 msgstr "Edziĝinta"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Imaginarily married"
 msgstr "Image edziĝinta"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Partners"
 msgstr "Geparuloj"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Cohabiting"
 msgstr "Kunloĝanta"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Common law"
 msgstr "Registrita partnereco "
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Happy"
 msgstr "Feliĉa"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Not looking"
 msgstr "Ne interesiĝis"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Swinger"
 msgstr "Swinger"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Betrayed"
 msgstr "Trompita"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Separated"
 msgstr "Disiĝinta"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Unstable"
 msgstr "Malfirma"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Divorced"
 msgstr "Eksedziĝinta"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Imaginarily divorced"
 msgstr "Image eksedziĝinta"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Widowed"
 msgstr "Vidva"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Uncertain"
 msgstr "Ne certa"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "It's complicated"
 msgstr "Estas komplika"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Don't care"
 msgstr "Egala"
 
-#: ../../include/profile_selectors.php:33
+#: ../../include/profile_selectors.php:37
 msgid "Ask me"
 msgstr "Demandu min"
 
@@ -6083,12 +6035,12 @@ msgstr "Ekas:"
 msgid "Finishes:"
 msgstr "Finas:"
 
-#: ../../include/delivery.php:434 ../../include/notifier.php:651
+#: ../../include/delivery.php:434 ../../include/notifier.php:652
 msgid "(no subject)"
 msgstr "(neniu temo)"
 
 #: ../../include/delivery.php:441 ../../include/enotify.php:23
-#: ../../include/notifier.php:658
+#: ../../include/notifier.php:659
 msgid "noreply"
 msgstr "nerespondi"
 
@@ -6303,7 +6255,7 @@ msgstr "Krei novan grupon"
 msgid "Contacts not in any group"
 msgstr "Kontaktoj en neniu grupo"
 
-#: ../../include/nav.php:46 ../../boot.php:795
+#: ../../include/nav.php:46 ../../boot.php:804
 msgid "Logout"
 msgstr "Elsaluti"
 
@@ -6311,7 +6263,7 @@ msgstr "Elsaluti"
 msgid "End this session"
 msgstr "Fini ĉi-tiun seancon"
 
-#: ../../include/nav.php:49 ../../boot.php:1453
+#: ../../include/nav.php:49 ../../boot.php:1472
 msgid "Status"
 msgstr "Stato"
 
@@ -6391,11 +6343,11 @@ msgstr "Administri"
 msgid "Manage other pages"
 msgstr "Administri aliajn paĝojn"
 
-#: ../../include/nav.php:138 ../../boot.php:1043
+#: ../../include/nav.php:138 ../../boot.php:1052
 msgid "Profiles"
 msgstr "Profiloj"
 
-#: ../../include/nav.php:138 ../../boot.php:1043
+#: ../../include/nav.php:138 ../../boot.php:1052
 msgid "Manage/edit profiles"
 msgstr "Administri/redakti profilojn"
 
@@ -6474,6 +6426,13 @@ msgstr "Ĉio"
 msgid "Categories"
 msgstr "Kategorioj"
 
+#: ../../include/contact_widgets.php:183
+#, php-format
+msgid "%d friend in common"
+msgid_plural "%d friends in common"
+msgstr[0] "%d komuna amiko"
+msgstr[1] "%d komunaj amikoj"
+
 #: ../../include/auth.php:29
 msgid "Logged out."
 msgstr "Elsalutita."
@@ -6561,7 +6520,7 @@ msgstr "sekundoj"
 msgid "%1$d %2$s ago"
 msgstr "antaŭ %1$d %2$s"
 
-#: ../../include/poller.php:543
+#: ../../include/onepoll.php:402
 msgid "From: "
 msgstr "De: "
 
@@ -6782,11 +6741,11 @@ msgstr "Bildo:"
 msgid "Please visit %s to approve or reject the suggestion."
 msgstr "Bonvolu viziti %s por aprobi aŭ malaprobi la sugeston."
 
-#: ../../include/items.php:2698
+#: ../../include/items.php:2714
 msgid "A new person is sharing with you at "
 msgstr "Nova persono kunhavigas kun vi ĉe "
 
-#: ../../include/items.php:2698
+#: ../../include/items.php:2714
 msgid "You have a new follower at "
 msgstr "Vi havas novan sekvanton ĉe "
 
@@ -6817,30 +6776,34 @@ msgid ""
 "form has been opened for too long (>3 hours) before submitting it."
 msgstr "La sekuriga ĵetono de la formo estis malĝusta. Tio verŝajne okazis ĉar la formo estis malfermita dum tro longa tempo (>3 horoj) antaŭ la sendado."
 
-#: ../../include/Contact.php:145 ../../include/conversation.php:809
+#: ../../include/Contact.php:111
+msgid "stopped following"
+msgstr "ne plu sekvas"
+
+#: ../../include/Contact.php:203 ../../include/conversation.php:817
 msgid "View Status"
 msgstr "Vidi Staton"
 
-#: ../../include/Contact.php:146 ../../include/conversation.php:810
+#: ../../include/Contact.php:204 ../../include/conversation.php:818
 msgid "View Profile"
 msgstr "Vidi Profilon"
 
-#: ../../include/Contact.php:147 ../../include/conversation.php:811
+#: ../../include/Contact.php:205 ../../include/conversation.php:819
 msgid "View Photos"
 msgstr "Vidi Bildojn"
 
-#: ../../include/Contact.php:148 ../../include/Contact.php:161
-#: ../../include/conversation.php:812
+#: ../../include/Contact.php:206 ../../include/Contact.php:219
+#: ../../include/conversation.php:820
 msgid "Network Posts"
 msgstr "Enretaj Afiŝoj"
 
-#: ../../include/Contact.php:149 ../../include/Contact.php:161
-#: ../../include/conversation.php:813
+#: ../../include/Contact.php:207 ../../include/Contact.php:219
+#: ../../include/conversation.php:821
 msgid "Edit Contact"
 msgstr "Redakti Kontakton"
 
-#: ../../include/Contact.php:150 ../../include/Contact.php:161
-#: ../../include/conversation.php:814
+#: ../../include/Contact.php:208 ../../include/Contact.php:219
+#: ../../include/conversation.php:822
 msgid "Send PM"
 msgstr "Sendi PM"
 
@@ -6853,17 +6816,17 @@ msgstr "afiŝo/elemento"
 msgid "%1$s marked %2$s's %3$s as favorite"
 msgstr "%1$s markis la %3$s de %2$s kiel preferita."
 
-#: ../../include/conversation.php:317 ../../include/conversation.php:575
+#: ../../include/conversation.php:317 ../../include/conversation.php:583
 msgid "Select"
 msgstr "Elekti"
 
-#: ../../include/conversation.php:334 ../../include/conversation.php:668
-#: ../../include/conversation.php:669
+#: ../../include/conversation.php:334 ../../include/conversation.php:676
+#: ../../include/conversation.php:677
 #, php-format
 msgid "View %s's profile @ %s"
 msgstr "Vidi la profilon de %s ĉe %s"
 
-#: ../../include/conversation.php:344 ../../include/conversation.php:680
+#: ../../include/conversation.php:344 ../../include/conversation.php:688
 #, php-format
 msgid "%s from %s"
 msgstr "%s de %s"
@@ -6895,209 +6858,267 @@ msgstr "Kunhavigi ĉi tiun"
 msgid "share"
 msgstr "kunhavigi"
 
-#: ../../include/conversation.php:588
+#: ../../include/conversation.php:556
+msgid "Bold"
+msgstr "Grasa"
+
+#: ../../include/conversation.php:557
+msgid "Italic"
+msgstr "Kursiva"
+
+#: ../../include/conversation.php:558
+msgid "Underline"
+msgstr "Substreki"
+
+#: ../../include/conversation.php:559
+msgid "Quote"
+msgstr "Citaĵo"
+
+#: ../../include/conversation.php:560
+msgid "Code"
+msgstr "Kodo"
+
+#: ../../include/conversation.php:561
+msgid "Image"
+msgstr "Bildo"
+
+#: ../../include/conversation.php:562
+msgid "Link"
+msgstr "Ligilo"
+
+#: ../../include/conversation.php:563
+msgid "Video"
+msgstr "Video"
+
+#: ../../include/conversation.php:596
 msgid "add star"
 msgstr "aldoni stelon"
 
-#: ../../include/conversation.php:589
+#: ../../include/conversation.php:597
 msgid "remove star"
 msgstr "forpreni stelon"
 
-#: ../../include/conversation.php:590
+#: ../../include/conversation.php:598
 msgid "toggle star status"
 msgstr "ŝalti/malŝalti steloŝtato"
 
-#: ../../include/conversation.php:593
+#: ../../include/conversation.php:601
 msgid "starred"
 msgstr "steligita"
 
-#: ../../include/conversation.php:594
+#: ../../include/conversation.php:602
 msgid "add tag"
 msgstr "aldoni markon"
 
-#: ../../include/conversation.php:598
+#: ../../include/conversation.php:606
 msgid "save to folder"
 msgstr "konservi en dosierujo"
 
-#: ../../include/conversation.php:670
+#: ../../include/conversation.php:678
 msgid "to"
 msgstr "al"
 
-#: ../../include/conversation.php:671
+#: ../../include/conversation.php:679
 msgid "Wall-to-Wall"
 msgstr "Muro-al-Muro"
 
-#: ../../include/conversation.php:672
+#: ../../include/conversation.php:680
 msgid "via Wall-To-Wall:"
 msgstr "tra Muro-al-Muro:"
 
-#: ../../include/conversation.php:717
+#: ../../include/conversation.php:725
 msgid "Delete Selected Items"
 msgstr "Forviŝi Elektitajn Elementojn"
 
-#: ../../include/conversation.php:868
+#: ../../include/conversation.php:876
 #, php-format
 msgid "%s likes this."
 msgstr "%s ŝatas tiun."
 
-#: ../../include/conversation.php:868
+#: ../../include/conversation.php:876
 #, php-format
 msgid "%s doesn't like this."
 msgstr "%s malŝatas tiun."
 
-#: ../../include/conversation.php:872
+#: ../../include/conversation.php:880
 #, php-format
 msgid "<span  %1$s>%2$d people</span> like this."
 msgstr "<span %1$s>%2$d homoj</span> ŝatas tiun."
 
-#: ../../include/conversation.php:874
+#: ../../include/conversation.php:882
 #, php-format
 msgid "<span  %1$s>%2$d people</span> don't like this."
 msgstr "<span %1$s>%2$d homoj</span>malŝatas tiun."
 
-#: ../../include/conversation.php:880
+#: ../../include/conversation.php:888
 msgid "and"
 msgstr "kaj"
 
-#: ../../include/conversation.php:883
+#: ../../include/conversation.php:891
 #, php-format
 msgid ", and %d other people"
 msgstr ", kaj %d aliaj homoj."
 
-#: ../../include/conversation.php:884
+#: ../../include/conversation.php:892
 #, php-format
 msgid "%s like this."
 msgstr "%s ŝatas tiun."
 
-#: ../../include/conversation.php:884
+#: ../../include/conversation.php:892
 #, php-format
 msgid "%s don't like this."
 msgstr "%s malŝatas tiun."
 
-#: ../../include/conversation.php:909
+#: ../../include/conversation.php:917
 msgid "Visible to <strong>everybody</strong>"
 msgstr "Videbla al <strong>ĉiuj</strong>"
 
-#: ../../include/conversation.php:911
+#: ../../include/conversation.php:919
 msgid "Please enter a video link/URL:"
 msgstr "Bonvolu entajpi ligilon/adreson de video:"
 
-#: ../../include/conversation.php:912
+#: ../../include/conversation.php:920
 msgid "Please enter an audio link/URL:"
 msgstr "Bonvolu entajpi ligilon/adreson de sono:"
 
-#: ../../include/conversation.php:913
+#: ../../include/conversation.php:921
 msgid "Tag term:"
 msgstr "Markfrazo:"
 
-#: ../../include/conversation.php:915
+#: ../../include/conversation.php:923
 msgid "Where are you right now?"
 msgstr "Kie vi estas nun?"
 
-#: ../../include/conversation.php:958
+#: ../../include/conversation.php:966
 msgid "upload photo"
 msgstr "alŝuti bildon"
 
-#: ../../include/conversation.php:960
+#: ../../include/conversation.php:968
 msgid "attach file"
 msgstr "kunsendi dosieron"
 
-#: ../../include/conversation.php:962
+#: ../../include/conversation.php:970
 msgid "web link"
 msgstr "TTT ligilo"
 
-#: ../../include/conversation.php:963
+#: ../../include/conversation.php:971
 msgid "Insert video link"
 msgstr "Alglui ligilon de video"
 
-#: ../../include/conversation.php:964
+#: ../../include/conversation.php:972
 msgid "video link"
 msgstr "video ligilo"
 
-#: ../../include/conversation.php:965
+#: ../../include/conversation.php:973
 msgid "Insert audio link"
 msgstr "Alglui ligilon de sono"
 
-#: ../../include/conversation.php:966
+#: ../../include/conversation.php:974
 msgid "audio link"
 msgstr "sono ligilo"
 
-#: ../../include/conversation.php:968
+#: ../../include/conversation.php:976
 msgid "set location"
 msgstr "agordi lokon"
 
-#: ../../include/conversation.php:970
+#: ../../include/conversation.php:978
 msgid "clear location"
 msgstr "forviŝi lokon"
 
-#: ../../include/conversation.php:977
+#: ../../include/conversation.php:985
 msgid "permissions"
 msgstr "permesoj"
 
-#: ../../boot.php:494
+#: ../../boot.php:505
 msgid "Delete this item?"
 msgstr "Forviŝi ĉi tiun elementon?"
 
-#: ../../boot.php:497
+#: ../../boot.php:508
 msgid "show fewer"
 msgstr "montri malpli"
 
-#: ../../boot.php:774
+#: ../../boot.php:681
+#, php-format
+msgid "Update %s failed. See error logs."
+msgstr "Malsukcesis ĝisdatigi %s. Vidu la protokolojn."
+
+#: ../../boot.php:683
+#, php-format
+msgid "Update Error at %s"
+msgstr "Eraro dum ĝisdatigo ĉe %s"
+
+#: ../../boot.php:783
 msgid "Create a New Account"
 msgstr "Krei Novan Konton"
 
-#: ../../boot.php:798
+#: ../../boot.php:807
 msgid "Nickname or Email address: "
 msgstr "Kaŝnomo aŭ retpoŝtadreso:"
 
-#: ../../boot.php:799
+#: ../../boot.php:808
 msgid "Password: "
 msgstr "Pasvorto:"
 
-#: ../../boot.php:802
+#: ../../boot.php:811
 msgid "Or login using OpenID: "
 msgstr "Aŭ ensaluti per OpenID:"
 
-#: ../../boot.php:808
+#: ../../boot.php:817
 msgid "Forgot your password?"
 msgstr "Ĉu vi vorgesis vian pasvorton?"
 
-#: ../../boot.php:975
+#: ../../boot.php:984
 msgid "Edit profile"
 msgstr "Redakti profilon"
 
-#: ../../boot.php:1035
+#: ../../boot.php:1044
 msgid "Message"
 msgstr "Mesaĝo"
 
-#: ../../boot.php:1151 ../../boot.php:1223
+#: ../../boot.php:1160 ../../boot.php:1236
 msgid "g A l F d"
 msgstr "\\j\\e \\l\\a G\\a \\h\\o\\r\\o, l F d"
 
-#: ../../boot.php:1152 ../../boot.php:1224
+#: ../../boot.php:1161 ../../boot.php:1237
 msgid "F d"
 msgstr "F d"
 
-#: ../../boot.php:1177
+#: ../../boot.php:1206 ../../boot.php:1277
+msgid "[today]"
+msgstr "[hodiaŭ]"
+
+#: ../../boot.php:1218
 msgid "Birthday Reminders"
 msgstr "Memorigilo pri naskiĝtagoj"
 
-#: ../../boot.php:1178
+#: ../../boot.php:1219
 msgid "Birthdays this week:"
 msgstr "Naskiĝtagoj ĉi-semajne:"
 
-#: ../../boot.php:1201 ../../boot.php:1266
-msgid "[today]"
-msgstr "[hodiaŭ]"
+#: ../../boot.php:1270
+msgid "[No description]"
+msgstr "[Neniu priskribo]"
 
-#: ../../boot.php:1247
+#: ../../boot.php:1288
 msgid "Event Reminders"
 msgstr "Memorigiloj pri Okazoj"
 
-#: ../../boot.php:1248
+#: ../../boot.php:1289
 msgid "Events this week:"
 msgstr "Okazoj ĉi-semajne:"
 
-#: ../../boot.php:1260
-msgid "[No description]"
-msgstr "[Neniu priskribo]"
+#: ../../boot.php:1475
+msgid "Status Messages and Posts"
+msgstr "Ŝtatmesaĝoj kaj Afiŝoj"
+
+#: ../../boot.php:1481
+msgid "Profile Details"
+msgstr "Profildetaloj"
+
+#: ../../boot.php:1496
+msgid "Events and Calendar"
+msgstr "Okazoj kaj Kalendaro"
+
+#: ../../boot.php:1502
+msgid "Only You Can See This"
+msgstr "Nur Vi Povas Vidi Tiun"
index 78d6b05ce87dc326449b78779fc9f41036b719d9..dd6fd8215f90fe28780a511a588a626801f8b2a6 100644 (file)
@@ -301,7 +301,8 @@ $a->strings["Contact has been blocked"] = "Kontakto estas blokita.";
 $a->strings["Contact has been unblocked"] = "Kontakto estas malblokita.";
 $a->strings["Contact has been ignored"] = "Kontakto estas ignorita.";
 $a->strings["Contact has been unignored"] = "Kontakto estas malignorita.";
-$a->strings["stopped following"] = "ne plu sekvas";
+$a->strings["Contact has been archived"] = "Enarkivigis kontakton";
+$a->strings["Contact has been unarchived"] = "Elarkivigis kontakton";
 $a->strings["Contact has been removed."] = "Kontakto estas forigita.";
 $a->strings["You are mutual friends with %s"] = "Vi estas reciproka amiko de %s";
 $a->strings["You are sharing with %s"] = "Vi kunhavigas kun %s";
@@ -319,8 +320,14 @@ $a->strings["%d contact in common"] = array(
 $a->strings["View all contacts"] = "Vidi ĉiujn kontaktojn";
 $a->strings["Unblock"] = "Malbloki";
 $a->strings["Block"] = "Bloki";
+$a->strings["Toggle Blocked status"] = "Ŝalti/malŝalti Blokitan staton";
 $a->strings["Unignore"] = "Malignori";
+$a->strings["Toggle Ignored status"] = "Ŝalti/malŝalti Ignoritan staton";
+$a->strings["Unarchive"] = "Elarkivigi";
+$a->strings["Archive"] = "Enarkivigi";
+$a->strings["Toggle Archive status"] = "Ŝalti/malŝalti Enarkivigitan staton";
 $a->strings["Repair"] = "Ripari";
+$a->strings["Advanced Contact Settings"] = "Specialaj Kontaktagordoj";
 $a->strings["Contact Editor"] = "Kontakta redaktilo.";
 $a->strings["Profile Visibility"] = "Videbleco de profilo";
 $a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Bonvolu elekti la profilon kiu vi volas montri al %s aspektinde kiam sekure aspektante vian profilon.";
@@ -337,13 +344,22 @@ $a->strings["Update public posts"] = "Ĝisdatigi publikajn afiŝojn";
 $a->strings["Update now"] = "Ĝisdatigi nun";
 $a->strings["Currently blocked"] = "Nuntempe blokata";
 $a->strings["Currently ignored"] = "Nuntempe ignorata";
+$a->strings["Currently archived"] = "Nuntempe enarkivigita";
 $a->strings["Replies/likes to your public posts <strong>may</strong> still be visible"] = "Rispondoj/ŝataĵo al viaj publikaj afiŝoj <strong>eble</strong> plu estos videbla";
 $a->strings["Suggestions"] = "Sugestoj";
+$a->strings["Suggest potential friends"] = "Sugesti amikojn";
 $a->strings["All Contacts"] = "Ĉiuj Kontaktoj";
-$a->strings["Unblocked Contacts"] = "Malblokitaj Kontaktoj";
-$a->strings["Blocked Contacts"] = "Blokitaj Kontaktoj";
-$a->strings["Ignored Contacts"] = "Ignoritaj Kontaktoj";
-$a->strings["Hidden Contacts"] = "Kaŝitaj Kontaktoj";
+$a->strings["Show all contacts"] = "Montri ĉiujn kontaktojn";
+$a->strings["Unblocked"] = "Malblokita";
+$a->strings["Only show unblocked contacts"] = "Nur montri neblokitajn kontaktojn";
+$a->strings["Blocked"] = "Blokita";
+$a->strings["Only show blocked contacts"] = "Nur montri blokitajn kontaktojn";
+$a->strings["Ignored"] = "Ignorita";
+$a->strings["Only show ignored contacts"] = "Nur montri ignoritajn kontaktojn";
+$a->strings["Archived"] = "Enarkivigita";
+$a->strings["Only show archived contacts"] = "Nur montri enarkivigitajn kontaktojn";
+$a->strings["Hidden"] = "Kaŝita";
+$a->strings["Only show hidden contacts"] = "Nur montri kaŝitajn kontaktojn";
 $a->strings["Mutual Friendship"] = "Reciproka amikeco";
 $a->strings["is a fan of yours"] = "estas admiranto de vi";
 $a->strings["you are a fan of"] = "vi estas admiranto de";
@@ -373,6 +389,7 @@ $a->strings["Connector settings"] = "Konektiloj";
 $a->strings["Plugin settings"] = "Kromprogramoj";
 $a->strings["Connected apps"] = "Konektitaj programoj";
 $a->strings["Export personal data"] = "Eksporto";
+$a->strings["Remove account"] = "Forigi konton";
 $a->strings["Settings"] = "Agordoj";
 $a->strings["Missing some important data!"] = "Mankas importantaj datumoj!";
 $a->strings["Update"] = "Ĝisdatigi";
@@ -476,6 +493,7 @@ $a->strings["Maximum private messages per day from unknown people:"] = "Taga mak
 $a->strings["Notification Settings"] = "Agordoj pri Atentigoj";
 $a->strings["By default post a status message when:"] = "Defaŭlte afiŝi statmesaĝon okaze de:";
 $a->strings["accepting a friend request"] = "akcepti kontaktpeton";
+$a->strings["joining a forum/community"] = "aliĝi forumon/komunumon";
 $a->strings["making an <em>interesting</em> profile change"] = "fari <em>interesan</em> profilŝanĝon";
 $a->strings["Send a notification email when:"] = "Sendu atentiga repoŝton se:";
 $a->strings["You receive an introduction"] = "Vi ricevas inviton";
@@ -494,10 +512,16 @@ $a->strings["Remove term"] = "Forviŝu terminon";
 $a->strings["Saved Searches"] = "Konservitaj Serĉadoj";
 $a->strings["add"] = "aldoni";
 $a->strings["Commented Order"] = "Komenta Ordo";
+$a->strings["Sort by Comment Date"] = "Ordigi laŭ Dato de Komento";
 $a->strings["Posted Order"] = "Afiŝita Ordo";
+$a->strings["Sort by Post Date"] = "Ordigi laŭ Dato de Afiŝado";
+$a->strings["Posts that mention or involve you"] = "Afiŝoj menciantaj vin aŭ pri vi";
 $a->strings["New"] = "Nova";
+$a->strings["Activity Stream - by date"] = "Fluo de Aktiveco - laŭ dato";
 $a->strings["Starred"] = "Steligita";
+$a->strings["Favourite Posts"] = "Favorigitaj Afiŝoj";
 $a->strings["Shared Links"] = "Kunhavigitaj Ligiloj";
+$a->strings["Interesting Links"] = "Interesaj Ligiloj";
 $a->strings["Warning: This group contains %s member from an insecure network."] = array(
        0 => "Averto: La grupo enhavas %s membron el nesekuraj retejoj.",
        1 => "Averto: La grupo enhavas %s membrojn el nesekuraj retejoj.",
@@ -659,6 +683,8 @@ $a->strings["Site"] = "Retejo";
 $a->strings["Users"] = "Uzantoj";
 $a->strings["Plugins"] = "Kromprogramoj";
 $a->strings["Themes"] = "Etosoj";
+$a->strings["DB updates"] = "DB ĝisdatigoj";
+$a->strings["Software Update"] = "Friendica Ĝisdatigoj";
 $a->strings["Logs"] = "Protokoloj";
 $a->strings["User registrations waiting for confirmation"] = "Uzantaj registradoj atendante konfirmon";
 $a->strings["Administration"] = "Administrado";
@@ -723,6 +749,18 @@ $a->strings["Proxy user"] = "Uzantnomo por retperanto";
 $a->strings["Proxy URL"] = "URL adreso de retperanto";
 $a->strings["Network timeout"] = "Reta tempolimo";
 $a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Valoro en sekundoj. Uzu 0 por mallimitigi (ne rekomendata).";
+$a->strings["Delivery interval"] = "Intervalo de liverado";
+$a->strings["Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers."] = "Malfruigi fonan liveradon dum tiom da sekundoj por malpliigi la ŝargon de la sistemo. Rekomendoj: 4-5 por komunaj serviloj, 2-3 por virtualaj privataj serviloj, 0-1 por grandaj dediĉitaj serviloj.";
+$a->strings["Update has been marked successful"] = "Ĝisdatigo estas markita sukcesa";
+$a->strings["Executing %s failed. Check system logs."] = "Ne sukcesis plenumi %s. Kontrolu la sistemprotokolojn.";
+$a->strings["Update %s was successfully applied."] = "Sukcese aplikis la ĝisdatigo %s.";
+$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "Ĝisdatigo %s ne liveris elirstaton. ";
+$a->strings["Update function %s could not be found."] = "Ne troveblas ĝisdatigo funkcio %s.";
+$a->strings["No failed updates."] = "Neniom da malsukcesaj ĝisdatigoj.";
+$a->strings["Failed Updates"] = "Malsukcesaj Ĝisdatigoj";
+$a->strings["This does not include updates prior to 1139, which did not return a status."] = "Ne inkluzivas ĝisdatigojn antaŭ 1139, kiuj ne liveris elirstaton.";
+$a->strings["Mark success (if update was manually applied)"] = "Marki sukcesa (se la ĝisdatigo estas instalita mane)";
+$a->strings["Attempt to execute this update step automatically"] = "Provi automate plenumi ĉi tian paŝon de la ĝisdatigo.";
 $a->strings["%s user blocked/unblocked"] = array(
        0 => "Blokis/malblokis %s uzanton",
        1 => "Blokis/malblokis %s uzantojn",
@@ -814,7 +852,9 @@ $a->strings["Homepage"] = "Hejmpaĝo";
 $a->strings["Interests"] = "Interesoj";
 $a->strings["Location"] = "Loko";
 $a->strings["Profile updated."] = "Profilo ĝisdatigita.";
+$a->strings[" and "] = " kaj ";
 $a->strings["public profile"] = "publika profilo";
+$a->strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s ŝanĝis %2\$s al &ldquo;%3\$s&rdquo;";
 $a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s havas ĝisdatigigan %2\$s, ŝanĝas %3\$s.";
 $a->strings["Profile deleted."] = "Profilo forviŝita.";
 $a->strings["Profile-"] = "Profilo-";
@@ -877,7 +917,7 @@ $a->strings["Existing Page Delegates"] = "Estantaj Delegitoj de la Paĝo";
 $a->strings["Potential Delegates"] = "Eblaj Delegitoj";
 $a->strings["Add"] = "Aldoni";
 $a->strings["No entries."] = "Neniom da afiŝoj.";
-$a->strings["Friend Suggestions"] = "Amikosugestoj.";
+$a->strings["Friend Suggestions"] = "Amikosugestoj";
 $a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Neniu sugestoj disponeblas. Se ĉi tiu estas nova retejo, bonvolu reprovi post 24 horoj.";
 $a->strings["Ignore/Hide"] = "Ignori/Kaŝi";
 $a->strings["Global Directory"] = "Tutmonda Katalogo";
@@ -921,6 +961,7 @@ $a->strings["The ID provided by your system is a duplicate on our system. It sho
 $a->strings["Unable to set your contact credentials on our system."] = "Ne sukcesis agordi la legitimaĵojn de via kontakto ĉe nia sistemo.";
 $a->strings["Unable to update your contact profile details on our system"] = "Neeblas ĝisdatigi viajn profildetalojn ĉe nia sistemo.";
 $a->strings["Connection accepted at %s"] = "Konekto akceptita je %s";
+$a->strings["%1\$s has joined %2\$s"] = "%1\$s aliĝis al %2\$s";
 $a->strings["Facebook disabled"] = "Facebook malŝaltita";
 $a->strings["Updating contacts"] = "Mi ĝisdatigas la kontaktojn.";
 $a->strings["Facebook API key is missing."] = "La API ŝlosilo de Facebook ne estas konata ĉi tie.";
@@ -947,7 +988,7 @@ $a->strings["The given API Key seems to work correctly."] = "La API ŝlosilo ŝa
 $a->strings["The correctness of the API Key could not be detected. Somthing strange's going on."] = "Ne povis kontroli la ĝustecon de la API ŝlosilo. Ia stranga afero okazas. ";
 $a->strings["App-ID / API-Key"] = "Programo ID / API Ŝlosilo";
 $a->strings["Application secret"] = "Programo sekreto";
-$a->strings["Polling Interval (min. %1\$s minutes)"] = "Intervalo por la enketilo (poller intervalo, minimume %1\$s mintuoj) ";
+$a->strings["Polling Interval in minutes (minimum %1\$s minutes)"] = "Intervalo de enketo en minutoj (minimume %1\$s minutoj)";
 $a->strings["Synchronize comments (no comments on Facebook are missed, at the cost of increased system load)"] = "Sinkronigi komentojn (vi ricevas ĉiujn komentojn de Facebook, sed la ŝargo de la sistemo iom kreskas)";
 $a->strings["Real-Time Updates"] = "Realtempaj Ĝisdatigoj";
 $a->strings["Real-Time Updates are activated."] = "Realtempaj Ĝisdatigoj estas ŝaltita";
@@ -975,6 +1016,7 @@ $a->strings["%d person doesn't like this"] = array(
        0 => "%d homo malŝatas tiun",
        1 => "%d homo malŝatas tiun",
 );
+$a->strings["Get added to this list!"] = "Iĝu membro de ĉi tiu listo!";
 $a->strings["Generate new key"] = "Generi novan ĉifroŝlosilon";
 $a->strings["Widgets key"] = "Ŝlosilo por fenestraĵoj";
 $a->strings["Widgets available"] = "Disponeblaj fenestraĵoj";
@@ -999,6 +1041,7 @@ $a->strings["Use /expression/ to provide regular expressions"] = "Uzu /expr/ por
 $a->strings["NSFW Settings saved."] = "NSFW agordoj konservitaj.";
 $a->strings["%s - Click to open/close"] = "%s - Klaku por malfermi/fermi";
 $a->strings["Forums"] = "Forumoj";
+$a->strings["show more"] = "montri pli";
 $a->strings["Planets Settings"] = "Agordo pri Planets";
 $a->strings["Enable Planets Plugin"] = "Ŝalti la Planets kromprogamon";
 $a->strings["Login"] = "Ensaluti";
@@ -1064,12 +1107,12 @@ $a->strings["The impressum addon needs to be configured!<br />Please add at leas
 $a->strings["The page operators name."] = "La nomo de la funkciigisto de la retejo.";
 $a->strings["Site Owners Profile"] = "Profilo de la Proprietulo de la Retejo";
 $a->strings["Profile address of the operator."] = "La profilo de la funkciigisto de la retejo.";
-$a->strings["How to contact the operator via snail mail."] = "Kiel kontakti la funkciigiston de la retejo tra paperpoŝto.";
+$a->strings["How to contact the operator via snail mail. You can use BBCode here."] = "Kiel poŝte kontakti la funkciigisto de la retejo. Vi eblas uzi BBCode ĉi tie.";
 $a->strings["Notes"] = "Notoj";
-$a->strings["Additional notes that are displayed beneath the contact information."] = "Pliaj notoj kiuj estas montrigota malsupre la kontaktinformojn.";
+$a->strings["Additional notes that are displayed beneath the contact information. You can use BBCode here."] = "Pli da notoj kiuj aperas sub la kontaktinformoj. Vi eblas uzi BBCode ĉi tie.";
 $a->strings["How to contact the operator via email. (will be displayed obfuscated)"] = "Kiel kontakti la funkciigiston de la retejo tra retpoŝto. (montriĝos vuale) ";
 $a->strings["Footer note"] = "Paĝpiednoto";
-$a->strings["Text for the footer."] = "Teksto por la paĝpiedo.";
+$a->strings["Text for the footer. You can use BBCode here."] = "Teksto por la paĝpiedo. Vie eblas uzi BBCode ĉi tie.";
 $a->strings["Report Bug"] = "Skribi cimraporton";
 $a->strings["\"Blockem\" Settings"] = "\"Blockem\" Agordoj";
 $a->strings["Comma separated profile URLS to block"] = "Blokotaj URL adresoj, disigita per komo";
@@ -1169,7 +1212,6 @@ $a->strings["\"Show more\" Settings"] = "\"Montri pli\" agordoj";
 $a->strings["Enable Show More"] = "Ŝalti \"montri pli\"";
 $a->strings["Cutting posts after how much characters"] = "Limitigi afiŝojn al kiom da literoj";
 $a->strings["Show More Settings saved."] = "Konservis \"montri pli\" agordojn.";
-$a->strings["show more"] = "montri pli";
 $a->strings["This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> analytics tool."] = "Ĉi retejo uzas <a href='http://www.piwik.org'>Piwik</a> kiel retuma analizilo.";
 $a->strings["If you do not want that your visits are logged this way you <a href='%s'>can set a cookie to prevent Piwik from tracking further visits of the site</a> (opt-out)."] = "Se ni ne protokolu viajn vizitojn tiel, vi <a href='%s'>povas agordi kuketon por malpermesi Piwik al plu protokoli pliajn vizitojn</a> (mem-for-elekti / opt-out).";
 $a->strings["Piwik Base URL"] = "Piwik baza URL adreso";
@@ -1210,6 +1252,19 @@ $a->strings["Enable Posterous Post Plugin"] = "Ŝalti la Poserous-afiŝo krompro
 $a->strings["Posterous login"] = "Posterous salutnomo";
 $a->strings["Posterous password"] = "Posterous pasvorto";
 $a->strings["Post to Posterous by default"] = "Defaŭlte afiŝi al Posterous";
+$a->strings["Theme settings"] = "Agordoj pri la etoso";
+$a->strings["Set resize level for images in posts and comments (width and height)"] = "Agordi la regrandignivelo por bildoj en afiŝoj kaj komentoj (larĝo kaj alto)";
+$a->strings["Set font-size for posts and comments"] = "Agordi la tiparan grandon por afiŝoj kaj komentoj";
+$a->strings["Color scheme"] = "Kolorskemo";
+$a->strings["Your posts and conversations"] = "Viaj afiŝoj kaj komunikadoj";
+$a->strings["Your profile page"] = "Via profilo";
+$a->strings["Your contacts"] = "Viaj kontaktoj";
+$a->strings["Your photos"] = "Viaj bildoj";
+$a->strings["Your events"] = "Viaj okazoj";
+$a->strings["Personal notes"] = "Personaj notoj";
+$a->strings["Your personal photos"] = "Viaj personaj bildoj";
+$a->strings["Community Pages"] = "Komunumaj paĝoj";
+$a->strings["Community Profiles"] = "Komunumaj Profiloj";
 $a->strings["Last users"] = "Ĵusaj uzantoj";
 $a->strings["Last likes"] = "Ĵusaj ŝatitaj elementoj";
 $a->strings["Last photos"] = "Ĵusaj bildoj";
@@ -1217,25 +1272,15 @@ $a->strings["Find Friends"] = "Trovi Amikojn";
 $a->strings["Local Directory"] = "Loka Katalogo";
 $a->strings["Similar Interests"] = "Similaj Interesoj";
 $a->strings["Invite Friends"] = "Inviti amikojn";
-$a->strings["Community Pages"] = "Komunumaj paĝoj";
 $a->strings["Help or @NewHere ?"] = "Helpu aŭ @NewHere ?";
 $a->strings["Connect Services"] = "Konekti Servojn";
-$a->strings["Your posts and conversations"] = "Viaj afiŝoj kaj komunikadoj";
-$a->strings["Your profile page"] = "Via profilo";
-$a->strings["Your contacts"] = "Viaj kontaktoj";
-$a->strings["Your photos"] = "Viaj bildoj";
-$a->strings["Your events"] = "Viaj okazoj";
-$a->strings["Personal notes"] = "Personaj notoj";
-$a->strings["Your personal photos"] = "Viaj personaj bildoj";
-$a->strings["Theme settings"] = "Agordoj pri la etoso";
-$a->strings["Set font-size for posts and comments"] = "Agordi la tiparan grandon por afiŝoj kaj komentoj";
 $a->strings["Set line-height for posts and comments"] = "Agordi la linigrandon por afiŝoj kaj komentoj";
 $a->strings["Set resolution for middle column"] = "Agordi la distingivon por la meza kolumno";
 $a->strings["Set color scheme"] = "Agordi Kolorskemon";
 $a->strings["Alignment"] = "Ĝisrandigo";
 $a->strings["Left"] = "Maldekstren";
 $a->strings["Center"] = "Centren";
-$a->strings["Color scheme"] = "Kolorskemo";
+$a->strings["Set colour scheme"] = "Agordi Kolorskemon";
 $a->strings["Gender:"] = "Sekso:";
 $a->strings["j F, Y"] = "j F, Y";
 $a->strings["j F"] = "j F";
@@ -1434,6 +1479,10 @@ $a->strings["All Networks"] = "Ĉiuj Retoj";
 $a->strings["Saved Folders"] = "Konservitaj Dosierujoj";
 $a->strings["Everything"] = "Ĉio";
 $a->strings["Categories"] = "Kategorioj";
+$a->strings["%d friend in common"] = array(
+       0 => "%d komuna amiko",
+       1 => "%d komunaj amikoj",
+);
 $a->strings["Logged out."] = "Elsalutita.";
 $a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Okazis problemo ensalutinta kun via OpenID. Bonvolu kontroli la ID.";
 $a->strings["The error message was:"] = "La erarmesaĝo estis:";
@@ -1511,6 +1560,7 @@ $a->strings["Welcome "] = "Bonvenon ";
 $a->strings["Please upload a profile photo."] = "Bonvolu alŝuti profilbildon.";
 $a->strings["Welcome back "] = "Bonvenon ";
 $a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "La sekuriga ĵetono de la formo estis malĝusta. Tio verŝajne okazis ĉar la formo estis malfermita dum tro longa tempo (>3 horoj) antaŭ la sendado.";
+$a->strings["stopped following"] = "ne plu sekvas";
 $a->strings["View Status"] = "Vidi Staton";
 $a->strings["View Profile"] = "Vidi Profilon";
 $a->strings["View Photos"] = "Vidi Bildojn";
@@ -1531,6 +1581,14 @@ $a->strings["like"] = "ŝati";
 $a->strings["dislike"] = "malŝati";
 $a->strings["Share this"] = "Kunhavigi ĉi tiun";
 $a->strings["share"] = "kunhavigi";
+$a->strings["Bold"] = "Grasa";
+$a->strings["Italic"] = "Kursiva";
+$a->strings["Underline"] = "Substreki";
+$a->strings["Quote"] = "Citaĵo";
+$a->strings["Code"] = "Kodo";
+$a->strings["Image"] = "Bildo";
+$a->strings["Link"] = "Ligilo";
+$a->strings["Video"] = "Video";
 $a->strings["add star"] = "aldoni stelon";
 $a->strings["remove star"] = "forpreni stelon";
 $a->strings["toggle star status"] = "ŝalti/malŝalti steloŝtato";
@@ -1566,6 +1624,8 @@ $a->strings["clear location"] = "forviŝi lokon";
 $a->strings["permissions"] = "permesoj";
 $a->strings["Delete this item?"] = "Forviŝi ĉi tiun elementon?";
 $a->strings["show fewer"] = "montri malpli";
+$a->strings["Update %s failed. See error logs."] = "Malsukcesis ĝisdatigi %s. Vidu la protokolojn.";
+$a->strings["Update Error at %s"] = "Eraro dum ĝisdatigo ĉe %s";
 $a->strings["Create a New Account"] = "Krei Novan Konton";
 $a->strings["Nickname or Email address: "] = "Kaŝnomo aŭ retpoŝtadreso:";
 $a->strings["Password: "] = "Pasvorto:";
@@ -1575,9 +1635,13 @@ $a->strings["Edit profile"] = "Redakti profilon";
 $a->strings["Message"] = "Mesaĝo";
 $a->strings["g A l F d"] = "\\j\\e \\l\\a G\\a \\h\\o\\r\\o, l F d";
 $a->strings["F d"] = "F d";
+$a->strings["[today]"] = "[hodiaŭ]";
 $a->strings["Birthday Reminders"] = "Memorigilo pri naskiĝtagoj";
 $a->strings["Birthdays this week:"] = "Naskiĝtagoj ĉi-semajne:";
-$a->strings["[today]"] = "[hodiaŭ]";
+$a->strings["[No description]"] = "[Neniu priskribo]";
 $a->strings["Event Reminders"] = "Memorigiloj pri Okazoj";
 $a->strings["Events this week:"] = "Okazoj ĉi-semajne:";
-$a->strings["[No description]"] = "[Neniu priskribo]";
+$a->strings["Status Messages and Posts"] = "Ŝtatmesaĝoj kaj Afiŝoj";
+$a->strings["Profile Details"] = "Profildetaloj";
+$a->strings["Events and Calendar"] = "Okazoj kaj Kalendaro";
+$a->strings["Only You Can See This"] = "Nur Vi Povas Vidi Tiun";
diff --git a/view/failed_updates.tpl b/view/failed_updates.tpl
new file mode 100644 (file)
index 0000000..c6e4cb0
--- /dev/null
@@ -0,0 +1,17 @@
+<h2>$banner</h2>
+
+<div id="failed_updates_desc">$desc</div>
+
+{{ if $failed }}
+{{ for $failed as $f }}
+
+<h4>$f</h4>
+<ul>
+<li><a href="$base/admin/dbsync/mark/$f">$mark</a></li>
+<li><a href="$base/admin/dbsync/$f">$apply</a></li>
+</ul>
+
+<hr />
+{{ endfor }}
+{{ endif }}
+
index ee98d98de63bb179fbb65195aa4f3783f239baee..762a0c4cdd16a7412068bf52330c4de645ba50c4 100644 (file)
@@ -1,13 +1,13 @@
 
-Cher $username,
+Cher(e) $username,
 
-       '$from' a commenté sur un élément ou une conversation que vous suivez.
+       « $from » a commenté un élément ou une conversation que vous suivez.
 
 -----
 $body
 -----
 
-Connectez-vous à $siteurl si vous souhaitez voir la conversation complète:
+Connectez-vous à $siteurl si vous souhaitez voir la conversation complète :
 
 $display
 
index 1d904c53c6e00802d2e99c8fe15dd9377817c542..b56ef9e647b0a132cfe33ae980c8854d21a1dcf7 100644 (file)
@@ -1,15 +1,15 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
 <html>
 <head>
-       <title>Friendika Message</title>
+       <title>Message de Friendica</title>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
 </head>
 <body>
 <table style="border:1px solid #ccc">
        <tbody>
-       <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/friendika-32.png'><span style="padding:7px;">Friendika</span></td></tr>
+       <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/friendika-32.png'><span style="padding:7px;">Friendica</span></td></tr>
 
-       <tr><td style="padding-top:22px;" colspan="2">$from a commenté sur un élément ou une conversation que vous suivez.</td></tr>
+       <tr><td style="padding-top:22px;" colspan="2">$from a commenté un élément ou une conversation que vous suivez.</td></tr>
 
 
        <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
index d466321383b981860bc2e7a09481778d08d45051..876b53e12670ba5655607b06e028414217266fe1 100644 (file)
@@ -1,12 +1,13 @@
-Cher $username,
 
-       '$from' a comment\8e sur un \8el\8ement ou une conversation que vous suivez.
+Cher(e) $username,
+
+       « $from » a commenté un élé\8ement ou une conversation que vous suivez.
 
 -----
 $body
 -----
 
-Connectez-vous \88 $siteurl si vous souhaitez voir la conversation compl\8fte:
+Connectez-vous à $siteurl si vous souhaitez voir la conversation complète :
 
 $display
 
index c77a3e427f1d2b6c8785e5498f2697f49a4933ec..10d0b343bac3f1866edfe3a1772f7b2ab0769b1c 100644 (file)
@@ -1,9 +1,9 @@
 
-Chèr(e) $myname,
+Cher(e) $myname,
 
 Une nouvelle personne - $requestor - vous suit désormais sur $sitename.
 
-Vous pouvez visiter son profil sur $url.
+Vous pouvez consulter son profil sur $url.
 
 Merci de vous connecter à votre site pour approuver ou ignorer/annuler cette demande.
 
index 9b9c551fe01597ab576ddb36a0c1122e3c081746..1f2553b5eb1164f4b7eb3196992cc670c88fc917 100644 (file)
@@ -1,20 +1,20 @@
 
-Chèr(e) $username,
+Cher(e) $username,
 
-       Grande nouvelle... '$fn' (de '$dfrn_url') à accepté votre 
-demande de connexion à '$sitename'.
+       Grande nouvelle… « $fn » (de « $dfrn_url ») a accepté votre 
+demande de connexion à « $sitename ».
 
 Vous êtes désormais dans une relation réciproque et pouvez échanger des 
 photos, des humeurs et des messages sans restriction.
 
-Merci de visiter votre page 'Contacts' sur $sitename pour toute 
+Merci de visiter votre page « Contacts » sur $sitename pour toute 
 modification que vous souhaiteriez apporter à cette relation.
 
 $siteurl
 
 [Par exemple, vous pouvez créer un profil spécifique avec des informations
 cachées au grand public - et ainsi assigner des droits privilégiés à 
-'$fn']/
+« $fn »]/
 
 Sincèremment,
 
index b8a7a345741b0488158ae28eff5ffae7eef15c93..f698cfeb77704b5043e9fedde3f61ecb492e0e1a 100644 (file)
@@ -1,19 +1,19 @@
 
-Chèr(e) $username,
+Cher(e) $username,
 
-       '$fn' du site '$dfrn_url' a accepté votre
-demande de mise en relation sur '$sitename'.
+       « $fn » du site « $dfrn_url » a accepté votre
+demande de mise en relation sur « $sitename ».
 
-       '$fn' a décidé de vous accepter comme "fan", ce qui restreint
+       « $fn » a décidé de vous accepter comme « fan », ce qui restreint
 certains de vos moyens de communication - tels que les messages privés et
 certaines interactions avec son profil. S'il s'agit de la page d'une
 célébrité et/ou communauté, ces réglages ont été définis automatiquement.
 
-       '$fn' pourra choisir d'étendre votre relation à quelque-chose de 
+       « $fn » pourra choisir d'étendre votre relation à quelque chose de 
 plus permissif dans l'avenir.
 
-       Vous allez commencer à recevoir les mises-à-jour publiques du 
-statut de '$fn', lesquelles apparaîtront sur votre page 'Réseau' sur
+       Vous allez commencer à recevoir les mises à jour publiques du 
+statut de « $fn », lesquelles apparaîtront sur votre page « Réseau » sur
 
 $siteurl
 
index 168e9a5e22c39043c7aea7908befc7db7e3aff21..96c11d723bbf4ff16f8ec0fdbe130e84f2b75053 100644 (file)
@@ -1,6 +1,7 @@
 
-Chèr(e) $username,
-       Nous avons récemment reçu, chez $sitename, un demande de remise
+Cher(e) $username,
+
+       Nous avons récemment reçu, chez $sitename, une demande de remise
 à zéro du mot de passe protégeant votre compte. Pour confirmer cette 
 demande, merci de cliquer sur le lien de vérification suivant, ou de le
 coller dans la barre d'adresse de votre navigateur web.
@@ -11,7 +12,7 @@ le lien en question, et d'ignorer/supprimer ce courriel.
 Votre mot de passe ne sera réinitialisé qu'une fois que nous aurons pu
 nous assurer que vous êtes bien à l'origine de cette demande.
 
-Merci de suivre le lien suivant pour confirmer votre identité:
+Merci de suivre le lien suivant pour confirmer votre identité :
 
 $reset_link
 
@@ -20,10 +21,10 @@ Vous recevrez en retour un message avec votre nouveau mot de passe.
 Vous pourrez ensuite changer ce mot de passe, après connexion, dans la 
 page des réglages du compte.
 
-Les informations du compte concerné sont:
+Les informations du compte concerné sont :
 
-Site                 $siteurl
-Pseudo/Courriel      $email
+Site :                 $siteurl
+Pseudo/Courriel :      $email
 
 
 
index 55e8b8a733e039fc519f4b928af4225fdd0f5a5b..9961a0c011becdefbec82f3da0db7764caf1760c 100644 (file)
@@ -1,22 +1,22 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
 <html>
 <head>
-       <title>Friendika Message</title>
+       <title>Message de Friendica</title>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
 </head>
 <body>
 <table style="border:1px solid #ccc">
        <tbody>
-       <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/friendika-32.png'><span style="padding:7px;">Friendika</span></td></tr>
+       <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/friendika-32.png'><span style="padding:7px;">Friendica</span></td></tr>
 
-       <tr><td style="padding-top:22px;" colspan="2">$from t'a envoyŽ un message ˆ $siteName.</td></tr>
+       <tr><td style="padding-top:22px;" colspan="2">$from vous a envoyé un message à $siteName.</td></tr>
 
 
        <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
                <td style="padding-top:22px;"><a href="$url">$from</a></td></tr>
        <tr><td style="font-weight:bold;padding-bottom:5px;">$title</td></tr>
        <tr><td style="padding-right:22px;">$htmlversion</td></tr>
-       <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Ouvrez une session svp ˆ <a href="$siteurl">$siteurl</a> pour lire et rŽpondre ˆ vos messages privŽs.</td></tr>
+       <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Veuillez Ouvrir une session sur <a href="$siteurl">$siteurl</a> pour lire et répondre à vos messages privés.</td></tr>
        <tr><td></td><td>Merci,</td></tr>
        <tr><td></td><td>$siteName Administrateur</td></tr>
        </tbody>
index c877344e0ed71b628ecce6e8fb23c37035a4821f..65d034c159128b1fcf196be0fce22c62512b97c2 100644 (file)
@@ -1,10 +1,10 @@
-$from t'a envoy\8e un message \88 $siteName.
+$from vous a envoyé un message à $siteName.
        
 $title
 
 $textversion
 
-Ouvrez une session svp \88 $siteurl pour lire et r\8epondre \88 vos messages priv\8es.
+Veuillez ouvrir une session sur $siteurl pour lire et répondre à vos messages privés.
 
 Merci,
 $siteName Administrateur
index c1881b13e62f576c9373c9aec2a12187e311c797..4ea8899fc642dbba692c8122079550673859bb0a 100644 (file)
@@ -1,16 +1,17 @@
 
-Chèr(e) $username,
-       Votre mot de passe a été changé, comme demandé. Merci de conserver
+Cher(e) $username,
+
+       Votre mot de passe a été modifié comme demandé. Merci de conserver
 cette information pour un usage ultérieur (ou bien de changer votre mot de 
-passe immédiatement en quelque-chose dont vous vous souviendrez).
+passe immédiatement en quelque chose dont vous vous souviendrez).
 
-Vos informations de connexion sont désormais:
+Vos informations de connexion sont désormais :
 
-Site                 $siteurl
-Pseudo/Courriel      $email
-Mot de passe         $new_password
+Site :                 $siteurl
+Pseudo/Courriel :      $email
+Mot de passe :         $new_password
 
-Vous pouvez changer ce mot de passe depuis la page des réglages de votre compte, 
+Vous pouvez changer ce mot de passe depuis la page des « réglages » de votre compte, 
 après connexion
 
 Sincèrement votre,
index d61a5996df022394ffb55bd0996afd9c9e24a40e..5d9e737c32de4370bb37b40dade1497f78b21320 100644 (file)
@@ -1,13 +1,14 @@
 
-Chèr(e) $username,
+Cher(e) $username,
+
        Merci de votre inscription à $sitename. Votre compte a été créé.
-Les informations de connexion sont comme suit:
+Les informations de connexion sont les suivantes :
 
-Site                 $siteurl
-Pseudo/Courriel      $email
-Mot de passe         $password
+Site :                 $siteurl
+Pseudo/Courriel :      $email
+Mot de passe :         $password
 
-Vous pouvez changer de mot de passe dans la page des "Réglages" de votre compte,
+Vous pouvez changer de mot de passe dans la page des « Réglages » de votre compte,
 après connexion.
 
 Merci de prendre quelques minutes pour découvrir les autres réglages disponibles
index 54362ce1826ab15ace1df8e1ee4f96a081921b33..9cb31a6a82c79620accb2e7b3d1b5f2cd7a5fec2 100644 (file)
@@ -3,21 +3,21 @@ Une nouvelle demande d'inscription a été reçue sur $sitename, et elle
 nécessite votre approbation.
 
 
-Les informations de connexion sont comme suit:
+Les informations de connexion sont les suivantes :
 
-Nom complet          $username
-Site                 $siteurl
-Pseudo/Courriel      $email
+Nom complet :          $username
+Site :                 $siteurl
+Pseudo/Courriel :      $email
 
 
-Pour approuver cette demande, merci de suivre le lien:
+Pour approuver cette demande, merci de suivre le lien :
 
 
 $siteurl/regmod/allow/$hash
 
 
 Pour rejeter cette demande et supprimer le compte associé, 
-merci de suivre le lien:
+merci de suivre le lien :
 
 
 $siteurl/regmod/deny/$hash
index afbb2ab7ea5e530b7228c3cd302095d9ddcec490..9234ceaaa9bdcad48c0dfda3d82fdce139a46717 100644 (file)
@@ -1,9 +1,9 @@
 
-Chèr(e) $myname,
+Cher(e) $myname,
 
 Vous venez de recevoir une demande de mise en relation sur $sitename
 
-venant de '$requestor'.
+venant de « $requestor ».
 
 Vous pouvez visiter son profil sur $url.
 
index adfb91dd81f2e0fcb11eb360fe407e47e19c77c8..ad365a9518e17ce65969c16ac5223c0fc69a795c 100644 (file)
@@ -1,13 +1,13 @@
 
-Chèr(e) $username,
+Cher(e) $username,
 
-       '$from' a posté quelque-chose sur le mur de votre profil.
+       « $from » a posté quelque chose sur le mur de votre profil.
 
 -----
 $body
 -----
 
-Connectez-vous à $siteurl pour voir et/ou supprimer l'élément:
+Connectez-vous à $siteurl pour voir et/ou supprimer l'élément :
 
 $display
 
index 5f2fc7a302f1b4b0d109edff5660fa07e03981a2..b052845ae744d23afb35276708d5b333d02dcc55 100644 (file)
@@ -13,4 +13,4 @@
        <div class="profile-match-connect"><a href="$connlnk" title="$conntxt">$conntxt</a></div>
        {{ endif }}
 
-</div>
\ No newline at end of file
+</div>
diff --git a/view/remote_friends_common.tpl b/view/remote_friends_common.tpl
new file mode 100644 (file)
index 0000000..fa66c47
--- /dev/null
@@ -0,0 +1,21 @@
+<div id="remote-friends-in-common" class="bigwidget">
+       <div id="rfic-desc">$desc &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="$base/common/rem/$uid/$cid">$more</a></div>
+       {{ if $items }}
+       {{ for $items as $item }}
+       <div class="profile-match-wrapper">
+               <div class="profile-match-photo">
+                       <a href="$item.url">
+                               <img src="$item.photo" width="80" height="80" alt="$item.name" title="$item.name" />
+                       </a>
+               </div>
+               <div class="profile-match-break"></div>
+               <div class="profile-match-name">
+                       <a href="$itemurl" title="$item.name">$item.name</a>
+               </div>
+               <div class="profile-match-end"></div>
+       </div>
+       {{ endfor }}
+       {{ endif }}
+       <div id="rfic-end" class="clear"></div>
+</div>
+
index 59c669a873fb61b46d0c627ddb10401abbbf75ec..cec3c6f6455ba2cbc24588ca684d4224e72523c3 100644 (file)
@@ -102,6 +102,7 @@ $unkmail
 <strong>$activity_options</strong>
 
 {{inc field_checkbox.tpl with $field=$post_newfriend }}{{endinc}}
+{{inc field_checkbox.tpl with $field=$post_joingroup }}{{endinc}}
 {{inc field_checkbox.tpl with $field=$post_profilechange }}{{endinc}}
 
 
index 7982a75c5b9ca61c8cf07e72e95464d1829b1738..312e9d3dd2c7fdb1036c34a81227db2c50486178 100644 (file)
@@ -12,8 +12,9 @@ function theme_content(&$a){
        $resize = get_pconfig(local_user(), 'cleanzero', 'resize' );
        $color = get_pconfig(local_user(), 'cleanzero', 'color' );
        $font_size = get_pconfig(local_user(), 'cleanzero', 'font_size' );
+       $theme_width= get_pconfig(local_user(), 'cleanzero', 'theme_width' );
        
-       return cleanzero_form($a,$color,$font_size,$resize);
+       return cleanzero_form($a,$color,$font_size,$resize,$theme_width);
 }
 
 function theme_post(&$a){
@@ -24,6 +25,7 @@ function theme_post(&$a){
                set_pconfig(local_user(), 'cleanzero', 'resize', $_POST['cleanzero_resize']);   
                set_pconfig(local_user(), 'cleanzero', 'color', $_POST['cleanzero_color']);
                set_pconfig(local_user(), 'cleanzero', 'font_size', $_POST['cleanzero_font_size']);
+               set_pconfig(local_user(), 'cleanzero', 'theme_width', $_POST['cleanzero_theme_width']);
        }
 }
 
@@ -32,8 +34,8 @@ function theme_admin(&$a){
        $resize = get_config('cleanzero', 'resize' );
        $color = get_config('cleanzero', 'color' );
        $font_size = get_config('cleanzero', 'font_size' );
-       
-       return cleanzero_form($a,$color,$font_size,$resize);
+       $theme_width= get_config('cleanzero', 'theme_width' );
+       return cleanzero_form($a,$color,$font_size,$resize,$theme_width);
 }
 
 function theme_admin_post(&$a){
@@ -41,11 +43,13 @@ function theme_admin_post(&$a){
                set_config('cleanzero', 'resize', $_POST['cleanzero_resize']);
                set_config('cleanzero', 'color', $_POST['cleanzero_color']);
                set_config('cleanzero', 'font_size', $_POST['cleanzero_font_size']);
+               set_config('cleanzero', 'theme_width', $_POST['cleanzero_theme_width']);
+
        }
 }
 
 
-function cleanzero_form(&$a, $color,$font_size,$resize){
+function cleanzero_form(&$a, $color,$font_size,$resize,$theme_width){
        $colors = array(
                "cleanzero"=>"cleanzero", 
                "cleanzero-green"=>"green",
@@ -65,7 +69,12 @@ function cleanzero_form(&$a, $color,$font_size,$resize){
                "250"=>"3 (250px)",
                "150"=>"4 (150px)",
               );
-       
+       $theme_widths =array (
+               "standard"=>"standard",
+               "narrow"=>"narrow",
+               "wide"=>"wide",
+               );
+
        $t = file_get_contents( dirname(__file__). "/theme_settings.tpl" );
        $o .= replace_macros($t, array(
                '$submit' => t('Submit'),
@@ -73,6 +82,7 @@ function cleanzero_form(&$a, $color,$font_size,$resize){
                '$title' => t("Theme settings"),
                '$resize' => array('cleanzero_resize',t ('Set resize level for images in posts and comments (width and height)'),$resize,'',$resizes),
                '$font_size' => array('cleanzero_font_size', t('Set font-size for posts and comments'), $font_size, '', $font_sizes),
+               '$theme_width' => array('cleanzero_theme_width', t('Set theme width'), $theme_width, '', $theme_widths),
                '$color' => array('cleanzero_color', t('Color scheme'), $color, '', $colors),
        ));
        return $o;
index 4dacf3858e28b6136f7dd7cdd5af8ec0ed267c92..9fe5ac0fe543d96b395ba6924b30f4daf4d4695a 100644 (file)
@@ -1,23 +1,14 @@
-<nav>
+ <nav>
        $langselector
 
        <div id="site-location">$sitelocation</div>
 
-       {{ if $nav.logout }}<a id="nav-logout-link" class="nav-link $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.1</a> {{ endif }}
-       {{ if $nav.login }}<a id="nav-login-link" class="nav-login-link $nav.login.2" href="$nav.login.0" title="$nav.login.3" >$nav.login.1</a> {{ endif }}
 
-       <span id="nav-link-wrapper" >
+       <span id="nav-commlink-wrapper">
 
        {{ if $nav.register }}<a id="nav-register-link" class="nav-commlink $nav.register.2 $sel.register" href="$nav.register.0" title="$nav.register.3" >$nav.register.1</a>{{ endif }}
                
-       {{ if $nav.help }} <a id="nav-help-link" class="nav-link $nav.help.2" target="friendika-help" href="$nav.help.0" title="$nav.help.3" >$nav.help.1</a>{{ endif }}
-               
-       {{ if $nav.apps }}<a id="nav-apps-link" class="nav-link $nav.apps.2" href="$nav.apps.0" title="$nav.apps.3" >$nav.apps.1</a>{{ endif }}
 
-       <a id="nav-search-link" class="nav-link $nav.search.2" href="$nav.search.0" title="$nav.search.3" >$nav.search.1</a>
-       <a id="nav-directory-link" class="nav-link $nav.directory.2" href="$nav.directory.0" title="$nav.directory.3" >$nav.directory.1</a>
-
-       {{ if $nav.admin }}<a id="nav-admin-link" class="nav-link $nav.admin.2" href="$nav.admin.0" title="$nav.admin.3" >$nav.admin.1</a>{{ endif }}
 
        {{ if $nav.network }}
        <a id="nav-network-link" class="nav-commlink $nav.network.2 $sel.network" href="$nav.network.0" title="$nav.network.3" >$nav.network.1</a>
@@ -27,7 +18,9 @@
        <a id="nav-home-link" class="nav-commlink $nav.home.2 $sel.home" href="$nav.home.0" title="$nav.home.3" >$nav.home.1</a>
        <span id="home-update" class="nav-ajax-left"></span>
        {{ endif }}
-
+       {{ if $nav.community }}
+       <a id="nav-community-link" class="nav-commlink $nav.community.2 $sel.community" href="$nav.community.0" title="$nav.community.3" >$nav.community.1</a>
+       {{ endif }}
        {{ if $nav.introductions }}
        <a id="nav-notify-link" class="nav-commlink $nav.introductions.2 $sel.introductions" href="$nav.introductions.0" title="$nav.introductions.3" >$nav.introductions.1</a>
        <span id="intro-update" class="nav-ajax-left"></span>
        <a id="nav-messages-link" class="nav-commlink $nav.messages.2 $sel.messages" href="$nav.messages.0" title="$nav.messages.3" >$nav.messages.1</a>
        <span id="mail-update" class="nav-ajax-left"></span>
        {{ endif }}
-
-
-
-
-
                {{ if $nav.notifications }}
                        <a id="nav-notifications-linkmenu" class="nav-commlink" href="$nav.notifications.0" rel="#nav-notifications-menu" title="$nav.notifications.1">$nav.notifications.1</a>
                                <span id="notify-update" class="nav-ajax-left"></span>
                                        <li id="nav-notifications-mark-all"><a href="#" onclick="notifyMarkAll(); return false;">$nav.notifications.mark.1</a></li>
                                        <li class="empty">$emptynotifications</li>
                                </ul>
-               {{ endif }}             
+               {{ endif }}     
+       </span>
+       <span id="banner">$banner</span>
+       <span id="nav-link-wrapper">
+       {{ if $nav.logout }}<a id="nav-logout-link" class="nav-link $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.1</a> {{ endif }}
+       {{ if $nav.login }}<a id="nav-login-link" class="nav-login-link $nav.login.2" href="$nav.login.0" title="$nav.login.3" >$nav.login.1</a> {{ endif }}
+       {{ if $nav.help }} <a id="nav-help-link" class="nav-link $nav.help.2" target="friendika-help" href="$nav.help.0" title="$nav.help.3" >$nav.help.1</a>{{ endif }}
+               
+       {{ if $nav.apps }}<a id="nav-apps-link" class="nav-link $nav.apps.2" href="$nav.apps.0" title="$nav.apps.3" >$nav.apps.1</a>{{ endif }}
+
+       <a id="nav-search-link" class="nav-link $nav.search.2" href="$nav.search.0" title="$nav.search.3" >$nav.search.1</a>
+       <a id="nav-directory-link" class="nav-link $nav.directory.2" href="$nav.directory.0" title="$nav.directory.3" >$nav.directory.1</a>
+
+       {{ if $nav.admin }}<a id="nav-admin-link" class="nav-link $nav.admin.2" href="$nav.admin.0" title="$nav.admin.3" >$nav.admin.1</a>{{ endif }}
+
+
+
+       
 
        {{ if $nav.settings }}<a id="nav-settings-link" class="nav-link $nav.settings.2" href="$nav.settings.0" title="$nav.settings.3">$nav.settings.1</a>{{ endif }}
        {{ if $nav.profiles }}<a id="nav-profiles-link" class="nav-link $nav.profiles.2" href="$nav.profiles.0" title="$nav.profiles.3" >$nav.profiles.1</a>{{ endif }}
 
 
        {{ if $nav.manage }}<a id="nav-manage-link" class="nav-link $nav.manage.2 $sel.manage" href="$nav.manage.0" title="$nav.manage.3">$nav.manage.1</a>{{ endif }}
-       {{ if $nav.community }}
-       <a id="nav-community-link" class="nav-link $nav.community.2 $sel.community" href="$nav.community.0" title="$nav.community.3" >$nav.community.1</a>
-       {{ endif }}
        </span>
        <span id="nav-end"></span>
-       <span id="banner">$banner</span>
+       
 </nav>
 
 <ul id="nav-notifications-template" style="display:none;" rel="template">
index b820d3b7a17f0f01ff5e6a73d61e060f9489e56e..682c527f1c08fdd86692cc3d0b000c74615046c9 100644 (file)
@@ -1,21 +1,24 @@
 <?php
        $color=false;
        $cleanzero_font_size=false;
+       $cleanzero_theme_width=false;
 
        $site_color = get_config("cleanzero","color");
        $site_cleanzero_font_size = get_config("cleanzero", "font_size" );
-
+       $site_cleanzero_theme_width = get_config("cleanzero", "theme_width");
        
        if (local_user()) {
                $color = get_pconfig(local_user(), "cleanzero","color");
                $cleanzero_font_size = get_pconfig(local_user(), "cleanzero", "font_size");
+               $cleanzero_theme_width = get_pconfig(local_user(), "cleanzero", "theme_width");
        
        }
        
        if ($color===false) $color=$site_color;
        if ($color===false) $color="cleanzero";
        if ($cleanzero_font_size===false) $cleanzero_font_size=$site_cleanzero_font_size;
-
+       if ($cleanzero_theme_width===false) $cleanzero_theme_width=$site_cleanzero_theme_width;
+       if ($cleanzero_theme_width===false) $cleanzero_theme_width="standard";
        
                
        if (file_exists("$THEMEPATH/$color/style.css")){
                                        }
                ";
        }
+       if ($cleanzero_theme_width === "standard") {
+               echo "
+                     section {
+                       margin: 0px 10%;
+                       margin-right:10%;
+                       }
+
+                     aside {
+                       margin-left: 10%;
+                      }
+                     nav {
+                       margin-left: 10%;
+                       margin-right: 10%;
+
+                      }
+
+                     nav #site-location {
+                       right: 10%;
+
+                      }
+               ";
+       }
+
+       if ($cleanzero_theme_width === "narrow") {
+               echo "
+                     section {
+                       margin: 0px 15%;
+                       margin-right:15%;
+                       }
+
+                     aside {
+                       margin-left: 15%;
+                      }
+                     nav {
+                       margin-left: 15%;
+                       margin-right: 15%;
 
+                      }
+
+                     nav #site-location {
+                       right: 15%;
+
+                      }
+               ";
+       }
+       if ($cleanzero_theme_width === "wide") {
+               echo "
+                     section {
+                       margin: 0px 5%;
+                       margin-right:5%;
+                       }
+
+                     aside {
+                       margin-left: 5%;
+                      }
+                     nav {
+                       margin-left: 5%;
+                       margin-right: 5%;
+
+                      }
+
+                     nav #site-location {
+                       right: 5%;
+
+                      }
+               ";
+       }
index cc924539e4f8958200aadeb50efa6246bf824ab6..c993619973ec47b385a8208662f0741fbd290a4c 100644 (file)
@@ -108,7 +108,7 @@ $a->page['htmlhead'] .= '
 <script>
 
  $(function() {
-       $(".wall-item-content-wrapper  img").aeImageResize({height: '.$resize.', width: '.$resize.'});
+       $(".wall-item-content  img").aeImageResize({height: '.$resize.', width: '.$resize.'});
   });
 </script>';}
 }
index 07e7cba05095f39629909c4498e59ca28e9c8ae9..bfe18af27d9e3445fec331440f6d3ed84a71600b 100644 (file)
@@ -1,7 +1,7 @@
 {{inc field_select.tpl with $field=$color}}{{endinc}}
 {{inc field_select.tpl with $field=$font_size}}{{endinc}}
 {{inc field_select.tpl with $field=$resize}}{{endinc}}
-
+{{inc field_select.tpl with $field=$theme_width}}{{endinc}}
 
 
 <div class="settings-submit-wrapper">
diff --git a/view/theme/diabook/bottom.tpl b/view/theme/diabook/bottom.tpl
new file mode 100644 (file)
index 0000000..2bb6517
--- /dev/null
@@ -0,0 +1,115 @@
+<script type="text/javascript" src="$baseurl/view/theme/diabook/js/jquery.autogrow.textarea.js"></script>
+<script type="text/javascript">
+
+$(document).ready(function() {
+    $("iframe").each(function(){
+        var ifr_source = $(this).attr("src");
+        var wmode = "wmode=transparent";
+        if(ifr_source.indexOf("?") != -1) {
+            var getQString = ifr_source.split("?");
+            var oldString = getQString[1];
+            var newString = getQString[0];
+            $(this).attr("src",newString+"?"+wmode+"&"+oldString);
+        }
+        else $(this).attr("src",ifr_source+"?"+wmode);
+       
+    });
+      
+       });
+       
+       $(document).ready(function(){
+               $("#sortable_boxes").sortable({
+                       update: function(event, ui) {
+                               var BoxOrder = $(this).sortable("toArray").toString();
+                               $.cookie("Boxorder", BoxOrder , { expires: 365, path: "/" });
+                       }
+               });
+
+       var cookie = $.cookie("Boxorder");              
+       if (!cookie) return;
+       var SavedID = cookie.split(",");
+          for (var Sitem=0, m = SavedID.length; Sitem < m; Sitem++) {
+           $("#sortable_boxes").append($("#sortable_boxes").children("#" + SavedID[Sitem]));
+              }
+       });
+       
+       function tautogrow(id){
+               $("textarea#comment-edit-text-" +id).autogrow();        
+       };
+       
+       function yt_iframe() {
+       $("iframe").load(function() { 
+       var ifr_src = $(this).contents().find("body iframe").attr("src");
+       $("iframe").contents().find("body iframe").attr("src", ifr_src+"&wmode=transparent");
+    });
+
+       };
+
+       function scrolldown(){
+                       $("html, body").animate({scrollTop:$(document).height()}, "slow");
+                       return false;
+               };
+               
+       function scrolltop(){
+                       $("html, body").animate({scrollTop:0}, "slow");
+                       return false;
+               };
+               
+       $(window).scroll(function () { 
+               
+               var footer_top = $(document).height() - 30;
+               $("div#footerbox").css("top", footer_top);
+       
+               var scrollInfo = $(window).scrollTop();      
+               
+               if (scrollInfo <= "900"){
+      $("a#top").attr("id","down");
+      $("a#down").attr("onclick","scrolldown()");
+               $("img#scroll_top_bottom").attr("src","view/theme/diabook/icons/scroll_bottom.png");
+               } 
+                   
+      if (scrollInfo > "900"){
+      $("a#down").attr("id","top");
+      $("a#top").attr("onclick","scrolltop()");
+               $("img#scroll_top_bottom").attr("src","view/theme/diabook/icons/scroll_top.png");
+               }
+               
+    });
+  
+
+       function insertFormatting(comment,BBcode,id) {
+       
+               var tmpStr = $("#comment-edit-text-" + id).val();
+               if(tmpStr == comment) {
+                       tmpStr = "";
+                       $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
+                       $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
+                       openMenu("comment-edit-submit-wrapper-" + id);
+                                                               }
+
+       textarea = document.getElementById("comment-edit-text-" +id);
+       if (document.selection) {
+               textarea.focus();
+               selected = document.selection.createRange();
+               if (BBcode == "url"){
+                       selected.text = "["+BBcode+"]" + "http://" +  selected.text + "[/"+BBcode+"]";
+                       } else                  
+               selected.text = "["+BBcode+"]" + selected.text + "[/"+BBcode+"]";
+       } else if (textarea.selectionStart || textarea.selectionStart == "0") {
+               var start = textarea.selectionStart;
+               var end = textarea.selectionEnd;
+               if (BBcode == "url"){
+                       textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + "http://" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
+                       } else
+               textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
+       }
+       return true;
+       }
+
+       function cmtBbOpen(id) {
+       $(".comment-edit-bb-" + id).show();
+       }
+       function cmtBbClose(id) {
+       $(".comment-edit-bb-" + id).hide();
+       }
+</script>
index e10b868450028e02140a13068609fe1a900e568e..fc3594fdc9841e87072034018190344255fff171 100644 (file)
                                <div class="comment-edit-photo-end"></div>
                                <textarea id="comment-edit-text-$id" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,$id);tautogrow($id);cmtBbOpen($id);"  >$comment</textarea>
                                <div class="comment-edit-bb-$id" style="display:none;">                         
-                               <a class="icon bb-image" style="cursor: pointer;" onclick="insertFormatting('$comment','img',$id);">img</a>     
-                               <a class="icon bb-url" style="cursor: pointer;" onclick="insertFormatting('$comment','url',$id);">url</a>
-                               <a class="icon bb-video" style="cursor: pointer;" onclick="insertFormatting('$comment','video',$id);">video</a>                                                                                                         
-                               <a class="icon underline" style="cursor: pointer;" onclick="insertFormatting('$comment','u',$id);">u</a>
-                               <a class="icon italic" style="cursor: pointer;" onclick="insertFormatting('$comment','i',$id);">i</a>
-                               <a class="icon bold" style="cursor: pointer;" onclick="insertFormatting('$comment','b',$id);">b</a>
-                               <a class="icon quote" style="cursor: pointer;" onclick="insertFormatting('$comment','quote',$id);">quote</a>                                                                                                                                                    
+                               <a class="icon bb-image" style="cursor: pointer;" title="$edimg" onclick="insertFormatting('$comment','img',$id);">img</a>      
+                               <a class="icon bb-url" style="cursor: pointer;" title="$edurl" onclick="insertFormatting('$comment','url',$id);">url</a>
+                               <a class="icon bb-video" style="cursor: pointer;" title="$edvideo" onclick="insertFormatting('$comment','video',$id);">video</a>                                                                                                                
+                               <a class="icon underline" style="cursor: pointer;" title="$eduline" onclick="insertFormatting('$comment','u',$id);">u</a>
+                               <a class="icon italic" style="cursor: pointer;" title="$editalic" onclick="insertFormatting('$comment','i',$id);">i</a>
+                               <a class="icon bold" style="cursor: pointer;"  title="$edbold" onclick="insertFormatting('$comment','b',$id);">b</a>
+                               <a class="icon quote" style="cursor: pointer;" title="$edquote" onclick="insertFormatting('$comment','quote',$id);">quote</a>                                                                                                                                                   
                                </div>                          
                                {{ if $qcomment }}
                                        <select id="qcomment-select-$id" name="qcomment-$id" class="qcomment" onchange="qCommentInsert(this,$id);" >
index 66f93c32d825a0ef08ea82909e0541c2379a21f9..0386d63d36d847d9919cd1ef9c87ff2938f14c18 100644 (file)
@@ -1,12 +1,28 @@
-<div id="close_pages">
+<div id="pos_null" style="margin-bottom:-30px;">
+</div>
+
+<div id="sortable_boxes">
+
+<div id="close_pages" style="margin-top:30px;">
 {{ if $page }}
 <div>$page</div>
 {{ endif }}
+
+
+<div id="close_profiles">
+{{ if $comunity_profilest_title }}
+<h3>$comunity_profilest_title<a id="close_comunity_profiles_icon" onClick="close_profiles()" class="icon close_box" title="close"></a></h3>
+<div id='lastusers-wrapper' class='items-wrapper'>
+{{ for $comunity_profiles_items as $i }}
+       $i
+{{ endfor }}
+</div>
+{{ endif }}
 </div>
 
 <div id="close_helpers">
-{{ if $lastusers_title }}
-<h3 style="margin-top:0px;">$helpers.title.1<a id="close_helpers_icon"  onClick="close_helpers()" class="icon close_box" title="close"></a></h3>
+{{ if $helpers }}
+<h3>$helpers.title.1<a id="close_helpers_icon"  onClick="close_helpers()" class="icon close_box" title="close"></a></h3>
 <a href="http://kakste.com/profile/newhere" title="@NewHere" style="margin-left: 10px; " target="blank">NewHere</a><br>
 <a href="https://helpers.pyxis.uberspace.de/profile/helpers" style="margin-left: 10px; " title="Friendica Support" target="blank">Friendica Support</a><br>
 <a href="https://letstalk.pyxis.uberspace.de/profile/letstalk" style="margin-left: 10px; " title="Let's talk" target="blank">Let's talk</a><br>
@@ -15,7 +31,7 @@
 </div>
 
 <div id="close_services">
-{{ if $lastusers_title }}
+{{ if $con_services }}
 <h3>$con_services.title.1<a id="close_services_icon" onClick="close_services()" class="icon close_box" title="close"></a></h3>
 <div id="right_service_icons" style="margin-left: 16px; margin-top: 5px;">
 <a href="$url/facebook"><img alt="Facebook" src="view/theme/diabook/icons/facebook.png" title="Facebook"></a>
@@ -82,4 +98,8 @@ $nv.search
 {{ endfor }}
 </ul>
 {{ endif }}
+</div>
+
+<div id="twitter">
+</div>
 </div>
\ No newline at end of file
index d5c91c9a4e0e0d8fb6b3c00ff0da13cd43190465..27b9c49e285f098b0368e1bdece7c859890cf7ce 100644 (file)
@@ -1182,7 +1182,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-aerith/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1191,14 +1191,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-aerith/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-aerith/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1290,8 +1290,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
index 21273c19cc36afd8a303e33276d4d90ed26b71c1..ef6e5cac141417820621cc39fd9528ee14df8b0c 100644 (file)
@@ -1178,7 +1178,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-aerith/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1187,14 +1187,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-aerith/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-aerith/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1285,8 +1285,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
index 1b8e384811da342c20355174a86d0132c2df70d4..002b1719ee181fc1b97ac1e16d58f5cb4c9125ee 100644 (file)
@@ -1158,7 +1158,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-aerith/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1167,14 +1167,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-aerith/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-aerith/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1266,8 +1266,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
index e21432d4e05706416782ff238fc1031517883d5a..2b7d3df17391041d1a966fc792e72cd663fdfc01 100644 (file)
@@ -1154,7 +1154,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-aerith/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1163,14 +1163,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-aerith/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-aerith/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1261,8 +1261,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
index b8ff1fe250c74dc9cbb256e708d12502385ad01c..5c263154f17d10404430ab303a5f14a14b0e071a 100644 (file)
@@ -21,6 +21,7 @@
 
 .admin.linklist {
         border: 0px; padding: 0px;
+        list-style: none;
 }
 
 .admin.link {
@@ -1014,7 +1015,7 @@ ul.menu-popup .empty {
   background-color: #bdcdd4;
 }
 #nav-notifications-menu {
-  width: 400px;
+  width: 425px !important;
   max-height: 550px;
   overflow: auto;
 }
@@ -1243,7 +1244,7 @@ aside #likes a:hover{
   margin-right: 20px;          
        }
 #login-submit-wrapper{
-  padding-top: 120px;
+
   margin-bottom: 12px;
        }
 aside #login-submit-button{
index 01d35b754108d714f31e4e443e13f6db52411d1b..e0f38aff6adb5481e8ebe2498de271d1f71273f6 100644 (file)
@@ -21,6 +21,7 @@
 
 .admin.linklist {
         border: 0px; padding: 0px;
+        list-style: none;
 }
 
 .admin.link {
@@ -1013,7 +1014,7 @@ ul.menu-popup .empty {
   background-color: #bdcdd4;
 }
 #nav-notifications-menu {
-  width: 400px;
+  width: 425px !important;
   max-height: 550px;
   overflow: auto;
 }
@@ -1241,7 +1242,7 @@ aside #likes a:hover{
   margin-right: 20px;          
        }
 #login-submit-wrapper{
-  padding-top: 120px;
+
   margin-bottom: 12px;
        }
 aside #login-submit-button{
index eb1cee255ad1b465d52bea489a62f69151eb61b0..61bbc812b44de02b2a0638846148b67ba51b086a 100644 (file)
@@ -1148,7 +1148,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-blue/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1157,14 +1157,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-blue/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-blue/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1253,8 +1253,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
index 3a972b83274ccde6c5b8f4a3834f900c9c522eb1..123792b656ad3f9c1c45a6c3d23878b1540c6cf8 100644 (file)
@@ -1144,7 +1144,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-blue/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1153,14 +1153,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-blue/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-blue/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1248,8 +1248,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
index ad6b7ca21453150edc1909501e6fb3c8911c6756..bad62f005c9e82cef0686e54f02aae628b801212 100644 (file)
@@ -1128,7 +1128,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-blue/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1137,14 +1137,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-blue/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-blue/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1233,8 +1233,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
index 50fb980d6fc4c73b84ee8ef30dd10fdb6a405168..b8064c9c0feb01460f43241b125d7f4a2943a18d 100644 (file)
@@ -1124,7 +1124,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-blue/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1133,14 +1133,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-blue/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-blue/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1228,8 +1228,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
index c8c2033473d6c6bb46098d5a6aff9b7ead031299..189f4d55992d37b04d5ca4844f05654924d66691 100644 (file)
@@ -21,6 +21,7 @@
 
 .admin.linklist {
         border: 0px; padding: 0px;
+        list-style: none;
 }
 
 .admin.link {
@@ -983,7 +984,7 @@ ul.menu-popup .empty {
   background-color: #bdcdd4;
 }
 #nav-notifications-menu {
-  width: 400px;
+  width: 425px !important;
   max-height: 550px;
   overflow: auto;
 }
@@ -1203,7 +1204,7 @@ aside #side-peoplefind-url {
   margin-right: 20px;          
        }
 #login-submit-wrapper{
-  padding-top: 120px;
+
   margin-bottom: 12px;
        }
 aside #login-submit-button{
index 7bf7e8eaa714d3f6b9c1e748c19740b2cb52785d..2b68afc6f5892bb7ef2c5c3bebadbee4b51e55b7 100644 (file)
@@ -21,6 +21,7 @@
 
 .admin.linklist {
         border: 0px; padding: 0px;
+        list-style: none;
 }
 
 .admin.link {
@@ -982,7 +983,7 @@ ul.menu-popup .empty {
   background-color: #bdcdd4;
 }
 #nav-notifications-menu {
-  width: 400px;
+  width: 425px !important;
   max-height: 550px;
   overflow: auto;
 }
@@ -1201,7 +1202,7 @@ aside #side-peoplefind-url {
   margin-right: 20px;          
        }
 #login-submit-wrapper{
-  padding-top: 120px;
+
   margin-bottom: 12px;
        }
 aside #login-submit-button{
index 6ff44748f74aa0eff89d5248b2fd3325f4848c24..43541d2660b7db01dcbb827e06cde8def344d252 100644 (file)
@@ -1431,7 +1431,7 @@ transition: all 0.2s ease-in-out;
 
 .wall-item-comment-wrapper {
   margin: 1px 5px 5px 80px;
-  background-color: #fff;
+  background-color: #444;
   width: 500px;
 }
 .wall-item-comment-wrapper .comment-edit-photo {
@@ -1442,14 +1442,14 @@ transition: all 0.2s ease-in-out;
   width: 100%;
   font-size: 10px;
   color: #999999;
-  border: 1px solid #DDD;
+  border: 1px solid #2e2e2f;
   padding: 0.3em;
   font-size: 14px;
 }
 .wall-item-comment-wrapper .comment-edit-text-full {
   font-size: 14px;
   height: 4em;
-  color: #2e2f2e;
+  color: #eec;
   border: 1px solid #2e2f2e;
 }
 .comment-edit-preview {
@@ -1596,10 +1596,11 @@ transition: all 0.2s ease-in-out;
   height: 2.0em;
   width: 99%;
   font-size: 15px;
-  color: #999999;
-  border: 1px solid #DDD;
+  color: #eec;
+  border: 1px solid #eec;
   padding: 0.3em;
   margin-bottom: 10px;
+  background: #444
 }
 .grey
 {
index b052b77ff448453ef50a09895d0424a18b7cef4b..3ecad85af55497facbc9218853f66470c12c16bf 100644 (file)
@@ -540,7 +540,7 @@ header #banner a:active,
 header #banner a:visited,
 header #banner a:link,
 header #banner a:hover {
-  color: #2e2f2e;
+  color: #eec;
   text-decoration: none;
   outline: none;
   vertical-align: middle;
@@ -661,7 +661,7 @@ nav .nav-menu-icon {
   border-radius: 5px 5px 0 0;
 }
 nav .nav-menu-icon:hover {
-  background-color: #eec;  
+  background-color: #308dbf;  
   position: relative;
   height: 22px;
   padding: 5px;
@@ -776,7 +776,7 @@ nav #nav-apps-link.selected {
 }
 
 .notify-seen {
-       background: none repeat scroll 0 0 #DDDDDD;
+       background: none repeat scroll 0 0 #666;
        }
 
 ul.menu-popup {
@@ -1424,7 +1424,7 @@ transition: all 0.2s ease-in-out;
 .wall-item-comment-wrapper .comment-edit-text-full {
   font-size: 14px;
   height: 4em;
-  color: #2e302;
+  color: #eec;
   border: 1px solid #2e302;
 }
 .comment-edit-preview {
@@ -1571,10 +1571,11 @@ transition: all 0.2s ease-in-out;
   height: 2.0em;
   width: 99%;
   font-size: 15px;
-  color: #999999;
+  color: #eec;
   border: 1px solid #DDD;
   padding: 0.3em;
   margin-bottom: 10px;
+  background: #444;
 }
 .grey
 {
@@ -1667,6 +1668,7 @@ transition: all 0.2s ease-in-out;
     margin: 0 0 5px;
     width: 60%;
     border: 1px solid #d2d2d2;
+    background: #444;
 }
 #profile-jot-form #jot-title:-webkit-input-placeholder {
   font-weight: normal;
index 638aeb455822add66a17f53325fc1bc7f52f32f4..f00973085f891a8340f27ed2f1ed7e1470d27273 100644 (file)
@@ -547,7 +547,7 @@ code {
   float: right;
 }
 .tool a {
-  color: #3465a4;
+  color: #88a9d2;
 }
 .tool a:hover {
   text-decoration: none;
@@ -594,7 +594,7 @@ header #banner a:active,
 header #banner a:visited,
 header #banner a:link,
 header #banner a:hover {
-  color: #2e2f2e;
+  color: #eec;
   text-decoration: none;
   outline: none;
   vertical-align: middle;
@@ -806,7 +806,7 @@ nav .nav-menu-icon:hover {
 }
 
 nav .nav-menu-icon.selected {
-  background-color: #fff;
+  background-color: #308dbf;
 }
 nav .nav-menu-icon img {
   width: 22px;
@@ -929,7 +929,7 @@ ul.menu-popup {
 }
 ul.menu-popup a {
   display: block;
-  color: #2e302e;
+  color: #eec;
   padding: 5px 10px;
   text-decoration: none;
 }
@@ -1671,6 +1671,7 @@ body .pageheader{
   height: 2.0em;
   width: 100%;
   font-size: 10px;
+  background: #444;
   color: #999999;
   border: 1px solid #DDD;
   padding: 0.3em;
@@ -1922,6 +1923,7 @@ body .pageheader{
     margin: 0 0 5px;
     width: 60%;
     border: 1px solid #d2d2d2;
+    background: #444;
 }
 #profile-jot-form #jot-title:-webkit-input-placeholder {
   font-weight: normal;
index cc598b9fe4074d4610d429c33fe892f1934481d5..73f028f6036a3764c4698631eaa7b612c34fc32f 100644 (file)
@@ -439,7 +439,7 @@ a:hover {
   clear: both;
 }
 .fakelink {
-  color: #194719;
+  color: #2c9936;
   /* color: #3e3e8c; */
   text-decoration: none;
   cursor: pointer;
@@ -1158,7 +1158,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-green/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1167,14 +1167,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-green/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-green/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1266,8 +1266,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
@@ -1301,7 +1301,7 @@ transition: all 0.2s ease-in-out;
   padding-top: 10px;
 }
 .tread-wrapper a{
-  color: #194719;
+  color: #2c9936;
 }
 
 /*marker*/
@@ -1840,7 +1840,7 @@ transition: all 0.2s ease-in-out;
     font-weight: bolder;
 }
 .button.creation2 {
-    background-color: #194719;
+    background-color: #2c9936;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
index 7865477112eb52e670c9dfd0099f85d1bccc0192..6fffec9424eee774ead75df00b0f224fd2e98516 100644 (file)
@@ -439,7 +439,7 @@ a:hover {
   clear: both;
 }
 .fakelink {
-  color: #194719;
+  color: #2c9936;
   /* color: #3e3e8c; */
   text-decoration: none;
   cursor: pointer;
@@ -493,7 +493,7 @@ code {
   float: right;
 }
 .tool a {
-  color: #194719;
+  color: #2c9936;
 }
 .tool a:hover {
   text-decoration: none;
@@ -1155,7 +1155,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-green/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1164,14 +1164,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-green/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-green/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1262,8 +1262,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
@@ -1297,7 +1297,7 @@ transition: all 0.2s ease-in-out;
   padding-top: 10px;
 }
 .tread-wrapper a{
-  color: #194719;
+  color: #2c9936;
 }
 
 .wall-item-decor {
@@ -1832,7 +1832,7 @@ transition: all 0.2s ease-in-out;
     font-weight: bolder;
 }
 .button.creation2 {
-    background-color: #194719;
+    background-color: #2c9936;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
@@ -1964,7 +1964,7 @@ ul.tabs li {
   margin-left: 5px;
 }
 ul.tabs li .active {
-    background-color: #194719;
+    background-color: #2c9936;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
index 65b7f2ba3f5be1666d1133f3917b770c89d913c8..d56e52541b755dcd1f537f020990dbec31d77915 100644 (file)
@@ -440,7 +440,7 @@ a:hover {
   clear: both;
 }
 .fakelink {
-  color: #194719;
+  color: #2c9936;
   /* color: #3e3e8c; */
   text-decoration: none;
   cursor: pointer;
@@ -1134,7 +1134,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-green/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1143,14 +1143,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-green/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-green/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1242,8 +1242,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
@@ -1276,7 +1276,7 @@ transition: all 0.2s ease-in-out;
   padding-top: 10px;
 }
 .tread-wrapper a{
-  color: #194719;
+  color: #2c9936;
 }
 
 /*marker*/
@@ -1811,7 +1811,7 @@ transition: all 0.2s ease-in-out;
         cursor: pointer;
 }
 .button.creation2 {
-    background-color: #194719;
+    background-color: #2c9936;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
@@ -1945,7 +1945,7 @@ ul.tabs li {
   margin-left: 5px;
 }
 ul.tabs li .active {
-    background-color: #194719;
+    background-color: #2c9936;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
index dcc7b373a1e21851b640b120dc5244a779f48d8c..2e2e11383a098f1eaa47533444423e9bd465296d 100644 (file)
@@ -440,7 +440,7 @@ a:hover {
   clear: both;
 }
 .fakelink {
-  color: #194719;
+  color: #2c9936;
   /* color: #3e3e8c; */
   text-decoration: none;
   cursor: pointer;
@@ -1130,7 +1130,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-green/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1139,14 +1139,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-green/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-green/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1237,8 +1237,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
@@ -1270,7 +1270,7 @@ transition: all 0.2s ease-in-out;
   padding-top: 10px;
 }
 .tread-wrapper a{
-  color: #194719;
+  color: #2c9936;
 }
 
 .wall-item-decor {
@@ -1801,7 +1801,7 @@ transition: all 0.2s ease-in-out;
         cursor: pointer;
 }
 .button.creation2 {
-    background-color: #194719;
+    background-color: #2c9936;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
@@ -1933,7 +1933,7 @@ ul.tabs li {
   margin-left: 5px;
 }
 ul.tabs li .active {
-    background-color: #194719;
+    background-color: #2c9936;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
index d85ea23a6858332ce16c2362c6322ccf99db7f81..d98a6c3256d75be9a858b2ab020b8abab5c0bc03 100644 (file)
@@ -21,6 +21,7 @@
 
 .admin.linklist {
         border: 0px; padding: 0px;
+        list-style: none;
 }
 
 .admin.link {
@@ -476,7 +477,7 @@ a:hover {
   clear: both;
 }
 .fakelink {
-  color: #194719;
+  color: #2c9936;
   /* color: #3e3e8c; */
   text-decoration: none;
   cursor: pointer;
@@ -614,7 +615,7 @@ header #banner #logo-text {
 }
 /* messages */
 #message-new {
-  background: #194719;
+  background: #2c9936;
   border: 1px solid #333;
   width: 150px;
 }
@@ -991,7 +992,7 @@ ul.menu-popup .empty {
   background-color: #bdcdd4;
 }
 #nav-notifications-menu {
-  width: 400px;
+  width: 425px !important;
   max-height: 550px;
   overflow: auto;
 }
@@ -1185,7 +1186,7 @@ aside #side-peoplefind-url {
   height: auto;
 }
 aside #likes a, a:visited, a:link {
-               color: #194719;
+               color: #2c9936;
                text-decoration: none;
                cursor: pointer;
                
@@ -1220,7 +1221,7 @@ aside #likes a:hover{
   margin-right: 20px;          
        }
 #login-submit-wrapper{
-  padding-top: 120px;
+
   margin-bottom: 12px;
        }
 aside #login-submit-button{
@@ -1422,7 +1423,7 @@ body .pageheader{
   padding-top: 10px;
 }
 .tread-wrapper a{
-  color: #194719;
+  color: #2c9936;
 }
 
 /*marker*/
@@ -2073,7 +2074,7 @@ body .pageheader{
         cursor: pointer;
 }
 .button.creation2 {
-    background-color: #194719;
+    background-color: #2c9936;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
@@ -2207,7 +2208,7 @@ ul.tabs li {
   margin-left: 5px;
 }
 ul.tabs li .active {
-    background-color: #194719;
+    background-color: #2c9936;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
@@ -2225,7 +2226,7 @@ ul.rs_tabs li {
   clear: both;
 }
 ul.rs_tabs li .selected {
-    background-color: #194719;
+    background-color: #2c9936;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
index c83ddd3972f340b194ca8644d55b8381f0a34af9..6a9d8f7d0c8a76137dbe0a31aa5b705815324044 100644 (file)
@@ -21,6 +21,7 @@
 
 .admin.linklist {
         border: 0px; padding: 0px;
+        list-style: none;
 }
 
 .admin.link {
@@ -477,7 +478,7 @@ a:hover {
 }
 /*color*/
 .fakelink {
-  color: #194719;
+  color: #2c9936;
   /* color: #3e3e8c; */
   text-decoration: none;
   cursor: pointer;
@@ -550,7 +551,7 @@ code {
 }
 /*color*/
 .tool a {
-  color: #194719;
+  color: #2c9936;
 }
 .tool a:hover {
   text-decoration: none;
@@ -617,7 +618,7 @@ header #banner #logo-text {
 /*color*/
 /* messages */
 #message-new {
-  background: #194719;
+  background: #2c9936;
   border: 1px solid #333;
   width: 150px;
 }
@@ -994,7 +995,7 @@ ul.menu-popup .empty {
   background-color: #bdcdd4;
 }
 #nav-notifications-menu {
-  width: 400px;
+  width: 425px !important;
   max-height: 550px;
   overflow: auto;
 }
@@ -1189,7 +1190,7 @@ aside #side-peoplefind-url {
 }
 /*color*/
 aside #likes a, a:visited, a:link {
-               color: #194719;
+               color: #2c9936;
                text-decoration: none;
                cursor: pointer;
                
@@ -1224,7 +1225,7 @@ aside #likes a:hover{
   margin-right: 20px;          
        }
 #login-submit-wrapper{
-  padding-top: 120px;
+
   margin-bottom: 12px;
        }
 aside #login-submit-button{
@@ -1425,7 +1426,7 @@ body .pageheader{
 }
 /*color*/
 .tread-wrapper a{
-  color: #194719;
+  color: #2c9936;
 }
 .wall-item-decor {
   position: absolute;
@@ -2071,7 +2072,7 @@ body .pageheader{
 }
 /*color*/
 .button.creation2 {
-    background-color: #194719;
+    background-color: #2c9936;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
@@ -2204,7 +2205,7 @@ ul.tabs li {
 }
 /*color*/
 ul.tabs li .active {
-    background-color: #194719;
+    background-color: #2c9936;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
@@ -2223,7 +2224,7 @@ ul.rs_tabs li {
 }
 /*color*/
 ul.rs_tabs li .selected {
-    background-color: #194719;
+    background-color: #2c9936;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
index 0a83955dfa668e5c931ea2a637ce842b5b333115..02567a0dec2e204e7c8c943a0de97f548bb62ad7 100644 (file)
@@ -439,7 +439,7 @@ a:hover {
   clear: both;
 }
 .fakelink {
-  color: #996d73;
+  color: #D02B55;
   /* color: #3e3e8c; */
   text-decoration: none;
   cursor: pointer;
@@ -807,7 +807,7 @@ ul.menu-popup a {
   text-decoration: none;
 }
 ul.menu-popup a:hover {
-  background-color: #996d73; /*bdcdd4;*/
+  background-color: #D02B55; /*bdcdd4;*/
   color: #fff;
 }
 ul.menu-popup .menu-sep {
@@ -1158,7 +1158,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-pink/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1167,14 +1167,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-pink/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-pink/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1266,8 +1266,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
@@ -1301,7 +1301,7 @@ transition: all 0.2s ease-in-out;
   padding-top: 10px;
 }
 .tread-wrapper a{
-  color: #996d73;
+  color: #D02B55;
 }
 
 /*marker*/
@@ -1840,7 +1840,7 @@ transition: all 0.2s ease-in-out;
     font-weight: bolder;
 }
 .button.creation2 {
-    background-color: #996d73;
+    background-color: #D02B55;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
index 3a4f49877ef531c476aae120919a772803ace6f5..3c236c0e4cc8504dec4bdadd41229e1821228c49 100644 (file)
@@ -439,7 +439,7 @@ a:hover {
   clear: both;
 }
 .fakelink {
-  color: #996d73;
+  color: #D02B55;
   /* color: #3e3e8c; */
   text-decoration: none;
   cursor: pointer;
@@ -493,7 +493,7 @@ code {
   float: right;
 }
 .tool a {
-  color: #996d73;
+  color: #D02B55;
 }
 .tool a:hover {
   text-decoration: none;
@@ -807,7 +807,7 @@ ul.menu-popup a {
   text-decoration: none;
 }
 ul.menu-popup a:hover {
-  background-color: #996d73; /*bdcdd4;*/
+  background-color: #D02B55; /*bdcdd4;*/
   color: #fff;
 }
 ul.menu-popup .menu-sep {
@@ -1155,7 +1155,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-pink/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1164,14 +1164,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-pink/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-pink/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1262,8 +1262,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
@@ -1297,7 +1297,7 @@ transition: all 0.2s ease-in-out;
   padding-top: 10px;
 }
 .tread-wrapper a{
-  color: #996d73;
+  color: #D02B55;
 }
 
 .wall-item-decor {
@@ -1832,7 +1832,7 @@ transition: all 0.2s ease-in-out;
     font-weight: bolder;
 }
 .button.creation2 {
-    background-color: #996d73;
+    background-color: #D02B55;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
@@ -1964,7 +1964,7 @@ ul.tabs li {
   margin-left: 5px;
 }
 ul.tabs li .active {
-    background-color: #996d73;
+    background-color: #D02B55;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
index 0805518963f485a71831d7b2c1fc9e06f2131e00..8d5e1abb5f6b76d0435e03bd0d203f32e15e2fda 100644 (file)
@@ -440,7 +440,7 @@ a:hover {
   clear: both;
 }
 .fakelink {
-  color: #996d73;
+  color: #D02B55;
   /* color: #3e3e8c; */
   text-decoration: none;
   cursor: pointer;
@@ -807,7 +807,7 @@ ul.menu-popup a {
   text-decoration: none;
 }
 ul.menu-popup a:hover {
-  background-color: #996d73; /*bdcdd4;*/
+  background-color: #D02B55; /*bdcdd4;*/
   color: #fff;
 }
 ul.menu-popup .menu-sep {
@@ -1134,7 +1134,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-pink/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1143,14 +1143,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-pink/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-pink/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1242,8 +1242,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
@@ -1276,7 +1276,7 @@ transition: all 0.2s ease-in-out;
   padding-top: 10px;
 }
 .tread-wrapper a{
-  color: #996d73;
+  color: #D02B55;
 }
 
 /*marker*/
@@ -1811,7 +1811,7 @@ transition: all 0.2s ease-in-out;
         cursor: pointer;
 }
 .button.creation2 {
-    background-color: #996d73;
+    background-color: #D02B55;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
@@ -1945,7 +1945,7 @@ ul.tabs li {
   margin-left: 5px;
 }
 ul.tabs li .active {
-    background-color: #996d73;
+    background-color: #D02B55;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
index 8f3753061446f6c98339f6ad41c9a6fb17940673..cf5fd270c8027a6e7ef6dfad3e18c6861561e183 100644 (file)
@@ -440,7 +440,7 @@ a:hover {
   clear: both;
 }
 .fakelink {
-  color: #996d73;
+  color: #D02B55;
   /* color: #3e3e8c; */
   text-decoration: none;
   cursor: pointer;
@@ -806,7 +806,7 @@ ul.menu-popup a {
   text-decoration: none;
 }
 ul.menu-popup a:hover {
-  background-color: #996d73; /*bdcdd4;*/
+  background-color: #D02B55; /*bdcdd4;*/
   color: #fff;
 }
 ul.menu-popup .menu-sep {
@@ -1130,7 +1130,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-pink/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1139,14 +1139,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-pink/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-pink/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1237,8 +1237,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
@@ -1270,7 +1270,7 @@ transition: all 0.2s ease-in-out;
   padding-top: 10px;
 }
 .tread-wrapper a{
-  color: #996d73;
+  color: #D02B55;
 }
 
 .wall-item-decor {
@@ -1801,7 +1801,7 @@ transition: all 0.2s ease-in-out;
         cursor: pointer;
 }
 .button.creation2 {
-    background-color: #996d73;
+    background-color: #D02B55;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
@@ -1933,7 +1933,7 @@ ul.tabs li {
   margin-left: 5px;
 }
 ul.tabs li .active {
-    background-color: #996d73;
+    background-color: #D02B55;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
index a51ca49cc28445e108838098bd1fb1dad214cb90..849566aa01f1c7490fb20ce93f000da00e8c9097 100644 (file)
@@ -21,6 +21,7 @@
 
 .admin.linklist {
         border: 0px; padding: 0px;
+        list-style: none;
 }
 
 .admin.link {
@@ -476,7 +477,7 @@ a:hover {
   clear: both;
 }
 .fakelink {
-  color: #996d73;
+  color: #D02B55;
   /* color: #3e3e8c; */
   text-decoration: none;
   cursor: pointer;
@@ -614,7 +615,7 @@ header #banner #logo-text {
 }
 /* messages */
 #message-new {
-  background: #996d73;
+  background: #D02B55;
   border: 1px solid #333;
   width: 150px;
 }
@@ -943,7 +944,7 @@ ul.menu-popup a {
   text-decoration: none;
 }
 ul.menu-popup a:hover {
-  background-color: #996d73; /*bdcdd4;*/
+  background-color: #D02B55; /*bdcdd4;*/
   color: #fff;
 }
 ul.menu-popup .menu-sep {
@@ -991,7 +992,7 @@ ul.menu-popup .empty {
   background-color: #bdcdd4;
 }
 #nav-notifications-menu {
-  width: 400px;
+  width: 425px !important;
   max-height: 550px;
   overflow: auto;
 }
@@ -1185,7 +1186,7 @@ aside #side-peoplefind-url {
   height: auto;
 }
 aside #likes a, a:visited, a:link {
-               color: #996d73;
+               color: #D02B55;
                text-decoration: none;
                cursor: pointer;
                
@@ -1220,7 +1221,7 @@ aside #likes a:hover{
   margin-right: 20px;          
        }
 #login-submit-wrapper{
-  padding-top: 120px;
+
   margin-bottom: 12px;
        }
 aside #login-submit-button{
@@ -1422,7 +1423,7 @@ body .pageheader{
   padding-top: 10px;
 }
 .tread-wrapper a{
-  color: #996d73;
+  color: #D02B55;
 }
 
 /*marker*/
@@ -2073,7 +2074,7 @@ body .pageheader{
         cursor: pointer;
 }
 .button.creation2 {
-    background-color: #996d73;
+    background-color: #D02B55;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
@@ -2207,7 +2208,7 @@ ul.tabs li {
   margin-left: 5px;
 }
 ul.tabs li .active {
-    background-color: #996d73;
+    background-color: #D02B55;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
@@ -2225,7 +2226,7 @@ ul.rs_tabs li {
   clear: both;
 }
 ul.rs_tabs li .selected {
-    background-color: #996d73;
+    background-color: #D02B55;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
index 833e81a5f3260f79c875d4af8aea4da768a5f48e..798d739794a16aa9ae75c1c924769559aff0c48a 100644 (file)
@@ -21,6 +21,7 @@
 
 .admin.linklist {
         border: 0px; padding: 0px;
+        list-style: none;
 }
 
 .admin.link {
@@ -477,7 +478,7 @@ a:hover {
 }
 /*color*/
 .fakelink {
-  color: #996d73;
+  color: #D02B55;
   /* color: #3e3e8c; */
   text-decoration: none;
   cursor: pointer;
@@ -550,7 +551,7 @@ code {
 }
 /*color*/
 .tool a {
-  color: #996d73;
+  color: #D02B55;
 }
 .tool a:hover {
   text-decoration: none;
@@ -617,7 +618,7 @@ header #banner #logo-text {
 /* messages */
 /*color*/
 #message-new {
-  background: #996d73;
+  background: #D02B55;
   border: 1px solid #333;
   width: 150px;
 }
@@ -946,7 +947,7 @@ ul.menu-popup a {
 }
 /*color*/
 ul.menu-popup a:hover {
-  background-color: #996d73; /*bdcdd4;*/
+  background-color: #D02B55; /*bdcdd4;*/
   color: #fff;
 }
 ul.menu-popup .menu-sep {
@@ -994,7 +995,7 @@ ul.menu-popup .empty {
   background-color: #bdcdd4;
 }
 #nav-notifications-menu {
-  width: 400px;
+  width: 425px !important;
   max-height: 550px;
   overflow: auto;
 }
@@ -1189,7 +1190,7 @@ aside #side-peoplefind-url {
 }
 /*color*/
 aside #likes a, a:visited, a:link {
-               color: #996d73;
+               color: #D02B55;
                text-decoration: none;
                cursor: pointer;
                
@@ -1224,7 +1225,7 @@ aside #likes a:hover{
   margin-right: 20px;          
        }
 #login-submit-wrapper{
-  padding-top: 120px;
+
   margin-bottom: 12px;
        }
 aside #login-submit-button{
@@ -1425,7 +1426,7 @@ body .pageheader{
 }
 /*color*/
 .tread-wrapper a{
-  color: #996d73;
+  color: #D02B55;
 }
 .wall-item-decor {
   position: absolute;
@@ -2071,7 +2072,7 @@ body .pageheader{
 }
 /*color*/
 .button.creation2 {
-    background-color: #996d73;
+    background-color: #D02B55;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
@@ -2204,7 +2205,7 @@ ul.tabs li {
 }
 /*color*/
 ul.tabs li .active {
-    background-color: #996d73;
+    background-color: #D02B55;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
@@ -2223,7 +2224,7 @@ ul.rs_tabs li {
 }
 /*color*/
 ul.rs_tabs li .selected {
-    background-color: #996d73;
+    background-color: #D02B55;
     border: 1px solid #777777;
     color: white;
     border-radius: 3px 3px 3px 3px;
index 8c3b67cb6c02b7b929d1d07a1b6b72b7117db473..0d35404570398c575375c26b0c52e334693be526 100644 (file)
@@ -1182,7 +1182,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-red/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1191,14 +1191,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-red/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-red/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1287,8 +1287,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
index 84fd5da48477109b79eb139affa6d42ad21d3162..80d379dea7136e6464ba5a5fb69c69c3425ec0a4 100644 (file)
@@ -1178,7 +1178,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-red/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1187,14 +1187,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-red/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-red/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1282,8 +1282,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
index acb6075f7497f6db214bdf44da207d3300cee2d1..e7e9e1ce9b8e5b1c26ceef0d7f18eb7d0feb185a 100644 (file)
@@ -1141,7 +1141,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-red/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1150,14 +1150,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-red/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-red/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1246,8 +1246,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
index a29eb3eb0d848d709f1e7ee43b00e8aab907b0e5..be9581c2fee585dda427b1c24d8f89c802ebd355 100644 (file)
@@ -1137,7 +1137,7 @@ list-style-type: disc;
 }
 /* widget: search */
 span.sbox_l  {
-       background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
+       background: white url('../diabook-red/icons/srch_l.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-left: 10px;
@@ -1146,14 +1146,14 @@ span.sbox_l  {
 }
 
 span.sbox_r  {
-       background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
+       background: white url('../diabook-red/icons/srch_r.gif') no-repeat top left;
        float: left;
        width: 19px; height: 19px;
        margin-top: 5px;
 }
 
 span.sbox input {
-       background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
+       background: white url('../diabook-red/icons/srch_bg.gif') repeat-x top left;
        float: left;
        margin-top: 5px;
        border: 0;
@@ -1241,8 +1241,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
index 79c5fb1cbed41244283e0bb15d98b83180859aea..b9ea238e2e4f55dfdcc744281f4fa18271fcf451 100644 (file)
@@ -21,6 +21,7 @@
 
 .admin.linklist {
         border: 0px; padding: 0px;
+        list-style: none;
 }
 
 .admin.link {
@@ -1013,7 +1014,7 @@ ul.menu-popup .empty {
   background-color: #bdcdd4;
 }
 #nav-notifications-menu {
-  width: 400px;
+  width: 425px !important;
   max-height: 550px;
   overflow: auto;
 }
@@ -1232,7 +1233,7 @@ aside #side-peoplefind-url {
   margin-right: 20px;          
        }
 #login-submit-wrapper{
-  padding-top: 120px;
+
   margin-bottom: 12px;
        }
 aside #login-submit-button{
index c7cb1586d0349a36d0d4323468ffc7d188e103cc..05c802102cacf42bf4ea14357eca663a78b9689d 100644 (file)
@@ -21,6 +21,7 @@
 
 .admin.linklist {
         border: 0px; padding: 0px;
+        list-style: none;
 }
 
 .admin.link {
@@ -1012,7 +1013,7 @@ ul.menu-popup .empty {
   background-color: #bdcdd4;
 }
 #nav-notifications-menu {
-  width: 400px;
+  width: 425px !important;
   max-height: 550px;
   overflow: auto;
 }
@@ -1230,7 +1231,7 @@ aside #side-peoplefind-url {
   margin-right: 20px;          
        }
 #login-submit-wrapper{
-  padding-top: 120px;
+
   margin-bottom: 12px;
        }
 aside #login-submit-button{
index 8d3c6516216d20adbfe5b2520d3e6b0c0a0c4540..25058a7ff7f9c5aec11bd3cd234f4b3459857cae 100644 (file)
@@ -1,4 +1,3 @@
-<div style="display: table-cell"></div>
-<div style="border-top: 1px solid #D2D2D2; width: 100%;margin-top: 30px;">
+<div id="footerbox" style="display:none">
 <a style="float:right; color:#333;margin-right:10px;display: table;margin-top: 5px;" href="friendica" title="Site Info / Impressum" >Info / Impressum</a>
 </div>
\ No newline at end of file
index 57ca16d020c4b65395dfe8c669021104c2edd00c..12447afc9819d383dc649f7adbc58abbca61decb 100644 (file)
@@ -24,3 +24,8 @@ $(function() {
 _______________________________________________________________________________________________
 
 http://javascriptly.com/examples/jquery-grab-bag/autogrow-textarea.html
+
+_______________________________________________________________________________________________
+
+http://jquery.malsup.com/
+http://jquery.malsup.com/twitter/
diff --git a/view/theme/diabook/js/jquery-ui-1.8.20.custom.min.js b/view/theme/diabook/js/jquery-ui-1.8.20.custom.min.js
new file mode 100644 (file)
index 0000000..e9da81f
--- /dev/null
@@ -0,0 +1,37 @@
+/*! jQuery UI - v1.8.20 - 2012-04-30
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.core.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;return!b.href||!g||f.nodeName.toLowerCase()!=="map"?!1:(h=a("img[usemap=#"+g+"]")[0],!!h&&d(h))}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(a.ui.version)return;a.extend(a.ui,{version:"1.8.20",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;return a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0),/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)}),c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){return c===b?g["inner"+d].call(this):this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){return typeof b!="number"?g["outer"+d].call(this,b):this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!d||!a.element[0].parentNode)return;for(var e=0;e<d.length;e++)a.options[d[e][0]]&&d[e][1].apply(a.element,c)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(b,c){if(a(b).css("overflow")==="hidden")return!1;var d=c&&c==="left"?"scrollLeft":"scrollTop",e=!1;return b[d]>0?!0:(b[d]=1,e=b[d]>0,b[d]=0,e)},isOverAxis:function(a,b,c){return a>b&&a<b+c},isOver:function(b,c,d,e,f,g){return a.ui.isOverAxis(b,d,f)&&a.ui.isOverAxis(c,e,g)}})})(jQuery);;/*! jQuery UI - v1.8.20 - 2012-04-30
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.widget.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){if(a.cleanData){var c=a.cleanData;a.cleanData=function(b){for(var d=0,e;(e=b[d])!=null;d++)try{a(e).triggerHandler("remove")}catch(f){}c(b)}}else{var d=a.fn.remove;a.fn.remove=function(b,c){return this.each(function(){return c||(!b||a.filter(b,[this]).length)&&a("*",this).add([this]).each(function(){try{a(this).triggerHandler("remove")}catch(b){}}),d.call(a(this),b,c)})}}a.widget=function(b,c,d){var e=b.split(".")[0],f;b=b.split(".")[1],f=e+"-"+b,d||(d=c,c=a.Widget),a.expr[":"][f]=function(c){return!!a.data(c,b)},a[e]=a[e]||{},a[e][b]=function(a,b){arguments.length&&this._createWidget(a,b)};var g=new c;g.options=a.extend(!0,{},g.options),a[e][b].prototype=a.extend(!0,g,{namespace:e,widgetName:b,widgetEventPrefix:a[e][b].prototype.widgetEventPrefix||b,widgetBaseClass:f},d),a.widget.bridge(b,a[e][b])},a.widget.bridge=function(c,d){a.fn[c]=function(e){var f=typeof e=="string",g=Array.prototype.slice.call(arguments,1),h=this;return e=!f&&g.length?a.extend.apply(null,[!0,e].concat(g)):e,f&&e.charAt(0)==="_"?h:(f?this.each(function(){var d=a.data(this,c),f=d&&a.isFunction(d[e])?d[e].apply(d,g):d;if(f!==d&&f!==b)return h=f,!1}):this.each(function(){var b=a.data(this,c);b?b.option(e||{})._init():a.data(this,c,new d(e,this))}),h)}},a.Widget=function(a,b){arguments.length&&this._createWidget(a,b)},a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:!1},_createWidget:function(b,c){a.data(c,this.widgetName,this),this.element=a(c),this.options=a.extend(!0,{},this.options,this._getCreateOptions(),b);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()}),this._create(),this._trigger("create"),this._init()},_getCreateOptions:function(){return a.metadata&&a.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName),this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled "+"ui-state-disabled")},widget:function(){return this.element},option:function(c,d){var e=c;if(arguments.length===0)return a.extend({},this.options);if(typeof c=="string"){if(d===b)return this.options[c];e={},e[c]=d}return this._setOptions(e),this},_setOptions:function(b){var c=this;return a.each(b,function(a,b){c._setOption(a,b)}),this},_setOption:function(a,b){return this.options[a]=b,a==="disabled"&&this.widget()[b?"addClass":"removeClass"](this.widgetBaseClass+"-disabled"+" "+"ui-state-disabled").attr("aria-disabled",b),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_trigger:function(b,c,d){var e,f,g=this.options[b];d=d||{},c=a.Event(c),c.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase(),c.target=this.element[0],f=c.originalEvent;if(f)for(e in f)e in c||(c[e]=f[e]);return this.element.trigger(c,d),!(a.isFunction(g)&&g.call(this.element[0],c,d)===!1||c.isDefaultPrevented())}}})(jQuery);;/*! jQuery UI - v1.8.20 - 2012-04-30
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.mouse.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){var c=!1;a(document).mouseup(function(a){c=!1}),a.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var b=this;this.element.bind("mousedown."+this.widgetName,function(a){return b._mouseDown(a)}).bind("click."+this.widgetName,function(c){if(!0===a.data(c.target,b.widgetName+".preventClickEvent"))return a.removeData(c.target,b.widgetName+".preventClickEvent"),c.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(b){if(c)return;this._mouseStarted&&this._mouseUp(b),this._mouseDownEvent=b;var d=this,e=b.which==1,f=typeof this.options.cancel=="string"&&b.target.nodeName?a(b.target).closest(this.options.cancel).length:!1;if(!e||f||!this._mouseCapture(b))return!0;this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){d.mouseDelayMet=!0},this.options.delay));if(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)){this._mouseStarted=this._mouseStart(b)!==!1;if(!this._mouseStarted)return b.preventDefault(),!0}return!0===a.data(b.target,this.widgetName+".preventClickEvent")&&a.removeData(b.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(a){return d._mouseMove(a)},this._mouseUpDelegate=function(a){return d._mouseUp(a)},a(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),b.preventDefault(),c=!0,!0},_mouseMove:function(b){return!a.browser.msie||document.documentMode>=9||!!b.button?this._mouseStarted?(this._mouseDrag(b),b.preventDefault()):(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b)),!this._mouseStarted):this._mouseUp(b)},_mouseUp:function(b){return a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b)),!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);;/*! jQuery UI - v1.8.20 - 2012-04-30
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.position.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.ui=a.ui||{};var c=/left|center|right/,d=/top|center|bottom/,e="center",f={},g=a.fn.position,h=a.fn.offset;a.fn.position=function(b){if(!b||!b.of)return g.apply(this,arguments);b=a.extend({},b);var h=a(b.of),i=h[0],j=(b.collision||"flip").split(" "),k=b.offset?b.offset.split(" "):[0,0],l,m,n;return i.nodeType===9?(l=h.width(),m=h.height(),n={top:0,left:0}):i.setTimeout?(l=h.width(),m=h.height(),n={top:h.scrollTop(),left:h.scrollLeft()}):i.preventDefault?(b.at="left top",l=m=0,n={top:b.of.pageY,left:b.of.pageX}):(l=h.outerWidth(),m=h.outerHeight(),n=h.offset()),a.each(["my","at"],function(){var a=(b[this]||"").split(" ");a.length===1&&(a=c.test(a[0])?a.concat([e]):d.test(a[0])?[e].concat(a):[e,e]),a[0]=c.test(a[0])?a[0]:e,a[1]=d.test(a[1])?a[1]:e,b[this]=a}),j.length===1&&(j[1]=j[0]),k[0]=parseInt(k[0],10)||0,k.length===1&&(k[1]=k[0]),k[1]=parseInt(k[1],10)||0,b.at[0]==="right"?n.left+=l:b.at[0]===e&&(n.left+=l/2),b.at[1]==="bottom"?n.top+=m:b.at[1]===e&&(n.top+=m/2),n.left+=k[0],n.top+=k[1],this.each(function(){var c=a(this),d=c.outerWidth(),g=c.outerHeight(),h=parseInt(a.curCSS(this,"marginLeft",!0))||0,i=parseInt(a.curCSS(this,"marginTop",!0))||0,o=d+h+(parseInt(a.curCSS(this,"marginRight",!0))||0),p=g+i+(parseInt(a.curCSS(this,"marginBottom",!0))||0),q=a.extend({},n),r;b.my[0]==="right"?q.left-=d:b.my[0]===e&&(q.left-=d/2),b.my[1]==="bottom"?q.top-=g:b.my[1]===e&&(q.top-=g/2),f.fractions||(q.left=Math.round(q.left),q.top=Math.round(q.top)),r={left:q.left-h,top:q.top-i},a.each(["left","top"],function(c,e){a.ui.position[j[c]]&&a.ui.position[j[c]][e](q,{targetWidth:l,targetHeight:m,elemWidth:d,elemHeight:g,collisionPosition:r,collisionWidth:o,collisionHeight:p,offset:k,my:b.my,at:b.at})}),a.fn.bgiframe&&c.bgiframe(),c.offset(a.extend(q,{using:b.using}))})},a.ui.position={fit:{left:function(b,c){var d=a(window),e=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft();b.left=e>0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]===e)return;var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g=c.my[0]==="left"?-c.elemWidth:c.my[0]==="right"?c.elemWidth:0,h=c.at[0]==="left"?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0},top:function(b,c){if(c.at[1]===e)return;var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g=c.my[1]==="top"?-c.elemHeight:c.my[1]==="bottom"?c.elemHeight:0,h=c.at[1]==="top"?c.targetHeight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,"position"))&&(b.style.position="relative");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,"top",!0),10)||0,g=parseInt(a.curCSS(b,"left",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};"using"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];return!c||!c.ownerDocument?null:b?this.each(function(){a.offset.setOffset(this,b)}):h.call(this)}),function(){var b=document.getElementsByTagName("body")[0],c=document.createElement("div"),d,e,g,h,i;d=document.createElement(b?"div":"body"),g={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},b&&a.extend(g,{position:"absolute",left:"-1000px",top:"-1000px"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText="position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML="",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&i<22}()})(jQuery);;/*! jQuery UI - v1.8.20 - 2012-04-30
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.draggable.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},destroy:function(){if(!this.element.data("draggable"))return;return this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy(),this},_mouseCapture:function(b){var c=this.options;return this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")?!1:(this.handle=this._getHandle(b),this.handle?(c.iframeFix&&a(c.iframeFix===!0?"iframe":c.iframeFix).each(function(){a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(a(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(b){var c=this.options;return this.helper=this._createHelper(b),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),c.containment&&this._setContainment(),this._trigger("start",b)===!1?(this._clear(),!1):(this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.helper.addClass("ui-draggable-dragging"),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b),!0)},_mouseDrag:function(b,c){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute");if(!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1)return this._mouseUp({}),!1;this.position=d.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";return a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),!1},_mouseStop:function(b){var c=!1;a.ui.ddmanager&&!this.options.dropBehaviour&&(c=a.ui.ddmanager.drop(this,b)),this.dropped&&(c=this.dropped,this.dropped=!1);var d=this.element[0],e=!1;while(d&&(d=d.parentNode))d==document&&(e=!0);if(!e&&this.options.helper==="original")return!1;if(this.options.revert=="invalid"&&!c||this.options.revert=="valid"&&c||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var f=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){f._trigger("stop",b)!==!1&&f._clear()})}else this._trigger("stop",b)!==!1&&this._clear();return!1},_mouseUp:function(b){return this.options.iframeFix===!0&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b),a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?!0:!1;return a(this.options.handle,this.element).find("*").andSelf().each(function(){this==b.target&&(c=!0)}),c},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b])):c.helper=="clone"?this.element.clone().removeAttr("id"):this.element;return d.parents("body").length||d.appendTo(c.appendTo=="parent"?this.element[0].parentNode:c.appendTo),d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute"),d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[b.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,b.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.containment=="document"?0:a(window).scrollLeft())+a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b.containment=="document"?0:a(window).scrollTop())+(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)&&b.containment.constructor!=Array){var c=a(b.containment),d=c[0];if(!d)return;var e=c.offset(),f=a(d).css("overflow")!="hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(f?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(f?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=c}else b.containment.constructor==Array&&(this.containment=b.containment)},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),f=b.pageX,g=b.pageY;if(this.originalPosition){var h;if(this.containment){if(this.relative_container){var i=this.relative_container.offset();h=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]}else h=this.containment;b.pageX-this.offset.click.left<h[0]&&(f=h[0]+this.offset.click.left),b.pageY-this.offset.click.top<h[1]&&(g=h[1]+this.offset.click.top),b.pageX-this.offset.click.left>h[2]&&(f=h[2]+this.offset.click.left),b.pageY-this.offset.click.top>h[3]&&(g=h[3]+this.offset.click.top)}if(c.grid){var j=c.grid[1]?this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;g=h?j-this.offset.click.top<h[1]||j-this.offset.click.top>h[3]?j-this.offset.click.top<h[1]?j+c.grid[1]:j-c.grid[1]:j:j;var k=c.grid[0]?this.originalPageX+Math.round((f-this.originalPageX)/c.grid[0])*c.grid[0]:this.originalPageX;f=h?k-this.offset.click.left<h[0]||k-this.offset.click.left>h[2]?k-this.offset.click.left<h[0]?k+c.grid[0]:k-c.grid[0]:k:k}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:d.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:d.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1},_trigger:function(b,c,d){return d=d||this._uiHash(),a.ui.plugin.call(this,b,[c,d]),b=="drag"&&(this.positionAbs=this._convertPositionTo("absolute")),a.Widget.prototype._trigger.call(this,b,c,d)},plugins:{},_uiHash:function(a){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),a.extend(a.ui.draggable,{version:"1.8.20"}),a.ui.plugin.add("draggable","connectToSortable",{start:function(b,c){var d=a(this).data("draggable"),e=d.options,f=a.extend({},c,{item:d.element});d.sortables=[],a(e.connectToSortable).each(function(){var c=a.data(this,"sortable");c&&!c.options.disabled&&(d.sortables.push({instance:c,shouldRevert:c.options.revert}),c.refreshPositions(),c._trigger("activate",b,f))})},stop:function(b,c){var d=a(this).data("draggable"),e=a.extend({},c,{item:d.element});a.each(d.sortables,function(){this.instance.isOver?(this.instance.isOver=0,d.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=!0),this.instance._mouseStop(b),this.instance.options.helper=this.instance.options._helper,d.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",b,e))})},drag:function(b,c){var d=a(this).data("draggable"),e=this,f=function(b){var c=this.offset.click.top,d=this.offset.click.left,e=this.positionAbs.top,f=this.positionAbs.left,g=b.height,h=b.width,i=b.top,j=b.left;return a.ui.isOver(e+c,f+d,i,j,g,h)};a.each(d.sortables,function(f){this.instance.positionAbs=d.positionAbs,this.instance.helperProportions=d.helperProportions,this.instance.offset.click=d.offset.click,this.instance._intersectsWith(this.instance.containerCache)?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=a(e).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return c.helper[0]},b.target=this.instance.currentItem[0],this.instance._mouseCapture(b,!0),this.instance._mouseStart(b,!0,!0),this.instance.offset.click.top=d.offset.click.top,this.instance.offset.click.left=d.offset.click.left,this.instance.offset.parent.left-=d.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=d.offset.parent.top-this.instance.offset.parent.top,d._trigger("toSortable",b),d.dropped=this.instance.element,d.currentItem=d.element,this.instance.fromOutside=d),this.instance.currentItem&&this.instance._mouseDrag(b)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",b,this.instance._uiHash(this.instance)),this.instance._mouseStop(b,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),d._trigger("fromSortable",b),d.dropped=!1)})}}),a.ui.plugin.add("draggable","cursor",{start:function(b,c){var d=a("body"),e=a(this).data("draggable").options;d.css("cursor")&&(e._cursor=d.css("cursor")),d.css("cursor",e.cursor)},stop:function(b,c){var d=a(this).data("draggable").options;d._cursor&&a("body").css("cursor",d._cursor)}}),a.ui.plugin.add("draggable","opacity",{start:function(b,c){var d=a(c.helper),e=a(this).data("draggable").options;d.css("opacity")&&(e._opacity=d.css("opacity")),d.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;d._opacity&&a(c.helper).css("opacity",d._opacity)}}),a.ui.plugin.add("draggable","scroll",{start:function(b,c){var d=a(this).data("draggable");d.scrollParent[0]!=document&&d.scrollParent[0].tagName!="HTML"&&(d.overflowOffset=d.scrollParent.offset())},drag:function(b,c){var d=a(this).data("draggable"),e=d.options,f=!1;if(d.scrollParent[0]!=document&&d.scrollParent[0].tagName!="HTML"){if(!e.axis||e.axis!="x")d.overflowOffset.top+d.scrollParent[0].offsetHeight-b.pageY<e.scrollSensitivity?d.scrollParent[0].scrollTop=f=d.scrollParent[0].scrollTop+e.scrollSpeed:b.pageY-d.overflowOffset.top<e.scrollSensitivity&&(d.scrollParent[0].scrollTop=f=d.scrollParent[0].scrollTop-e.scrollSpeed);if(!e.axis||e.axis!="y")d.overflowOffset.left+d.scrollParent[0].offsetWidth-b.pageX<e.scrollSensitivity?d.scrollParent[0].scrollLeft=f=d.scrollParent[0].scrollLeft+e.scrollSpeed:b.pageX-d.overflowOffset.left<e.scrollSensitivity&&(d.scrollParent[0].scrollLeft=f=d.scrollParent[0].scrollLeft-e.scrollSpeed)}else{if(!e.axis||e.axis!="x")b.pageY-a(document).scrollTop()<e.scrollSensitivity?f=a(document).scrollTop(a(document).scrollTop()-e.scrollSpeed):a(window).height()-(b.pageY-a(document).scrollTop())<e.scrollSensitivity&&(f=a(document).scrollTop(a(document).scrollTop()+e.scrollSpeed));if(!e.axis||e.axis!="y")b.pageX-a(document).scrollLeft()<e.scrollSensitivity?f=a(document).scrollLeft(a(document).scrollLeft()-e.scrollSpeed):a(window).width()-(b.pageX-a(document).scrollLeft())<e.scrollSensitivity&&(f=a(document).scrollLeft(a(document).scrollLeft()+e.scrollSpeed))}f!==!1&&a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(d,b)}}),a.ui.plugin.add("draggable","snap",{start:function(b,c){var d=a(this).data("draggable"),e=d.options;d.snapElements=[],a(e.snap.constructor!=String?e.snap.items||":data(draggable)":e.snap).each(function(){var b=a(this),c=b.offset();this!=d.element[0]&&d.snapElements.push({item:this,width:b.outerWidth(),height:b.outerHeight(),top:c.top,left:c.left})})},drag:function(b,c){var d=a(this).data("draggable"),e=d.options,f=e.snapTolerance,g=c.offset.left,h=g+d.helperProportions.width,i=c.offset.top,j=i+d.helperProportions.height;for(var k=d.snapElements.length-1;k>=0;k--){var l=d.snapElements[k].left,m=l+d.snapElements[k].width,n=d.snapElements[k].top,o=n+d.snapElements[k].height;if(!(l-f<g&&g<m+f&&n-f<i&&i<o+f||l-f<g&&g<m+f&&n-f<j&&j<o+f||l-f<h&&h<m+f&&n-f<i&&i<o+f||l-f<h&&h<m+f&&n-f<j&&j<o+f)){d.snapElements[k].snapping&&d.options.snap.release&&d.options.snap.release.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[k].item})),d.snapElements[k].snapping=!1;continue}if(e.snapMode!="inner"){var p=Math.abs(n-j)<=f,q=Math.abs(o-i)<=f,r=Math.abs(l-h)<=f,s=Math.abs(m-g)<=f;p&&(c.position.top=d._convertPositionTo("relative",{top:n-d.helperProportions.height,left:0}).top-d.margins.top),q&&(c.position.top=d._convertPositionTo("relative",{top:o,left:0}).top-d.margins.top),r&&(c.position.left=d._convertPositionTo("relative",{top:0,left:l-d.helperProportions.width}).left-d.margins.left),s&&(c.position.left=d._convertPositionTo("relative",{top:0,left:m}).left-d.margins.left)}var t=p||q||r||s;if(e.snapMode!="outer"){var p=Math.abs(n-i)<=f,q=Math.abs(o-j)<=f,r=Math.abs(l-g)<=f,s=Math.abs(m-h)<=f;p&&(c.position.top=d._convertPositionTo("relative",{top:n,left:0}).top-d.margins.top),q&&(c.position.top=d._convertPositionTo("relative",{top:o-d.helperProportions.height,left:0}).top-d.margins.top),r&&(c.position.left=d._convertPositionTo("relative",{top:0,left:l}).left-d.margins.left),s&&(c.position.left=d._convertPositionTo("relative",{top:0,left:m-d.helperProportions.width}).left-d.margins.left)}!d.snapElements[k].snapping&&(p||q||r||s||t)&&d.options.snap.snap&&d.options.snap.snap.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[k].item})),d.snapElements[k].snapping=p||q||r||s||t}}}),a.ui.plugin.add("draggable","stack",{start:function(b,c){var d=a(this).data("draggable").options,e=a.makeArray(a(d.stack)).sort(function(b,c){return(parseInt(a(b).css("zIndex"),10)||0)-(parseInt(a(c).css("zIndex"),10)||0)});if(!e.length)return;var f=parseInt(e[0].style.zIndex)||0;a(e).each(function(a){this.style.zIndex=f+a}),this[0].style.zIndex=f+e.length}}),a.ui.plugin.add("draggable","zIndex",{start:function(b,c){var d=a(c.helper),e=a(this).data("draggable").options;d.css("zIndex")&&(e._zIndex=d.css("zIndex")),d.css("zIndex",e.zIndex)},stop:function(b,c){var d=a(this).data("draggable").options;d._zIndex&&a(c.helper).css("zIndex",d._zIndex)}})})(jQuery);;/*! jQuery UI - v1.8.20 - 2012-04-30
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.droppable.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect"},_create:function(){var b=this.options,c=b.accept;this.isover=0,this.isout=1,this.accept=a.isFunction(c)?c:function(a){return a.is(c)},this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight},a.ui.ddmanager.droppables[b.scope]=a.ui.ddmanager.droppables[b.scope]||[],a.ui.ddmanager.droppables[b.scope].push(this),b.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){var b=a.ui.ddmanager.droppables[this.options.scope];for(var c=0;c<b.length;c++)b[c]==this&&b.splice(c,1);return this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable"),this},_setOption:function(b,c){b=="accept"&&(this.accept=a.isFunction(c)?c:function(a){return a.is(c)}),a.Widget.prototype._setOption.apply(this,arguments)},_activate:function(b){var c=a.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),c&&this._trigger("activate",b,this.ui(c))},_deactivate:function(b){var c=a.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),c&&this._trigger("deactivate",b,this.ui(c))},_over:function(b){var c=a.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return;this.accept.call(this.element[0],c.currentItem||c.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",b,this.ui(c)))},_out:function(b){var c=a.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return;this.accept.call(this.element[0],c.currentItem||c.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",b,this.ui(c)))},_drop:function(b,c){var d=c||a.ui.ddmanager.current;if(!d||(d.currentItem||d.element)[0]==this.element[0])return!1;var e=!1;return this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var b=a.data(this,"droppable");if(b.options.greedy&&!b.options.disabled&&b.options.scope==d.options.scope&&b.accept.call(b.element[0],d.currentItem||d.element)&&a.ui.intersect(d,a.extend(b,{offset:b.element.offset()}),b.options.tolerance))return e=!0,!1}),e?!1:this.accept.call(this.element[0],d.currentItem||d.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",b,this.ui(d)),this.element):!1},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}}),a.extend(a.ui.droppable,{version:"1.8.20"}),a.ui.intersect=function(b,c,d){if(!c.offset)return!1;var e=(b.positionAbs||b.position.absolute).left,f=e+b.helperProportions.width,g=(b.positionAbs||b.position.absolute).top,h=g+b.helperProportions.height,i=c.offset.left,j=i+c.proportions.width,k=c.offset.top,l=k+c.proportions.height;switch(d){case"fit":return i<=e&&f<=j&&k<=g&&h<=l;case"intersect":return i<e+b.helperProportions.width/2&&f-b.helperProportions.width/2<j&&k<g+b.helperProportions.height/2&&h-b.helperProportions.height/2<l;case"pointer":var m=(b.positionAbs||b.position.absolute).left+(b.clickOffset||b.offset.click).left,n=(b.positionAbs||b.position.absolute).top+(b.clickOffset||b.offset.click).top,o=a.ui.isOver(n,m,k,i,c.proportions.height,c.proportions.width);return o;case"touch":return(g>=k&&g<=l||h>=k&&h<=l||g<k&&h>l)&&(e>=i&&e<=j||f>=i&&f<=j||e<i&&f>j);default:return!1}},a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(b,c){var d=a.ui.ddmanager.droppables[b.options.scope]||[],e=c?c.type:null,f=(b.currentItem||b.element).find(":data(droppable)").andSelf();g:for(var h=0;h<d.length;h++){if(d[h].options.disabled||b&&!d[h].accept.call(d[h].element[0],b.currentItem||b.element))continue;for(var i=0;i<f.length;i++)if(f[i]==d[h].element[0]){d[h].proportions.height=0;continue g}d[h].visible=d[h].element.css("display")!="none";if(!d[h].visible)continue;e=="mousedown"&&d[h]._activate.call(d[h],c),d[h].offset=d[h].element.offset(),d[h].proportions={width:d[h].element[0].offsetWidth,height:d[h].element[0].offsetHeight}}},drop:function(b,c){var d=!1;return a.each(a.ui.ddmanager.droppables[b.options.scope]||[],function(){if(!this.options)return;!this.options.disabled&&this.visible&&a.ui.intersect(b,this,this.options.tolerance)&&(d=this._drop.call(this,c)||d),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],b.currentItem||b.element)&&(this.isout=1,this.isover=0,this._deactivate.call(this,c))}),d},dragStart:function(b,c){b.element.parents(":not(body,html)").bind("scroll.droppable",function(){b.options.refreshPositions||a.ui.ddmanager.prepareOffsets(b,c)})},drag:function(b,c){b.options.refreshPositions&&a.ui.ddmanager.prepareOffsets(b,c),a.each(a.ui.ddmanager.droppables[b.options.scope]||[],function(){if(this.options.disabled||this.greedyChild||!this.visible)return;var d=a.ui.intersect(b,this,this.options.tolerance),e=!d&&this.isover==1?"isout":d&&this.isover==0?"isover":null;if(!e)return;var f;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");g.length&&(f=a.data(g[0],"droppable"),f.greedyChild=e=="isover"?1:0)}f&&e=="isover"&&(f.isover=0,f.isout=1,f._out.call(f,c)),this[e]=1,this[e=="isout"?"isover":"isout"]=0,this[e=="isover"?"_over":"_out"].call(this,c),f&&e=="isout"&&(f.isout=0,f.isover=1,f._over.call(f,c))})},dragStop:function(b,c){b.element.parents(":not(body,html)").unbind("scroll.droppable"),b.options.refreshPositions||a.ui.ddmanager.prepareOffsets(b,c)}}})(jQuery);;/*! jQuery UI - v1.8.20 - 2012-04-30
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.resizable.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.widget("ui.resizable",a.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var b=this,c=this.options;this.element.addClass("ui-resizable"),a.extend(this,{_aspectRatio:!!c.aspectRatio,aspectRatio:c.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:c.helper||c.ghost||c.animate?c.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(a('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e<d.length;e++){var f=a.trim(d[e]),g="ui-resizable-"+f,h=a('<div class="ui-resizable-handle '+g+'"></div>');h.css({zIndex:c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){if(c.disabled)return;a(this).removeClass("ui-resizable-autohide"),b._handles.show()},function(){if(c.disabled)return;b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}return this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement),this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");return a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b),!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);return l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui()),!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}return a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),e<h.maxWidth&&(h.maxWidth=e),g<h.maxHeight&&(h.maxHeight=g);this._vBoundaries=h},_updateCache:function(a){var b=this.options;this.offset=this.helper.offset(),d(a.left)&&(this.position.left=a.left),d(a.top)&&(this.position.top=a.top),d(a.height)&&(this.size.height=a.height),d(a.width)&&(this.size.width=a.width)},_updateRatio:function(a,b){var c=this.options,e=this.position,f=this.size,g=this.axis;return d(a.height)?a.width=a.height*this.aspectRatio:d(a.width)&&(a.height=a.width/this.aspectRatio),g=="sw"&&(a.left=e.left+(f.width-a.width),a.top=null),g=="nw"&&(a.top=e.top+(f.height-a.height),a.left=e.left+(f.width-a.width)),a},_respectSize:function(a,b){var c=this.helper,e=this._vBoundaries,f=this._aspectRatio||b.shiftKey,g=this.axis,h=d(a.width)&&e.maxWidth&&e.maxWidth<a.width,i=d(a.height)&&e.maxHeight&&e.maxHeight<a.height,j=d(a.width)&&e.minWidth&&e.minWidth>a.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;return p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null),a},_proportionallyResize:function(){var b=this.options;if(!this._proportionallyResizeElements.length)return;var c=this.helper||this.element;for(var d=0;d<this._proportionallyResizeElements.length;d++){var e=this._proportionallyResizeElements[d];if(!this.borderDif){var f=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],g=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];this.borderDif=a.map(f,function(a,b){var c=parseInt(a,10)||0,d=parseInt(g[b],10)||0;return c+d})}if(!a.browser.msie||!a(c).is(":hidden")&&!a(c).parents(":hidden").length)e.css({height:c.height()-this.borderDif[0]-this.borderDif[2]||0,width:c.width()-this.borderDif[1]-this.borderDif[3]||0});else continue}},_renderProxy:function(){var b=this.element,c=this.options;this.elementOffset=b.offset();if(this._helper){this.helper=this.helper||a('<div style="overflow:hidden;"></div>');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.20"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!i)return;e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/d.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*d.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery);;/*! jQuery UI - v1.8.20 - 2012-04-30
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.selectable.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.widget("ui.selectable",a.ui.mouse,{options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var b=this;this.element.addClass("ui-selectable"),this.dragged=!1;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]),c.addClass("ui-selectee"),c.each(function(){var b=a(this),c=b.offset();a.data(this,"selectable-item",{element:this,$element:b,left:c.left,top:c.top,right:c.left+b.outerWidth(),bottom:c.top+b.outerHeight(),startselected:!1,selected:b.hasClass("ui-selected"),selecting:b.hasClass("ui-selecting"),unselecting:b.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=c.addClass("ui-selectee"),this._mouseInit(),this.helper=a("<div class='ui-selectable-helper'></div>")},destroy:function(){return this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"),this._mouseDestroy(),this},_mouseStart:function(b){var c=this;this.opos=[b.pageX,b.pageY];if(this.options.disabled)return;var d=this.options;this.selectees=a(d.filter,this.element[0]),this._trigger("start",b),a(d.appendTo).append(this.helper),this.helper.css({left:b.clientX,top:b.clientY,width:0,height:0}),d.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var d=a.data(this,"selectable-item");d.startselected=!0,!b.metaKey&&!b.ctrlKey&&(d.$element.removeClass("ui-selected"),d.selected=!1,d.$element.addClass("ui-unselecting"),d.unselecting=!0,c._trigger("unselecting",b,{unselecting:d.element}))}),a(b.target).parents().andSelf().each(function(){var d=a.data(this,"selectable-item");if(d){var e=!b.metaKey&&!b.ctrlKey||!d.$element.hasClass("ui-selected");return d.$element.removeClass(e?"ui-unselecting":"ui-selected").addClass(e?"ui-selecting":"ui-unselecting"),d.unselecting=!e,d.selecting=e,d.selected=e,e?c._trigger("selecting",b,{selecting:d.element}):c._trigger("unselecting",b,{unselecting:d.element}),!1}})},_mouseDrag:function(b){var c=this;this.dragged=!0;if(this.options.disabled)return;var d=this.options,e=this.opos[0],f=this.opos[1],g=b.pageX,h=b.pageY;if(e>g){var i=g;g=e,e=i}if(f>h){var i=h;h=f,f=i}return this.helper.css({left:e,top:f,width:g-e,height:h-f}),this.selectees.each(function(){var i=a.data(this,"selectable-item");if(!i||i.element==c.element[0])return;var j=!1;d.tolerance=="touch"?j=!(i.left>g||i.right<e||i.top>h||i.bottom<f):d.tolerance=="fit"&&(j=i.left>e&&i.right<g&&i.top>f&&i.bottom<h),j?(i.selected&&(i.$element.removeClass("ui-selected"),i.selected=!1),i.unselecting&&(i.$element.removeClass("ui-unselecting"),i.unselecting=!1),i.selecting||(i.$element.addClass("ui-selecting"),i.selecting=!0,c._trigger("selecting",b,{selecting:i.element}))):(i.selecting&&((b.metaKey||b.ctrlKey)&&i.startselected?(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.$element.addClass("ui-selected"),i.selected=!0):(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.startselected&&(i.$element.addClass("ui-unselecting"),i.unselecting=!0),c._trigger("unselecting",b,{unselecting:i.element}))),i.selected&&!b.metaKey&&!b.ctrlKey&&!i.startselected&&(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,c._trigger("unselecting",b,{unselecting:i.element})))}),!1},_mouseStop:function(b){var c=this;this.dragged=!1;var d=this.options;return a(".ui-unselecting",this.element[0]).each(function(){var d=a.data(this,"selectable-item");d.$element.removeClass("ui-unselecting"),d.unselecting=!1,d.startselected=!1,c._trigger("unselected",b,{unselected:d.element})}),a(".ui-selecting",this.element[0]).each(function(){var d=a.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected"),d.selecting=!1,d.selected=!0,d.startselected=!0,c._trigger("selected",b,{selected:d.element})}),this._trigger("stop",b),this.helper.remove(),!1}}),a.extend(a.ui.selectable,{version:"1.8.20"})})(jQuery);;/*! jQuery UI - v1.8.20 - 2012-04-30
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.sortable.js
+* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.widget("ui.sortable",a.ui.mouse,{widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var a=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},destroy:function(){a.Widget.prototype.destroy.call(this),this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var b=this.items.length-1;b>=0;b--)this.items[b].item.removeData(this.widgetName+"-item");return this},_setOption:function(b,c){b==="disabled"?(this.options[b]=c,this.widget()[c?"addClass":"removeClass"]("ui-sortable-disabled")):a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(b,c){var d=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(b);var e=null,f=this,g=a(b.target).parents().each(function(){if(a.data(this,d.widgetName+"-item")==f)return e=a(this),!1});a.data(b.target,d.widgetName+"-item")==f&&(e=a(b.target));if(!e)return!1;if(this.options.handle&&!c){var h=!1;a(this.options.handle,e).find("*").andSelf().each(function(){this==b.target&&(h=!0)});if(!h)return!1}return this.currentItem=e,this._removeCurrentsFromItems(),!0},_mouseStart:function(b,c,d){var e=this.options,f=this;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(b),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),e.containment&&this._setContainment(),e.cursor&&(a("body").css("cursor")&&(this._storedCursor=a("body").css("cursor")),a("body").css("cursor",e.cursor)),e.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",e.opacity)),e.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",e.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!d)for(var g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger("activate",b,f._uiHash(this));return a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(b),!0},_mouseDrag:function(b){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var c=this.options,d=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY<c.scrollSensitivity?this.scrollParent[0].scrollTop=d=this.scrollParent[0].scrollTop+c.scrollSpeed:b.pageY-this.overflowOffset.top<c.scrollSensitivity&&(this.scrollParent[0].scrollTop=d=this.scrollParent[0].scrollTop-c.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-b.pageX<c.scrollSensitivity?this.scrollParent[0].scrollLeft=d=this.scrollParent[0].scrollLeft+c.scrollSpeed:b.pageX-this.overflowOffset.left<c.scrollSensitivity&&(this.scrollParent[0].scrollLeft=d=this.scrollParent[0].scrollLeft-c.scrollSpeed)):(b.pageY-a(document).scrollTop()<c.scrollSensitivity?d=a(document).scrollTop(a(document).scrollTop()-c.scrollSpeed):a(window).height()-(b.pageY-a(document).scrollTop())<c.scrollSensitivity&&(d=a(document).scrollTop(a(document).scrollTop()+c.scrollSpeed)),b.pageX-a(document).scrollLeft()<c.scrollSensitivity?d=a(document).scrollLeft(a(document).scrollLeft()-c.scrollSpeed):a(window).width()-(b.pageX-a(document).scrollLeft())<c.scrollSensitivity&&(d=a(document).scrollLeft(a(document).scrollLeft()+c.scrollSpeed))),d!==!1&&a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(var e=this.items.length-1;e>=0;e--){var f=this.items[e],g=f.item[0],h=this._intersectsWithPointer(f);if(!h)continue;if(g!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=g&&!a.ui.contains(this.placeholder[0],g)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],g):!0)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(f))this._rearrange(b,f);else break;this._trigger("change",b,this._uiHash());break}}return this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger("sort",b,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(b,c){if(!b)return;a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b);if(this.options.revert){var d=this,e=d.placeholder.offset();d.reverting=!0,a(this.helper).animate({left:e.left-this.offset.parent.left-d.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-d.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1},cancel:function(){var b=this;if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("deactivate",null,b._uiHash(this)),this.containers[c].containerCache.over&&(this.containers[c]._trigger("out",null,b._uiHash(this)),this.containers[c].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),a.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[-=_](.+)/);c&&d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+"="),d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||"id")||"")}),d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l=d+j>h&&d+j<i&&b+k>f&&b+k<g;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?l:f<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<g&&h<d+this.helperProportions.height/2&&e-this.helperProportions.height/2<i},_intersectsWithPointer:function(b){var c=this.options.axis==="x"||a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,b.top,b.height),d=this.options.axis==="y"||a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,b.left,b.width),e=c&&d,f=this._getDragVerticalDirection(),g=this._getDragHorizontalDirection();return e?this.floating?g&&g=="right"||f=="down"?2:1:f&&(f=="down"?2:1):!1},_intersectsWithSides:function(b){var c=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,b.top+b.height/2,b.height),d=a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,b.left+b.width/2,b.width),e=this._getDragVerticalDirection(),f=this._getDragHorizontalDirection();return this.floating&&f?f=="right"&&d||f=="left"&&!d:e&&(e=="down"&&c||e=="up"&&!c)},_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){return this._refreshItems(a),this.refreshPositions(),this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){var c=this,d=[],e=[],f=this._connectWith();if(f&&b)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&e.push([a.isFunction(j.options.items)?j.options.items.call(j.element):a(j.options.items,j.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),j])}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var g=e.length-1;g>=0;g--)e[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){var a=this.currentItem.find(":data("+this.widgetName+"-item)");for(var b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(b){this.items=[],this.containers=[this];var c=this.items,d=this,e=[[a.isFunction(this.options.items)?this.options.items.call(this.element[0],b,{item:this.currentItem}):a(this.options.items,this.element),this]],f=this._connectWith();if(f&&this.ready)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&(e.push([a.isFunction(j.options.items)?j.options.items.call(j.element[0],b,{item:this.currentItem}):a(j.options.items,j.element),j]),this.containers.push(j))}}for(var g=e.length-1;g>=0;g--){var k=e[g][1],l=e[g][0];for(var i=0,m=l.length;i<m;i++){var n=a(l[i]);n.data(this.widgetName+"-item",k),c.push({item:n,instance:k,width:0,height:0,left:0,top:0})}}},refreshPositions:function(b){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());for(var c=this.items.length-1;c>=0;c--){var d=this.items[c];if(d.instance!=this.currentContainer&&this.currentContainer&&d.item[0]!=this.currentItem[0])continue;var e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item;b||(d.width=e.outerWidth(),d.height=e.outerHeight());var f=e.offset();d.left=f.left,d.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var c=this.containers.length-1;c>=0;c--){var f=this.containers[c].element.offset();this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight()}return this},_createPlaceholder:function(b){var c=b||this,d=c.options;if(!d.placeholder||d.placeholder.constructor==String){var e=d.placeholder;d.placeholder={element:function(){var b=a(document.createElement(c.currentItem[0].nodeName)).addClass(e||c.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];return e||(b.style.visibility="hidden"),b},update:function(a,b){if(e&&!d.forcePlaceholderSize)return;b.height()||b.height(c.currentItem.innerHeight()-parseInt(c.currentItem.css("paddingTop")||0,10)-parseInt(c.currentItem.css("paddingBottom")||0,10)),b.width()||b.width(c.currentItem.innerWidth()-parseInt(c.currentItem.css("paddingLeft")||0,10)-parseInt(c.currentItem.css("paddingRight")||0,10))}}}c.placeholder=a(d.placeholder.element.call(c.element,c.currentItem)),c.currentItem.after(c.placeholder),d.placeholder.update(c,c.placeholder)},_contactContainers:function(b){var c=null,d=null;for(var e=this.containers.length-1;e>=0;e--){if(a.ui.contains(this.currentItem[0],this.containers[e].element[0]))continue;if(this._intersectsWith(this.containers[e].containerCache)){if(c&&a.ui.contains(this.containers[e].element[0],c.element[0]))continue;c=this.containers[e],d=e}else this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",b,this._uiHash(this)),this.containers[e].containerCache.over=0)}if(!c)return;if(this.containers.length===1)this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1;else if(this.currentContainer!=this.containers[d]){var f=1e4,g=null,h=this.positionAbs[this.containers[d].floating?"left":"top"];for(var i=this.items.length-1;i>=0;i--){if(!a.ui.contains(this.containers[d].element[0],this.items[i].item[0]))continue;var j=this.items[i][this.containers[d].floating?"left":"top"];Math.abs(j-h)<f&&(f=Math.abs(j-h),g=this.items[i])}if(!g&&!this.options.dropOnEmpty)return;this.currentContainer=this.containers[d],g?this._rearrange(b,g,null,!0):this._rearrange(b,null,this.containers[d].element,!0),this._trigger("change",b,this._uiHash()),this.containers[d]._trigger("change",b,this._uiHash(this)),this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1}},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b,this.currentItem])):c.helper=="clone"?this.currentItem.clone():this.currentItem;return d.parents("body").length||a(c.appendTo!="parent"?c.appendTo:this.currentItem[0].parentNode)[0].appendChild(d[0]),d[0]==this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(d[0].style.width==""||c.forceHelperSize)&&d.width(this.currentItem.width()),(d[0].style.height==""||c.forceHelperSize)&&d.height(this.currentItem.height()),d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)){var c=a(b.containment)[0],d=a(b.containment).offset(),e=a(c).css("overflow")!="hidden";this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(e?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(e?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName);this.cssPosition=="relative"&&(this.scrollParent[0]==document||this.scrollParent[0]==this.offsetParent[0])&&(this.offset.relative=this._getRelativeOffset());var f=b.pageX,g=b.pageY;if(this.originalPosition){this.containment&&(b.pageX-this.offset.click.left<this.containment[0]&&(f=this.containment[0]+this.offset.click.left),b.pageY-this.offset.click.top<this.containment[1]&&(g=this.containment[1]+this.offset.click.top),b.pageX-this.offset.click.left>this.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top));if(c.grid){var h=this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1];g=this.containment?h-this.offset.click.top<this.containment[1]||h-this.offset.click.top>this.containment[3]?h-this.offset.click.top<this.containment[1]?h+c.grid[1]:h-c.grid[1]:h:h;var i=this.originalPageX+Math.round((f-this.originalPageX)/c.grid[0])*c.grid[0];f=this.containment?i-this.offset.click.left<this.containment[0]||i-this.offset.click.left>this.containment[2]?i-this.offset.click.left<this.containment[0]?i+c.grid[0]:i-c.grid[0]:i:i}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:d.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:d.scrollLeft())}},_rearrange:function(a,b,c,d){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?b.item[0]:b.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var e=this,f=this.counter;window.setTimeout(function(){f==e.counter&&e.refreshPositions(!d)},0)},_clear:function(b,c){this.reverting=!1;var d=[],e=this;!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var f in this._storedCSS)if(this._storedCSS[f]=="auto"||this._storedCSS[f]=="static")this._storedCSS[f]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!c&&d.push(function(a){this._trigger("receive",a,this._uiHash(this.fromOutside))}),(this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!c&&d.push(function(a){this._trigger("update",a,this._uiHash())});if(!a.ui.contains(this.element[0],this.currentItem[0])){c||d.push(function(a){this._trigger("remove",a,this._uiHash())});for(var f=this.containers.length-1;f>=0;f--)a.ui.contains(this.containers[f].element[0],this.currentItem[0])&&!c&&(d.push(function(a){return function(b){a._trigger("receive",b,this._uiHash(this))}}.call(this,this.containers[f])),d.push(function(a){return function(b){a._trigger("update",b,this._uiHash(this))}}.call(this,this.containers[f])))}for(var f=this.containers.length-1;f>=0;f--)c||d.push(function(a){return function(b){a._trigger("deactivate",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over&&(d.push(function(a){return function(b){a._trigger("out",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over=0);this._storedCursor&&a("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!c){this._trigger("beforeStop",b,this._uiHash());for(var f=0;f<d.length;f++)d[f].call(this,b);this._trigger("stop",b,this._uiHash())}return!1}c||this._trigger("beforeStop",b,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!=this.currentItem[0]&&this.helper.remove(),this.helper=null;if(!c){for(var f=0;f<d.length;f++)d[f].call(this,b);this._trigger("stop",b,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){a.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(b){var c=b||this;return{helper:c.helper,placeholder:c.placeholder||a([]),position:c.position,originalPosition:c.originalPosition,offset:c.positionAbs,item:c.currentItem,sender:b?b.element:null}}}),a.extend(a.ui.sortable,{version:"1.8.20"})})(jQuery);;
\ No newline at end of file
diff --git a/view/theme/diabook/js/jquery.twitter.search.js b/view/theme/diabook/js/jquery.twitter.search.js
new file mode 100644 (file)
index 0000000..a1b4b83
--- /dev/null
@@ -0,0 +1,289 @@
+/*!
+ * jQuery Twitter Search Plugin
+ * Examples and documentation at: http://jquery.malsup.com/twitter/
+ * Copyright (c) 2010 M. Alsup
+ * Version: 1.04 (15-SEP-2011)
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ * Requires: jQuery v1.3.2 or later
+ */
+;(function($) {
+       $.fn.twitterSearch = function(options) {
+               if (typeof options == 'string')
+                       options = { term: options };
+               return this.each(function() {
+                       var grabFlag = false,
+                               grabbing = false,
+                               $frame = $(this), text, $text, $title, $bird, $cont, height, paused = false,
+                               opts = $.extend(true, {}, $.fn.twitterSearch.defaults, options || {}, $.metadata ? $frame.metadata() : {});
+                               
+                       opts.formatter = opts.formatter || $.fn.twitterSearch.formatter; 
+                       opts.filter = opts.filter || $.fn.twitterSearch.filter;
+                       
+                       if (!opts.applyStyles) { // throw away all style defs
+                               for (var css in opts.css)
+                                       opts.css[css] = {};
+                       }
+                       
+                       if (opts.title === null) // user can set to '' to suppress title
+                               opts.title = opts.term;
+
+                       opts.title = opts.title || '';
+                       text = opts.titleLink ? ('<a href="'+ opts.titleLink +'">'+ opts.title + '</a>') : ('<span>' + opts.title +'<a id="close_friends_icon" onClick="close_twitter()"  class="icon close_box" title="close"></a>'+ '</span>');
+                       $text = $(text);
+                       if (opts.titleLink)
+                               $text.css(opts.css['titleLink']);
+                       $title = $('<div class="twitterSearchTitle"></div>').append($text).appendTo($frame).css(opts.css['title']);
+                       if (opts.bird) {
+                               $bird = $('<img class="twitterSearchBird" src="'+opts.birdSrc+'" />').appendTo($title).css(opts.css['bird']);
+                               if (opts.birdLink)
+                                       $bird.wrap('<a href="'+ opts.birdLink +'"></a>');
+                       }
+                       $cont = $('<div class="twitterSearchContainter"></div>').appendTo($frame).css(opts.css['container']);
+                       cont = $cont[0];
+                       if (opts.colorExterior)
+                               $title.css('background-color',opts.colorExterior);
+                       if (opts.colorInterior)
+                               $cont.css('background-color',opts.colorInterior);
+                       
+                       $frame.css(opts.css['frame']);
+                       if (opts.colorExterior)
+                               $frame.css('border-color',opts.colorExterior);
+                       
+                       height = $frame.innerHeight() - $title.outerHeight();
+                       $cont.height(height);
+                       
+                       if (opts.pause)
+                               $cont.hover(function(){paused = true;},function(){paused = false;});
+                       
+                       $('<div class="twitterSearchLoading">Loading tweets..</div>').css(opts.css['loading']).appendTo($cont);
+                       
+                       grabTweets();
+                       
+                       function grabTweets() {
+                               var url = opts.url + opts.term;
+                               grabFlag = false;
+                               grabbing = true;
+                               // grab twitter stream
+                               $.getJSONP({
+                                       url: url,
+                                       timeout: 30000,
+                                       error: function(xhr, status, e) {
+                                               failWhale(e);
+                                       },
+                                       complete: function() {
+                                               grabbing = false;
+                                               if (opts.refreshSeconds)
+                                                       setTimeout(regrab, opts.refreshSeconds * 1000);
+                                       },
+                                       success: function(json) {
+                                               if (json.error) {
+                                                       failWhale(json.error);
+                                                       return;
+                                               }
+                                               $cont.fadeOut('fast',function() {
+                                                       $cont.empty();
+                                                       
+                                                       // iterate twitter results 
+                                                       $.each(json.results, function(i) {
+                                                               if (!opts.filter.call(opts, this))
+                                                                       return; // skip this tweet
+                                                               var $img, $text, w,
+                                                                       tweet = opts.formatter(this, opts), 
+                                                                       $tweet = $(tweet);
+                                                               $tweet.css(opts.css['tweet']);
+                                                               $img = $tweet.find('.twitterSearchProfileImg').css(opts.css['img']);
+                                                               $tweet.find('.twitterSearchUser').css(opts.css['user']);
+                                                               $tweet.find('.twitterSearchTime').css(opts.css['time']);
+                                                               $tweet.find('a').css(opts.css['a']);
+                                                               $tweet.appendTo($cont);
+                                                               $text = $tweet.find('.twitterSearchText').css(opts.css['text']);
+                                                               if (opts.avatar) {
+                                                                       w = $img.outerWidth() + parseInt($tweet.css('paddingLeft'));
+                                                                       $text.css('paddingLeft', w);
+                                                               }
+                                                       });
+                                                       
+                                                       $cont.fadeIn('fast');
+                                               
+                                                       if (json.results.length < 2) {
+                                                               if (opts.refreshSeconds)
+                                                                       setTimeout(grabTweets, opts.refreshSeconds * 1000);
+                                                               return;
+                                                       }
+
+                                                       // stage first animation
+                                                       setTimeout(go, opts.timeout);
+                                               });
+                                       }
+                               });
+                       };
+                       
+                       function regrab() {
+                               grabFlag = true;
+                       }
+                       
+                       function failWhale(msg) {
+                               var $fail = $('<div class="twitterSearchFail">' + msg + '</div>').css(opts.css['fail']);
+                               $cont.empty().append($fail);
+                       };
+                       
+                       function go() {
+                               if (paused || grabbing) {
+                                       setTimeout(go, 500);
+                                       return;
+                               }
+                               var h, $el = $cont.children(':first'), el = $el[0];
+                               $el.animate(opts.animOut, opts.animOutSpeed, function() {
+                                       h = $el.outerHeight();
+                                       $el.animate({ marginTop: -h }, opts.animInSpeed, function() {
+                                               $el.css({ marginTop: 0, opacity: 1 });
+                                               /*@cc_on
+                                               try { el.style.removeAttribute('filter'); } // ie cleartype fix
+                                               catch(smother) {}
+                                               @*/
+                                               $el.css(opts.css['tweet']).show().appendTo($cont);
+                                               
+                                               setTimeout(grabFlag ? grabTweets : go, opts.timeout);                                   
+                                       });
+                               });
+                       }
+               });
+       };
+       
+       $.fn.twitterSearch.filter = function(tweet) {
+               return true;
+       };
+
+       $.fn.twitterSearch.formatter = function(json, opts) {
+               var str, pretty,
+                       text = json.text;
+               if (opts.anchors) {
+                       text = json.text.replace(/(http:\/\/\S+)/g, '<a href="$1">$1</a>');
+                       text = text.replace(/\@(\w+)/g, '<a href="http://twitter.com/$1">@$1</a>');
+               }
+               str = '<div class="twitterSearchTweet">';
+               if (opts.avatar)
+                       str += '<img class="twitterSearchProfileImg" src="' + json.profile_image_url + '" />';
+               str += '<div><span class="twitterSearchUser"><a href="http://www.twitter.com/'+ json.from_user+'/status/'+ json.id_str +'">' 
+                 + json.from_user + '</a></span>';
+               pretty = prettyDate(json.created_at);
+               if (opts.time && pretty)
+                       str += ' <span class="twitterSearchTime">('+ pretty +')</span>'
+                str += '<div class="twitterSearchText">' + text + '</div></div></div>';
+                return str;
+       };
+       
+       $.fn.twitterSearch.defaults = {
+               url: 'http://search.twitter.com/search.json?callback=?&q=',
+               anchors: true,                          // true or false (enable embedded links in tweets)
+               animOutSpeed: 500,                      // speed of animation for top tweet when removed
+               animInSpeed: 500,                       // speed of scroll animation for moving tweets up
+               animOut: { opacity: 0 },        // animation of top tweet when it is removed
+               applyStyles: true,                      // true or false (apply default css styling or not)
+               avatar: true,                           // true or false (show or hide twitter profile images)
+               bird: true,                                     // true or false (show or hide twitter bird image)
+               birdLink: false,                        // url that twitter bird image should like to
+               birdSrc: 'http://cloud.github.com/downloads/malsup/twitter/tweet.gif', // twitter bird image
+               colorExterior: null,        // css override of frame border-color and title background-color
+               colorInterior: null,        // css override of container background-color
+               filter: null,               // callback fn to filter tweets:  fn(tweetJson) { /* return false to skip tweet */ }
+               formatter: null,                        // callback fn to build tweet markup
+               pause: false,                           // true or false (pause on hover)
+               refreshSeconds: 0,          // number of seconds to wait before polling for newer tweets
+               term: '',                                       // twitter search term
+               time: true,                                     // true or false (show or hide the time that the tweet was sent)
+               timeout: 4000,                          // delay betweet tweet scroll
+               title: null,                            // title text to display when frame option is true (default = 'term' text)
+               titleLink: null,                        // url for title link
+               css: {
+                       // default styling
+                       a:     { textDecoration: 'none', color: '#3B5998' },
+                       bird:  { width: '50px', height: '20px', position: 'absolute', left: '-30px', top: '-20px', border: 'none' },
+                       container: { overflow: 'hidden', backgroundColor: '', height: '600px' },
+                       fail:  { background: '#6cc5c3 url(http://cloud.github.com/downloads/malsup/twitter/failwhale.png) no-repeat 50% 50%', height: '100%', padding: '10px' },
+                       frame: { border: '0px solid #C2CFF1', borderRadius: '0px', '-moz-border-radius': '0px', '-webkit-border-radius': '0px' },
+                       tweet: { padding: '5px 10px', clear: 'left' },
+                       img:   { 'float': 'left', margin: '5px', width: '48px', height: '48px' },
+                       loading: { padding: '20px', textAlign: 'center', color: '#888' },
+                       text:  {},
+                       time:  { fontSize: 'smaller', color: '#888' },
+                       title: { 'border-bottom': '1px solid #D2D2D2', 'padding-top': '5px', 'padding-bottom': '0px', 'padding-left': '9px', 'margin-bottom': '0px', 'margin-top': '30px' , 'display': 'block', 'font-size': '1.17em', 'font-weight': 'bold'},
+                       titleLink: { textDecoration: 'none', color: '#3B5998' },
+                       user:  { fontWeight: 'bold' }
+               }
+       };
+
+    // fn to handle jsonp with timeouts and errors
+    // hat tip to Ricardo Tomasi for the timeout logic
+    $.getJSONP = function(s) {
+        s.dataType = 'jsonp';
+        $.ajax(s);
+
+        // figure out what the callback fn is
+        var $script = $(document.getElementsByTagName('head')[0].firstChild);
+        var url = $script.attr('src') || '';
+        var cb = (url.match(/callback=(\w+)/)||[])[1];
+        if (!cb)
+            return; // bail
+        var t = 0, cbFn = window[cb];
+
+        $script[0].onerror = function(e) {
+            $script.remove();
+            handleError(s, {}, "error", e);
+            clearTimeout(t);
+        };
+
+        if (!s.timeout)
+            return;
+
+        window[cb] = function(json) {
+            clearTimeout(t);
+            cbFn(json);
+            cbFn = null;
+        };
+
+        t = setTimeout(function() {
+            $script.remove();
+            handleError(s, {}, "timeout");
+            if (cbFn)
+                window[cb] = function(){};
+        }, s.timeout);
+        
+        function handleError(s, xhr, msg, e) {
+                       s.error && s.error.call(s.context, xhr, msg, e);
+                       s.global && $.event.trigger("ajaxError", [xhr, s, e || msg]);
+                       s.complete && s.complete.call(s.context, xhr, e || msg);
+        }
+    };
+       
+       /*
+        * JavaScript Pretty Date
+        * Copyright (c) 2008 John Resig (jquery.com)
+        * Licensed under the MIT license.
+        */
+       // converts ISO time to casual time
+       function prettyDate(time){
+               var date = new Date((time || "").replace(/-/g,"/").replace(/TZ/g," ")),
+                       diff = (((new Date()).getTime() - date.getTime()) / 1000),
+                       day_diff = Math.floor(diff / 86400);
+                               
+               if ( isNaN(day_diff) || day_diff < 0 || day_diff >= 31 )
+                       return;
+               var v = day_diff == 0 && (
+                               diff < 60 && "just now" ||
+                               diff < 120 && "1 minute ago" ||
+                               diff < 3600 && Math.floor( diff / 60 ) + " minutes ago" ||
+                               diff < 7200 && "1 hour ago" ||
+                               diff < 86400 && Math.floor( diff / 3600 ) + " hours ago") ||
+                       day_diff == 1 && "Yesterday" ||
+                       day_diff < 7 && day_diff + " days ago" ||
+                       day_diff < 31 && Math.ceil( day_diff / 7 ) + " weeks ago";
+               if (!v)
+                       window.console && console.log(time);
+               return v ? v : '';
+       }
+
+})(jQuery);
index ce27400f64a95c4c836ef9499ba28db6479d0181..f611de0043631014abe99804fbf99925960e8b3f 100644 (file)
 </nav>
 
 
-<div id="scrollup" style="position: fixed; bottom: 5px; right: 10px;"><a id="down" onclick="scrolldown()" ><img id="scroll_top_bottom" src="view/theme/diabook/icons/scroll_bottom.png" style="display:cursor !important;" alt="back to top" title="Back to top"></a></div>
+<div id="scrollup" style="position: fixed; bottom: 5px; right: 10px;z-index: 97;"><a id="down" onclick="scrolldown()" ><img id="scroll_top_bottom" src="view/theme/diabook/icons/scroll_bottom.png" style="display:cursor !important;" alt="back to top" title="Back to top"></a></div>
 <div style="position: fixed; bottom: 3px; left: 25px;">$langselector</div>
 <div style="position: fixed; bottom: 23px; left: 5px;"><a href="http://pad.toktan.org/p/diabook" target="blank" ><img src="view/theme/diabook/icons/bluebug.png" title="report bugs for the theme diabook"/></a></div>
 
index 06e9718fce554e88b335e65b33b7152cd578e7a4..1d152e7c0cd056762ecf84f46a759298c23a4945 100644 (file)
@@ -1235,8 +1235,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
index a8ed1e9a2544dd3aba1800fc0604fcf7a03b887d..729893013ba1c810b24f515ba5a9c9e4ca139bc0 100644 (file)
@@ -1229,8 +1229,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
@@ -1252,6 +1252,7 @@ right_aside .icon {width: 10px; height: 10px;}
 transition: all 0.2s ease-in-out;
                }
 
+
 /* wall item */
 .tread-wrapper {
   border-bottom: 1px solid #D2D2D2;
index c4c72fb68a881799072f4adaac3ece7b61cb4783..953b1b5af8f50df66202ef34d761429b6b660e46 100644 (file)
@@ -1210,8 +1210,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
index a0a2adb53b06b71df29425bacea6c4cb080e75c1..63b2eb544a4121e675aae1ab559fefd0453e798b 100644 (file)
@@ -1205,8 +1205,8 @@ right_aside .directory-photo { margin: 0px; }
 right_aside .directory-photo-img { max-width: 45px; max-height: 45px; }
 right_aside #likes { margin: 0px; padding: 0px; list-style: none; }
 right_aside .items-wrapper{ overflow: auto;    width: 100%; }
-right_aside #lastusers-wrapper { padding-left: 6px; padding-top: 3px; overflow: auto;  width: 100%; }
-right_aside #ra-photos-wrapper { padding-left: 5px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #lastusers-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
+right_aside #ra-photos-wrapper { padding-left: 9px; padding-top: 3px; overflow: auto;  width: 100%; }
 #page-sidebar-right_aside{margin-top: 0px; margin-bottom: 30px;}
 #page-sidebar-right_aside ul {margin-top: 0px;}
 #page-sidebar-right_aside .label {max-width: 128px;}
index f8dced3e69492e24f526c8fc0a75648128556a53..cf54e5b580840945506c1cf0db2f75ff7a354329 100644 (file)
@@ -21,6 +21,7 @@
 
 .admin.linklist {
         border: 0px; padding: 0px;
+        list-style: none;
 }
 
 .admin.link {
@@ -556,6 +557,7 @@ code {
   text-decoration: none;
 }
 /* popup notifications */
+div.jGrowl.top-right { top: 30px; /* put it below header/nav bar */ }
 div.jGrowl div.notice {
   background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
   color: #ffffff;
@@ -974,7 +976,7 @@ ul.menu-popup .empty {
   background-color: #bdcdd4;
 }
 #nav-notifications-menu {
 width: 400px;
width: 425px !important;
   max-height: 550px;
   overflow: auto;
 }
@@ -1195,7 +1197,7 @@ aside #side-peoplefind-url {
   margin-right: 20px;  
        }
 #login-submit-wrapper{
-  padding-top: 120px;
+
   margin-bottom: 12px;
        }
 aside #login-submit-button{
index 9150ea8cf807648529563d5f9657b8303f9e76ef..2834e76f2703db79db92a87bfd898aa5e94dd21b 100644 (file)
@@ -21,6 +21,7 @@
 
 .admin.linklist {
         border: 0px; padding: 0px;
+        list-style: none;
 }
 
 .admin.link {
@@ -557,6 +558,7 @@ code {
   text-decoration: none;
 }
 /* popup notifications */
+div.jGrowl.top-right { top: 30px; /* put it below header/nav bar */ }
 div.jGrowl div.notice {
   background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
   color: #ffffff;
@@ -974,7 +976,7 @@ ul.menu-popup .empty {
   background-color: #bdcdd4;
 }
 #nav-notifications-menu {
-  width: 400px;
+  width: 425px !important;
   max-height: 550px;
   overflow: auto;
 }
@@ -1198,7 +1200,7 @@ aside #side-peoplefind-url {
   margin-right: 20px;  
        }
 #login-submit-wrapper{
-  padding-top: 120px;
+
   margin-bottom: 12px;
        }
 aside #login-submit-button{
index c45db9884d756ef20393881c6a103c8af1b35b7a..f8fdeb8b1a19bcb3026055f9f314475b18120d63 100644 (file)
@@ -3,13 +3,20 @@
 /*
  * Name: Diabook
  * Description: Diabook: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
- * Version: (Version: 1.022)
+ * Version: (Version: 1.025)
  * Author: 
  */
 
+$a = get_app();
+$a->theme_info = array(
+    'family' => 'diabook',
+       'version' => '1.025'
+);
 
+function diabook_init(&$a) {
+       
 //print diabook-version for debugging
-$diabook_version = "Diabook (Version: 1.022)";
+$diabook_version = "Diabook (Version: 1.025)";
 $a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version);
 
 //change css on network and profilepages
@@ -19,6 +26,14 @@ $resolution=false;
 $resolution = get_pconfig(local_user(), "diabook", "resolution");
 if ($resolution===false) $resolution="normal";
 
+//Add META viewport tag respecting the resolution to header for tablets
+if ($resolution=="wide") {
+  $a->page['htmlhead'] .= '<meta name="viewport" content="width=1200" />';
+} else {
+  $a->page['htmlhead'] .= '<meta name="viewport" content="width=980" />';
+}
+
+
 $color = false;
 $site_color = get_config("diabook", "color" );
 if (local_user()) {$color = get_pconfig(local_user(), "diabook", "color");}
@@ -34,17 +49,303 @@ if ($color=="green") $color_path = "/diabook-green/";
 if ($color=="dark") $color_path = "/diabook-dark/";
 
 
-/**
- * prints last community activity
- */
+       //profile_side at networkpages
+       if ($a->argv[0] === "network" && local_user()){
+
+       // USER MENU
+       if(local_user()) {
+               
+               $r = q("SELECT micro FROM contact WHERE uid=%d AND self=1", intval($a->user['uid']));
+                               
+               $userinfo = array(
+                                       'icon' => (count($r) ? $r[0]['micro']: $a->get_baseurl()."/images/default-profile-mm.jpg"),
+                                       'name' => $a->user['username'],
+                               );      
+               $ps = array('usermenu'=>array());
+               $ps['usermenu']['status'] = Array('profile/' . $a->user['nickname'], t('Home'), "", t('Your posts and conversations'));
+               $ps['usermenu']['profile'] = Array('profile/' . $a->user['nickname']. '?tab=profile', t('Profile'), "", t('Your profile page'));
+               $ps['usermenu']['contacts'] = Array('contacts' , t('Contacts'), "", t('Your contacts'));                                
+               $ps['usermenu']['photos'] = Array('photos/' . $a->user['nickname'], t('Photos'), "", t('Your photos'));
+               $ps['usermenu']['events'] = Array('events/', t('Events'), "", t('Your events'));
+               $ps['usermenu']['notes'] = Array('notes/', t('Personal notes'), "", t('Your personal photos'));
+               $ps['usermenu']['community'] = Array('community/', t('Community'), "", "");
+               $ps['usermenu']['pgroups'] = Array('http://dir.friendica.com/directory/forum', t('Community Pages'), "", "");
+
+               $tpl = get_markup_template('profile_side.tpl');
+
+               $a->page['aside'] = replace_macros($tpl, array(
+                               '$userinfo' => $userinfo,
+                               '$ps' => $ps,
+                       )).$a->page['aside'];
+
+       }
+       
+       $ccCookie = $_COOKIE['close_pages'] + $_COOKIE['close_profiles'] + $_COOKIE['close_helpers'] + $_COOKIE['close_services'] + $_COOKIE['close_friends'] + $_COOKIE['close_twitter'] + $_COOKIE['close_lastusers'] + $_COOKIE['close_lastphotos'] + $_COOKIE['close_lastlikes'];
+       
+       if($ccCookie != "9") {
+       // COMMUNITY
+       diabook_community_info();
+
+       // CUSTOM CSS
+       if($resolution == "normal") {$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook".$color_path."style-network.css";}
+       if($resolution == "wide") {$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook".$color_path."style-network-wide.css";}
+       }
+       }
+
+
+
+       //right_aside at profile pages
+       if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname']){
+       if($ccCookie != "9") {
+       // COMMUNITY
+       diabook_community_info();
+       
+       // CUSTOM CSS
+       if($resolution == "normal") {$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook".$color_path."style-profile.css";}
+       if($resolution == "wide") {$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook".$color_path."style-profile-wide.css";}
+       
+       }
+       }
+       
+       //js scripts
+       //load jquery.cookie.js
+       $cookieJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.cookie.js";
+       $a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s"></script>', $cookieJS);
+       
+       //load jquery.ae.image.resize.js
+       $imageresizeJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.ae.image.resize.js";
+       $a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $imageresizeJS);
+       
+       //load jquery.ui.js
+       if($ccCookie != "9") {
+       $jqueryuiJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery-ui-1.8.20.custom.min.js";
+       $a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $jqueryuiJS);
+       }       
+       
+       //load jquery.twitter.search.js
+       if($_COOKIE['close_twitter'] != "1") {
+       $twitterJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.twitter.search.js";
+       $a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $twitterJS);
+       }
+       
+       $a->page['htmlhead'] .= '
+       <script>
+       
+        $(function() {
+               $("a.lightbox").fancybox(); // Select all links with lightbox class
+               });
+          
+        $(window).load(function() {
+               var footer_top = $(document).height() - 30;
+               $("div#footerbox").attr("style", "border-top: 1px solid #D2D2D2; width: 70%;right: 15%;position: absolute;top:"+footer_top+"px;");
+        });
+        
+        
+       
+       </script>';
+       
+       //check if twitterbox is active and print
+       if($_COOKIE['close_twitter'] != "1") {
+               $a->page['htmlhead'] .= '
+               <script>
+               $(function() {
+               $("#twitter").twitterSearch({               
+               term: "friendica",
+               animInSpeed: 250,
+               bird:    false, 
+               avatar:  false, 
+               colorExterior: "#fff",
+               title: "Last Tweets",
+               timeout: 10000          });
+               });
+               </script>';}
+                       
+       //check if community_home-plugin is activated and change css
+       $nametocheck = "communityhome";
+       $r = q("select id from addon where name = '%s' and installed = 1", dbesc($nametocheck));
+       if(count($r) == "1") {
+       
+       $a->page['htmlhead'] .= '
+       <script>
+       $(document).ready(function() {
+       $("div#login-submit-wrapper").attr("style","padding-top: 120px;");
+       });
+       </script>';     
+       }
+       //comment-edit-wrapper on photo_view
+       if ($a->argv[0].$a->argv[2] === "photos"."image"){
+       $a->page['htmlhead'] .= '
+       <script>
+               $(function(){
+               $(".comment-edit-form").css("display","table");
+                       });
+    </script>';
+       }
+       //restore right hand col at settingspage
+       if($a->argv[0] === "settings" && local_user()) {
+       $a->page['htmlhead'] .= ' 
+       <script>
+       function restore_boxes(){
+       $.cookie("close_pages","2", { expires: 365, path: "/" });
+       $.cookie("close_helpers","2", { expires: 365, path: "/" });
+       $.cookie("close_profiles","2", { expires: 365, path: "/" });
+       $.cookie("close_services","2", { expires: 365, path: "/" });
+       $.cookie("close_friends","2", { expires: 365, path: "/" });
+       $.cookie("close_twitter","2", { expires: 365, path: "/" });
+       $.cookie("close_lastusers","2", { expires: 365, path: "/" });
+       $.cookie("close_lastphotos","2", { expires: 365, path: "/" });
+       $.cookie("close_lastlikes","2", { expires: 365, path: "/" });
+       $.cookie("Boxorder",null, { expires: 365, path: "/" });
+       alert("Right-hand column was restored. Please refresh your browser");
+   }
+       </script>';}
+       
+       if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname'] or $a->argv[0] === "network" && local_user()){
+       $a->page['htmlhead'] .= '
+       <script>
 
+       $(function() {
+       $(".oembed.photo img").aeImageResize({height: 400, width: 400});
+       });
+       </script>';
+       
+       if($ccCookie != "9") {
+       $a->page['htmlhead'] .= '
+       <script>
+       $("right_aside").ready(function(){
+       
+       if($.cookie("close_pages") == "1") 
+               {
+               document.getElementById( "close_pages" ).style.display = "none";
+                       };
+                       
+       if($.cookie("close_profiles") == "1") 
+               {
+               document.getElementById( "close_profiles" ).style.display = "none";
+                       };
+       
+       if($.cookie("close_helpers") == "1") 
+               {
+               document.getElementById( "close_helpers" ).style.display = "none";
+                       };
+                       
+       if($.cookie("close_services") == "1") 
+               {
+               document.getElementById( "close_services" ).style.display = "none";
+                       };
+                       
+       if($.cookie("close_friends") == "1") 
+               {
+               document.getElementById( "close_friends" ).style.display = "none";
+                       };
+       
+       if($.cookie("close_twitter") == "1") 
+               {
+               document.getElementById( "twitter" ).style.display = "none";
+                       };      
+                       
+       if($.cookie("close_lastusers") == "1") 
+               {
+               document.getElementById( "close_lastusers" ).style.display = "none";
+                       };
+                       
+       if($.cookie("close_lastphotos") == "1") 
+               {
+               document.getElementById( "close_lastphotos" ).style.display = "none";
+                       };
+                       
+       if($.cookie("close_lastlikes") == "1") 
+               {
+               document.getElementById( "close_lastlikes" ).style.display = "none";
+                       };}
 
+       );
+
+       function close_pages(){
+        document.getElementById( "close_pages" ).style.display = "none";
+       $.cookie("close_pages","1", { expires: 365, path: "/" });
+       };
  
-function diabook_community_info(){
-       $a = get_app();
+       function close_profiles(){
+       document.getElementById( "close_profiles" ).style.display = "none";
+       $.cookie("close_profiles","1", { expires: 365, path: "/" });
+       };
+       function close_helpers(){
+       document.getElementById( "close_helpers" ).style.display = "none";
+       $.cookie("close_helpers","1", { expires: 365, path: "/" });
+       };
+
+       function close_services(){
+       document.getElementById( "close_services" ).style.display = "none";
+       $.cookie("close_services","1", { expires: 365, path: "/" });
+       };
+       function close_friends(){
+        document.getElementById( "close_friends" ).style.display = "none";
+        $.cookie("close_friends","1", { expires: 365, path: "/" });
+        };
+       function close_twitter(){
+       document.getElementById( "twitter" ).style.display = "none";
+        $.cookie("close_twitter","1", { expires: 365, path: "/" });
+       };
+       function close_lastusers(){
+        document.getElementById( "close_lastusers" ).style.display = "none";
+       $.cookie("close_lastusers","1", { expires: 365, path: "/" });
+        };
+
+       function close_lastphotos(){
+       document.getElementById( "close_lastphotos" ).style.display = "none";
+        $.cookie("close_lastphotos","1", { expires: 365, path: "/" });
+        };
+       function close_lastlikes(){
+        document.getElementById( "close_lastlikes" ).style.display = "none";
+        $.cookie("close_lastlikes","1", { expires: 365, path: "/" });
+        };
+       </script>';}
+       }
+       //end js scripts
+
+       // custom css
+       if (!is_null($cssFile)) $a->page['htmlhead'] .= sprintf('<link rel="stylesheet" type="text/css" href="%s" />', $cssFile);
 
+       //footer
+       $tpl = get_markup_template('footer.tpl');
+       $a->page['footer'] .= replace_macros($tpl, array());
+       
+       //
+       js_in_foot();
+}
 
+
+ function diabook_community_info() {
+       $a = get_app();
+       // comunity_profiles
+       if($_COOKIE['close_profiles'] != "1") {
+       $aside['$comunity_profilest_title'] = t('Community Profiles');
+       $aside['$comunity_profiles_items'] = array();
+       $r = q("select gcontact.* from gcontact left join glink on glink.gcid = gcontact.id 
+                         where glink.cid = 0 and glink.uid = 0 order by rand() limit 9");
+       $tpl = file_get_contents( dirname(__file__).'/ch_directory_item.tpl');
+       if(count($r)) {
+               $photo = 'photo';
+               foreach($r as $rr) {
+                       $profile_link = $a->get_baseurl() . '/profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']);
+                       $entry = replace_macros($tpl,array(
+                               '$id' => $rr['id'],
+                               '$profile-link' => zrl($rr['url']),
+                               '$photo' => $rr[$photo],
+                               '$alt-text' => $rr['name'],
+                       ));
+                       $aside['$comunity_profiles_items'][] = $entry;
+               }
+       }}
+       
        // last 12 users
+       if($_COOKIE['close_lastusers'] != "1") {
        $aside['$lastusers_title'] = t('Last users');
        $aside['$lastusers_items'] = array();
        $sql_extra = "";
@@ -70,10 +371,10 @@ function diabook_community_info(){
                        ));
                        $aside['$lastusers_items'][] = $entry;
                }
-       }
-       
+       }}
        
        // last 10 liked items
+       if($_COOKIE['close_lastlikes'] != "1") {
        $aside['$like_title'] = t('Last likes');
        $aside['$like_items'] = array();
        $r = q("SELECT `T1`.`created`, `T1`.`liker`, `T1`.`liker-link`, `item`.* FROM 
@@ -115,10 +416,10 @@ function diabook_community_info(){
 
                $aside['$like_items'][] = sprintf( t('%1$s likes %2$s\'s %3$s'), $author, $objauthor, $plink);
                
-       }
-       
+       }}
        
        // last 12 photos
+       if($_COOKIE['close_photos'] != "1") {
        $aside['$photos_title'] = t('Last photos');
        $aside['$photos_items'] = array();
        $r = q("SELECT `photo`.`id`, `photo`.`resource-id`, `photo`.`scale`, `photo`.`desc`, `user`.`nickname`, `user`.`username` FROM 
@@ -150,10 +451,10 @@ function diabook_community_info(){
 
                        $aside['$photos_items'][] = $entry;
                }
-       }
+       }}
        
-   
    //right_aside FIND FRIENDS
+   if($_COOKIE['close_friends'] != "1") {
        if(local_user()) {
        $nv = array();
        $nv['title'] = Array("", t('Find Friends'), "", "");
@@ -171,14 +472,14 @@ function diabook_community_info(){
                                                <span class="sbox_r" id="srch_clear"></span>';
        
        $aside['$nv'] = $nv;
-       };
+       }}
    
-   //Community Page
+   //Community_Pages at right_aside
+   if($_COOKIE['close_pages'] != "1") {
    if(local_user()) {
-   $page = '<div id="page-sidebar-right_aside" class="widget">
-                       <div class="title tool">
-                       <h3>'.t("Community Pages").'<a id="close_pages_icon"  onClick="close_pages()" class="icon close_box" title="close"></a></h3></div>
-                       <div id="sidebar-page-list"><ul>';
+   $page = '
+                       <h3 style="margin-top:0px;">'.t("Community Pages").'<a id="close_pages_icon"  onClick="close_pages()" class="icon close_box" title="close"></a></h3></div>
+                       <div id=""><ul style="margin-left: 7px;margin-top: 0px;padding-left: 0px;padding-top: 0px;">';
 
        $pagelist = array();
 
@@ -199,357 +500,56 @@ function diabook_community_info(){
        $contacts = $pageD;
 
        foreach($contacts as $contact) {
-               $page .= '<li style="list-style-type: none;" class="tool"><img height="20" width="20" style="float: left; margin-right: 3px;" src="' . $contact['micro'] .'" alt="' . $contact['url'] . '" /> <a href="'.$a->get_baseurl().'/redir/'.$contact["id"].'" style="margin-top: 2px;" title="' . $contact['url'] . '" class="label" target="external-link">'.
+               $page .= '<li style="list-style-type: none;" class="tool"><img height="20" width="20" style="float: left; margin-right: 3px;" src="' . $contact['micro'] .'" alt="' . $contact['url'] . '" /> <a href="'.$a->get_baseurl().'/redir/'.$contact["id"].'" style="margin-top: 2px; word-wrap: break-word; width: 132px;" title="' . $contact['url'] . '" class="label" target="external-link">'.
                                $contact["name"]."</a></li>";
        }
-       $page .= '</ul></div></div>';
+       $page .= '</ul></div>';
        //if (sizeof($contacts) > 0)
-               
                $aside['$page'] = $page;        
-       }
+       }}
   //END Community Page 
+  
   //helpers
+  if($_COOKIE['close_helpers'] != "1") {
    $helpers = array();
        $helpers['title'] = Array("", t('Help or @NewHere ?'), "", "");
-       
        $aside['$helpers'] = $helpers;
+       }
    //end helpers
    //connectable services
+   if($_COOKIE['close_services'] != "1") {
    $con_services = array();
        $con_services['title'] = Array("", t('Connect Services'), "", "");
-       
        $aside['$con_services'] = $con_services;
+       }
    //end connectable services
-  
-  
    //get_baseurl
    $url = $a->get_baseurl($ssl_state);   
    $aside['$url'] = $url;
-
+       //print right_aside
        $tpl = file_get_contents(dirname(__file__).'/communityhome.tpl');
        $a->page['right_aside'] = replace_macros($tpl, $aside);
        
-       
-       
-       
-}
-
-
-//profile_side at networkpages
-if ($a->argv[0] === "network" && local_user()){
-
-       // USER MENU
-       if(local_user()) {
-               
-               $r = q("SELECT micro FROM contact WHERE uid=%d AND self=1", intval($a->user['uid']));
-                               
-               $userinfo = array(
-                                       'icon' => (count($r) ? $r[0]['micro']: $a->get_baseurl()."/images/default-profile-mm.jpg"),
-                                       'name' => $a->user['username'],
-                               );      
-               $ps = array('usermenu'=>array());
-               $ps['usermenu']['status'] = Array('profile/' . $a->user['nickname'], t('Home'), "", t('Your posts and conversations'));
-               $ps['usermenu']['profile'] = Array('profile/' . $a->user['nickname']. '?tab=profile', t('Profile'), "", t('Your profile page'));
-               $ps['usermenu']['contacts'] = Array('contacts' , t('Contacts'), "", t('Your contacts'));                                
-               $ps['usermenu']['photos'] = Array('photos/' . $a->user['nickname'], t('Photos'), "", t('Your photos'));
-               $ps['usermenu']['events'] = Array('events/', t('Events'), "", t('Your events'));
-               $ps['usermenu']['notes'] = Array('notes/', t('Personal notes'), "", t('Your personal photos'));
-               $ps['usermenu']['community'] = Array('community/', t('Community'), "", "");
-               $ps['usermenu']['pgroups'] = Array('http://dir.friendica.com/directory/forum', t('Community Pages'), "", "");
-
-               $tpl = get_markup_template('profile_side.tpl');
-
-               $a->page['aside'] .= replace_macros($tpl, array(
-                               '$userinfo' => $userinfo,
-                               '$ps' => $ps,
-                       ));
-
-       }
-       
-       $ccCookie = $_COOKIE['close_pages'] + $_COOKIE['close_helpers'] + $_COOKIE['close_services'] + $_COOKIE['close_friends'] + $_COOKIE['close_lastusers'] + $_COOKIE['close_lastphotos'] + $_COOKIE['close_lastlikes'];
-       
-       if($ccCookie != "7") {
-       // COMMUNITY
-       diabook_community_info();
-
-       // CUSTOM CSS
-       if($resolution == "normal") {$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook".$color_path."style-network.css";}
-       if($resolution == "wide") {$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook".$color_path."style-network-wide.css";}
-       }
-}
-
-
-
-//right_aside at profile pages
-if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname']){
-       if($ccCookie != "7") {
-       // COMMUNITY
-       diabook_community_info();
-       
-       // CUSTOM CSS
-       if($resolution == "normal") {$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook".$color_path."style-profile.css";}
-       if($resolution == "wide") {$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook".$color_path."style-profile-wide.css";}
-       
-       }
-}
-
-// custom css
-if (!is_null($cssFile)) $a->page['htmlhead'] .= sprintf('<link rel="stylesheet" type="text/css" href="%s" />', $cssFile);
-
-//footer
-$tpl = get_markup_template('footer.tpl');
-$a->page['footer'] .= replace_macros($tpl, array());
-
-//load jquery.cookie.js
-$cookieJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.cookie.js";
-$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s"></script>', $cookieJS);
-
-//load jquery.ae.image.resize.js
-$imageresizeJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.ae.image.resize.js";
-$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $imageresizeJS);
-
-//load jquery.autogrow-textarea.js
-$autogrowJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.autogrow.textarea.js";
-$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $autogrowJS);
-
-//js scripts
-//comment-edit-wrapper on photo_view
-if ($a->argv[0].$a->argv[2] === "photos"."image"){
-
-$a->page['htmlhead'] .= '
-<script>
-       $(function(){
-       
-               $(".comment-edit-form").css("display","table");
-                       
-                       });
-    </script>';
-       
-}
-
-$a->page['htmlhead'] .= '
-
-<script>
- $(function() {
-       $("a.lightbox").fancybox(); // Select all links with lightbox class
- });
-   
- </script>';
-$a->page['htmlhead'] .= '
-
-<script type="text/javascript">
-
-function tautogrow(id){
-               $("textarea#comment-edit-text-" +id).autogrow();        
-       };
- </script>';
-$a->page['htmlhead'] .= '
- <script>
-$(document).ready(function() {
-    $("iframe").each(function(){
-        var ifr_source = $(this).attr("src");
-        var wmode = "wmode=transparent";
-        if(ifr_source.indexOf("?") != -1) {
-            var getQString = ifr_source.split("?");
-            var oldString = getQString[1];
-            var newString = getQString[0];
-            $(this).attr("src",newString+"?"+wmode+"&"+oldString);
-        }
-        else $(this).attr("src",ifr_source+"?"+wmode);
-       
-    });
-      
-});
-
-function yt_iframe() {
-
-       $("iframe").load(function() { 
-       var ifr_src = $(this).contents().find("body iframe").attr("src");
-       $("iframe").contents().find("body iframe").attr("src", ifr_src+"&wmode=transparent");
-    });
-
-       };
-
-function scrolldown(){
-                       $("html, body").animate({scrollTop:$(document).height()}, "slow");
-                       return false;
-               };
-               
-function scrolltop(){
-                       $("html, body").animate({scrollTop:0}, "slow");
-                       return false;
-               };
-               
-$(window).scroll(function () { 
-               
-                               
-               var scrollInfo = $(window).scrollTop();      
-               
-               if (scrollInfo <= "900"){
-      $("a#top").attr("id","down");
-      $("a#down").attr("onclick","scrolldown()");
-               $("img#scroll_top_bottom").attr("src","view/theme/diabook/icons/scroll_bottom.png");
-               } 
-                   
-      if (scrollInfo > "900"){
-      $("a#down").attr("id","top");
-      $("a#top").attr("onclick","scrolltop()");
-               $("img#scroll_top_bottom").attr("src","view/theme/diabook/icons/scroll_top.png");
-               }
-               
-    });
-  
- </script>';
-if($a->argv[0] === "settings" && local_user()) {
-$a->page['htmlhead'] .= ' 
-<script>
-function restore_boxes(){
-       $.cookie("close_pages","2", { expires: 365, path: "/" });
-       $.cookie("close_helpers","2", { expires: 365, path: "/" });
-       $.cookie("close_services","2", { expires: 365, path: "/" });
-       $.cookie("close_friends","2", { expires: 365, path: "/" });
-       $.cookie("close_lastusers","2", { expires: 365, path: "/" });
-       $.cookie("close_lastphotos","2", { expires: 365, path: "/" });
-       $.cookie("close_lastlikes","2", { expires: 365, path: "/" });
-       alert("Right-hand column was restored. Please refresh your browser");
-  }
-</script>';}
+ }
 
+ function js_in_foot() {
+       /** @purpose insert stuff in bottom of page
+        */
+       $a = get_app();
+       $baseurl = $a->get_baseurl($ssl_state);
+       $bottom['$baseurl'] = $baseurl;
+       $tpl = file_get_contents(dirname(__file__) . '/bottom.tpl');
+       $a->page['footer'] = $a->page['footer'].replace_macros($tpl, $bottom);
+ }
 
 
-if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname'] or $a->argv[0] === "network" && local_user()){
-$a->page['htmlhead'] .= '
-<script>
 
- $(function() {
-       $(".oembed.photo img").aeImageResize({height: 400, width: 400});
-  });
-</script>';
 
 
-       if($ccCookie != "7") {
-$a->page['htmlhead'] .= '
-<script>
-$("right_aside").ready(function(){
-       
-       if($.cookie("close_pages") == "1") 
-               {
-               document.getElementById( "close_pages" ).style.display = "none";
-                       };
-       
-       if($.cookie("close_helpers") == "1") 
-               {
-               document.getElementById( "close_helpers" ).style.display = "none";
-                       };
-                       
-       if($.cookie("close_services") == "1") 
-               {
-               document.getElementById( "close_services" ).style.display = "none";
-                       };
-                       
-       if($.cookie("close_friends") == "1") 
-               {
-               document.getElementById( "close_friends" ).style.display = "none";
-                       };
-       
-                       
-       if($.cookie("close_lastusers") == "1") 
-               {
-               document.getElementById( "close_lastusers" ).style.display = "none";
-                       };
-                       
-       if($.cookie("close_lastphotos") == "1") 
-               {
-               document.getElementById( "close_lastphotos" ).style.display = "none";
-                       };
-                       
-       if($.cookie("close_lastlikes") == "1") 
-               {
-               document.getElementById( "close_lastlikes" ).style.display = "none";
-                       };}
 
-);
 
-function close_pages(){
- document.getElementById( "close_pages" ).style.display = "none";
- $.cookie("close_pages","1", { expires: 365, path: "/" });
- };
  
-function close_helpers(){
- document.getElementById( "close_helpers" ).style.display = "none";
-  $.cookie("close_helpers","1", { expires: 365, path: "/" });
- };
-
-function close_services(){
- document.getElementById( "close_services" ).style.display = "none";
- $.cookie("close_services","1", { expires: 365, path: "/" });
- };
  
-function close_friends(){
- document.getElementById( "close_friends" ).style.display = "none";
- $.cookie("close_friends","1", { expires: 365, path: "/" });
- };
 
  
-function close_lastusers(){
- document.getElementById( "close_lastusers" ).style.display = "none";
- $.cookie("close_lastusers","1", { expires: 365, path: "/" });
- };
-
-function close_lastphotos(){
- document.getElementById( "close_lastphotos" ).style.display = "none";
- $.cookie("close_lastphotos","1", { expires: 365, path: "/" });
- };
  
-function close_lastlikes(){
- document.getElementById( "close_lastlikes" ).style.display = "none";
- $.cookie("close_lastlikes","1", { expires: 365, path: "/" });
- };
-</script>';}}
-
-$a->page['htmlhead'] .= ' 
-
-<script>
-function insertFormatting(comment,BBcode,id) {
-       
-               var tmpStr = $("#comment-edit-text-" + id).val();
-               if(tmpStr == comment) {
-                       tmpStr = "";
-                       $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
-                       $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
-                       openMenu("comment-edit-submit-wrapper-" + id);
-                                                               }
-
-       textarea = document.getElementById("comment-edit-text-" +id);
-       if (document.selection) {
-               textarea.focus();
-               selected = document.selection.createRange();
-               if (BBcode == "url"){
-                       selected.text = "["+BBcode+"]" + "http://" +  selected.text + "[/"+BBcode+"]";
-                       } else                  
-               selected.text = "["+BBcode+"]" + selected.text + "[/"+BBcode+"]";
-       } else if (textarea.selectionStart || textarea.selectionStart == "0") {
-               var start = textarea.selectionStart;
-               var end = textarea.selectionEnd;
-               if (BBcode == "url"){
-                       textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + "http://" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
-                       } else
-               textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
-       }
-       return true;
-}
-
-function cmtBbOpen(id) {
-       $(".comment-edit-bb-" + id).show();
-}
-function cmtBbClose(id) {
-       $(".comment-edit-bb-" + id).hide();
-}
-
-</script> ';
\ No newline at end of file
index b4fbae5dfaf9fb9c06722827c470a997ea2da595..aa63a03ed2300b0a37a0c628f13be3cf92ec7fa0 100644 (file)
@@ -64,8 +64,6 @@
                                        <span onclick="preview_comment($id);" id="comment-edit-preview-link-$id" class="fakelink">$preview</span>
                                        <div id="comment-edit-preview-$id" class="comment-edit-preview" style="display:none;"></div>
                                </div>
-
                                <div class="comment-edit-end"></div>
                        </form>
-
                </div>
diff --git a/view/theme/dispy/dark/_base.less b/view/theme/dispy/dark/_base.less
new file mode 100644 (file)
index 0000000..77472a2
--- /dev/null
@@ -0,0 +1,159 @@
+// _base.less
+//
+// the base file for dispy's dark "sub-theme".
+//
+// Notes:
+// this is used to define mixins (think of them as functions)
+// and variables. the mixins are the ".foo () {}" things, vars are
+// like "@bar".
+//
+// (BTW, this will make it a LOT easier to maintain.)
+// 
+// Dev. Note: the // style comments don't show up at all when
+// you "compile" the css (with `lessc`), but css (/**/) comments
+// do. i use them to our advantage :).
+
+//* backgrounds */
+@dk_bg_colour: #1d1f1d;
+@bg_colour: #2e2f2e;
+@bg_alt_colour: #2e302e;
+@med_bg_colour: #4e4f4e;
+@menu_bg_colour: #555753;
+
+
+//* font colour, aka color: */
+@lt_main_colour: #ffff99;
+@main_colour: #eeeecc;
+@main_alt_colour: #eeeeee;
+// darken(@main_alt_colour, 13%) > #cdcdcd
+// darken(@main_alt_colour, 13.5%) > #cccccc
+// darken(@main_alt_colour, 33%) > #9a9a9a
+// darken(@main_alt_colour, 24%) > #b1b1b1
+// darken(@main_alt_colour, 27%) > #a9a9a9
+// darken(@main_alt_colour, 33.5%) > #999999
+// darken(@main_alt_colour, 40%) > #888888
+// darken(@main_alt_colour, 46.8%) > #777777
+// darken(@main_alt_colour, 53.5%) > #666666
+// darken(@main_alt_colour, 60%) > #555555
+// darken(@main_alt_colour, 66.5%) > #444444
+// darken(@main_alt_colour, 73.5%) > #333333
+// darken(@main_alt_colour, 80%) > #222222
+// darken(@main_alt_colour, 86.5%) > #111111
+@disabled_colour: #ddddbb;
+@shiny_colour: #2e3436;
+@red_orange: #ff2000;
+@orange: #f8911b;
+@lt_orange: #fcaf3e;
+@shadow_colour: darken(@main_alt_colour, 86.5%);
+@friendica_blue: #3465a4;
+@border2: #babdb6;
+@group_show: #9ade00;
+@group_hide: #ff4141;
+@notice: #3320bc;
+@info: #1353b1;
+@alert: #ff0000;
+
+@lt_main_colour: lighten(@bg_colour, 10%);
+@dk_main_colour: darken(@bg_colour, 10%);
+
+//* links */
+@link_colour: #88a9d2;
+@dk_link_colour: darken(@link_colour, 10%);
+@lt_link_colour: lighten(@link_colour, 10%);
+//@hover_colour: #729fcf;
+@hover_colour: @dk_link_colour;
+
+//* box shadows */
+@menu_shadow: 5px 0 10px 0 @shadow_colour;
+@main_shadow: 3px 3px 3px 10px 0 @shadow_colour;
+
+// default here was @main_shadow
+.box_shadow(@h: 5px, @v: 5px, @blur: 5px, @spread: 0px, @colour: @shadow_colour) {
+       -moz-box-shadow: @h @v @blur @spread @colour;
+       -o-box-shadow: @h @v @blur @spread @colour;
+       -webkit-box-shadow: @h @v @blur @spread @colour;
+       -ms-box-shadow: @h @v @blur @spread @colour;
+       box-shadow: @h @v @blur @spread @colour;
+}
+//* http://css-tricks.com/snippets/css/css-box-shadow/
+//* box-shadow:
+//* 1. The horizontal offset of the shadow, positive means
+//* the shadow will be on the right of the box, a negative
+//* offset will put the shadow on the left of the box.
+//* 2. The vertical offset of the shadow, a negative one
+//* means the box-shadow will be above the box, a
+//* positive one means the shadow will be below the box.
+//* 3. The blur radius (optional), if set to 0 the shadow
+//* will be sharp, the higher the number, the more blurred
+//* it will be.
+//* 4. The spread radius (optional), positive values increase
+//* the size of the shadow, negative values decrease the size.
+//* Default is 0 (the shadow is same size as blur).
+//* 5. Colo[u]r
+//*/
+
+//* text-shadow */
+.text_shadow (@h: 1px, @v: 1px, @c: #111) {
+       -moz-text-shadow: @h @v @c;
+       -o-text-shadow: @h @v @c;
+       -webkit-text-shadow: @h @v @c;
+       -ms-text-shadow: @h @v @c;
+       text-shadow: @h @v @c;
+}
+//* transitions */
+.transition (@type: all, @dur: 0.5s, @effect: ease-in-out) {
+    -webkit-transition: @arguments;
+    -moz-transition: @arguments;
+    -o-transition: @arguments;
+    -ms-transition: @arguments;
+    transition: @arguments;
+}
+
+//* borders */
+.borders (@size: 1px, @style: solid, @colour: @main_colour) {
+       border: @size @style @colour;
+}
+
+//* rounded box corners */
+.rounded_corners (@r: 5px) {
+       -o-border-radius: @r;
+       -webkit-border-radius: @r;
+       -moz-border-radius: @r;
+       -ms-border-radius: @r;
+       border-radius: @r;
+}
+.text_overflow (@t: ellipsis) {
+       -moz-text-overflow: @t;
+       -ms-text-verflow: @t;
+       -o-text-overflow: @t;
+       -webkit-text-overflow: @t;
+       text-overflow: @t;
+}
+
+//* pre wrap */
+.wrap () {
+       white-space: pre-wrap;
+       white-space: pre;
+       word-wrap: none;
+}
+//* font size sizing */
+.default_font () {
+       font-size: 16px;
+       line-height: 1.1em;
+       font-family: sans-serif;
+}
+
+//* reset ul, ol */
+.list_reset () {
+       margin: 0px;
+       padding: 0px;
+       list-style: none;
+       list-style-position: inside;
+}
+
+//* box size: width, height */
+.box (@w: 20px, @h: 20px) {
+       width: @w;
+       height: @h;
+}
+
diff --git a/view/theme/dispy/dark/connect.png b/view/theme/dispy/dark/connect.png
deleted file mode 100644 (file)
index b76fc13..0000000
Binary files a/view/theme/dispy/dark/connect.png and /dev/null differ
index 3b0548be253eeb416b649bdbaf0f42a477939741..c840b2b3bebdf1cada4d91b83b8230dacc17de14 100644 (file)
@@ -2,36 +2,39 @@ article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display
 audio,canvas,video,time{display:inline-block;*display:inline;*zoom:1;}
 audio:not([controls]),[hidden]{display:none;}
 html{font-size:100%;overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
-body{margin:0;font-size:16px;line-height:1.1em;font-family:sans-serif;color:#eec;background-color:#2e2f2e;}
-button,input,select,textarea{font-family:sans-serif;color:#eec;background-color:#2e2f2e;}
-select{border:1px #555 dotted;padding:3px;margin:3px;color:#eec;background:#2e2f2e;}
-option{padding:3px;color:#eec;background:#2e2f2e;}option[selected="selected"]{color:#2e2f2e;background:#eec;}
-ul,ol{padding:0;}
+body{margin:0;padding:0;font-size:16px;line-height:1.1em;font-family:sans-serif;color:#eeeecc;background-color:#2e2f2e;}
+button,input,select,textarea{color:#eeeecc;background-color:#2e2f2e;}
+select{border:1px #555 dotted;padding:1px;margin:3px;color:#eeeecc;background:#2e2f2e;}
+option{padding:1px;color:#eeeecc;background:#2e2f2e;}option[selected="selected"]{color:#2e2f2e;background:#eeeecc;}
+ul,ol{margin:0px;padding:0px;list-style:none;list-style-position:inside;}
+tr:nth-child(even){background-color:#474947;}
 :focus{outline:0;}
-[disabled="disabled"]{background:#4e4f4f;color:#ddb;}
-ins{background-color:#2e302e;color:#ff9;text-decoration:none;}
-mark{background-color:#2e302e;color:#ff9;font-style:italic;font-weight:bold;}
+[disabled="disabled"]{background:#4e4f4e;color:#ddddbb;}
+ins,mark{background-color:#2e302e;color:#474947;}
+ins{text-decoration:none;}
+mark{font-style:italic;font-weight:bold;}
 pre,code,kbd,samp,.wall-item-body code{font-family:monospace, monospace;_font-family:monospace;font-size:1em;}
-pre,.wall-item-body code{white-space:pre;white-space:pre-wrap;word-wrap:break-word;}
+pre,.wall-item-body code{white-space:pre-wrap;white-space:pre;word-wrap:none;}
 q{quotes:none;}q:before,q:after{content:"";content:none;}
 small{font-size:85%;}
 sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}
 sub{bottom:-0.25em;}
 sup{top:-0.5em;}
 img{border:0 none;}
-a{color:#88a9d2;text-decoration:none;margin-bottom:1px;}a:hover img{text-decoration:none;}
-blockquote{background:#444;color:#eec;text-indent:5px;padding:5px;border:1px #aaa solid;border-radius:5px;}
-a:hover{color:#729fcf;border-bottom:1px dotted #729fcf;}
+a{color:#88a9d2;text-decoration:none;margin-bottom:1px;}a:hover{color:#638ec4;border-bottom:1px dotted #638ec4;}
+a:hover img{text-decoration:none;}
+blockquote{background:#444;color:#eeeecc;text-indent:5px;padding:5px;border:1px #aaa solid;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
 .required{display:inline;color:#ff0;font-size:16px;font-weight:bold;margin:3px;}
-.fakelink,.lockview{color:#729fcf;cursor:pointer;}
-.fakelink:hover{color:#729fcf;}
+.fakelink,.lockview{color:#88a9d2;cursor:pointer;}
+.fakelink:hover{color:#638ec4;}
 .smalltext{font-size:0.7em;}
-#panel{position:absolute;font-size:0.8em;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:1px solid #fff;background-color:#2e302e;color:#eeeeec;padding:1em;}
+#panel{position:absolute;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;border:1px solid #eeeeee;background-color:#2e302e;color:#eeeecc;padding:1em;}
 .pager{margin-top:60px;display:block;clear:both;text-align:center;}.pager span{padding:4px;margin:4px;}
-.pager_current{background-color:#729fcf;color:#fff;}
+.pager_current{background-color:#88a9d2;color:#eeeeee;}
 .action{margin:5px 0;}
 .tool{margin:5px 0;list-style:none;}
 #articlemain{width:100%;height:100%;margin:0 auto;}
+[class$="-desc"],[id$="-desc"]{color:#2e2f2e;background:#eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:3px 3px 5px 0px #111111;-o-box-shadow:3px 3px 5px 0px #111111;-webkit-box-shadow:3px 3px 5px 0px #111111;-ms-box-shadow:3px 3px 5px 0px #111111;box-shadow:3px 3px 5px 0px #111111;padding:3px;margin:5px 0;font-weight:bold;}
 #asidemain .field{overflow:hidden;width:200px;}
 #login-extra-links{overflow:auto !important;padding-top:60px !important;width:100% !important;}#login-extra-links a{margin-right:20px;}
 #login_standard{display:block !important;float:none !important;height:100% !important;position:relative !important;width:100% !important;}#login_standard .field label{width:200px !important;}
@@ -41,10 +44,10 @@ a:hover{color:#729fcf;border-bottom:1px dotted #729fcf;}
 #asidemain #login_openid{position:relative !important;float:none !important;margin-left:0px !important;height:auto !important;width:200px !important;}
 #login_openid #id_openid_url{width:180px !important;overflow:hidden !important;}
 #login_openid label{width:180px !important;}
-nav{height:60px;background-color:#1d1f1d;color:#eeeeec;position:relative;padding:20px 20px 10px 95px;}nav a{text-decoration:none;color:#eeeeec;border:0px;}nav a:hover{text-decoration:none;color:#eeeeec;border:0px;}
+nav{height:60px;background-color:#1d1f1d;color:#eeeeee;position:relative;padding:20px 20px 10px 95px;}nav a{text-decoration:none;color:#eeeeee;border:0px;}nav a:hover{text-decoration:none;color:#eeeeee;border:0px;}
 nav #banner{display:block;position:absolute;left:51px;top:25px;}nav #banner #logo-text a{font-size:40px;font-weight:bold;margin-left:3px;}
-ul#user-menu-popup{display:none;position:absolute;background-color:#555753;width:100%;padding:10px 0px;margin:0px;top:20px;left:0;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;box-shadow:5px 10px 10px 0 #111;z-index:10000;}ul#user-menu-popup li{display:block;}ul#user-menu-popup li a{display:block;padding:5px;}ul#user-menu-popup li a:hover{color:#2e302e;background-color:#eeeeec;}
-ul#user-menu-popup li a.nav-sep{border-top:1px solid #eeeeec;}
+ul#user-menu-popup{display:none;position:absolute;background-color:#555753;width:100%;padding:10px 0px;margin:0px;top:20px;left:0;-o-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-ms-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-moz-box-shadow:5px 5px 10px 0px #111111;-o-box-shadow:5px 5px 10px 0px #111111;-webkit-box-shadow:5px 5px 10px 0px #111111;-ms-box-shadow:5px 5px 10px 0px #111111;box-shadow:5px 5px 10px 0px #111111;z-index:10000;}ul#user-menu-popup li{display:block;}ul#user-menu-popup li a{display:block;padding:5px;}ul#user-menu-popup li a:hover{color:#eeeecc;background-color:#2e302e;}
+ul#user-menu-popup li a.nav-sep{border-top:1px solid #2e302e;}
 nav .nav-link{display:inline-block;width:22px;height:22px;overflow:hidden;margin:0px 5px 5px;text-indent:50px;background:transparent url(dark/icons.png) 0 0 no-repeat;}
 #nav-apps-link{background-position:0 -66px;}#nav-apps-link:hover{background-position:-22px -66px;}
 #nav-community-link,#nav-contacts-link{background-position:0 -22px;}#nav-community-link:hover,#nav-contacts-link:hover{background-position:-22px -22px;}
@@ -58,25 +61,24 @@ nav .nav-link{display:inline-block;width:22px;height:22px;overflow:hidden;margin
 #nav-notify-link:hover{background-position:-66px -110px;}
 #nav-network-link{background-position:0px -177px;}#nav-network-link:hover{background-position:-22px -177px;}
 #nav-search-link{background-position:0 -44px;}#nav-search-link:hover{background-position:-22px -44px;}
-#profile-link,#profile-title,#wall-image-upload,#wall-file-upload,#profile-attach-wrapper,#profile-audio,#profile-link,#profile-location,#profile-nolocation,#profile-title,#jot-title,#profile-upload-wrapper,#profile-video,#profile-jot-submit,#wall-image-upload-div,#wall-file-upload-div,.icon,.hover,.focus,.pointer{cursor:pointer;}
-div.jGrowl div.notice{background:#511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;color:#ffffff;padding-left:58px;}
-div.jGrowl div.info{background:#364e59 url("../../../images/icons/48/info.png") no-repeat 5px center;color:#ffffff;padding-left:58px;}
+#jot-title,#profile-link,#profile-title,#profile-attach-wrapper,#profile-audio,#profile-link,#profile-location,#profile-nolocation,#profile-title,#profile-upload-wrapper,#profile-video,#profile-jot-submit,#wall-image-upload,#wall-file-upload,#wall-image-upload-div,#wall-file-upload-div,.icon,.hover,.focus,.pointer{cursor:pointer;}
+div.jGrowl div.notice{background:#3320bc url("../../../images/icons/48/notice.png") no-repeat 5px center;color:white;padding-left:58px;margin-top:50px;}
+div.jGrowl div.info{background:#1353b1 url("../../../images/icons/48/info.png") no-repeat 5px center;color:white;padding-left:58px;margin-top:50px;}
 #nav-notifications-menu{margin:30px 0 0 -20px;width:275px;max-height:300px;overflow-y:auto;font-size:9pt;}#nav-notifications-menu .contactname{font-weight:bold;font-size:0.9em;}
 #nav-notifications-menu img{float:left;margin-right:5px;}
 #nav-notifications-menu .notif-when{font-size:0.8em;display:block;}
-#nav-notifications-menu li{word-wrap:normal;border-bottom:1px solid #000;}#nav-notifications-menu li:hover{color:black;}
+#nav-notifications-menu li{word-wrap:normal;border-bottom:1px solid black;}#nav-notifications-menu li:hover{color:black;}
 #nav-notifications-menu a:hover{color:black;text-decoration:underline;}
-nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkmenu.selected .icon.s22.notify{background-image:url("../../../images/icons/22/notify_on.png");}
+nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkmenu.selected .icon.s22.notify{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAQAAABuvaSwAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAUJcAAFCXAZtv64UAAAHuSURBVCjPbZPbTlNBFIYHLixXRIhEQGNRMUopJAJyAyZ4Z2l8B+XwEBqKtjwOp8oDIAJKIJFUjdFIQCUYrRytdyb0459ht8wG9rrYs9b618y/TsYEH4ZK4qRYYIdDybZOI7TKakIfVhrJ8J2i5IBNyV93/kaaBuv3oV3MgwCTPKGHPkkPA0xRUMBrOgN4AP0o6BseEpF2m3es0qJTFQneyvMhgDsC9tZprnEcGuOPeMcDLUpW3jlLxlDBmJTFY6gLvsVv8tyh9G7U3Z6mwtCuJAoiECSh/w1+8otmTjLqF2KDNsNzRY1bruV0o6rFFtc9S5USh5RRWvAYv4xX9dYPS8ur1oBQC4Y99m2uHriRNda5ErLdU1l3jCI2xdJ3XOYLX6kP2W6K2OF54Et84jN154F31d6ukKOG92pSbcjWLRrbRhVGLTZeOtXqX46LoQSHhJo3jOo3ESrdBQbljIRKNyXUiKHNNSXhTdbZiUzyT/WJ23Zn3BBFy+2u4ZHc1eV2N7EkxAvbbqMRmZOSlbE0g/uajRgl6Iy8r1wpnaFTQ4ji+8XOEsuxYmdDWpJleXJ0+BPdoduL4p5Vavd5IOllmJfiWmSWu6d3pV4jteFWqaAGbLkdKSqtUXXUnN3DSvF8phfy/JfkxfOp9sVb2COz+hY/T0qkwwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMS0wOS0xNlQwOTozOTowMCswMjowMC9Oi90AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTEtMDktMTZUMDk6Mzk6MDArMDI6MDBeEzNhAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==");}
 .show{display:block;}
-#notifications{height:20px;width:170px;position:absolute;top:-19px;left:4px;}
-#nav-floater{position:fixed;top:20px;right:1%;padding:5px;background:#1d1f1d;color:transparent;border-radius:5px;z-index:100;width:300px;height:60px;}
+#notifications{width:170px;height:20px;position:absolute;top:-19px;left:4px;}
+#nav-floater{position:fixed;top:20px;right:1%;padding:5px;background:#1d1f1d;color:transparent;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;z-index:100;width:300px;height:60px;}
 #nav-buttons{clear:both;list-style:none;padding:0px;margin:0px;height:25px;}#nav-buttons>li{padding:0;display:inline-block;margin:0px -4px 0px 0px;}
 .floaterflip{display:block;position:fixed;z-index:110;top:56px;right:19px;width:22px;height:22px;overflow:hidden;margin:0px;background:transparent url(dark/icons.png) -190px -60px no-repeat;}
-.search-box{display:inline-block;margin:5px;position:fixed;right:0px;bottom:0px;z-index:100;background:#1d1f1d;border-radius:5px;}
-#search-text{border:1px #eec solid;background:#2e2f2e;color:#eec;}
-.search-box #search-text{margin:8px;width:10em;height:14px;color:#eec;}
+.search-box{display:inline-block;margin:5px;position:fixed;right:0px;bottom:0px;z-index:100;background:#1d1f1d;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
+#search-text{border:1px solid #eeeecc;background:#2e2f2e;color:#eeeecc;font-size:8pt;margin:8px;width:10em;height:14px;}
 #scrollup{position:fixed;right:5px;bottom:40px;z-index:100;}#scrollup a:hover{text-decoration:none;border:0;}
-#user-menu{box-shadow:5px 0 10px 0 #111;display:block;width:75%;margin:3px 0 0 0;position:relative;background-color:#555753;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;background:#555753 url("dark/menu-user-pin.jpg") 98% center no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;}
+#user-menu{-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;display:block;width:75%;margin:3px 0 0 0;position:relative;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;background-color:#555753;background-image:url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAIAAwDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMH/8QAIhAAAQMEAgIDAAAAAAAAAAAAAQIDBAAFBhESIQdBMVFh/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgP/xAAXEQEBAQEAAAAAAAAAAAAAAAABAAIR/9oADAMBAAIRAxEAPwCXiHO8dbsEi35BEhIehNlbUhxhBU82O+G9bKgToD2D+VlmZX9OWZBJuAiMxGlni0w0gJCED4HXv7pSi6eFML//2Q==");background-position:98% center;background-repeat:no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;}
 #user-menu-label{font-size:12px;padding:3px 20px 9px 5px;height:10px;}
 .nav-ajax-update,.nav-ajax-left{width:30px;height:19px;background:transparent url(dark/notifications.png) 0 0 no-repeat;color:#222;font-weight:bold;font-size:0.8em;padding-top:0.2em;text-align:center;float:left;margin:0 -1px 0 3px;display:block;visibility:hidden;}
 .nav-ajax-update.show,.nav-ajax-left.show{visibility:visible;}
@@ -87,114 +89,111 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
 #intro-update{background-position:-120px 0px;}
 #lang-select-icon{cursor:pointer;position:fixed;left:28px;bottom:6px;z-index:10;}
 #language-selector{position:fixed;bottom:2px;left:52px;z-index:10;}
-.menu-popup{position:absolute;display:none;width:11em;background:#ffffff;color:#2d2d2d;margin:0px;padding:0px;list-style:none;border:3px solid #364e59;z-index:100000;-webkit-box-shadow:3px 3px 10px 0 rgba(0, 0, 0, 0.7);-moz-box-shadow:3px 3px 10px 0 rgba(0, 0, 0, 0.7);box-shadow:3px 3px 10px 0 rgba(0, 0, 0, 0.7);}.menu-popup a{display:block;color:#2d2d2d;padding:5px 10px;text-decoration:none;}.menu-popup a:hover{background-color:#bdcdd4;}
-.menu-popup .menu-sep{border-top:1px solid #9eabb0;}
+.menu-popup{position:absolute;display:none;width:11em;background:white;color:#2e2f2e;margin:0px;padding:0px;border:3px solid #2e3436;z-index:100000;-moz-box-shadow:5px 5px 5px 0px #111111;-o-box-shadow:5px 5px 5px 0px #111111;-webkit-box-shadow:5px 5px 5px 0px #111111;-ms-box-shadow:5px 5px 5px 0px #111111;box-shadow:5px 5px 5px 0px #111111;}.menu-popup a{display:block;color:#2e2f2e;padding:5px 10px;text-decoration:none;}.menu-popup a:hover{background-color:#b9c1c3;}
+.menu-popup .menu-sep{border-top:1px solid #4e4f4e;}
 .menu-popup li{float:none;overflow:auto;height:auto;display:block;}.menu-popup li img{float:left;width:16px;height:16px;padding-right:5px;}
-.menu-popup .empty{padding:5px;text-align:center;color:#9eabb0;}
+.menu-popup .empty{padding:5px;text-align:center;color:#9ea8ac;}
 .notif-item{font-size:small;}.notif-item a{vertical-align:middle;}
 .notif-image{width:32px;height:32px;padding:7px 7px 0px 0px;}
-.notify-seen{background:#ddd;}
-#sysmsg_info{position:fixed;bottom:0;-moz-box-shadow:3px 3px 3px 10px 0 #000;-webkit-box-shadow:3px 3px 10px 0 #000;box-shadow:3px 3px 10px 0 #000;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;}
-#sysmsg{position:fixed;bottom:0;-moz-box-shadow:3px 3px 10px 0 #000;-webkit-box-shadow:3px 3px 10px 0 #000;box-shadow:3px 3px 10px 0 #000;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;}
-#sysmsg_info br,#sysmsg br{display:block;margin:2px 0px;border-top:1px solid #ccccce;}
+.notify-seen{background:#bbbbbb;}
+#sysmsg_info{position:fixed;bottom:0;-moz-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-o-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-webkit-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-ms-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;}
+#sysmsg{position:fixed;bottom:0;-moz-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-o-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-webkit-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-ms-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;}
+#sysmsg_info br,#sysmsg br{display:block;margin:2px 0px;border-top:1px solid #eeeecc;}
 #asidemain{float:left;font-size:smaller;margin:20px 0 20px 35px;width:25%;display:inline;}
 #asideright,#asideleft{display:none;}
 .vcard .fn{font-size:1.7em;font-weight:bold;border-bottom:1px solid #729fcf;padding-bottom:3px;}
-.vcard #profile-photo-wrapper{margin:20px;}.vcard #profile-photo-wrapper img{box-shadow:3px 3px 10px 0 #000;}
+.vcard #profile-photo-wrapper{margin:20px;}.vcard #profile-photo-wrapper img{-moz-box-shadow:3px 3px 10px 0 #111111;-o-box-shadow:3px 3px 10px 0 #111111;-webkit-box-shadow:3px 3px 10px 0 #111111;-ms-box-shadow:3px 3px 10px 0 #111111;box-shadow:3px 3px 10px 0 #111111;}
 #asidemain h4{font-size:1.2em;}
 #asidemain #viewcontacts{text-align:right;}
-.aprofile dt{background:#eec;color:#2e2f2e;font-weight:bold;box-shadow:1px 1px 5px 0 #000;margin:15px 0 5px;padding-left:5px;}
+#asidemain #contact-block{width:99%;}#asidemain #contact-block .contact-block-content{width:99%;}#asidemain #contact-block .contact-block-content .contact-block-div{float:left;margin:0 5px 5px 0;width:50px;height:50px;padding:3px;position:relative;}
+.aprofile dt{background:#eeeecc;color:#2e2f2e;font-weight:bold;-moz-box-shadow:1px 1px 5px 0 5px 5px 0px #111111;-o-box-shadow:1px 1px 5px 0 5px 5px 0px #111111;-webkit-box-shadow:1px 1px 5px 0 5px 5px 0px #111111;-ms-box-shadow:1px 1px 5px 0 5px 5px 0px #111111;box-shadow:1px 1px 5px 0 5px 5px 0px #111111;margin:15px 0 5px;padding-left:5px;}
 #profile-extra-links ul{margin-left:0px;padding-left:0px;list-style:none;}
-#dfrn-request-link{background:#3465a4 url(dark/connect.png) no-repeat 95% center;border-radius:5px 5px 5px 5px;color:#eec;display:block;font-size:1.2em;padding:0.2em 0.5em;}
-#wallmessage-link{color:#eee;display:block;font-size:1.2em;padding:0.2em 0.5em;}
-#netsearch-box{margin:20px 0px 30px;width:150px;}#netsearch-box #search-submit{margin:5px 5px 0px 0px;}
-.ttright{margin:0px 0px 0px 0px;}
+#dfrn-request-link{-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;color:#eeeecc;display:block;font-size:1.2em;padding:0.2em 0.5em;background-color:#3465a4;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAYAAAAmL5yKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAE4SURBVCiRpZKxLgRRFIa//64dKruZFRIlolBviFKiVHsHrRaFikTCC+hEQtRegMQDqDUKJOPOvauSMJmjYEU2M0viT071/+fLOTlHZkadQgjLkh1LPEoj661WKw5mXG034JxtAgtmrJoVK5WZYYCy1AVQSOYbjeSqMmRmQ8v755Ne77lb5w+d4HMNJopCT7X+bwDQZKfTyf4BIAHeawHe+/kQ/FGM+QagvpFl2VSM/tyMmV7PV14AYMQ5nUp0AULIp0HXzpVvSdLYMmNVAjNdAuNAUQHgxy/ZvEQTSMw0A33DxkIIi2ma3gwC9PKSzRWF2wbdpml62DfyPF9yjlNgAnQGLJjZnXON3Xa7ff8NGPbKQPNrbAOI0a9J2ilLEzAL7P0GqJJizF+BUeDhL2cclJnZPvAg6eADf+imKjSMX1wAAAAASUVORK5CYII=");background-repeat:no-repeat;background-position:95% center;}
+#wallmessage-link{color:#eeeeee;display:block;font-size:1.2em;padding:0.2em 0.5em;}
+.ttright{margin:0px;}
 .contact-block-div{width:50px;height:50px;float:left;}
 .contact-block-textdiv{width:150px;height:34px;float:left;}
-#contact-block-end{clear:both;}
-#jot{margin:10px 0 20px 0px;width:100%;}#jot #jot-tools{margin:0px;padding:0px;height:35px;overflow:none;width:100%;}#jot #jot-tools span{float:left;margin:10px 20px 2px 0px;}#jot #jot-tools span a{display:block;}
+#jot{margin:10px 0 20px 0px;width:100%;}#jot #jot-tools{margin:0px;padding:0px;width:100%;height:35px;overflow:none;}#jot #jot-tools span{float:left;margin:10px 20px 2px 0px;}#jot #jot-tools span a{display:block;}
 #jot #jot-tools .perms{float:right;width:40px;}
-#jot #jot-tools li.loading{float:right;background-color:#ffffff;width:20px;vertical-align:center;text-align:center;border-top:2px solid #9eabb0;height:38px;}#jot #jot-tools li.loading img{margin-top:10px;}
-#jot #jot-title{border:1px solid #ccc;margin:0 0 5px;height:20px;width:90%;font-weight:bold;border-radius:5px;vertical-align:middle;}
-#jot-category{margin:5px 0;border-radius:5px;border:1px #999 solid;color:#aaa;font-size:smaller;}#jot-category:focus{color:#eee;}
-#jot #character-counter{width:6%;float:right;text-align:right;height:15px;line-height:20px;padding:2px 20px 5px 0;}
-#profile-jot-text_parent{box-shadow:5px 0 10px 0 #111;}
-#profile-jot-text_tbl{margin-bottom:10px;background:#777;}
+#jot #jot-tools li.loading{float:right;background-color:white;width:20px;height:38px;vertical-align:center;text-align:center;border-top:2px solid #9eabb0;}#jot #jot-tools li.loading img{margin-top:10px;}
+#jot #jot-title{border:1px solid #cdcdcd;margin:0 0 5px;width:90%;height:20px;font-weight:bold;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;vertical-align:middle;}
+#jot-category{margin:5px 0;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;border:1px solid #9a9a9a;color:#a9a9a9;font-size:smaller;}#jot-category:focus{color:#eeeeee;}
+#jot #character-counter{width:6%;height:15px;float:right;text-align:right;line-height:20px;padding:2px 20px 5px 0;}
+#profile-jot-text_parent{-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;}
+#profile-jot-text_tbl{margin-bottom:10px;background:#777777;}
 #profile-jot-text_ifr{width:99.900002% !important;}
-#profile-jot-text_toolbargroup,.mceCenter tr{background:#777;}
-[id$="jot-text_ifr"]{width:99.900002% !important;color:#2e2f2e;background:#eec;}[id$="jot-text_ifr"] .mceContentBody{color:#2e2f2e;background:#eec;}
-.defaultSkin tr.mceFirst{background:#777;}
-.defaultSkin td.mceFirst,.defaultSkin td.mceLast{background-color:#eec;}
-.defaultSkin span.mceIcon,.defaultSkin img.mceIcon,.defaultSkin .mceButtonDisabled .mceIcon{background-color:#eec;}
+#profile-jot-text_toolbargroup,.mceCenter tr{background:#777777;}
+[id$="jot-text_ifr"]{width:99.900002% !important;color:#2e2f2e;background:#eeeecc;}[id$="jot-text_ifr"] .mceContentBody{color:#2e2f2e;background:#eeeecc;}
+.defaultSkin tr.mceFirst{background:#777777;}
+.defaultSkin td.mceFirst,.defaultSkin td.mceLast{background-color:#eeeecc;}
+.defaultSkin span.mceIcon,.defaultSkin img.mceIcon,.defaultSkin .mceButtonDisabled .mceIcon{background-color:#eeeecc;}
 #profile-attach-wrapper,#profile-audio-wrapper,#profile-link-wrapper,#profile-location-wrapper,#profile-nolocation-wrapper,#profile-title-wrapper,#profile-upload-wrapper,#profile-video-wrapper{float:left;margin:0 20px 0 0;}
 #profile-rotator-wrapper{float:right;}
-#profile-jot-tools-end,#profile-jot-banner-end{clear:both;}
 #profile-jot-email-wrapper{margin:10px 10% 0;border:1px solid #555753;border-bottom:0;}
-#profile-jot-email-label{background-color:#555753;color:#ccccce;padding:5px;}
+#profile-jot-email-label{background-color:#555753;color:#eeeecc;padding:5px;}
 #profile-jot-email{width:90%;margin:5px;}
 #profile-jot-networks{margin:0 10%;border:1px solid #555753;border-top:0;border-bottom:0;padding:5px;}
 #profile-jot-net{margin:5px 0;}
 #jot-preview-link{margin:0 0 0 10px;border:0;text-decoration:none;float:right;}
 .icon-text-preview{margin:0 0 -18px 0;display:block;width:20px;height:20px;background:url(dark/icons.png) no-repeat -128px -40px;border:0;text-decoration:none;float:right;cursor:pointer;}
-#profile-jot-perms{float:right;background-color:#555753;height:22px;width:20px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;overflow:hidden;border:0px;margin:0 10px 0 10px;}
+#profile-jot-perms{float:right;background-color:#555753;width:22px;height:22px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;overflow:hidden;border:0px;margin:0 10px 0 10px;}
 #profile-jot-plugin-wrapper{width:1px;margin:10px 0 0 0;float:right;}
-#profile-jot-submit-wrapper{float:right;width:100%;list-style:none;margin:10px 0 0 0;padding:0;}
-#profile-jot-submit{height:auto;background-color:#555753;color:#eeeeec;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:2px outset #222420;margin:0;float:right;text-shadow:1px 1px #111;width:auto;}#profile-jot-submit:active{box-shadow:0 0 0 0;}
-#jot-perms-icon{height:22px;width:20px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;overflow:hidden;border:0;}
-#profile-jot-acl-wrapper{margin:0 10px;border:1px solid #555753;border-top:0;display:block !important;}
-#group_allow_wrapper,#group_deny_wrapper,#acl-permit-outer-wrapper{width:47%;float:left;}
-#contact_allow_wrapper,#contact_deny_wrapper,#acl-deny-outer-wrapper{width:47%;float:right;}
-#acl-permit-text{background-color:#555753;color:#ccccce;padding:5px;float:left;}
-#jot-public{background-color:#555753;color:#ff0000;padding:5px;float:left;}
-#acl-deny-text{background-color:#555753;color:#ccccce;padding:5px;float:left;}
-#acl-permit-text-end,#acl-deny-text-end{clear:both;}
-#jot-title-desc{color:#ccc;}
+#profile-jot-submit-wrapper{float:right;width:100%;margin:10px 0 0 0;padding:0;}
+#profile-jot-submit{height:auto;background-color:#555753;color:#eeeeee;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;border:2px outset #2e3436;margin:0;float:right;-moz-text-shadow:1px 1px #111111;-o-text-shadow:1px 1px #111111;-webkit-text-shadow:1px 1px #111111;-ms-text-shadow:1px 1px #111111;text-shadow:1px 1px #111111;width:auto;}#profile-jot-submit:active{-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;}
+#jot-perms-icon{width:20px;height:22px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;overflow:hidden;}
+#profile-jot-acl-wrapper{margin:0 10px;border:1px solid #555555;border-top:0;display:block !important;border:1px solid #555753 solid #eeeecc;-moz-box-shadow:5px 5px 5px 0px #111111;-o-box-shadow:5px 5px 5px 0px #111111;-webkit-box-shadow:5px 5px 5px 0px #111111;-ms-box-shadow:5px 5px 5px 0px #111111;box-shadow:5px 5px 5px 0px #111111;}
+#group_allow_wrapper,#group_deny_wrapper,#acl-permit-outer-wrapper,#contact_allow_wrapper,#contact_deny_wrapper,#acl-deny-outer-wrapper{width:47%;}
+#group_allow_wrapper,#group_deny_wrapper,#acl-permit-outer-wrapper{float:left;}
+#contact_allow_wrapper,#contact_deny_wrapper,#acl-deny-outer-wrapper{float:right;}
+#acl-permit-text{background-color:#555555;color:#eeeecc;padding:5px;float:left;}
+#jot-public{background-color:#555555;color:#ff0000;padding:5px;float:left;}
+#acl-deny-text{background-color:#555555;color:#eeeecc;padding:5px;float:left;}
+#jot-title-desc{color:#cdcdcd;}
 #profile-jot-desc{color:#ff2000;margin:5px 0;}
 #jot-title-wrapper{margin-bottom:5px;}
 #jot-title-display{font-weight:bold;}
 .jothidden{display:none;}
-#jot-preview-content{background-color:#3e3f3e;color:#eec;border:1px #eec solid;border-radius:5px;padding:3px 3px 6px 10px;}#jot-preview-content .wall-item-outside-wrapper{border:0;border-radius:0px;}
+#jot-preview-content{background-color:#2e302e;color:#eeeecc;border:1px solid #eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;padding:3px 3px 6px 10px;}#jot-preview-content .wall-item-outside-wrapper{border:0;-o-border-radius:0px 0px 0px 0px;-webkit-border-radius:0px 0px 0px 0px;-moz-border-radius:0px 0px 0px 0px;-ms-border-radius:0px 0px 0px 0px;border-radius:0px 0px 0px 0px;}
 #sectionmain{margin:20px;font-size:0.8em;min-width:475px;width:67%;float:left;display:inline;}
-.tabs{list-style:none;margin:10px 0;padding:0;}.tabs li{display:inline;font-size:smaller;font-weight:bold;}
-.tab{border:1px solid #729fcf;padding:4px;}.tab:hover,.tab.active:hover,.tab:active{background:#88a9d2;color:#2e2f2e;}
-.tab.active{background:#88a9d2;color:#2e2f2e;}.tab.active a{color:#2e2f2e;}
+.tabs{margin:0px;padding:0px;list-style:none;list-style-position:inside;margin:10px 0;}.tabs li{display:inline;font-size:smaller;font-weight:bold;}
+.tab{border:1px solid #88a9d2;padding:4px;}.tab:hover,.tab.active:hover,.tab:active{background:#88a9d2;color:#2e2f2e;}
+.tab.active{background:#eeeecc;color:#2e2f2e;}.tab.active a{color:#2e2f2e;}
 .tab a{border:0;text-decoration:none;}
-.wall-item-outside-wrapper{border:1px solid #aaa;border-radius:5px;box-shadow:5px 0 10px 0 #111;}.wall-item-outside-wrapper.comment{margin-top:5px;}
+.wall-item-outside-wrapper{border:1px solid #aaaaaa;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;}.wall-item-outside-wrapper.comment{margin-top:5px;}
 .wall-item-outside-wrapper-end{clear:both;}
 .wall-item-content-wrapper{position:relative;padding:10px;width:auto;}
 .wall-item-outside-wrapper .wall-item-comment-wrapper{}
-.shiny{background:#2e3436;border-radius:5px;}
-.wall-outside-wrapper .shiny{border-radius:5px;}
+.shiny{background:#2e3436;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
+.wall-outside-wrapper .shiny{-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
 .heart{color:red;}
 .wall-item-content{overflow-x:auto;margin:0px 15px 0px 5px;}
 [id^="tread-wrapper"],[class^="tread-wrapper"]{margin:15px 0 0 0;padding:0px;}
 .wall-item-photo-menu{display:none;}
-.wall-item-photo-menu-button{display:none;text-indent:-99999px;background:#555753 url(dark/menu-user-pin.jpg) no-repeat 75px center;position:absolute;overflow:hidden;height:20px;width:90px;top:85px;left:0;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;}
+.wall-item-photo-menu-button{display:none;text-indent:-99999px;background:#555753 url(dark/menu-user-pin.jpg) no-repeat 75px center;position:absolute;overflow:hidden;width:90px;height:20px;top:85px;left:0;-o-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-ms-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;}
 .wall-item-info{float:left;width:110px;}
-.wall-item-photo-wrapper{width:80px;height:80px;position:relative;padding:5px;background-color:#555753;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
+.wall-item-photo-wrapper{width:80px;height:80px;position:relative;padding:5px;background-color:#555753;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
 [class^="wall-item-tools"] *{}[class^="wall-item-tools"] *>*{}
-.wall-item-tools{float:right;opacity:0.4;-webkit-transition:all 1s ease-in-out;-moz-transition:all 1s ease-in-out;-o-transition:all 1s ease-in-out;-ms-transition:all 1s ease-in-out;transition:all 1s ease-in-out;}.wall-item-tools:hover{opacity:1;-webkit-transition:all 1s ease-in-out;-moz-transition:all 1s ease-in-out;-o-transition:all 1s ease-in-out;-ms-transition:all 1s ease-in-out;transition:all 1s ease-in-out;}
-.wall-item-subtools1{height:30px;list-style:none outside none;margin:20px 0 30px -20px;padding:0;width:30px;}
-.wall-item-subtools2{height:25px;list-style:none outside none;margin:-75px 0 0 5px;padding:0;width:25px;}
+.wall-item-tools{float:right;opacity:0.4;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}.wall-item-tools:hover{opacity:1;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}
+.wall-item-subtools1{width:30px;height:30px;list-style:none outside none;margin:20px 0 30px -20px;padding:0;}
+.wall-item-subtools2{width:25px;height:25px;list-style:none outside none;margin:-75px 0 0 5px;padding:0;}
 .wall-item-title{font-size:1.2em;font-weight:bold;margin-bottom:1em;}
 .wall-item-body{margin:20px 20px 10px 0px;text-align:left;overflow-x:auto;}
-.wall-item-lock-wrapper{float:right;height:22px;margin:0 -5px 0 0;width:22px;opacity:1;}
-.wall-item-dislike,.wall-item-like{clear:left;font-size:0.8em;color:#878883;margin:5px 0 5px 120px;}
-.wall-item-author,.wall-item-actions-author{clear:left;font-size:0.8em;color:#878883;margin:20px 20px 0 110px;}
+.wall-item-lock-wrapper{float:right;width:22px;height:22px;margin:0 -5px 0 0;opacity:1;}
+.wall-item-dislike,.wall-item-like{clear:left;font-size:0.8em;color:#888b85;margin:5px 0 5px 120px;}
+.wall-item-author,.wall-item-actions-author{clear:left;font-size:0.8em;color:#888b85;margin:20px 20px 0 110px;}
 .wall-item-ago{display:inline;padding-left:10px;}
 .wall-item-wrapper-end{clear:both;}
-.wall-item-location{margin-top:15px;width:100px;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;}.wall-item-location .icon{float:left;}
+.wall-item-location{margin-top:15px;width:100px;overflow:hidden;-moz-text-overflow:ellipsis;-ms-text-verflow:ellipsis;-o-text-overflow:ellipsis;-webkit-text-overflow:ellipsis;text-overflow:ellipsis;}.wall-item-location .icon{float:left;}
 .wall-item-location>a,.wall-item-location .smalltext{margin-left:25px;font-size:0.7em;display:block;}
 .wall-item-location>br{display:none;}
-.wallwall .wwto{left:5px;margin:0;position:absolute;top:75px;width:30px;z-index:10001;width:30px;height:30px;}.wallwall .wwto img{width:30px !important;height:30px !important;}
+.wallwall .wwto{left:5px;margin:0;position:absolute;top:75px;z-index:10001;width:30px;height:30px;}.wallwall .wwto img{width:30px !important;height:30px !important;}
 .wallwall .wall-item-photo-end{clear:both;}
 .wall-item-arrowphoto-wrapper{position:absolute;left:35px;top:80px;z-index:10002;}
-.wall-item-photo-menu{min-width:92px;border:2px solid #FFFFFF;border-top:0px;background:#555753;position:absolute;left:-2px;top:101px;display:none;z-index:10003;-webkit-border-radius:0px 5px 5px 5px;-moz-border-radius:0px 5px 5px 5px;border-radius:0px 5px 5px 5px;}.wall-item-photo-menu ul{margin:0px;padding:0px;list-style:none;}
-.wall-item-photo-menu li a{white-space:nowrap;display:block;padding:5px 2px;color:#eeeeec;}.wall-item-photo-menu li a:hover{color:#555753;background:#eeeeec;}
+.wall-item-photo-menu{min-width:92px;border:2px solid #ffffff;border-top:0px;background:#555753;position:absolute;left:-2px;top:101px;display:none;z-index:10003;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}.wall-item-photo-menu li a{white-space:nowrap;display:block;padding:5px 2px;color:#eeeeee;}.wall-item-photo-menu li a:hover{color:#555753;background:#eeeeee;}
 #item-delete-selected{overflow:auto;width:100%;}
 #connect-services-header,#connect-services,#extra-help-header,#extra-help,#postit-header,#postit{margin:5px 0 0 0;}
 .ccollapse-wrapper{font-size:0.9em;margin-left:80px;}
-.wall-item-outside-wrapper.comment{margin-left:80px;}.wall-item-outside-wrapper.comment .wall-item-photo{width:40px!important;height:40px!important;}
+.wall-item-outside-wrapper.comment{margin-left:80px;}.wall-item-outside-wrapper.comment .wall-item-photo{width:40px !important;height:40px !important;}
 .wall-item-outside-wrapper.comment .wall-item-photo-wrapper{width:40px;height:40px;}
 .wall-item-outside-wrapper.comment .wall-item-photo-menu-button{width:50px;top:45px;background-position:35px center;}
 .wall-item-outside-wrapper.comment .wall-item-info{width:60px;}
@@ -203,56 +202,51 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
 .wall-item-outside-wrapper.comment .wall-item-photo-menu{min-width:50px;top:60px;}
 .comment-wwedit-wrapper{}
 .comment-edit-wrapper{border-top:1px #aaa solid;}
-[class^="comment-edit-bb"]{list-style:none;display:none;margin:-40px 0 5px 60px;width:75%;}[class^="comment-edit-bb"]>li{display:inline-block;margin:0 10px 0 0;visibility:none;}
+[class^="comment-edit-bb"]{margin:0px;padding:0px;list-style:none;list-style-position:inside;display:none;margin:-40px 0 5px 60px;width:75%;}[class^="comment-edit-bb"]>li{display:inline-block;margin:0 10px 0 0;visibility:none;}
 .comment-wwedit-wrapper img,.comment-edit-wrapper img{width:20px;height:20px;}
 .comment-edit-photo-link,.comment-edit-photo{margin-left:10px;}
 .my-comment-photo{width:40px;height:40px;padding:5px;}
 [class^="comment-edit-text"]{margin:5px 0 10px 20px;width:84.5%;}
-.comment-edit-text-empty{height:20px;border:2px #c8bebe solid;border-radius:5px;color:#c8bebe;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}.comment-edit-text-empty:hover{color:#999999;}
-.comment-edit-text-full{height:10em;border-radius:5px;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}
+.comment-edit-text-empty{height:20px;border:2px #c8bebe solid;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;color:#c8bebe;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}.comment-edit-text-empty:hover{color:#999999;}
+.comment-edit-text-full{height:10em;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}
 .comment-edit-submit-wrapper{width:90%;margin:5px 5px 10px 50px;text-align:right;}
-.comment-edit-submit{height:22px;background-color:#555753;color:#eeeeec;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:0;}
-.wall-item-body code{display:block;padding:0 0 10px 5px;border-color:#ccc;border-style:solid;border-width:1px 1px 1px 10px;background:#eee;color:#2e2f2e;width:95%;}
-div[id$="text"]{font-weight:bold;border-bottom:1px solid #ccc;}
+.comment-edit-submit{height:22px;background-color:#555753;color:#eeeeee;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;border:0;}
+.wall-item-body code{background-color:#444444;border-bottom:1px dashed #cccccc;border-left:5px solid #cccccc;border-top:1px dashed #cccccc;display:block;overflow-x:auto;padding:5px 0 15px 10px;width:95%;}.wall-item-body code a{color:#adc4e0;}
+div[id$="text"]{font-weight:bold;border-bottom:1px solid #cccccc;}
 div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:left;}
 .profile-match-wrapper{float:left;margin:0 5px 40px 0;width:120px;height:120px;padding:3px;position:relative;}
 .icon.drophide.profile-match-ignore{margin:0 6px 0 -3px;}
-[id$="-end"],[class$="end"]{clear:both;margin:0 0 10px 0;}
+[id$="-end"],[class$="-end"]{clear:both;margin:0 0 10px 0;}
 .profile-match-end{margin:0 0 5px 0;}
 .profile-match-name{font-weight:bold;margin:auto auto auto 23px;}
 .profile-match-connect{font-style:italic;margin:auto auto auto 23px;}
 #advanced-profile-with{margin-left:200px;}
 .photos{height:auto;overflow:auto;}
 #photo-top-links{margin-bottom:30px;}
-.photo-album-image-wrapper,.photo-top-image-wrapper{float:left;-moz-box-shadow:3px 3px 10px 0 #000;-webkit-box-shadow:3px 3px 10px 0 #000;box-shadow:3px 3px 10px 0 #000;background-color:#222;color:#2e2f2e;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;padding-bottom:30px;position:relative;margin:0 10px 10px 0;}
+.photo-album-image-wrapper,.photo-top-image-wrapper{float:left;-moz-box-shadow:5px 5px 5px 0px #111111;-o-box-shadow:5px 5px 5px 0px #111111;-webkit-box-shadow:5px 5px 5px 0px #111111;-ms-box-shadow:5px 5px 5px 0px #111111;box-shadow:5px 5px 5px 0px #111111;background-color:#222222;color:#2e2f2e;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;padding-bottom:30px;position:relative;margin:0 10px 10px 0;}
 #photo-photo{max-width:100%;}#photo-photo img{max-width:100%;}
 .photo-top-image-wrapper a:hover,#photo-photo a:hover,.photo-album-image-wrapper a:hover{border-bottom:0;}
-.photo-top-photo,.photo-album-photo{-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}
-.photo-top-album-name{position:absolute;bottom:0;padding:0 5px;}
-.caption{position:absolute;bottom:0;margin:0 5px;}
-#photo-photo{position:relative;float:left;}
-#photo-prev-link,#photo-next-link{position:absolute;width:30%;height:100%;background-color:rgba(255, 255, 255, 0.5);opacity:0;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;background-position:center center;background-repeat:no-repeat;}
-#photo-prev-link{background-image:url(dark/prev.png);height:350px;left:1%;top:215px;width:50px;z-index:10;}
-#photo-next-link{background-image:url(dark/next.png);height:350px;right:45%;top:215px;width:50px;}
-#photo-prev-link a,#photo-next-link a{display:block;width:100%;height:100%;overflow:hidden;text-indent:-900000px;}
-#photo-prev-link:hover{opacity:1;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}
-#photo-next-link:hover{opacity:1;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}
-#photo-next-link .icon{display:none;}
-#photo-prev-link .icon{display:none;}
+.photo-top-photo,.photo-album-photo{-o-border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-ms-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}
+.photo-top-album-name,.caption{position:absolute;bottom:0;padding:0 5px;}
+#photo-photo{position:relative;margin:5px 45%;}
+#photo-prev-link,#photo-next-link{position:absolute;width:50px;height:150px;background:#ffffff center center no-repeat;opacity:0;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;z-index:10;top:175px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}#photo-prev-link:hover,#photo-next-link:hover{opacity:0.6;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}
+#photo-prev-link .icon,#photo-next-link .icon{display:none;}
+#photo-prev-link{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAnCAMAAADTjiM/AAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAALpQTFRF////AAAAQEBAZmZmVVVVSUlJTU1NXV1dVVVVTk5OW1tbWlpaWFhPWFhQU1pTVVVVVlZSVVlRVlZTVFdUVFdUVVdTVFZSVldUVldSVldSVldTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVZUVVdTVVdTVVhSVVdTVVdTVVhSVVdTVVdTVVhSVVdTVVdTVVdTVVdTVVdTVVdTVVhTVVdTVVdTVVdTVVdT3XYY/AAAAD10Uk5TAAEEBQYHCgsMDQ4RHSAlP0FFR1hee3+JnqSqq6ytrq+wsbKztLW2t7y9vr/AwcLDxMXGx8jU1dng7O/3+TmOwVsAAADASURBVCjPddPXEoIwEAXQINh7Q8WKYu+95v9/S0dxZxNy83hgMpvdu0Jox642r25GVxGfys+5540sZV3jyY/lWeVxyDLg7AR/lhXOI+KZZeRFgvGQeMnY9olXScYD4jXnPvHGzNsU4x7xjnGsa+YO8T7NnukRHzgXiY/KNKiUkzqkZ8ivnDoKD/xfBvdbbXM9sH70Xtgf2E/YfzgvOF+YB5gf5cPcAfmsgTy3QP5vYF8akf36XvXIRhZPlPyLWxBvNENWsZXDKukAAAAASUVORK5CYII=");left:22%;}
+#photo-next-link{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAnCAMAAADTjiM/AAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAKVQTFRF////gICAQEBAZmZmVVVVSUlJYGBgVVVVTU1NXV1dVVVVWVlZU1hTVlZSVlZTVlZTVVlRVVhSVFdUVlhTVVdTVFZTVVdTVldTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVhSVVdTVVdTVVdTVVdTVVdTVVdTVVdTVVdTVVdT8E3YQQAAADZ0Uk5TAAIEBQYHCAkKCwwUN0FER0hOW2uNjqWqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCxcjT3PP3B0dhfwAAANlJREFUKM910+cSgjAQRtEIomAXu4iIYge7ef9Hs+ZzN4b9eW4mk1kGIaqdU9wQf2Nf5XPSiu4d+Z6jp/n54/KghZ40h5ZymbFQGCCkLg3WKC+MEfYs2AHCrszCBGHLQ5gXpggbFooRwrrEwgxhxUOcE5w5wtJiYYHQZjt0EuUhX3r19vU7Y++ozgeMD7i/buYhYTcDj8gz3RQ8prwHB/aPyzvwhPLWzBtwSLi0Bk8pr8BR0cgzwiIycw0cUxZ9xXOH7VZ9vAVn4X840Vh4F9Pp1w/gZ92mpesDuLpM+1blc68AAAAASUVORK5CYII=");left:44%;}
+#photo-prev-link a,#photo-next-link a{display:block;width:100%;height:100%;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;overflow:hidden;text-indent:-900000px;}
 #photos-upload-spacer,#photos-upload-new-wrapper,#photos-upload-exist-wrapper{margin-bottom:1em;}
-#photos-upload-existing-album-text,#photos-upload-newalbum-div{background-color:#555753;color:#eeeeec;padding:1px;}
+#photos-upload-existing-album-text,#photos-upload-newalbum-div{background-color:#555753;color:#eeeeee;padding:1px;}
 #photos-upload-album-select,#photos-upload-newalbum{width:99%;}
 #photos-upload-perms-menu{text-align:right;}
 #photo-edit-caption,#photo-edit-newtag,#photo-edit-albumname{float:left;margin-bottom:25px;}
 #photo-edit-link-wrap{margin-bottom:15px;}
 #photo-edit-caption,#photo-edit-newtag{width:100%;}
 #photo-like-div{margin-bottom:25px;}
-#photo-edit-caption-end,#photo-edit-tags-end,#photo-edit-albumname-end{clear:both;}
 #photo-edit-delete-button{margin-left:200px;}
 #photo-edit-end{margin-bottom:35px;}
 #photo-caption{font-size:110%;font-weight:bold;margin-top:15px;margin-bottom:15px;}
 .prvmail-text{width:100%;}
-#prvmail-subject{width:100%;color:#2e2f2e;background:#eec;}
+#prvmail-subject{width:100%;color:#2e2f2e;background:#eeeecc;}
 #prvmail-submit-wrapper{margin-top:10px;}
 #prvmail-submit{float:right;margin-top:0;}
 #prvmail-submit-wrapper div{margin-right:5px;float:left;}
@@ -264,7 +258,7 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
 .mail-list-sender-name,.mail-list-date{font-style:italic;}
 .mail-list-subject{font-size:1.2em;}
 .mail-list-delete-wrapper{float:right;}
-.mail-list-outside-wrapper-end{clear:both;border-bottom:1px #eec dotted;}
+.mail-list-outside-wrapper-end{clear:both;border-bottom:1px #eeeecc dotted;}
 .mail-conv-sender{float:left;margin:0px 5px 5px 0px;}
 .mail-conv-sender-photo{width:32px;height:32px;}
 .mail-conv-sender-name{float:left;}
@@ -278,49 +272,50 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
 .contact-entry-photo{margin-left:20px;}
 .contact-entry-name{width:120px;font-weight:bold;}
 .contact-entry-photo{position:relative;}
-.contact-entry-edit-links .icon{border:1px solid #babdb6;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#fff;}
-#contact-entry-url,[id^="contact-entry-url"]{font-size:smaller;}
-#contact-entry-network,[id^="contact-entry-network"]{font-size:smaller;font-style:italic;}
+.contact-entry-edit-links .icon{border:1px solid #babdb6;-o-border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;background-color:white;}
+#contact-entry-url,[id^="contact-entry-url"],#contact-entry-network,[id^="contact-entry-network"]{font-size:smaller;}
+#contact-entry-network,[id^="contact-entry-network"]{font-style:italic;}
 #contact-edit-banner-name{font-size:1.5em;}
 #contact-edit-photo-wrapper{position:relative;float:left;padding:20px;}
 #contact-edit-direction-icon{position:absolute;top:60px;left:0;}
 #contact-edit-nav-wrapper{margin-left:0px;}
-#contact-edit-links{margin-top:23px;}#contact-edit-links ul{list-style-type:none;}
+#contact-edit-links{margin-top:23px;}
 #contact-drop-links{margin-left:5px;}
-#contact-edit-nav-wrapper .icon{border:1px solid #babdb6;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+#contact-edit-nav-wrapper .icon{border:1px solid #babdb6;-o-border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;}
 #contact-edit-poll-wrapper{margin-left:0px;}
 #contact-edit-last-update-text{margin-bottom:15px;}
 #contact-edit-last-updated{font-weight:bold;}
 #contact-edit-poll-text{display:inline;}
 #contact-edit-info_tbl,#contact-edit-info_parent,.mceLayout{width:100%;}
 #contact-edit-end{clear:both;margin-bottom:65px;}
-.contact-photo-menu-button{position:absolute;background-image:url("dark/photo-menu.jpg");background-position:top left;background-repeat:no-repeat;margin:0px;padding:0px;width:16px;height:16px;top:64px;left:0px;overflow:hidden;text-indent:40px;display:none;}
-.contact-photo-menu{width:auto;border:2px solid #444;background:#2e2f2e;color:#eec;position:absolute;left:0px;top:90px;display:none;z-index:10000;}.contact-photo-menu ul{margin:0px;padding:0px;list-style:none;}
-.contact-photo-menu li a{display:block;padding:2px;}.contact-photo-menu li a:hover{color:#fff;background:#3465A4;text-decoration:none;}
+.contact-photo-menu-button{position:absolute;background:url("dark/photo-menu.jpg") top left no-repeat transparent;margin:0px;padding:0px;width:16px;height:16px;top:64px;left:0px;overflow:hidden;text-indent:40px;display:none;}
+.contact-photo-menu{width:auto;border:2px solid #444444;background:#2e2f2e;color:#eeeecc;position:absolute;left:0px;top:90px;display:none;z-index:10000;}.contact-photo-menu li a{display:block;padding:2px;}.contact-photo-menu li a:hover{color:white;background:#3465A4;text-decoration:none;}
 #id_openid_url{background:url(dark/login-bg.gif) no-repeat;background-position:0 50%;padding-left:18px;}
-#settings-nickname-desc{background-color:#eec;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;padding:5px;color:#111;}
+#settings-nickname-desc{background-color:#eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;padding:5px;color:#111111;}
 #settings-default-perms{margin-bottom:20px;}
 #register-form div,#profile-edit-form div{clear:both;}
 .settings-block label{clear:left;}
 .settings-block input{margin:10px 5px;}
+#register-form label,#profile-edit-form label{width:300px;float:left;}
+#register-form span,#profile-edit-form span{color:#555753;display:block;margin-bottom:20px;}
 #profile-edit-marital-label span{margin:-4px;}
 .settings-submit-wrapper,.profile-edit-submit-wrapper{margin:0 0 30px -3px;}
 .profile-edit-side-div{display:none;}
 #profiles-menu-trigger{margin:0px 0px 0px 25px;}
 .profile-listing{float:left;margin:20px 20px 0px 0px;}
-.icon-profile-edit{background:url("dark/icons.png") -150px 0px no-repeat;border:0;cursor:pointer;display:block;float:right;width:20px;height:20px;margin:0 0 -18px;position:absolute;text-decoration:none;top:113px;right:260px;}
-#profile-edit-links ul{margin:20px 0;padding:0;list-style:none;}
+.icon-profile-edit{background:url("dark/icons.png") -150px 0px no-repeat;border:0;cursor:pointer;display:block;width:20px;height:20px;margin:0 0 -18px;text-decoration:none;top:113px;right:260px;}
+#profile-edit-links ul{margin:0px;padding:0px;list-style:none;list-style-position:inside;margin:20px 0;}
 .marital{margin-top:5px;}
 #register-sitename{display:inline;font-weight:bold;}
-#advanced-expire-popup{background:#2e2f2e;color:#eec;}
+#advanced-expire-popup{background:#2e2f2e;color:#eeeecc;}
 #id_ssl_policy{width:374px;}
 #theme-preview img{margin:10px 10px 10px 288px;}
 .group-delete-wrapper{margin:-31px 50px 0 0;float:right;}
 #group-edit-submit-wrapper{margin:0 0 10px 0;display:inline;}
 #group-edit-desc{margin:10px 0px;}
-#group-members,#prof-members{height:200px;overflow:auto;border:1px solid #555753;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}
-#group-all-contacts,#prof-all-contacts{height:200px;overflow:auto;border:1px solid #555753;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;}
-#group-members h3,#group-all-contacts h3,#prof-members h3,#prof-all-contacts h3{color:#eeeeec;background-color:#555753;margin:0;padding:5px;}
+#group-members,#prof-members{height:200px;overflow:auto;border:1px solid #555753;-o-border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-ms-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}
+#group-all-contacts,#prof-all-contacts{height:200px;overflow:auto;border:1px solid #555753;-o-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-ms-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;}
+#group-members h3,#group-all-contacts h3,#prof-members h3,#prof-all-contacts h3{color:#eeeeee;background-color:#555753;margin:0;padding:5px;}
 #group-separator,#prof-separator{display:none;}
 #cropimage-wrapper{float:left;}
 #crop-image-form{clear:both;}
@@ -340,17 +335,16 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
 .intro-end,.clear{clear:both;}
 .eventcal{float:left;font-size:20px;}
 .event{background:#2e2f2e;}
-.vevent{border:1px solid #ccc;}.vevent .event-description,.vevent .event-location,.vevent .event-start{margin-left:10px;margin-right:10px;}
+.vevent{border:1px solid #cccccc;}.vevent .event-description,.vevent .event-location,.vevent .event-start{margin-left:10px;margin-right:10px;}
 #new-event-link{margin-bottom:10px;}
 .edit-event-link,.plink-event-link{}
 .event-description:before{content:url('../../../images/calendar.png');margin-right:15px;}
 .event-start,.event-end{margin-left:10px;width:330px;font-size:smaller;}
 .event-start .dtstart,.event-end .dtend{float:right;}
 .event-list-date{margin-bottom:10px;}
-.prevcal,.nextcal{float:left;margin-left:32px;margin-right:32px;margin-top:64px;}
-.event-calendar-end{clear:both;}
+.prevcal,.nextcal{float:left;margin:64px 32px auto 32px;}
 .calendar{font-family:monospace;}
-.today{font-weight:bold;color:#FF0000;}
+.today{font-weight:bold;color:red;}
 #event-start-text,#event-finish-text{margin-top:10px;margin-bottom:5px;}
 #event-nofinish-checkbox,#event-nofinish-text,#event-adjust-checkbox,#event-adjust-text,#event-share-checkbox{float:left;}
 #event-datetime-break{margin-bottom:10px;}
@@ -364,62 +358,60 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
 .checkeditem{opacity:1;}
 #item-delete-selected{margin-top:30px;}
 .delete-checked{position:absolute;left:35px;margin-top:20px;}
-#item-delete-selected-end{clear:both;}
 #item-delete-selected-icon{float:left;margin-right:5px;}
 #item-delete-selected-desc{float:left;margin-right:5px;}#item-delete-selected-desc:hover{text-decoration:underline;}
-.fc-state-highlight{background:#eec;color:#2e2f2e;}
+.fc-state-highlight{background:#eeeecc;color:#2e2f2e;}
 .directory-item{float:left;margin:0 5px 4px 0;padding:3px;width:180px;height:250px;position:relative;}
 #group-sidebar{margin-bottom:10px;}
-.group-selected,.nets-selected,.fileas-selected{padding:3px;color:#2e2f2e;background:#88a9d2;font-weight:bold;}
-.group-selected:hover,.nets-selected:hover,.fileas-selected:hover{color:#2e2f2e;}
+.group-selected,.nets-selected,.fileas-selected{padding:3px;color:#2e2f2e;background:#eeeecc;font-weight:bold;}
+.group-selected:hover,.nets-selected:hover,.fileas-selected:hover{color:#88a9d2;background:#2e2f2e;}
 .groupsideedit{margin-right:10px;}
 #sidebar-group-ul{padding-left:0;}
-#sidebar-group-list{margin:0 0 5px 0;}#sidebar-group-list ul{list-style-type:none;list-style-position:inside;}
-#sidebar-group-list li{margin-top:10px;}
-#sidebar-group-list .icon{display:inline-block;height:12px;width:12px;}
-#sidebar-new-group{margin:auto;display:inline-block;color:#efefef;text-decoration:none;text-align:center;}
+#sidebar-group-list{margin:0 0 5px 0;}#sidebar-group-list li{margin-top:10px;}
+#sidebar-group-list .icon{display:inline-block;width:12px;height:12px;}
+.sidebar-group-element{padding:3px;}.sidebar-group-element:hover{color:#2e2f2e;background:#88a9d2;font-weight:bold;padding:3px;}
+#sidebar-new-group{margin:auto;display:inline-block;color:#eeeeee;text-decoration:none;text-align:center;}
 #peoplefind-sidebar form{margin-bottom:10px;}
 #sidebar-new-group:hover{}
 #sidebar-new-group:active{position:relative;top:1px;}
-#side-peoplefind-url{background-color:#2e2f2e;color:#eec;border:1px #999 solid;margin-right:3px;width:75%;}#side-peoplefind-url:hover,#side-peoplefind-url:focus{background-color:#efefef;color:#222;border:1px 333 solid;}
-.nets-ul{list-style-type:none;padding-left:0px;}.nets-ul li{margin:10px 0 0;}
+#side-peoplefind-url{background-color:#2e2f2e;color:#eeeecc;border:1px solid #999999;margin-right:3px;width:75%;}#side-peoplefind-url:hover,#side-peoplefind-url:focus{background-color:#eeeeee;color:#222222;border:1px solid #333333;}
+.nets-ul{margin:0px;padding:0px;list-style:none;list-style-position:inside;}.nets-ul li{margin:10px 0 0;}
 .nets-link,.nets-all{margin-left:0px;}
-#netsearch-box{margin-top:20px;width:150px;}#netsearch-box #search-submit{margin:5px 0px 0px 0px;}
-#pending-update{float:right;color:#fff;font-weight:bold;background-color:#ff0000;padding:0 .3em;}
+#netsearch-box{margin:20px 0px 30px;width:135px;}#netsearch-box #search-submit{margin:5px 5px 0px 0px;}
+#pending-update{float:right;color:white;font-weight:bold;background-color:red;padding:0 0.3em;}
 .admin.linklist{border:0;padding:0;}
-.admin.link{list-style-position:inside;}
-#adminpage{color:#eec;background:#2e2f2e;margin:5px;padding:10px;}#adminpage dl{clear:left;margin-bottom:2px;padding-bottom:2px;border-bottom:1px solid #000;}
+.admin.link{margin:0px;padding:0px;list-style:none;list-style-position:inside;}
+#adminpage{color:#eeeecc;background:#2e2f2e;margin:5px;padding:10px;}#adminpage dl{clear:left;margin-bottom:2px;padding-bottom:2px;border-bottom:1px solid #111111;}
 #adminpage dt{width:250px;float:left;font-weight:bold;}
 #adminpage dd{margin-left:250px;}
-#adminpage h3{border-bottom:1px solid #ccc;}
+#adminpage h3{border-bottom:1px solid #cccccc;}
 #adminpage .submit{clear:left;}
 #adminpage #pluginslist{margin:0;padding:0;}
-#adminpage .plugin{list-style:none;display:block;border:1px solid #888;padding:1em;margin-bottom:5px;clear:left;}
+#adminpage .plugin{display:block;border:1px solid #888888;padding:1em;margin-bottom:5px;clear:left;}
 #adminpage .toggleplugin{float:left;margin-right:1em;}
-#adminpage table{width:100%;border-bottom:1px solid #000;margin:5px 0;}#adminpage table th{text-align:left;}
+#adminpage table{width:100%;border-bottom:1px solid #111111;margin:5px 0;}#adminpage table th{text-align:left;}
 #adminpage td .icon{float:left;}
 #adminpage table#users img{width:16px;height:16px;}
-#adminpage table tr:hover{color:#2e2f2e;background-color:#eec;}
 #adminpage .selectall{text-align:right;}
-#adminpage #users a{color:#eec;text-decoration:underline;}
-#users .name{color:#eec;}
-.field{overflow:auto;}.field label{width:38%;display:inline-block;font-size:1.077em;margin:0 10px 1em 0;border:1px #2e2f2e solid;padding:5px;background:#eec;color:#111;}
-.field .onoff{float:right;margin:0 330px 0 auto;width:80px;}.field .onoff a{display:block;border:1px solid #666;padding:3px 6px 4px 10px;height:16px;text-decoration:none;}
-.field .onoff .on{background:url("../../../images/onoff.jpg") no-repeat 42px 1px #999999;color:#111;text-align:left;}
-.field .onoff .off{background:url("../../../images/onoff.jpg") no-repeat 2px 1px #cccccc;color:#333;text-align:right;}
+#adminpage #users a{color:#eeeecc;text-decoration:underline;}
+#users .name{color:#eeeecc;}
+.field{overflow:auto;}.field label{width:38%;display:inline-block;font-size:1.077em;margin:0 10px 1em 0;border:1px #2e2f2e solid;padding:5px;background:#eeeecc;color:#111;}
+.field .onoff{float:right;margin:0 330px 0 auto;width:80px;}.field .onoff a{display:block;border:1px solid #666666;padding:3px 6px 4px 10px;height:16px;text-decoration:none;}
+.field .onoff .on,.field .onoff .off{background-image:url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAUACIDASIAAhEBAxEB/8QAGgABAQACAwAAAAAAAAAAAAAAAAQDBQEGCf/EACgQAAIBAwIFAwUAAAAAAAAAAAECAAMEERIUBRMxUpEhIoEjM1Nxkv/EABcBAAMBAAAAAAAAAAAAAAAAAAABAgT/xAAaEQEAAgMBAAAAAAAAAAAAAAAAAQIRMVES/9oADAMBAAIRAxEAPwD1ERKFNFVaNNVUYACgACcNVt1dEKUwzZwNI9cSDczDVdnuKDjomrPyJOQ2SXNq/L0rTPMzp9vXHWZfo/jT+RNFQV6e2yPt6s/Ms3EWQofhnDqjszWFqzMcljRUknxEn3ES/dup8xxPZ0hXtKFViQzorEDpkiZtqvc3mIkzs40bVe5vMbVe5vMREbrN3xy4t7utSVaZVHZQSDnAP7iIm+K1xpkm09f/2Q==');background-repeat:no-repeat;}
+.field .onoff .on{background-position:42px 1px;background-color:#999999;color:#111111;text-align:left;}
+.field .onoff .off{background-position:2px 1px;background-color:#cccccc;color:#333333;text-align:right;}
 .hidden{display:none !important;}
 .field textarea{width:80%;height:100px;}
-.field_help{display:block;margin-left:297px;color:#aaa;}
+.field_help{display:block;margin-left:297px;color:#b1b1b1;}
 .field.radio .field_help{margin-left:297px;}
-label{width:38%;display:inline-block;font-size:1.077em;margin:0 10px 1em 0;border:1px #2e2f2e solid;padding:5px;background:#eec;color:#111;}
-input{width:250px;height:25px;border:1px #999 solid;}input[type="text"],input[type="password"],input[type="search"]{width:250px;height:25px;border:1px #999 solid;}
-input[type="checkbox"],input[type="radio"]{border:1px #999 solid;margin:0 0 0 0;height:15px;width:15px;}
-input[type="submit"],input[type="button"]{background-color:#eee;border:2px outset #aaa;border-radius:5px;box-shadow:1px 3px 4px 0 #111;color:#2e302e;cursor:pointer;font-weight:bold;width:auto;text-shadow:1px 1px #000;-webkit-border-radius:5px;-moz-border-radius:5px;}
-input[type="submit"]:active,input[type="button"]:active{box-shadow:0 0 0 0;}
-.popup{width:100%;height:100%;top:0px;left:0px;position:absolute;display:none;}.popup .background{background-color:#000;opacity:0.5;width:100%;height:100%;position:absolute;top:0px;left:0px;}
-.popup .panel{top:25%;left:25%;width:50%;height:50%;padding:1em;position:absolute;border:4px solid #000000;background-color:#FFFFFF;}
+label{width:38%;display:inline-block;font-size:1.077em;margin:0 10px 1em 0;border:1px solid #2e2f2e;padding:5px;background:#eeeecc;color:#111111;-moz-box-shadow:3px 3px 5px 0px #111111;-o-box-shadow:3px 3px 5px 0px #111111;-webkit-box-shadow:3px 3px 5px 0px #111111;-ms-box-shadow:3px 3px 5px 0px #111111;box-shadow:3px 3px 5px 0px #111111;}
+input{width:250px;height:25px;border:1px solid #999999;}input[type="checkbox"],input[type="radio"]{margin:0;width:15px;height:15px;}
+input[type="submit"],input[type="button"]{background-color:#eeeeee;border:2px outset #b1b1b1;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 3px 4px 0 #111111;-o-box-shadow:1px 3px 4px 0 #111111;-webkit-box-shadow:1px 3px 4px 0 #111111;-ms-box-shadow:1px 3px 4px 0 #111111;box-shadow:1px 3px 4px 0 #111111;color:#2e302e;cursor:pointer;font-weight:bold;width:auto;-moz-text-shadow:1px 1px #111111;-o-text-shadow:1px 1px #111111;-webkit-text-shadow:1px 1px #111111;-ms-text-shadow:1px 1px #111111;text-shadow:1px 1px #111111;}
+input[type="submit"]:active,input[type="button"]:active{-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;}
+.popup{width:100%;height:100%;top:0px;left:0px;position:absolute;display:none;}.popup .background{background-color:#111111;opacity:0.5;width:100%;height:100%;position:absolute;top:0px;left:0px;}
+.popup .panel{top:25%;left:25%;width:50%;height:50%;padding:1em;position:absolute;border:4px solid #000000;background-color:white;}
 #panel{z-index:100;}
-.grey{color:grey;}
+.grey,.gray{color:gray;}
 .orange{color:orange;}
 .red{color:red;}
 .popup .panel .panel_text{display:block;overflow:auto;height:80%;}
@@ -429,9 +421,9 @@ input[type="submit"]:active,input[type="button"]:active{box-shadow:0 0 0 0;}
 .oauthapp{height:auto;overflow:auto;border-bottom:2px solid #cccccc;padding-bottom:1em;margin-bottom:1em;}.oauthapp img{float:left;width:48px;height:48px;margin:10px;}.oauthapp img.noicon{background-image:url("../../../images/icons/48/plugin.png");background-position:center center;background-repeat:no-repeat;}
 .oauthapp a{float:left;}
 .iconspacer{display:block;width:16px;height:16px;}
-.icon{display:block;width:20px;height:20px;background:url(dark/icons.png) no-repeat;border:0;text-decoration:none;border-radius:5px;}.icon:hover{border:0;text-decoration:none;}
+.icon{display:block;width:20px;height:20px;background:url(dark/icons.png) no-repeat;border:0;text-decoration:none;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}.icon:hover{border:0;text-decoration:none;}
 .editicon{display:inline-block;width:21px;height:21px;background:url(dark/editicons.png) no-repeat;border:0;text-decoration:none;}
-.shadow{box-shadow:2px 2px 5px 2px #111;}.shadow:active,.shadow:focus,.shadow:hover{box-shadow:0 0 0 0;}
+.shadow{-moz-box-shadow:2px 2px 5px 2px #111111;-o-box-shadow:2px 2px 5px 2px #111111;-webkit-box-shadow:2px 2px 5px 2px #111111;-ms-box-shadow:2px 2px 5px 2px #111111;box-shadow:2px 2px 5px 2px #111111;}.shadow:active,.shadow:focus,.shadow:hover{-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;}
 .editicon:hover{border:0;}
 .boldbb{background-position:0px 0px;}.boldbb:hover{background-position:-22px 0px;}
 .italicbb{background-position:0px -22px;}.italicbb:hover{background-position:-22px -22px;}
@@ -446,6 +438,7 @@ input[type="submit"]:active,input[type="button"]:active{box-shadow:0 0 0 0;}
 .icon.s22.text{padding:10px 0px 0px 25px;width:200px;}
 .icon.text{text-indent:0px;}
 .icon.s16{min-width:16px;height:16px;}
+.wall-item-delete-wrapper.icon.delete,.wall-item-delete-wrapper.icon.drophide{margin:0;}
 .s16 .add{background:url("../../../images/icons/16/add.png") no-repeat;}
 .add{margin:0px 5px;}
 .article{background-position:-50px 0;}
@@ -484,7 +477,7 @@ input[type="submit"]:active,input[type="button"]:active{box-shadow:0 0 0 0;}
 .next{background-position:-110px -60px;}
 .icon.dim{opacity:0.3;}
 #pause{position:fixed;bottom:40px;right:30px;}
-.border{border:1px solid #babdb6;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}.border:hover{border:1px solid #babdb6;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
+.border{border:1px solid #babdb6;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}.border:hover{border:1px solid #babdb6;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
 .attachtype{display:block;width:20px;height:23px;background-image:url(../../../images/content-types.png);}
 .type-video{background-position:0px 0px;}
 .type-image{background-position:-20px 0;}
@@ -493,25 +486,25 @@ input[type="submit"]:active,input[type="button"]:active{box-shadow:0 0 0 0;}
 .type-unkn{background-position:-80px 0;}
 .cc-license{margin-top:100px;font-size:0.7em;}
 footer{display:block;clear:both;}
-#profile-jot-text{height:20px;color:#eec;border:1px solid #eec;border-radius:5px;width:99.5%;}
-#photo-edit-perms-select,#photos-upload-permissions-wrapper,#profile-jot-acl-wrapper{display:block !important;background:#2e2f2e;color:#eec;}
+#profile-jot-text{height:20px;color:#eeeecc;border:1px solid #eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;width:99.5%;}
+#photo-edit-perms-select,#photos-upload-permissions-wrapper,#profile-jot-acl-wrapper{display:block !important;background:#2e2f2e;color:#eeeecc;}
 #acl-wrapper{width:660px;margin:0 auto;}
-#acl-search{float:right;background:#ffffff url("../../../images/search_18.png") no-repeat right center;padding-right:20px;margin:6px;color:#111;}
-#acl-showall{float:left;display:block;width:auto;height:18px;background:#eeeecc url("../../../images/show_all_off.png") 8px 8px no-repeat;padding:7px 10px 7px 30px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;color:#999;margin:5px 0;}#acl-showall.selected{color:#000;background:#ff9900 url(../../../images/show_all_on.png) 8px 8px no-repeat;}
-#acl-list{height:210px;border:1px solid #ccc;clear:both;margin-top:30px;overflow:auto;}
-.acl-list-item{border:1px solid #eec;display:block;float:left;height:110px;margin:3px 0 5px 5px;width:120px;}.acl-list-item img{width:22px;height:22px;float:left;margin:5px 5px 20px;}
+#acl-search{float:right;background:#ffffff url("../../../images/search_18.png") no-repeat right center;padding-right:20px;margin:6px;color:#111111;}
+#acl-showall{float:left;display:block;width:auto;height:18px;background:#eeeecc url("../../../images/show_all_off.png") 8px 8px no-repeat;padding:7px 10px 7px 30px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;color:#999999;margin:5px 0;}#acl-showall.selected{color:black;background:#ff9900 url(../../../images/show_all_on.png) 8px 8px no-repeat;}
+#acl-list{height:210px;border:1px solid #cccccc;clear:both;margin-top:30px;overflow:auto;}
+.acl-list-item{border:1px solid #eeeecc;width:120px;height:110px;display:block;float:left;margin:3px 0 5px 5px;}.acl-list-item img{width:22px;height:22px;float:left;margin:5px 5px 20px;}
 .acl-list-item p{height:12px;font-size:10px;margin:0 0 22px;padding:2px 0 1px;}
-.acl-list-item a{background:#eeeecc 3px 3px no-repeat;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;clear:both;font-size:10px;display:block;width:55px;height:20px;color:#2e2f2e;margin:5px auto 0;padding:0 3px;text-align:center;vertical-align:middle;}
+.acl-list-item a{background:#eeeecc 3px 3px no-repeat;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;width:55px;height:20px;clear:both;font-size:10px;display:block;color:#2e2f2e;margin:5px auto 0;padding:0 3px;text-align:center;vertical-align:middle;}
 #acl-wrapper a:hover{text-decoration:none;color:#2e2f2e;border:0;}
-.acl-button-show{background-image:url('../../../images/show_off.png');margin:0 auto;}
-.acl-button-hide{background-image:url('../../../images/hide_off.png');margin:0 auto;}
-.acl-button-show.selected{color:#2e2f2e;background-color:#9ade00;background-image:url(../../../images/show_on.png);}
-.acl-button-hide.selected{color:#2e2f2e;background-color:#ff4141;background-image:url(../../../images/hide_on.png);}
+.acl-button-show{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAFCAYAAABmWJ3mAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABxSURBVAiZY/z//z8DDMyaNUuEgYEhk4GBwZ8JJrhv3z5DZmbmMwwMDOoMDAxpLKtWraqTl5d3fPv2rcn///9XpKWlpTIwMDCwfPr0SePWrVtmP378YPn//385zASmf//+Rf/8+XMpIyPj2bS0tHcwCQBWkiq6M5HGDgAAAABJRU5ErkJggg==');margin:0 auto;}
+.acl-button-hide{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACWSURBVAiZBcEhDsIwFAbg/72+VXQ7wPSCIlj8JMlmcKQGgdgRCCfpEz0HjgSDw3IA1AQC1QqSpXwfqeoZwHOaphsAqGpfVVVHIYQNM1+J6MLMOwA9gAOVUhBC6Ky1r7quv03TrMZxzAwAIjKIyCel9JvneQ8ApKprY8zdObfNOXMp5bEsyyDGmJaITt77NwDEGI/W2vYP0nYuQ/Tw9H4AAAAASUVORK5CYII=');margin:0 auto;}
+.acl-button-show.selected{background:#9ade00 url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAFCAYAAABmWJ3mAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABXSURBVAiZTcyhDYNQGADh7xEGwGDxhD2qUWxAwIBgE9BdoxO03YaEEX7USzh5l1yKCJl0pBoT+uIhK3zRYk52Az5444w1FijxwoYOTT4UGPHHL9a4crgBhcYSpxKVgzIAAAAASUVORK5CYII=');color:#2e2f2e;}
+.acl-button-hide.selected{background:#ff4141 url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACSSURBVAiZBcGhDoJQFAbg/z/3cGliJDOTszmLichGstkMPoTzvfA2N4vN6gMYCGhwMifMTY7fxyCy4zBcCrMjAFRk7p3LWAEzRwYT2StQgMwBrGlmOJCZV72Ok+QpcTyZ1/VHAEBEyiiKHq+2/d6bZgUADMCUIqeR94t338tAns2sVKea/sy2y667AUAgN+pc+gcI6S733PoZRAAAAABJRU5ErkJggg==');color:#2e2f2e;}
 .acl-list-item.groupshow{border-color:#9ade00;}
 .acl-list-item.grouphide{border-color:#ff4141;}
-.acpopup{max-height:175px;max-width:42%;background-color:#555753;color:#fff;overflow:auto;z-index:100000;border:1px solid #cccccc;}
+.acpopup{max-height:175px;max-width:42%;background-color:#555753;color:white;overflow:auto;z-index:100000;border:1px solid #cccccc;}
 .acpopupitem{background-color:#555753;padding:4px;clear:left;}.acpopupitem img{float:left;margin-right:4px;}
-.acpopupitem.selected{color:#2e302e;background-color:#eeeeec;}
+.acpopupitem.selected{color:#2e302e;background-color:#eeeeee;}
 .qcomment-wrapper{padding:0px;margin:5px 5px 5px 81%;}
 .qcomment{opacity:0.5;}.qcomment:hover{opacity:1.0;}
 #network-star-link{margin-top:10px;}
@@ -520,4 +513,4 @@ footer{display:block;clear:both;}
 #sidebar-page-list ul{padding:0;margin:5px 0;}
 #sidebar-page-list li{list-style:none;}
 #jappix_mini{margin-left:130px;position:fixed;bottom:0;right:175px !important;z-index:999;}
-@media handheld{body{font-size:15pt;}}
+@media handheld{body{font-size:15pt;}}@media only screen and (min-device-width:320px) and (max-device-width:480px){body{font-size:10px;}}@media only screen and (min-width:321px){body{font-size:10px;}}@media only screen and (max-width:320px){body{font-size:10px;}}@media only screen and (min-device-width:768px) and (max-device-width:1024px){body{font-size:16px;}}@media only screen and (min-device-width:768px) and (max-device-width:1024px) and (orientation:landscape){body{font-size:16px;}}@media only screen and (min-device-width:768px) and (max-device-width:1024px) and (orientation:portrait){body{font-size:16px;}}@media only screen and (min-width:1024px){body{font-size:16px;}}@media only screen and (min-width:1520px){body{font-size:18px;}}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){body{font-size:16px;}}
index 96cdb82fa8be236651dc00c442d05a01b9108605..40c8835e67c761bd4f875a399f2af7b76bd97c6b 100644 (file)
 /* from html5boilerplate */
 /* these are to tell browsers they should be displayed a certain way */
 
-article, aside, details, figcaption, figure, footer, header, hgroup, nav, section {
-  display: block; }
-
-audio, canvas, video, time {
-  display: inline-block;
-  *display: inline;
-  *zoom: 1; }
-
+@import "_base";
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+nav,
+section {
+       display: block;
+}
+audio,
+canvas,
+video,
+time {
+       display: inline-block;
+       *display: inline;
+       *zoom: 1;
+}
 audio:not([controls]), [hidden] {
-  display: none; }
-
-/* 
- *  Base
- */
+       display: none;
+}
 /*
  * 1. Correct text resizing oddly in IE6/7 when body font-size is set using em units
  * 2. Force vertical scrollbar in non-IE
- * 3. Prevent iOS text size adjust on device orientation change, without disabling user zoom: h5bp.com/g
+ * 3. Prevent iOS text size adjust on device orientation change,
+ *             without disabling user zoom: h5bp.com/g
  */
-
 html {
-  font-size: 100%;
-  overflow-y: scroll;
-  -webkit-text-size-adjust: 100%;
-  -ms-text-size-adjust: 100%; }
-
+       font-size: 100%;
+       overflow-y: scroll;
+       -webkit-text-size-adjust: 100%;
+       -ms-text-size-adjust: 100%;
+}
 body {
-  margin: 0;
-  font-size: 16px;
-  line-height: 1.1em;
-  font-family: sans-serif;
-  color: #eec;
-  background-color: #2e2f2e; }
-
+       margin: 0;
+       padding: 0;
+       .default_font;
+       color: @main_colour;
+       background-color: @bg_colour;
+}
 button, input, select, textarea {
-  font-family: sans-serif;
-  color: #eec;
-  background-color: #2e2f2e; }
-
+       color: @main_colour;
+       background-color: @bg_colour;
+}
 select {
-  border: 1px #555 dotted;
-  padding: 3px;
-  margin: 3px;
-  color: #eec;
-  background: #2e2f2e; }
-
+       border: 1px #555 dotted;
+       padding: 1px;
+       margin: 3px;
+       color: @main_colour;
+       background: @bg_colour;
+}
 option {
-  padding: 3px;
-  color: #eec;
-  background: #2e2f2e;
-  &[selected="selected"] {
-    color: #2e2f2e;
-    background: #eec; } }
-
+       padding: 1px;
+       color: @main_colour;
+       background: @bg_colour;
+       &[selected="selected"] {
+               color: @bg_colour;
+               background: @main_colour;
+       }
+}
 ul, ol {
-  padding: 0; }
-
+       .list_reset;
+}
+tr:nth-child(even) {
+       background-color: lighten(@bg_colour, 10%);
+}
 /* remember to define focus styles! */
-
 :focus {
-  outline: 0; }
-
+       outline: 0;
+}
 [disabled="disabled"] {
-  background: #4e4f4f;
-  color: #ddb; }
-
+       background: @med_bg_colour;
+       color: @disabled_colour;
+}
 /* remember to highlight inserts somehow! */
-
+ins, mark {
+       background-color: @bg_alt_colour;
+       color: @lt_main_colour;
+}
 ins {
-  background-color: #2e302e;
-  color: #ff9;
-  text-decoration: none; }
-
+       text-decoration: none;
+}
 mark {
-  background-color: #2e302e;
-  color: #ff9;
-  font-style: italic;
-  font-weight: bold; }
-
+       font-style: italic;
+       font-weight: bold;
+}
 /* Redeclare monospace font family: h5bp.com/j */
-
 pre, code, kbd, samp, .wall-item-body code {
-  font-family: monospace, monospace;
-  _font-family: monospace;
-  font-size: 1em; }
-
+       font-family: monospace, monospace;
+       _font-family: monospace;
+       font-size: 1em;
+}
 /* Improve readability of pre-formatted text in all browsers */
-
 pre, .wall-item-body code {
-  white-space: pre;
-  white-space: pre-wrap;
-  word-wrap: break-word; }
-
+       .wrap;
+}
 q {
-  quotes: none;
-  &:before, &:after {
-    content: "";
-    content: none; } }
-
+       quotes: none;
+       &:before, &:after {
+               content: "";
+               content: none;
+       }
+}
 small {
-  font-size: 85%; }
-
+       font-size: 85%;
+}
 /* Position subscript and superscript content without affecting line-height: h5bp.com/k */
-
 sub, sup {
-  font-size: 75%;
-  line-height: 0;
-  position: relative;
-  vertical-align: baseline; }
-
+       font-size: 75%;
+       line-height: 0;
+       position: relative;
+       vertical-align: baseline;
+}
 sub {
-  bottom: -0.25em; }
-
+       bottom: -0.25em;
+}
 sup {
-  top: -0.5em; }
-
+       top: -0.5em;
+}
 img {
-  border: 0 none; }
-
+       border: 0 none;
+}
 a {
-  color: #88a9d2;
-  text-decoration: none;
-  margin-bottom: 1px;
-  &:hover img {
-    text-decoration: none; } }
-
+       color: @link_colour;
+       text-decoration: none;
+       margin-bottom: 1px;
+       &:hover {
+               color: @hover_colour;
+               border-bottom: 1px dotted @hover_colour;
+       }
+       &:hover img {
+               text-decoration: none;
+       }
+}
 blockquote {
-  background: #444;
-  color: #eec;
-  text-indent: 5px;
-  padding: 5px;
-  border: 1px #aaa solid;
-  border-radius: 5px; }
-
-a:hover {
-  color: #729fcf;
-  border-bottom: 1px dotted #729fcf; }
-
+       background: #444;
+       color: @main_colour;
+       text-indent: 5px;
+       padding: 5px;
+       border: 1px #aaa solid;
+       .rounded_corners;
+}
 .required {
-  display: inline;
-  color: #ff0;
-  font-size: 16px;
-  font-weight: bold;
-  margin: 3px; }
-
+       display: inline;
+       color: #ff0;
+       font-size: 16px;
+       font-weight: bold;
+       margin: 3px;
+}
 .fakelink, .lockview {
-  color: #729fcf;
-  cursor: pointer; }
-
+       color: @link_colour;
+       cursor: pointer;
+}
 .fakelink:hover {
-  color: #729fcf; }
-
+       color: @hover_colour;
+}
 .smalltext {
-  font-size: 0.7em; }
-
+       font-size: 0.7em;
+}
 #panel {
-  position: absolute;
-  font-size: 0.8em;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-  border: 1px solid #fff;
-  background-color: #2e302e;
-  color: #eeeeec;
-  padding: 1em; }
-
+       position: absolute;
+       .rounded_corners;
+       .borders(1px, solid, @main_alt_colour);
+       background-color: @bg_alt_colour;
+       color: @main_colour;
+       padding: 1em;
+}
 .pager {
-  margin-top: 60px;
-  display: block;
-  clear: both;
-  text-align: center;
-  span {
-    padding: 4px;
-    margin: 4px; } }
-
+       margin-top: 60px;
+       display: block;
+       clear: both;
+       text-align: center;
+       span {
+               padding: 4px;
+               margin: 4px;
+       }
+}
 .pager_current {
-  background-color: #729fcf;
-  color: #fff; }
+       background-color: @link_colour;
+       color: @main_alt_colour;
+}
+
 
 /**
  * global
  */
 /* .tool .action */
-
 .action {
-  margin: 5px 0; }
-
+       margin: 5px 0;
+}
 .tool {
-  margin: 5px 0;
-  list-style: none; }
-
+       margin: 5px 0;
+       list-style: none;
+}
 #articlemain {
-  width: 100%;
-  height: 100%;
-  margin: 0 auto; }
+       .box(100%, 100%);
+       margin: 0 auto;
+}
+[class$="-desc"], [id$="-desc"] {
+       color: @bg_colour;
+       background: @main_colour;
+       .rounded_corners;
+       .box_shadow(3px, 3px, 5px);
+       padding: 3px;
+       margin: 5px 0;
+       font-weight: bold;
+}
+
 
 /**
  * login
  */
-
 #asidemain .field {
-  overflow: hidden;
-  width: 200px; }
-
+       overflow: hidden;
+       width: 200px;
+}
 #login-extra-links {
-  overflow: auto !important;
-  padding-top: 60px !important;
-  width: 100% !important;
-  a {
-    margin-right: 20px; } }
-
+       overflow: auto !important;
+       padding-top: 60px !important;
+       width: 100% !important;
+       a {
+               margin-right: 20px;
+       }
+}
 #login_standard {
-  display: block !important;
-  float: none !important;
-  height: 100% !important;
-  position: relative !important;
-  width: 100% !important;
-  .field label {
-    width: 200px !important; }
-  input {
-    margin: 0 0 8px !important;
-    width: 210px !important;
-    &[type="text"] {
-      margin: 0 0 8px !important;
-      width: 210px !important; } } }
-
+       display: block !important;
+       float: none !important;
+       height: 100% !important;
+       position: relative !important;
+       width: 100% !important;
+       .field label {
+               width: 200px !important;
+       }
+       input {
+               margin: 0 0 8px !important;
+               width: 210px !important;
+               &[type="text"] {
+                       margin: 0 0 8px !important;
+                       width: 210px !important; }
+       }
+}
 #login-submit-wrapper {
-  margin: 0 !important; }
-
+       margin: 0 !important;
+}
 #login-submit-button {
-  margin-left: 0px !important; }
-
+       margin-left: 0px !important;
+}
 #asidemain #login_openid {
-  position: relative !important;
-  float: none !important;
-  margin-left: 0px !important;
-  height: auto !important;
-  width: 200px !important; }
-
+       position: relative !important;
+       float: none !important;
+       margin-left: 0px !important;
+       height: auto !important;
+       width: 200px !important;
+}
 #login_openid {
-  #id_openid_url {
-    width: 180px !important;
-    overflow: hidden !important; }
-  label {
-    width: 180px !important; } }
+       #id_openid_url {
+               width: 180px !important;
+               overflow: hidden !important; }
+       label {
+               width: 180px !important;
+       } }
+
 
 /**
  * nav
  */
-
 nav {
-  height: 60px;
-  background-color: #1d1f1d;
-  color: #eeeeec;
-  position: relative;
-  padding: 20px 20px 10px 95px;
-  a {
-    text-decoration: none;
-    color: #eeeeec;
-    border: 0px;
-    &:hover {
-      text-decoration: none;
-      color: #eeeeec;
-      border: 0px; } }
-  #banner {
-    display: block;
-    position: absolute;
-    left: 51px;
-    top: 25px;
-    #logo-text a {
-      font-size: 40px;
-      font-weight: bold;
-      margin-left: 3px; } } }
-
+       height: 60px;
+       background-color: @dk_bg_colour;
+       color: @main_alt_colour;
+       position: relative;
+       padding: 20px 20px 10px 95px;
+       a {
+               text-decoration: none;
+               color: @main_alt_colour;
+               border: 0px;
+               &:hover {
+                       text-decoration: none;
+                       color: @main_alt_colour;
+                       border: 0px; } }
+       #banner {
+               display: block;
+               position: absolute;
+               left: 51px;
+               top: 25px;
+               #logo-text a {
+                       font-size: 40px;
+                       font-weight: bold;
+                       margin-left: 3px; } }
+}
 ul#user-menu-popup {
-  display: none;
-  position: absolute;
-  background-color: #555753;
-  width: 100%;
-  padding: 10px 0px;
-  margin: 0px;
-  top: 20px;
-  left: 0;
-  -webkit-border-radius: 0 0 5px 5px;
-  -moz-border-radius: 0 0 5px 5px;
-  border-radius: 0 0 5px 5px;
-  box-shadow: 5px 10px 10px 0 #111;
-  z-index: 10000;
-  li {
-    display: block;
-    a {
-      display: block;
-      padding: 5px;
-      &:hover {
-        color: #2e302e;
-        background-color: #eeeeec; }
-      &.nav-sep {
-        border-top: 1px solid #eeeeec; } } } }
-
+       display: none;
+       position: absolute;
+       background-color: @menu_bg_colour;
+       width: 100%;
+       padding: 10px 0px;
+       margin: 0px;
+       top: 20px;
+       left: 0;
+       .rounded_corners(0 0 5px 5px);
+       .box_shadow(5px, 5px, 10px, 0px);
+       z-index: 10000;
+       li {
+               display: block;
+               a {
+                       display: block;
+                       padding: 5px;
+                       &:hover {
+                               color: @main_colour;
+                               background-color: @bg_alt_colour;
+                       }
+                       &.nav-sep {
+                               border-top: 1px solid @bg_alt_colour; } } }
+}
 nav .nav-link {
-  display: inline-block;
-  width: 22px;
-  height: 22px;
-  overflow: hidden;
-  margin: 0px 5px 5px;
-  text-indent: 50px;
-  background: transparent url(dark/icons.png) 0 0 no-repeat; }
-
+       display: inline-block;
+       .box(22px, 22px);
+       overflow: hidden;
+       margin: 0px 5px 5px;
+       text-indent: 50px;
+       background: transparent url(dark/icons.png) 0 0 no-repeat;
+}
 #nav-apps-link {
-  background-position: 0 -66px;
-  &:hover {
-    background-position: -22px -66px; } }
-
+       background-position: 0 -66px;
+       &:hover {
+               background-position: -22px -66px; }
+}
 #nav-community-link, #nav-contacts-link {
-  background-position: 0 -22px;
-  &:hover {
-    background-position: -22px -22px; } }
-
+       background-position: 0 -22px;
+       &:hover {
+               background-position: -22px -22px; }
+}
 #nav-directory-link {
-  background-position: -44px -154px;
-  &:hover {
-    background-position: -66px -154px; } }
-
+       background-position: -44px -154px;
+       &:hover {
+               background-position: -66px -154px; }
+}
 #nav-help-link {
-  background-position: 0 -110px;
-  &:hover {
-    background-position: -22px -110px; } }
-
+       background-position: 0 -110px;
+       &:hover {
+               background-position: -22px -110px; }
+}
 #nav-home-link {
-  background-position: -44px -132px;
-  &:hover {
-    background-position: -66px -132px; } }
-
+       background-position: -44px -132px;
+       &:hover {
+               background-position: -66px -132px; }
+}
 #nav-intro-link {
-  background-position: 0px -190px;
-  &:hover {
-    background-position: -44px -190px; } }
-
+       background-position: 0px -190px;
+       &:hover {
+               background-position: -44px -190px; }
+}
 #nav-login-link, #nav-logout-link {
-  background-position: 0 -88px;
-  &:hover {
-    background-position: -22px -88px; } }
-
+       background-position: 0 -88px;
+       &:hover {
+               background-position: -22px -88px; }
+}
 #nav-messages-link {
-  background-position: -44px -88px;
-  &:hover {
-    background-position: -66px -88px; } }
-
+       background-position: -44px -88px;
+       &:hover {
+               background-position: -66px -88px; }
+}
 #nav-notify-link, #nav-notifications-linkmenu {
-  background-position: -44px -110px; }
-
+       background-position: -44px -110px;
+}
 #nav-notify-link:hover {
-  background-position: -66px -110px; }
-
+       background-position: -66px -110px;
+}
 #nav-network-link {
-  background-position: 0px -177px;
-  &:hover {
-    background-position: -22px -177px; } }
-
+       background-position: 0px -177px;
+       &:hover {
+               background-position: -22px -177px; }
+}
 #nav-search-link {
-  background-position: 0 -44px;
-  &:hover {
-    background-position: -22px -44px; } }
-
-#profile-link, #profile-title, #wall-image-upload, #wall-file-upload, #profile-attach-wrapper, #profile-audio, #profile-link, #profile-location, #profile-nolocation, #profile-title, #jot-title, #profile-upload-wrapper, #profile-video, #profile-jot-submit, #wall-image-upload-div, #wall-file-upload-div, .icon, .hover, .focus, .pointer {
-  cursor: pointer; }
+       background-position: 0 -44px;
+       &:hover {
+               background-position: -22px -44px;
+       }
+}
+#jot-title,
+#profile-link,
+#profile-title,
+#profile-attach-wrapper,
+#profile-audio,
+#profile-link,
+#profile-location,
+#profile-nolocation,
+#profile-title,
+#profile-upload-wrapper,
+#profile-video,
+#profile-jot-submit,
+#wall-image-upload,
+#wall-file-upload,
+#wall-image-upload-div,
+#wall-file-upload-div,
+.icon,
+.hover,
+.focus,
+.pointer {
+       cursor: pointer;
+}
 
 /* popup notifications */
 
 div.jGrowl div {
-  &.notice {
-    background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
-    color: #ffffff;
-    padding-left: 58px; }
-  &.info {
-    background: #364e59 url("../../../images/icons/48/info.png") no-repeat 5px center;
-    color: #ffffff;
-    padding-left: 58px; } }
+       &.notice {
+               background: @notice url("../../../images/icons/48/notice.png") no-repeat 5px center;
+               color: white;
+               padding-left: 58px;
+               margin-top: 50px;
+       }
+       &.info {
+               background: @info url("../../../images/icons/48/info.png") no-repeat 5px center;
+               color: white;
+               padding-left: 58px;
+               margin-top: 50px;
+       }
+}
 
 #nav-notifications-menu {
-  margin: 30px 0 0 -20px;
-  width: 275px;
-  max-height: 300px;
-  overflow-y: auto;
-  font-size: 9pt;
-  .contactname {
-    font-weight: bold;
-    font-size: 0.9em; }
-  img {
-    float: left;
-    margin-right: 5px; }
-  .notif-when {
-    font-size: 0.8em;
-    display: block; }
-  li {
-    word-wrap: normal;
-    border-bottom: 1px solid #000;
-    &:hover {
-      color: black; } }
-  a:hover {
-    color: black;
-    text-decoration: underline; } }
+       margin: 30px 0 0 -20px;
+       width: 275px;
+       max-height: 300px;
+       overflow-y: auto;
+       font-size: 9pt;
+       .contactname {
+           font-weight: bold;
+               font-size: 0.9em; }
+       img {
+               float: left;
+               margin-right: 5px; }
+       .notif-when {
+               font-size: 0.8em;
+               display: block; }
+       li {
+               word-wrap: normal;
+               border-bottom: 1px solid black;
+               &:hover {
+                       color: black; }
+       }
+       a:hover {
+               color: black;
+               text-decoration: underline; }
+}
 
 nav #nav-notifications-linkmenu {
-  &.on .icon.s22.notify, &.selected .icon.s22.notify {
-    background-image: url("../../../images/icons/22/notify_on.png"); } }
-
+       &.on .icon.s22.notify,
+       &.selected .icon.s22.notify {
+               // background-image: url("../../../images/icons/22/notify_on.png");
+               background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAQAAABuvaSwAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAUJcAAFCXAZtv64UAAAHuSURBVCjPbZPbTlNBFIYHLixXRIhEQGNRMUopJAJyAyZ4Z2l8B+XwEBqKtjwOp8oDIAJKIJFUjdFIQCUYrRytdyb0459ht8wG9rrYs9b618y/TsYEH4ZK4qRYYIdDybZOI7TKakIfVhrJ8J2i5IBNyV93/kaaBuv3oV3MgwCTPKGHPkkPA0xRUMBrOgN4AP0o6BseEpF2m3es0qJTFQneyvMhgDsC9tZprnEcGuOPeMcDLUpW3jlLxlDBmJTFY6gLvsVv8tyh9G7U3Z6mwtCuJAoiECSh/w1+8otmTjLqF2KDNsNzRY1bruV0o6rFFtc9S5USh5RRWvAYv4xX9dYPS8ur1oBQC4Y99m2uHriRNda5ErLdU1l3jCI2xdJ3XOYLX6kP2W6K2OF54Et84jN154F31d6ukKOG92pSbcjWLRrbRhVGLTZeOtXqX46LoQSHhJo3jOo3ESrdBQbljIRKNyXUiKHNNSXhTdbZiUzyT/WJ23Zn3BBFy+2u4ZHc1eV2N7EkxAvbbqMRmZOSlbE0g/uajRgl6Iy8r1wpnaFTQ4ji+8XOEsuxYmdDWpJleXJ0+BPdoduL4p5Vavd5IOllmJfiWmSWu6d3pV4jteFWqaAGbLkdKSqtUXXUnN3DSvF8phfy/JfkxfOp9sVb2COz+hY/T0qkwwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMS0wOS0xNlQwOTozOTowMCswMjowMC9Oi90AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTEtMDktMTZUMDk6Mzk6MDArMDI6MDBeEzNhAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==");
+       }
+}
 .show {
-  display: block; }
-
+       display: block;
+}
 #notifications {
-  height: 20px;
-  width: 170px;
-  position: absolute;
-  top: -19px;
-  left: 4px; }
-
+       .box(170px, 20px);
+       position: absolute;
+       top: -19px;
+       left: 4px;
+}
 #nav-floater {
-  position: fixed;
-  top: 20px;
-  right: 1%;
-  padding: 5px;
-  background: #1d1f1d;
-  color: transparent;
-  border-radius: 5px;
-  z-index: 100;
-  width: 300px;
-  height: 60px; }
+       position: fixed;
+       top: 20px;
+       right: 1%;
+       padding: 5px;
+       background: @dk_bg_colour;
+       color: transparent;
+       .rounded_corners;
+       z-index: 100;
+       .box(300px, 60px);
+}
 
 #nav-buttons {
-  clear: both;
-  list-style: none;
-  padding: 0px;
-  margin: 0px;
-  height: 25px;
-  > li {
-    padding: 0;
-    display: inline-block;
-    margin: 0px -4px 0px 0px; } }
-
+       clear: both;
+       list-style: none;
+       padding: 0px;
+       margin: 0px;
+       height: 25px;
+       > li {
+               padding: 0;
+               display: inline-block;
+               margin: 0px -4px 0px 0px;
+       }
+}
 .floaterflip {
-  display: block;
-  position: fixed;
-  z-index: 110;
-  top: 56px;
-  right: 19px;
-  width: 22px;
-  height: 22px;
-  overflow: hidden;
-  margin: 0px;
-  background: transparent url(dark/icons.png) -190px -60px no-repeat; }
-
+       display: block;
+       position: fixed;
+       z-index: 110;
+       top: 56px;
+       right: 19px;
+       .box(22px, 22px);
+       overflow: hidden;
+       margin: 0px;
+       background: transparent url(dark/icons.png) -190px -60px no-repeat;
+}
 .search-box {
-  display: inline-block;
-  margin: 5px;
-  position: fixed;
-  right: 0px;
-  bottom: 0px;
-  z-index: 100;
-  background: #1d1f1d;
-  border-radius: 5px; }
-
+       display: inline-block;
+       margin: 5px;
+       position: fixed;
+       right: 0px;
+       bottom: 0px;
+       z-index: 100;
+       background: @dk_bg_colour;
+       .rounded_corners;
+}
 #search-text {
-  border: 1px #eec solid;
-  background: #2e2f2e;
-  color: #eec; }
-
-.search-box #search-text {
-  margin: 8px;
-  width: 10em;
-  height: 14px;
-  color: #eec; }
-
+       .borders;
+       background: @bg_colour;
+       color: @main_colour;
+       font-size: 8pt;
+       margin: 8px;
+       .box(10em, 14px);
+}
 #scrollup {
-  position: fixed;
-  right: 5px;
-  bottom: 40px;
-  z-index: 100;
-  a:hover {
-    text-decoration: none;
-    border: 0; } }
-
+       position: fixed;
+       right: 5px;
+       bottom: 40px;
+       z-index: 100;
+       a:hover {
+               text-decoration: none;
+               border: 0;
+       }
+}
 #user-menu {
-  box-shadow: 5px 0 10px 0 #111;
-  display: block;
-  width: 75%;
-  margin: 3px 0 0 0;
-  position: relative;
-  background-color: #555753;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-  background: #555753 url("dark/menu-user-pin.jpg") 98% center no-repeat;
-  clear: both;
-  top: 4px;
-  left: 10px;
-  padding: 2px;
-  > a {
-    vertical-align: top; } }
-
+       .box_shadow(5px, 0, 10px, 0);
+       display: block;
+       width: 75%;
+       margin: 3px 0 0 0;
+       position: relative;
+       .rounded_corners;
+       background-color: @menu_bg_colour;
+       background-image: url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAIAAwDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMH/8QAIhAAAQMEAgIDAAAAAAAAAAAAAQIDBAAFBhESIQdBMVFh/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgP/xAAXEQEBAQEAAAAAAAAAAAAAAAABAAIR/9oADAMBAAIRAxEAPwCXiHO8dbsEi35BEhIehNlbUhxhBU82O+G9bKgToD2D+VlmZX9OWZBJuAiMxGlni0w0gJCED4HXv7pSi6eFML//2Q==");
+       background-position: 98% center;
+       background-repeat: no-repeat;
+       clear: both;
+       top: 4px;
+       left: 10px;
+       padding: 2px;
+       > a {
+               vertical-align: top;
+       }
+}
 #user-menu-label {
-  font-size: 12px;
-  padding: 3px 20px 9px 5px;
-  height: 10px; }
-
+       font-size: 12px;
+       padding: 3px 20px 9px 5px;
+       height: 10px;
+}
 .nav-ajax-update, .nav-ajax-left {
-  width: 30px;
-  height: 19px;
-  background: transparent url(dark/notifications.png) 0 0 no-repeat;
-  color: #222;
-  font-weight: bold;
-  font-size: 0.8em;
-  padding-top: 0.2em;
-  text-align: center;
-  float: left;
-  margin: 0 -1px 0 3px;
-  display: block;
-  visibility: hidden; }
-
+       .box(30px, 19px);
+       background: transparent url(dark/notifications.png) 0 0 no-repeat;
+       color: #222;
+       font-weight: bold;
+       font-size: 0.8em;
+       padding-top: 0.2em;
+       text-align: center;
+       float: left;
+       margin: 0 -1px 0 3px;
+       display: block;
+       visibility: hidden;
+}
 .nav-ajax-update.show, .nav-ajax-left.show {
-  visibility: visible; }
-
+       visibility: visible;
+}
 #net-update {
-  background-position: 0px 0px; }
-
+       background-position: 0px 0px;
+}
 #mail-update {
-  background-position: -30px 0; }
-
+       background-position: -30px 0;
+}
 #notify-update {
-  background-position: -60px 0px; }
-
+       background-position: -60px 0px;
+}
 #home-update {
-  background-position: -90px 0px; }
-
+       background-position: -90px 0px;
+}
 #intro-update {
-  background-position: -120px 0px; }
-
+       background-position: -120px 0px;
+}
 #lang-select-icon {
-  cursor: pointer;
-  position: fixed;
-  left: 28px;
-  bottom: 6px;
-  z-index: 10; }
-
+       cursor: pointer;
+       position: fixed;
+       left: 28px;
+       bottom: 6px;
+       z-index: 10;
+}
 #language-selector {
-  position: fixed;
-  bottom: 2px;
-  left: 52px;
-  z-index: 10; }
-
+       position: fixed;
+       bottom: 2px;
+       left: 52px;
+       z-index: 10;
+}
 .menu-popup {
-  position: absolute;
-  display: none;
-  width: 11em;
-  background: #ffffff;
-  color: #2d2d2d;
-  margin: 0px;
-  padding: 0px;
-  list-style: none;
-  border: 3px solid #364e59;
-  z-index: 100000;
-  -webkit-box-shadow: 3px 3px 10px 0 rgba(0, 0, 0, 0.7);
-  -moz-box-shadow: 3px 3px 10px 0 rgba(0, 0, 0, 0.7);
-  box-shadow: 3px 3px 10px 0 rgba(0, 0, 0, 0.7);
-  a {
-    display: block;
-    color: #2d2d2d;
-    padding: 5px 10px;
-    text-decoration: none;
-    &:hover {
-      background-color: #bdcdd4; } }
-  .menu-sep {
-    border-top: 1px solid #9eabb0; }
-  li {
-    float: none;
-    overflow: auto;
-    height: auto;
-    display: block;
-    img {
-      float: left;
-      width: 16px;
-      height: 16px;
-      padding-right: 5px; } }
-  .empty {
-    padding: 5px;
-    text-align: center;
-    color: #9eabb0; } }
-
+       position: absolute;
+       display: none;
+       width: 11em;
+       background: white;
+       color: @bg_colour;
+       margin: 0px;
+       padding: 0px;
+       .borders(3px, solid, @shiny_colour);
+       z-index: 100000;
+       .box_shadow;
+       a {
+               display: block;
+               color: @bg_colour;
+               padding: 5px 10px;
+               text-decoration: none;
+               &:hover {
+                       background-color: lighten(@shiny_colour, 55%);
+               }
+       }
+       .menu-sep {
+           border-top: 1px solid @med_bg_colour;
+       }
+       li {
+               float: none;
+               overflow: auto;
+               height: auto;
+               display: block;
+               img {
+                       float: left;
+                       .box(16px, 16px);
+                       padding-right: 5px;
+               }
+       }
+       .empty {
+               padding: 5px;
+               text-align: center;
+               color: lighten(@shiny_colour, 45%);
+       }
+}
 .notif-item {
-  font-size: small;
-  a {
-    vertical-align: middle; } }
-
+       font-size: small;
+       a {
+               vertical-align: middle;
+       }
+}
 .notif-image {
-  width: 32px;
-  height: 32px;
-  padding: 7px 7px 0px 0px; }
-
+       .box(32px, 32px);
+       padding: 7px 7px 0px 0px;
+}
 .notify-seen {
-  background: #ddd; }
+       background: darken(@main_alt_colour, 20%);
+}
+
 
 /**
  * sysmsg
  */
-
 #sysmsg_info {
-  position: fixed;
-  bottom: 0;
-  -moz-box-shadow: 3px 3px 3px 10px 0 #000;
-  -webkit-box-shadow: 3px 3px 10px 0 #000;
-  box-shadow: 3px 3px 10px 0 #000;
-  padding: 10px;
-  background-color: #fcaf3e;
-  border: 2px solid #f8911b;
-  border-bottom: 0;
-  padding-bottom: 50px;
-  z-index: 1000; }
-
+       position: fixed;
+       bottom: 0;
+       .box_shadow(@main_shadow);
+       padding: 10px;
+       background-color: @lt_orange;
+       .borders(2px, solid, @orange);
+       border-bottom: 0;
+       padding-bottom: 50px;
+       z-index: 1000;
+}
 #sysmsg {
-  position: fixed;
-  bottom: 0;
-  -moz-box-shadow: 3px 3px 10px 0 #000;
-  -webkit-box-shadow: 3px 3px 10px 0 #000;
-  box-shadow: 3px 3px 10px 0 #000;
-  padding: 10px;
-  background-color: #fcaf3e;
-  border: 2px solid #f8911b;
-  border-bottom: 0;
-  padding-bottom: 50px;
-  z-index: 1000; }
-
+       position: fixed;
+       bottom: 0;
+       .box_shadow(@main_shadow);
+       padding: 10px;
+       background-color: @lt_orange;
+       .borders(2px, solid, @orange);
+       border-bottom: 0;
+       padding-bottom: 50px;
+       z-index: 1000;
+}
 #sysmsg_info br, #sysmsg br {
-  display: block;
-  margin: 2px 0px;
-  border-top: 1px solid #ccccce; }
+       display: block;
+       margin: 2px 0px;
+       border-top: 1px solid @main_colour;
+}
+
 
 /**
  * aside
  */
-
 #asidemain {
-  float: left;
-  font-size: smaller;
-  margin: 20px 0 20px 35px;
-  width: 25%;
-  display: inline; }
+       float: left;
+       font-size: smaller;
+       margin: 20px 0 20px 35px;
+       width: 25%;
+       display: inline;
+}
 
 /* for now, disappear these */
-
 #asideright, #asideleft {
-  display: none; }
-
+       display: none;
+}
 .vcard {
-  .fn {
-    font-size: 1.7em;
-    font-weight: bold;
-    border-bottom: 1px solid #729fcf;
-    padding-bottom: 3px; }
-  #profile-photo-wrapper {
-    margin: 20px;
-    img {
-      box-shadow: 3px 3px 10px 0 #000; } } }
-
-/* http://css-tricks.com/snippets/css/css-box-shadow/
-* box-shadow:
-* 1. The horizontal offset of the shadow, positive means
-* the shadow will be on the right of the box, a negative
-* offset will put the shadow on the left of the box.
-* 2. The vertical offset of the shadow, a negative one
-* means the box-shadow will be above the box, a
-* positive one means the shadow will be below the box.
-* 3. The blur radius (optional), if set to 0 the shadow
-* will be sharp, the higher the number, the more blurred
-* it will be.
-* 4. The spread radius (optional), positive values increase
-* the size of the shadow, negative values decrease the size.
-* Default is 0 (the shadow is same size as blur).
-* 5. Colo[u]r
-*/
-
+       .fn {
+               font-size: 1.7em;
+               font-weight: bold;
+               border-bottom: 1px solid #729fcf;
+               padding-bottom: 3px;
+       }
+       #profile-photo-wrapper {
+               margin: 20px;
+               img {
+                       .box_shadow(3px, 3px, 10px, 0);
+               }
+       }
+}
 #asidemain {
-  h4 {
-    font-size: 1.2em; }
-  #viewcontacts {
-    text-align: right; } }
+       h4 {
+               font-size: 1.2em; }
+       #viewcontacts {
+               text-align: right;
+       }
+       #contact-block {
+               width: 99%;
+               .contact-block-content {
+                       width: 99%;
+                       .contact-block-div {
+                               float: left;
+                               margin: 0 5px 5px 0;
+                               .box(50px, 50px);
+                               padding: 3px;
+                               position: relative; } } }
+}
 
 .aprofile dt {
-  background: #eec;
-  color: #2e2f2e;
-  font-weight: bold;
-  box-shadow: 1px 1px 5px 0 #000;
-  margin: 15px 0 5px;
-  padding-left: 5px; }
-
+       background: @main_colour;
+       color: @bg_colour;
+       font-weight: bold;
+       .box_shadow(1px 1px 5px 0);
+       margin: 15px 0 5px;
+       padding-left: 5px;
+}
 #profile-extra-links ul {
-  margin-left: 0px;
-  padding-left: 0px;
-  list-style: none; }
-
+       margin-left: 0px;
+       padding-left: 0px;
+       list-style: none;
+}
 #dfrn-request-link {
-  background: #3465a4 url(dark/connect.png) no-repeat 95% center;
-  border-radius: 5px 5px 5px 5px;
-  color: #eec;
-  display: block;
-  font-size: 1.2em;
-  padding: 0.2em 0.5em; }
-
+       .rounded_corners;
+       color: @main_colour;
+       display: block;
+       font-size: 1.2em;
+       padding: 0.2em 0.5em;
+       background-color: @friendica_blue;
+       // background-image: url(icons/connect.png);
+       background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAYAAAAmL5yKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAE4SURBVCiRpZKxLgRRFIa//64dKruZFRIlolBviFKiVHsHrRaFikTCC+hEQtRegMQDqDUKJOPOvauSMJmjYEU2M0viT071/+fLOTlHZkadQgjLkh1LPEoj661WKw5mXG034JxtAgtmrJoVK5WZYYCy1AVQSOYbjeSqMmRmQ8v755Ne77lb5w+d4HMNJopCT7X+bwDQZKfTyf4BIAHeawHe+/kQ/FGM+QagvpFl2VSM/tyMmV7PV14AYMQ5nUp0AULIp0HXzpVvSdLYMmNVAjNdAuNAUQHgxy/ZvEQTSMw0A33DxkIIi2ma3gwC9PKSzRWF2wbdpml62DfyPF9yjlNgAnQGLJjZnXON3Xa7ff8NGPbKQPNrbAOI0a9J2ilLEzAL7P0GqJJizF+BUeDhL2cclJnZPvAg6eADf+imKjSMX1wAAAAASUVORK5CYII=");
+       background-repeat: no-repeat;
+       background-position: 95% center;
+}
 #wallmessage-link {
-  /*background: #3465A4 url(dark/connect.png) no-repeat 95% center;*/
-  /*border-radius: 5px 5px 5px 5px;*/
-  color: #eee;
-  display: block;
-  font-size: 1.2em;
-  padding: 0.2em 0.5em; }
-
-#netsearch-box {
-  margin: 20px 0px 30px;
-  width: 150px;
-  #search-submit {
-    margin: 5px 5px 0px 0px; } }
-
+       ///*background: #3465A4 url(dark/connect.png) no-repeat 95% center;*/
+       ///*border-radius: 5px 5px 5px 5px;*/
+       color: @main_alt_colour;
+       display: block;
+       font-size: 1.2em;
+       padding: 0.2em 0.5em;
+}
 .ttright {
-  margin: 0px 0px 0px 0px; }
+       margin: 0px;
+}
+
 
 /**
  * contacts block
  */
-
 .contact-block-div {
-  width: 50px;
-  height: 50px;
-  float: left; }
-
+       .box(50px, 50px);
+       float: left;
+}
 .contact-block-textdiv {
-  width: 150px;
-  height: 34px;
-  float: left; }
+       .box(150px, 34px);
+       float: left;
+}
 
-#contact-block-end {
-  clear: both; }
 
 /**
  * jot
  */
-
 #jot {
-  /*width: 785px;*/
-  margin: 10px 0 20px 0px;
-  width: 100%;
-  #jot-tools {
-    margin: 0px;
-    padding: 0px;
-    height: 35px;
-    overflow: none;
-    width: 100%;
-    /*background-color: #0e232e;*/
-    /*border-bottom: 2px solid #9eabb0;*/
-    span {
-      float: left;
-      margin: 10px 20px 2px 0px;
-      a {
-        display: block; } }
-    .perms {
-      float: right;
-      width: 40px; }
-    li.loading {
-      float: right;
-      background-color: #ffffff;
-      width: 20px;
-      vertical-align: center;
-      text-align: center;
-      border-top: 2px solid #9eabb0;
-      height: 38px;
-      img {
-        margin-top: 10px; } } }
-  #jot-title {
-    border: 1px solid #ccc;
-    margin: 0 0 5px;
-    height: 20px;
-    width: 90%;
-    font-weight: bold;
-    border-radius: 5px;
-    vertical-align: middle; } }
-
+       margin: 10px 0 20px 0px;
+       width: 100%;
+       #jot-tools {
+               margin: 0px;
+               padding: 0px;
+               .box(100%, 35px);
+               overflow: none;
+               span {
+                       float: left;
+                       margin: 10px 20px 2px 0px;
+                       a {
+                               display: block;
+                       }
+               }
+               .perms {
+                       float: right;
+                       width: 40px;
+               }
+               li.loading {
+                       float: right;
+                       background-color: white;
+                       .box(20px, 38px);
+                       vertical-align: center;
+                       text-align: center;
+                       border-top: 2px solid #9eabb0;
+                       img {
+                               margin-top: 10px;
+                       }
+               }
+       }
+       #jot-title {
+           .borders(1px, solid, darken(@main_alt_colour, 13%));
+               margin: 0 0 5px;
+               .box(90%, 20px);
+               font-weight: bold;
+               .rounded_corners;
+               vertical-align: middle;
+       }
+}
 #jot-category {
-  margin: 5px 0;
-  border-radius: 5px;
-  border: 1px #999 solid;
-  color: #aaa;
-  font-size: smaller;
-  &:focus {
-    color: #eee; } }
-
+       margin: 5px 0;
+       .rounded_corners;
+       .borders(1px, solid, darken(@main_alt_colour, 33%));
+       color: darken(@main_alt_colour, 27%);
+       font-size: smaller;
+       &:focus {
+               color: @main_alt_colour;
+       }
+}
 #jot #character-counter {
-  width: 6%;
-  float: right;
-  text-align: right;
-  height: 15px;
-  line-height: 20px;
-  padding: 2px 20px 5px 0; }
-
+       .box(6%, 15px);
+       float: right;
+       text-align: right;
+       line-height: 20px;
+       padding: 2px 20px 5px 0;
+}
 #profile-jot-text_parent {
-  box-shadow: 5px 0 10px 0 #111; }
-
+       .box_shadow(5px, 0, 10px, 0, @shadow_colour);
+}
 #profile-jot-text_tbl {
-  margin-bottom: 10px;
-  background: #777; }
-
+       margin-bottom: 10px;
+       background: darken(@main_alt_colour, 46.8%);
+}
 #profile-jot-text_ifr {
-  width: 99.900002% !important; }
-
+       width: 99.900002% !important;
+}
 #profile-jot-text_toolbargroup, .mceCenter tr {
-  background: #777; }
-
+       background: darken(@main_alt_colour, 46.8%);
+}
 [id$="jot-text_ifr"] {
-  width: 99.900002% !important;
-  color: #2e2f2e;
-  background: #eec;
-  .mceContentBody {
-    color: #2e2f2e;
-    background: #eec; } }
-
+       width: 99.900002% !important;
+       color: @bg_colour;
+       background: @main_colour;
+       .mceContentBody {
+               color: @bg_colour;
+               background: @main_colour;
+       }
+}
 .defaultSkin {
-  tr.mceFirst {
-    background: #777; }
-  td {
-    &.mceFirst, &.mceLast {
-      background-color: #eec; } }
-  span.mceIcon, img.mceIcon, .mceButtonDisabled .mceIcon {
-    background-color: #eec; } }
-
-#profile-attach-wrapper, #profile-audio-wrapper, #profile-link-wrapper, #profile-location-wrapper, #profile-nolocation-wrapper, #profile-title-wrapper, #profile-upload-wrapper, #profile-video-wrapper {
-  float: left;
-  margin: 0 20px 0 0; }
-
+       tr.mceFirst {
+               background: darken(@main_alt_colour, 46.8%);
+       }
+       td {
+               &.mceFirst, &.mceLast {
+                       background-color: @main_colour;
+               }
+       }
+       span.mceIcon, img.mceIcon, .mceButtonDisabled .mceIcon {
+               background-color: @main_colour;
+       }
+}
+#profile-attach-wrapper,
+#profile-audio-wrapper,
+#profile-link-wrapper,
+#profile-location-wrapper,
+#profile-nolocation-wrapper,
+#profile-title-wrapper,
+#profile-upload-wrapper,
+#profile-video-wrapper {
+       float: left;
+       margin: 0 20px 0 0;
+}
 #profile-rotator-wrapper {
-  float: right; }
-
-#profile-jot-tools-end, #profile-jot-banner-end {
-  clear: both; }
-
+       float: right;
+}
 #profile-jot-email-wrapper {
-  margin: 10px 10% 0;
-  border: 1px solid #555753;
-  border-bottom: 0; }
-
+       margin: 10px 10% 0;
+       .borders(1px, solid, @menu_bg_colour);
+       border-bottom: 0;
+}
 #profile-jot-email-label {
-  background-color: #555753;
-  color: #ccccce;
-  padding: 5px; }
-
+       background-color: @menu_bg_colour;
+       color: @main_colour;
+       padding: 5px;
+}
 #profile-jot-email {
-  width: 90%;
-  margin: 5px; }
-
+       width: 90%;
+       margin: 5px;
+}
 #profile-jot-networks {
-  margin: 0 10%;
-  border: 1px solid #555753;
-  border-top: 0;
-  border-bottom: 0;
-  padding: 5px; }
-
+       margin: 0 10%;
+       border: 1px solid @menu_bg_colour;
+       border-top: 0;
+       border-bottom: 0;
+       padding: 5px;
+}
 #profile-jot-net {
-  margin: 5px 0; }
-
+       margin: 5px 0;
+}
 #jot-preview-link {
-  margin: 0 0 0 10px;
-  border: 0;
-  text-decoration: none;
-  float: right; }
-
+       margin: 0 0 0 10px;
+       border: 0;
+       text-decoration: none;
+       float: right;
+}
 .icon-text-preview {
-  margin: 0 0 -18px 0;
-  display: block;
-  width: 20px;
-  height: 20px;
-  background: url(dark/icons.png) no-repeat -128px -40px;
-  border: 0;
-  text-decoration: none;
-  float: right;
-  cursor: pointer; }
-
+       margin: 0 0 -18px 0;
+       display: block;
+       .box(20px, 20px);
+       background: url(dark/icons.png) no-repeat -128px -40px;
+       border: 0;
+       text-decoration: none;
+       float: right;
+       cursor: pointer;
+}
 #profile-jot-perms {
-  float: right;
-  background-color: #555753;
-  height: 22px;
-  width: 20px;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-  overflow: hidden;
-  border: 0px;
-  margin: 0 10px 0 10px; }
-
+       float: right;
+       background-color: @menu_bg_colour;
+       .box(22px, 22px);
+       .rounded_corners;
+       overflow: hidden;
+       border: 0px;
+       margin: 0 10px 0 10px;
+}
 #profile-jot-plugin-wrapper {
-  width: 1px;
-  margin: 10px 0 0 0;
-  float: right; }
-
+       width: 1px;
+       margin: 10px 0 0 0;
+       float: right;
+}
 #profile-jot-submit-wrapper {
-  float: right;
-  width: 100%;
-  list-style: none;
-  margin: 10px 0 0 0;
-  padding: 0; }
-
+       float: right;
+       width: 100%;
+       margin: 10px 0 0 0;
+       padding: 0;
+}
 #profile-jot-submit {
-  height: auto;
-  background-color: #555753;
-  color: #eeeeec;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-  border: 2px outset #222420;
-  margin: 0;
-  float: right;
-  text-shadow: 1px 1px #111;
-  width: auto;
-  &:active {
-    box-shadow: 0 0 0 0; } }
-
+       height: auto;
+       background-color: @menu_bg_colour;
+       color: @main_alt_colour;
+       .rounded_corners;
+       .borders(2px, outset, @shiny_colour);
+       margin: 0;
+       float: right;
+       .text_shadow;
+       width: auto;
+       &:active {
+               .box_shadow(0, 0, 0, 0);
+       }
+}
 #jot-perms-icon {
-  height: 22px;
-  width: 20px;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-  overflow: hidden;
-  border: 0; }
-
+       .box(20px, 22px);
+       .rounded_corners;
+       overflow: hidden;
+}
 #profile-jot-acl-wrapper {
-  margin: 0 10px;
-  border: 1px solid #555753;
-  border-top: 0;
-  display: block !important; }
-
-#group_allow_wrapper, #group_deny_wrapper, #acl-permit-outer-wrapper {
-  width: 47%;
-  float: left; }
-
-#contact_allow_wrapper, #contact_deny_wrapper, #acl-deny-outer-wrapper {
-  width: 47%;
-  float: right; }
-
+       margin: 0 10px;
+       .borders(1px, solid, darken(@main_alt_colour, 60%));
+       border-top: 0;
+       display: block !important;
+       .borders(1px solid @menu_bg_colour);
+       .box_shadow;
+}
+#group_allow_wrapper,
+#group_deny_wrapper,
+#acl-permit-outer-wrapper,
+#contact_allow_wrapper,
+#contact_deny_wrapper,
+#acl-deny-outer-wrapper {
+       width: 47%;
+}
+#group_allow_wrapper,
+#group_deny_wrapper,
+#acl-permit-outer-wrapper {
+       float: left;
+}
+#contact_allow_wrapper,
+#contact_deny_wrapper,
+#acl-deny-outer-wrapper {
+       float: right;
+}
 #acl-permit-text {
-  background-color: #555753;
-  color: #ccccce;
-  padding: 5px;
-  float: left; }
-
+       background-color: darken(@main_alt_colour, 60%);
+       color: @main_colour;
+       padding: 5px;
+       float: left;
+}
 #jot-public {
-  background-color: #555753;
-  color: #ff0000;
-  padding: 5px;
-  float: left; }
-
+       background-color: darken(@main_alt_colour, 60%);
+       color: @alert;
+       padding: 5px;
+       float: left;
+}
 #acl-deny-text {
-  background-color: #555753;
-  color: #ccccce;
-  padding: 5px;
-  float: left; }
-
-#acl-permit-text-end, #acl-deny-text-end {
-  clear: both; }
-
+       background-color: darken(@main_alt_colour, 60%);
+       color: @main_colour;
+       padding: 5px;
+       float: left;
+}
 #jot-title-desc {
-  color: #ccc; }
-
+       color: darken(@main_alt_colour, 13%);
+}
 #profile-jot-desc {
-  color: #ff2000;
-  margin: 5px 0; }
-
+       color: @red_orange;
+       margin: 5px 0;
+}
 #jot-title-wrapper {
-  margin-bottom: 5px; }
-
+       margin-bottom: 5px;
+}
 #jot-title-display {
-  font-weight: bold; }
-
+       font-weight: bold;
+}
 .jothidden {
-  display: none; }
-
+       display: none;
+}
 #jot-preview-content {
-  background-color: #3e3f3e;
-  color: #eec;
-  border: 1px #eec solid;
-  border-radius: 5px;
-  padding: 3px 3px 6px 10px;
-  .wall-item-outside-wrapper {
-    border: 0;
-    border-radius: 0px; } }
+       background-color: @bg_alt_colour;
+       color: @main_colour;
+       .borders(1px, solid, @main_colour);
+       .rounded_corners;
+       padding: 3px 3px 6px 10px;
+       .wall-item-outside-wrapper {
+           border: 0;
+               .rounded_corners(0px 0px 0px 0px);
+       }
+}
+
 
 /**
  * section
  */
-
 #sectionmain {
-  margin: 20px;
-  font-size: 0.8em;
-  min-width: 475px;
-  width: 67%;
-  float: left;
-  display: inline; }
+       margin: 20px;
+       font-size: 0.8em;
+       min-width: 475px;
+       width: 67%;
+       float: left;
+       display: inline;
+}
+
 
 /**
  * tabs
  */
-
 .tabs {
-  list-style: none;
-  margin: 10px 0;
-  padding: 0;
-  li {
-    display: inline;
-    font-size: smaller;
-    font-weight: bold; } }
-
+       .list_reset;
+       margin: 10px 0;
+       li {
+               display: inline;
+               font-size: smaller;
+               font-weight: bold;
+       }
+}
 .tab {
-  border: 1px solid #729fcf;
-  padding: 4px;
-  &:hover, &.active:hover, &:active {
-    background: #88a9d2;
-    color: #2e2f2e; }
-  &.active {
-    background: #88a9d2;
-    color: #2e2f2e;
-    a {
-      color: #2e2f2e; } }
-  a {
-    border: 0;
-    text-decoration: none; } }
+       .borders(1px, solid, @link_colour);
+       padding: 4px;
+       &:hover, &.active:hover, &:active {
+               background: @link_colour;
+               color: @bg_colour;
+       }
+       &.active {
+               background: @main_colour;
+               color: @bg_colour;
+               a {
+                       color: @bg_colour;
+               }
+       }
+       a {
+               border: 0;
+               text-decoration: none;
+       }
+}
 
 /**
  * items
  */
-
 .wall-item-outside-wrapper {
-  border: 1px solid #aaa;
-  border-radius: 5px;
-  box-shadow: 5px 0 10px 0 #111;
-  &.comment {
-    margin-top: 5px; } }
-
+       .borders(1px, solid, #aaa);
+       .rounded_corners;
+       .box_shadow(5px, 0, 10px, 0);
+       &.comment {
+               margin-top: 5px;
+       }
+}
 .wall-item-outside-wrapper-end {
-  clear: both; }
-
+       clear: both;
+}
 .wall-item-content-wrapper {
-  position: relative;
-  padding: 10px;
-  width: auto; }
-
+       position: relative;
+       padding: 10px;
+       width: auto;
+}
 .wall-item-outside-wrapper .wall-item-comment-wrapper {
-  /*margin-left: 90px;*/ }
-
+       /*margin-left: 90px;*/
+}
 .shiny {
-  background: #2e3436;
-  border-radius: 5px; }
-
+       background: @shiny_colour;
+       .rounded_corners;
+}
 .wall-outside-wrapper .shiny {
-  border-radius: 5px; }
-
+       .rounded_corners;
+}
 .heart {
-  color: red; }
-
+       color: red;
+}
 .wall-item-content {
-  overflow-x: auto;
-  margin: 0px 15px 0px 5px; }
-
-/* removing it from here, vs. putting it in .wall-item-content
-* might break things for people. we shall see ;) */
-
+       overflow-x: auto;
+       margin: 0px 15px 0px 5px;
+}
 [id^="tread-wrapper"], [class^="tread-wrapper"] {
-  margin: 15px 0 0 0;
-  padding: 0px;
-  /*overflow-x: auto;*/ }
-
+       margin: 15px 0 0 0;
+       padding: 0px;
+}
 .wall-item-photo-menu {
-  display: none; }
-
+       display: none;
+}
 .wall-item-photo-menu-button {
-  display: none;
-  text-indent: -99999px;
-  background: #555753 url(dark/menu-user-pin.jpg) no-repeat 75px center;
-  position: absolute;
-  overflow: hidden;
-  height: 20px;
-  width: 90px;
-  top: 85px;
-  left: 0;
-  -webkit-border-radius: 0 0 5px 5px;
-  -moz-border-radius: 0 0 5px 5px;
-  border-radius: 0 0 5px 5px; }
-
+       display: none;
+       text-indent: -99999px;
+       background: @menu_bg_colour url(dark/menu-user-pin.jpg) no-repeat 75px center;
+       position: absolute;
+       overflow: hidden;
+       .box(90px, 20px);
+       top: 85px;
+       left: 0;
+       .rounded_corners(0 0 5px 5px);
+}
 .wall-item-info {
-  float: left;
-  width: 110px; }
-
+       float: left;
+       width: 110px;
+}
 .wall-item-photo-wrapper {
-  width: 80px;
-  height: 80px;
-  position: relative;
-  padding: 5px;
-  background-color: #555753;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px; }
-
+       .box(80px, 80px);
+       position: relative;
+       padding: 5px;
+       background-color: @menu_bg_colour;
+       .rounded_corners;
+}
 [class^="wall-item-tools"] * {
-  /*margin: 0 0 5px 0;*/
-  > * {
-    /*margin: 0 0 5px 0;*/ } }
-
+       /*margin: 0 0 5px 0;*/
+       > * {
+               /*margin: 0 0 5px 0;*/
+       }
+}
 .wall-item-tools {
-  float: right;
-  opacity: 0.4;
-  -webkit-transition: all 1s ease-in-out;
-  -moz-transition: all 1s ease-in-out;
-  -o-transition: all 1s ease-in-out;
-  -ms-transition: all 1s ease-in-out;
-  transition: all 1s ease-in-out;
-  &:hover {
-    opacity: 1;
-    -webkit-transition: all 1s ease-in-out;
-    -moz-transition: all 1s ease-in-out;
-    -o-transition: all 1s ease-in-out;
-    -ms-transition: all 1s ease-in-out;
-    transition: all 1s ease-in-out; } }
-
+       float: right;
+       opacity: 0.4;
+       .transition;
+       &:hover {
+               opacity: 1;
+               .transition;
+       }
+}
 .wall-item-subtools1 {
-  height: 30px;
-  list-style: none outside none;
-  margin: 20px 0 30px -20px;
-  padding: 0;
-  width: 30px; }
-
+       .box(30px, 30px);
+       list-style: none outside none;
+       margin: 20px 0 30px -20px;
+       padding: 0;
+}
 .wall-item-subtools2 {
-  height: 25px;
-  list-style: none outside none;
-  margin: -75px 0 0 5px;
-  padding: 0;
-  width: 25px; }
-
+       .box(25px, 25px);
+       list-style: none outside none;
+       margin: -75px 0 0 5px;
+       padding: 0;
+}
 .wall-item-title {
-  font-size: 1.2em;
-  font-weight: bold;
-  margin-bottom: 1em; }
-
+       font-size: 1.2em;
+       font-weight: bold;
+       margin-bottom: 1em;
+}
 .wall-item-body {
-  margin: 20px 20px 10px 0px;
-  text-align: left;
-  overflow-x: auto; }
-
+       margin: 20px 20px 10px 0px;
+       text-align: left;
+       overflow-x: auto;
+}
 .wall-item-lock-wrapper {
-  float: right;
-  height: 22px;
-  margin: 0 -5px 0 0;
-  width: 22px;
-  opacity: 1; }
-
-.wall-item-dislike, .wall-item-like {
-  clear: left;
-  font-size: 0.8em;
-  color: #878883;
-  margin: 5px 0 5px 120px; }
-
-.wall-item-author, .wall-item-actions-author {
-  clear: left;
-  font-size: 0.8em;
-  color: #878883;
-  margin: 20px 20px 0 110px; }
-
+       float: right;
+       .box(22px, 22px);
+       margin: 0 -5px 0 0;
+       opacity: 1;
+}
+.wall-item-dislike,
+.wall-item-like {
+       clear: left;
+       font-size: 0.8em;
+       color: lighten(@menu_bg_colour, 20%);
+       margin: 5px 0 5px 120px;
+}
+.wall-item-author,
+.wall-item-actions-author {
+       clear: left;
+       font-size: 0.8em;
+       color: lighten(@menu_bg_colour, 20%);
+       margin: 20px 20px 0 110px;
+}
 .wall-item-ago {
-  display: inline;
-  padding-left: 10px; }
-
+       display: inline;
+       padding-left: 10px;
+}
 .wall-item-wrapper-end {
-  clear: both; }
-
+       clear: both;
+}
 .wall-item-location {
-  margin-top: 15px;
-  width: 100px;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  -o-text-overflow: ellipsis;
-  .icon {
-    float: left; }
-  > a, .smalltext {
-    margin-left: 25px;
-    font-size: 0.7em;
-    display: block; }
-  > br {
-    display: none; } }
-
+       margin-top: 15px;
+       width: 100px;
+       overflow: hidden;
+       .text_overflow;
+       .icon {
+               float: left;
+       }
+       > a, .smalltext {
+               margin-left: 25px;
+               font-size: 0.7em;
+               display: block;
+       }
+       > br {
+               display: none;
+       }
+}
 .wallwall {
-  .wwto {
-    left: 5px;
-    margin: 0;
-    position: absolute;
-    top: 75px;
-    width: 30px;
-    z-index: 10001;
-    width: 30px;
-    height: 30px;
-    img {
-      width: 30px !important;
-      height: 30px !important; } }
-  .wall-item-photo-end {
-    clear: both; } }
-
+       .wwto {
+               left: 5px;
+               margin: 0;
+               position: absolute;
+               top: 75px;
+               z-index: 10001;
+               .box(30px, 30px);
+               img {
+                       width: 30px !important;
+                       height: 30px !important;
+               }
+       }
+       .wall-item-photo-end {
+               clear: both;
+       }
+}
 .wall-item-arrowphoto-wrapper {
-  position: absolute;
-  left: 35px;
-  top: 80px;
-  z-index: 10002; }
-
+       position: absolute;
+       left: 35px;
+       top: 80px;
+       z-index: 10002;
+}
 .wall-item-photo-menu {
-  min-width: 92px;
-  border: 2px solid #FFFFFF;
-  border-top: 0px;
-  background: #555753;
-  position: absolute;
-  left: -2px;
-  top: 101px;
-  display: none;
-  z-index: 10003;
-  -webkit-border-radius: 0px 5px 5px 5px;
-  -moz-border-radius: 0px 5px 5px 5px;
-  border-radius: 0px 5px 5px 5px;
-  ul {
-    margin: 0px;
-    padding: 0px;
-    list-style: none; }
-  li a {
-    white-space: nowrap;
-    display: block;
-    padding: 5px 2px;
-    color: #eeeeec;
-    &:hover {
-      color: #555753;
-      background: #eeeeec; } } }
-
+       min-width: 92px;
+       .borders(2px, solid, white);
+       border-top: 0px;
+       background: @menu_bg_colour;
+       position: absolute;
+       left: -2px;
+       top: 101px;
+       display: none;
+       z-index: 10003;
+       .rounded_corners;
+       li a {
+               white-space: nowrap;
+               display: block;
+               padding: 5px 2px;
+               color: @main_alt_colour;
+               &:hover {
+                       color: @menu_bg_colour;
+                       background: @main_alt_colour;
+               }
+       }
+}
 #item-delete-selected {
-  overflow: auto;
-  width: 100%; }
+       overflow: auto;
+       width: 100%;
+}
+#connect-services-header,
+#connect-services,
+#extra-help-header,
+#extra-help,
+#postit-header,
+#postit {
+       margin: 5px 0 0 0;
+}
 
-#connect-services-header, #connect-services, #extra-help-header, #extra-help, #postit-header, #postit {
-  margin: 5px 0 0 0; }
 
 /**
  * comment
  */
-
 .ccollapse-wrapper {
-  font-size: 0.9em;
-  margin-left: 80px; }
-
+       font-size: 0.9em;
+       margin-left: 80px;
+}
 .wall-item-outside-wrapper.comment {
-  margin-left: 80px;
-  .wall-item-photo {
-    width: 40px!important;
-    height: 40px!important; }
-  .wall-item-photo-wrapper {
-    width: 40px;
-    height: 40px; }
-  .wall-item-photo-menu-button {
-    width: 50px;
-    top: 45px;
-    background-position: 35px center; }
-  .wall-item-info {
-    width: 60px; }
-  .wall-item-body {
-    margin-left: 10px; }
-  .wall-item-author {
-    margin-left: 50px; }
-  .wall-item-photo-menu {
-    min-width: 50px;
-    top: 60px; } }
-
+       margin-left: 80px;
+       .wall-item-photo {
+               width: 40px !important;
+               height: 40px !important;
+       }
+       .wall-item-photo-wrapper {
+               .box(40px, 40px);
+       }
+       .wall-item-photo-menu-button {
+               width: 50px;
+               top: 45px;
+               background-position: 35px center;
+       }
+       .wall-item-info {
+               width: 60px;
+       }
+       .wall-item-body {
+               margin-left: 10px;
+       }
+       .wall-item-author {
+               margin-left: 50px;
+       }
+       .wall-item-photo-menu {
+               min-width: 50px;
+               top: 60px;
+       }
+}
 .comment-wwedit-wrapper {
-  /*margin: 30px 0px 0px 80px;*/ }
-
+  /*margin: 30px 0px 0px 80px;*/
+}
 .comment-edit-wrapper {
-  border-top: 1px #aaa solid; }
-
+       border-top: 1px #aaa solid;
+}
 [class^="comment-edit-bb"] {
-  list-style: none;
-  display: none;
-  margin: -40px 0 5px 60px;
-  width: 75%;
-  > li {
-    display: inline-block;
-    margin: 0 10px 0 0;
-    visibility: none; } }
-
-.comment-wwedit-wrapper img, .comment-edit-wrapper img {
-  width: 20px;
-  height: 20px; }
-
-.comment-edit-photo-link, .comment-edit-photo {
-  margin-left: 10px; }
-
+       .list_reset;
+       display: none;
+       margin: -40px 0 5px 60px;
+       width: 75%;
+       > li {
+               display: inline-block;
+               margin: 0 10px 0 0;
+               visibility: none;
+       }
+}
+.comment-wwedit-wrapper img,
+.comment-edit-wrapper img {
+       .box;
+}
+.comment-edit-photo-link,
+.comment-edit-photo {
+       margin-left: 10px;
+}
 .my-comment-photo {
-  width: 40px;
-  height: 40px;
-  padding: 5px; }
+       .box(40px, 40px);
+       padding: 5px;
+}
 
 [class^="comment-edit-text"] {
-  margin: 5px 0 10px 20px;
-  width: 84.5%; }
-
+       margin: 5px 0 10px 20px;
+       width: 84.5%;
+}
 .comment-edit-text-empty {
-  height: 20px;
-  border: 2px #c8bebe solid;
-  border-radius: 5px;
-  color: #c8bebe;
-  -webkit-transition: all 0.5s ease-in-out;
-  -moz-transition: all 0.5s ease-in-out;
-  -o-transition: all 0.5s ease-in-out;
-  -ms-transition: all 0.5s ease-in-out;
-  transition: all 0.5s ease-in-out;
-  &:hover {
-    color: #999999; } }
-
+       height: 20px;
+       border: 2px #c8bebe solid;
+       .rounded_corners;
+       color: #c8bebe;
+       .transition;
+       &:hover {
+               color: darken(@main_alt_colour, 33.5%);
+       }
+}
 .comment-edit-text-full {
-  height: 10em;
-  border-radius: 5px;
-  -webkit-transition: all 0.5s ease-in-out;
-  -moz-transition: all 0.5s ease-in-out;
-  -o-transition: all 0.5s ease-in-out;
-  -ms-transition: all 0.5s ease-in-out;
-  transition: all 0.5s ease-in-out; }
-
+       height: 10em;
+       .rounded_corners;
+       .transition;
+}
 .comment-edit-submit-wrapper {
-  width: 90%;
-  margin: 5px 5px 10px 50px;
-  text-align: right; }
-
+       width: 90%;
+       margin: 5px 5px 10px 50px;
+       text-align: right;
+}
 .comment-edit-submit {
-  height: 22px;
-  background-color: #555753;
-  color: #eeeeec;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-  border: 0; }
+       height: 22px;
+       background-color: @menu_bg_colour;
+       color: @main_alt_colour;
+       .rounded_corners;
+       border: 0;
+}
+
 
 /**
  * item text style
  */
-
 .wall-item-body code {
-  display: block;
-  padding: 0 0 10px 5px;
-  border-color: #ccc;
-  border-style: solid;
-  border-width: 1px 1px 1px 10px;
-  background: #eee;
-  color: #2e2f2e;
-  width: 95%; }
+    background-color: darken(@main_alt_colour, 66.5%);
+    border-bottom: 1px dashed darken(@main_alt_colour, 13.5%);
+    border-left: 5px solid darken(@main_alt_colour, 13.5%);
+    border-top: 1px dashed darken(@main_alt_colour, 13.5%);
+    display: block;
+    overflow-x: auto;
+    padding: 5px 0 15px 10px;
+    width: 95%;
+       a {
+               color: @lt_link_colour;
+       }
+}
+
 
 /**
  * profile
  */
-
 div {
-  &[id$="text"] {
-    font-weight: bold;
-    border-bottom: 1px solid #ccc; }
-  &[id$="wrapper"] {
-    height: 100%;
-    margin-bottom: 1em;
-    br {
-      clear: left; } } }
-
+       &[id$="text"] {
+               font-weight: bold;
+               border-bottom: 1px solid darken(@main_alt_colour, 13.5%);
+       }
+       &[id$="wrapper"] {
+               height: 100%;
+               margin-bottom: 1em;
+               br {
+                       clear: left;
+               }
+       }
+}
 .profile-match-wrapper {
        float: left;
        margin: 0 5px 40px 0;
-       width: 120px;
-       height: 120px;
+       .box(120px, 120px);
        padding: 3px;
        position: relative;
 }
@@ -1399,11 +1449,10 @@ div {
 .profile-match-photo {
        
 }
-
-[id$="-end"], [class$="end"] {
-  clear: both;
-  margin: 0 0 10px 0; }
-
+[id$="-end"], [class$="-end"] {
+       clear: both;
+       margin: 0 0 10px 0;
+}
 .profile-match-end {
        margin: 0 0 5px 0;
 }
@@ -1416,428 +1465,394 @@ div {
        margin: auto auto auto 23px;
 }
 #advanced-profile-with {
-  margin-left: 200px; }
+       margin-left: 200px;
+}
+
 
 /**
  * photos
  */
-
 .photos {
-  height: auto;
-  overflow: auto; }
-
+       height: auto;
+       overflow: auto;
+}
 #photo-top-links {
-  margin-bottom: 30px; }
-
-.photo-album-image-wrapper, .photo-top-image-wrapper {
-  float: left;
-  -moz-box-shadow: 3px 3px 10px 0 #000;
-  -webkit-box-shadow: 3px 3px 10px 0 #000;
-  box-shadow: 3px 3px 10px 0 #000;
-  background-color: #222;
-  color: #2e2f2e;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-  padding-bottom: 30px;
-  position: relative;
-  margin: 0 10px 10px 0; }
-
+       margin-bottom: 30px;
+}
+.photo-album-image-wrapper,
+.photo-top-image-wrapper {
+       float: left;
+       .box_shadow;
+       background-color: darken(@main_alt_colour, 80%);
+       color: @bg_colour;
+       .rounded_corners;
+       padding-bottom: 30px;
+       position: relative;
+       margin: 0 10px 10px 0;
+}
 #photo-photo {
-  max-width: 100%;
-  img {
-    max-width: 100%; } }
-
-.photo-top-image-wrapper a:hover, #photo-photo a:hover, .photo-album-image-wrapper a:hover {
-  border-bottom: 0; }
-
+       max-width: 100%;
+       img {
+               max-width: 100%; }
+}
+.photo-top-image-wrapper a:hover,
+#photo-photo a:hover,
+.photo-album-image-wrapper a:hover {
+       border-bottom: 0;
+}
 .photo-top-photo, .photo-album-photo {
-  -webkit-border-radius: 5px 5px 0 0;
-  -moz-border-radius: 5px 5px 0 0;
-  border-radius: 5px 5px 0 0; }
-
-.photo-top-album-name {
-  position: absolute;
-  bottom: 0;
-  padding: 0 5px; }
-
-.caption {
-  position: absolute;
-  bottom: 0;
-  margin: 0 5px; }
-
+       .rounded_corners(5px 5px 0 0);
+}
+.photo-top-album-name, .caption {
+       position: absolute;
+       bottom: 0;
+       padding: 0 5px;
+}
 #photo-photo {
-  position: relative;
-  float: left; }
-
-#photo-prev-link, #photo-next-link {
-  position: absolute;
-  width: 30%;
-  height: 100%;
-  background-color: rgba(255, 255, 255, 0.5);
-  opacity: 0;
-  -webkit-transition: all .2s ease-in-out;
-  -moz-transition: all .2s ease-in-out;
-  -o-transition: all .2s ease-in-out;
-  -ms-transition: all .2s ease-in-out;
-  transition: all .2s ease-in-out;
-  background-position: center center;
-  background-repeat: no-repeat; }
-
-#photo-prev-link {
-       background-image: url(dark/prev.png);
-    height: 350px;
-    left: 1%;
-    top: 215px;
-    width: 50px;
-    z-index: 10;
+       position: relative;
+       // float: left;
+       margin: 5px 45%;
 }
-
+#photo-prev-link,
 #photo-next-link {
-       background-image: url(dark/next.png);
-    height: 350px;
-    right: 45%;
-    top: 215px;
-    width: 50px;
-}
-
-#photo-prev-link a, #photo-next-link a {
-  display: block;
-  width: 100%;
-  height: 100%;
-  overflow: hidden;
-  text-indent: -900000px; }
-
-#photo-prev-link:hover {
-  opacity: 1;
-  -webkit-transition: all .2s ease-in-out;
-  -moz-transition: all .2s ease-in-out;
-  -o-transition: all .2s ease-in-out;
-  -ms-transition: all .2s ease-in-out;
-  transition: all .2s ease-in-out; }
-
+       position: absolute;
+       // .box(30%, 100%);
+       .box(50px, 150px);
+       background: white center center no-repeat;
+       opacity: 0;
+       .transition(all, 0.5s);
+       z-index: 10;
+       top: 175px;
+       .rounded_corners;
+       &:hover {
+               opacity: 0.6;
+               .transition(all, 0.5s);
+       }
+       .icon {
+               display: none;
+       }
+}
+#photo-prev-link {
+       // background-image: url(dark/prev.png);
+       background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAnCAMAAADTjiM/AAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAALpQTFRF////AAAAQEBAZmZmVVVVSUlJTU1NXV1dVVVVTk5OW1tbWlpaWFhPWFhQU1pTVVVVVlZSVVlRVlZTVFdUVFdUVVdTVFZSVldUVldSVldSVldTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVZUVVdTVVdTVVhSVVdTVVdTVVhSVVdTVVdTVVhSVVdTVVdTVVdTVVdTVVdTVVdTVVhTVVdTVVdTVVdTVVdT3XYY/AAAAD10Uk5TAAEEBQYHCgsMDQ4RHSAlP0FFR1hee3+JnqSqq6ytrq+wsbKztLW2t7y9vr/AwcLDxMXGx8jU1dng7O/3+TmOwVsAAADASURBVCjPddPXEoIwEAXQINh7Q8WKYu+95v9/S0dxZxNy83hgMpvdu0Jox642r25GVxGfys+5540sZV3jyY/lWeVxyDLg7AR/lhXOI+KZZeRFgvGQeMnY9olXScYD4jXnPvHGzNsU4x7xjnGsa+YO8T7NnukRHzgXiY/KNKiUkzqkZ8ivnDoKD/xfBvdbbXM9sH70Xtgf2E/YfzgvOF+YB5gf5cPcAfmsgTy3QP5vYF8akf36XvXIRhZPlPyLWxBvNENWsZXDKukAAAAASUVORK5CYII=");
+    left: 22%;
+}
 #photo-next-link {
-  &:hover {
-    opacity: 1;
-    -webkit-transition: all .2s ease-in-out;
-    -moz-transition: all .2s ease-in-out;
-    -o-transition: all .2s ease-in-out;
-    -ms-transition: all .2s ease-in-out;
-    transition: all .2s ease-in-out; }
-  .icon {
-    display: none; } }
-
-#photo-prev-link .icon {
-  display: none; }
-
-#photos-upload-spacer, #photos-upload-new-wrapper, #photos-upload-exist-wrapper {
-  margin-bottom: 1em; }
-
-#photos-upload-existing-album-text, #photos-upload-newalbum-div {
-  background-color: #555753;
-  color: #eeeeec;
-  padding: 1px; }
-
-#photos-upload-album-select, #photos-upload-newalbum {
-  width: 99%; }
-
+       // background-image: url(dark/next.png);
+       background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAnCAMAAADTjiM/AAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAKVQTFRF////gICAQEBAZmZmVVVVSUlJYGBgVVVVTU1NXV1dVVVVWVlZU1hTVlZSVlZTVlZTVVlRVVhSVFdUVlhTVVdTVFZTVVdTVldTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVhSVVdTVVdTVVdTVVdTVVdTVVdTVVdTVVdTVVdT8E3YQQAAADZ0Uk5TAAIEBQYHCAkKCwwUN0FER0hOW2uNjqWqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCxcjT3PP3B0dhfwAAANlJREFUKM910+cSgjAQRtEIomAXu4iIYge7ef9Hs+ZzN4b9eW4mk1kGIaqdU9wQf2Nf5XPSiu4d+Z6jp/n54/KghZ40h5ZymbFQGCCkLg3WKC+MEfYs2AHCrszCBGHLQ5gXpggbFooRwrrEwgxhxUOcE5w5wtJiYYHQZjt0EuUhX3r19vU7Y++ozgeMD7i/buYhYTcDj8gz3RQ8prwHB/aPyzvwhPLWzBtwSLi0Bk8pr8BR0cgzwiIycw0cUxZ9xXOH7VZ9vAVn4X840Vh4F9Pp1w/gZ92mpesDuLpM+1blc68AAAAASUVORK5CYII=");
+    left: 44%;
+}
+#photo-prev-link a,
+#photo-next-link a {
+       display: block;
+       .box(100%, 100%);
+       .rounded_corners;
+       overflow: hidden;
+       text-indent: -900000px;
+}
+#photos-upload-spacer,
+#photos-upload-new-wrapper,
+#photos-upload-exist-wrapper {
+       margin-bottom: 1em;
+}
+#photos-upload-existing-album-text,
+#photos-upload-newalbum-div {
+       background-color: @menu_bg_colour;
+       color: @main_alt_colour;
+       padding: 1px;
+}
+#photos-upload-album-select,
+#photos-upload-newalbum {
+       width: 99%;
+}
 #photos-upload-perms-menu {
-  text-align: right; }
-
-#photo-edit-caption, #photo-edit-newtag, #photo-edit-albumname {
-  float: left;
-  margin-bottom: 25px; }
-
+       text-align: right;
+}
+#photo-edit-caption,
+#photo-edit-newtag,
+#photo-edit-albumname {
+       float: left;
+       margin-bottom: 25px;
+}
 #photo-edit-link-wrap {
-  margin-bottom: 15px; }
-
-#photo-edit-caption, #photo-edit-newtag {
-  width: 100%; }
-
+       margin-bottom: 15px;
+}
+#photo-edit-caption,
+#photo-edit-newtag {
+       width: 100%;
+}
 #photo-like-div {
-  margin-bottom: 25px; }
-
-#photo-edit-caption-end, #photo-edit-tags-end, #photo-edit-albumname-end {
-  clear: both; }
-
+       margin-bottom: 25px;
+}
 #photo-edit-delete-button {
-  margin-left: 200px; }
-
+       margin-left: 200px;
+}
 #photo-edit-end {
-  margin-bottom: 35px; }
-
+       margin-bottom: 35px;
+}
 #photo-caption {
-  font-size: 110%;
-  font-weight: bold;
-  margin-top: 15px;
-  margin-bottom: 15px; }
+       font-size: 110%;
+       font-weight: bold;
+       margin-top: 15px;
+       margin-bottom: 15px;
+}
+
 
 /**
  * message
  */
-
 .prvmail-text {
-  width: 100%; }
-
+       width: 100%;
+}
 #prvmail-subject {
-  width: 100%;
-  color: #2e2f2e;
-  background: #eec; }
-
+       width: 100%;
+       color: @bg_colour;
+       background: @main_colour;
+}
 #prvmail-submit-wrapper {
-  margin-top: 10px; }
-
+       margin-top: 10px;
+}
 #prvmail-submit {
-  float: right;
-  margin-top: 0; }
-
+       float: right;
+       margin-top: 0;
+}
 #prvmail-submit-wrapper div {
-  margin-right: 5px;
-  float: left; }
-
+       margin-right: 5px;
+       float: left;
+}
 .mail-list-outside-wrapper {
-  margin-top: 20px; }
-
+       margin-top: 20px;
+}
 .mail-list-sender {
-  float: left; }
-
+       float: left;
+}
 .mail-list-detail {
-  margin-left: 90px; }
-
+       margin-left: 90px;
+}
 .mail-list-sender-name {
-  display: inline;
-  font-size: 1.1em; }
-
+       display: inline;
+       font-size: 1.1em;
+}
 .mail-list-date {
-  display: inline;
-  font-size: 0.9em;
-  padding-left: 10px; }
-
+       display: inline;
+       font-size: 0.9em;
+       padding-left: 10px;
+}
 .mail-list-sender-name, .mail-list-date {
-  font-style: italic; }
-
+       font-style: italic;
+}
 .mail-list-subject {
-  font-size: 1.2em; }
-
+       font-size: 1.2em;
+}
 .mail-list-delete-wrapper {
-  float: right; }
-
+       float: right;
+}
 .mail-list-outside-wrapper-end {
-  clear: both;
-  border-bottom: 1px #eec dotted; }
-
+       clear: both;
+       border-bottom: 1px @main_colour dotted;
+}
 .mail-conv-sender {
-  float: left;
-  margin: 0px 5px 5px 0px; }
-
+       float: left;
+       margin: 0px 5px 5px 0px;
+}
 .mail-conv-sender-photo {
-  width: 32px;
-  height: 32px; }
-
+       .box(32px, 32px)
+}
 .mail-conv-sender-name {
-  float: left; }
-
+       float: left;
+}
 .mail-conv-date {
-  float: right; }
-
+       float: right;
+}
 .mail-conv-subject {
-  clear: right;
-  font-weight: bold;
-  font-size: 1.2em; }
-
+       clear: right;
+       font-weight: bold;
+       font-size: 1.2em;
+}
 .mail-conv-body {
-  clear: both; }
-
+       clear: both;
+}
 .mail-conv-delete-wrapper {
-  margin-top: 5px; }
+       margin-top: 5px;
+}
+
 
 /**
  * contacts
  */
-
 .view-contact-wrapper, .contact-entry-wrapper {
-  float: left;
-  margin: 0 5px 40px 0;
-  width: 120px;
-  height: 120px;
-  padding: 3px;
-  position: relative; }
-
+       float: left;
+       margin: 0 5px 40px 0;
+       .box(120px, 120px);
+       padding: 3px;
+       position: relative;
+}
 .contact-direction-wrapper {
-  position: absolute;
-  top: 20px; }
-
+       position: absolute;
+       top: 20px;
+}
 .contact-edit-links {
-  position: absolute;
-  top: 60px; }
-
+       position: absolute;
+       top: 60px;
+}
 .contact-entry-photo-wrapper {}
 
 .contact-entry-photo {
-  margin-left: 20px; }
-
+       margin-left: 20px;
+}
 .contact-entry-name {
-  width: 120px;
-  font-weight: bold;
-  /*overflow: hidden;*/ }
-
+       width: 120px;
+       font-weight: bold;
+}
 .contact-entry-photo {
-  position: relative; }
-
+       position: relative;
+}
 .contact-entry-edit-links .icon {
-  border: 1px solid #babdb6;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-  background-color: #fff; }
-
-#contact-entry-url, [id^="contact-entry-url"] {
-  font-size: smaller;
-  /*overflow: scroll;*/ }
-
-#contact-entry-network, [id^="contact-entry-network"] {
-  font-size: smaller;
-  font-style: italic; }
-
+       .borders(1px, solid, #babdb6);
+       .rounded_corners(3px);
+       background-color: white;
+}
+#contact-entry-url,
+[id^="contact-entry-url"],
+#contact-entry-network,
+[id^="contact-entry-network"] {
+       font-size: smaller;
+}
+#contact-entry-network,
+[id^="contact-entry-network"] {
+       font-style: italic;
+}
 #contact-edit-banner-name {
-  font-size: 1.5em; }
+       font-size: 1.5em;
+}
 
 #contact-edit-photo-wrapper {
-  position: relative;
-  float: left;
-  padding: 20px; }
-
+       position: relative;
+       float: left;
+       padding: 20px;
+}
 #contact-edit-direction-icon {
-  position: absolute;
-  top: 60px;
-  left: 0; }
-
+       position: absolute;
+       top: 60px;
+       left: 0;
+}
 #contact-edit-nav-wrapper {
-  margin-left: 0px; }
-
+       margin-left: 0px;
+}
 #contact-edit-links {
-  margin-top: 23px;
-  ul {
-    list-style-type: none; } }
-
+       margin-top: 23px;
+}
 #contact-drop-links {
-  margin-left: 5px; }
-
+       margin-left: 5px;
+}
 #contact-edit-nav-wrapper .icon {
-  border: 1px solid #babdb6;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px; }
-
+       .borders(1px, solid, #babdb6);
+       .rounded_corners(3px);
+}
 #contact-edit-poll-wrapper {
-  margin-left: 0px; }
-
+       margin-left: 0px;
+}
 #contact-edit-last-update-text {
-  margin-bottom: 15px; }
-
+       margin-bottom: 15px;
+}
 #contact-edit-last-updated {
-  font-weight: bold; }
-
+       font-weight: bold;
+}
 #contact-edit-poll-text {
-  display: inline; }
-
-#contact-edit-info_tbl, #contact-edit-info_parent, .mceLayout {
-  width: 100%; }
-
+       display: inline;
+}
+#contact-edit-info_tbl,
+#contact-edit-info_parent,
+.mceLayout {
+       width: 100%; }
 #contact-edit-end {
-  clear: both;
-  margin-bottom: 65px; }
-
+       clear: both;
+       margin-bottom: 65px;
+}
 .contact-photo-menu-button {
-  position: absolute;
-  background-image: url("dark/photo-menu.jpg");
-  background-position: top left;
-  background-repeat: no-repeat;
-  margin: 0px;
-  padding: 0px;
-  width: 16px;
-  height: 16px;
-  top: 64px;
-  left: 0px;
-  overflow: hidden;
-  text-indent: 40px;
-  display: none; }
-
+       position: absolute;
+       background: url("dark/photo-menu.jpg") top left no-repeat transparent;
+       margin: 0px;
+       padding: 0px;
+       .box(16px, 16px);
+       top: 64px;
+       left: 0px;
+       overflow: hidden;
+       text-indent: 40px;
+       display: none;
+}
 .contact-photo-menu {
-  width: auto;
-  border: 2px solid #444;
-  background: #2e2f2e;
-  color: #eec;
-  position: absolute;
-  left: 0px;
-  top: 90px;
-  display: none;
-  z-index: 10000;
-  ul {
-    margin: 0px;
-    padding: 0px;
-    list-style: none; }
-  li a {
-    display: block;
-    padding: 2px;
-    &:hover {
-      color: #fff;
-      background: #3465A4;
-      text-decoration: none; } } }
+       width: auto;
+       .borders(2px, solid, darken(@main_alt_colour, 66.5%));
+       background: @bg_colour;
+       color: @main_colour;
+       position: absolute;
+       left: 0px;
+       top: 90px;
+       display: none;
+       z-index: 10000;
+       li a {
+               display: block;
+               padding: 2px;
+               &:hover {
+                       color: white;
+                       background: #3465A4;
+                       text-decoration: none;
+               }
+       }
+}
+
 
 /**
  * register, settings & profile forms
  */
-
 .openid {}
 
 #id_openid_url {
-  background: url(dark/login-bg.gif) no-repeat;
-  background-position: 0 50%;
-  padding-left: 18px; }
-
+       background: url(dark/login-bg.gif) no-repeat;
+       background-position: 0 50%;
+       padding-left: 18px;
+}
 #settings-nickname-desc {
-  background-color: #eec;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-  padding: 5px;
-  color: #111; }
-
+       background-color: @main_colour;
+       .rounded_corners;
+       padding: 5px;
+       color: @shadow_colour;
+}
 #settings-default-perms {
-  margin-bottom: 20px; }
-
+       margin-bottom: 20px;
+}
 #register-form div, #profile-edit-form div {
-  clear: both; }
-
+       clear: both;
+}
 .settings-block {
-  label {
-    clear: left; }
-  input {
-    margin: 10px 5px; } }
-
-/*#register-form label,     */
-/*#profile-edit-form label {*/
-/*    width: 300px;         */
-/*    float: left;          */
-/*}                         */
-
-/*#register-form span,     */
-/*#profile-edit-form span {*/
-/*    color: #555753;      */
-/*    display: block;      */
-/*    margin-bottom: 20px; */
-/*}                        */
-
+       label {
+               clear: left;
+       }
+       input {
+               margin: 10px 5px;
+       }
+}
+#register-form label,
+#profile-edit-form label {
+    width: 300px;
+    float: left;
+} 
+#register-form span,
+#profile-edit-form span {
+    color: @menu_bg_colour;
+    display: block;
+    margin-bottom: 20px;
+}
 #profile-edit-marital-label span {
-  margin: -4px; }
-
+       margin: -4px;
+}
 .settings-submit-wrapper, .profile-edit-submit-wrapper {
-  margin: 0 0 30px -3px; }
-
+       margin: 0 0 30px -3px;
+}
 .profile-edit-side-div {
-  display: none; }
-
+       display: none;
+}
 /*.profile-edit-side-div:hover {
     display: block;
 }
@@ -1846,1066 +1861,1199 @@ div {
 }*/
 
 #profiles-menu-trigger {
-  margin: 0px 0px 0px 25px; }
-
+       margin: 0px 0px 0px 25px;
+}
 .profile-listing {
-  float: left;
-  margin: 20px 20px 0px 0px; }
-
+       float: left;
+       margin: 20px 20px 0px 0px;
+}
 .icon-profile-edit {
-  background: url("dark/icons.png") -150px 0px no-repeat;
-  border: 0;
-  cursor: pointer;
-  display: block;
-  float: right;
-  width: 20px;
-  height: 20px;
-  margin: 0 0 -18px;
-  position: absolute;
-  text-decoration: none;
-  top: 113px;
-  right: 260px; }
-
+       background: url("dark/icons.png") -150px 0px no-repeat;
+       border: 0;
+       cursor: pointer;
+       display: block;
+       .box(20px, 20px);
+       margin: 0 0 -18px;
+       text-decoration: none;
+       top: 113px;
+       right: 260px;
+}
 #profile-edit-links ul {
-  margin: 20px 0;
-  padding: 0;
-  list-style: none; }
-
+       .list_reset;
+       margin: 20px 0;
+}
 .marital {
-  margin-top: 5px; }
-
+       margin-top: 5px;
+}
 #register-sitename {
-  display: inline;
-  font-weight: bold; }
-
+       display: inline;
+       font-weight: bold;
+}
 #advanced-expire-popup {
-  background: #2e2f2e;
-  color: #eec; }
-
+       background: @bg_colour;
+       color: @main_colour;
+}
 #id_ssl_policy {
-  width: 374px; }
-
+       width: 374px;
+}
 #theme-preview img {
-  margin: 10px 10px 10px 288px; }
+       margin: 10px 10px 10px 288px;
+}
+
 
 /**
  * contacts selector
  */
-
 .group-delete-wrapper {
-  margin: -31px 50px 0 0;
-  float: right; }
-
+       margin: -31px 50px 0 0;
+       float: right;
+}
 /*.group-delete-icon {
     margin: 0 0 0 10px;
 }*/
-
 #group-edit-submit-wrapper {
-  margin: 0 0 10px 0;
-  display: inline; }
-
+       margin: 0 0 10px 0;
+       display: inline;
+}
 #group-edit-desc {
-  margin: 10px 0px; }
-
+       margin: 10px 0px;
+}
 #group-members, #prof-members {
-  height: 200px;
-  overflow: auto;
-  border: 1px solid #555753;
-  -webkit-border-radius: 5px 5px 0 0;
-  -moz-border-radius: 5px 5px 0 0;
-  border-radius: 5px 5px 0 0; }
-
+       height: 200px;
+       overflow: auto;
+       .borders(1px, solid, #555753);
+       .rounded_corners(5px 5px 0 0);
+}
 #group-all-contacts, #prof-all-contacts {
-  height: 200px;
-  overflow: auto;
-  border: 1px solid #555753;
-  -webkit-border-radius: 0 0 5px 5px;
-  -moz-border-radius: 0 0 5px 5px;
-  border-radius: 0 0 5px 5px; }
-
-#group-members h3, #group-all-contacts h3, #prof-members h3, #prof-all-contacts h3 {
-  color: #eeeeec;
-  background-color: #555753;
-  margin: 0;
-  padding: 5px; }
-
+       height: 200px;
+       overflow: auto;
+       .borders(1px, solid, #555753);
+       .rounded_corners(0 0 5px 5px);
+}
+#group-members h3,
+#group-all-contacts h3,
+#prof-members h3,
+#prof-all-contacts h3 {
+       color: @main_alt_colour;
+       background-color: #555753;
+       margin: 0;
+       padding: 5px;
+}
 #group-separator, #prof-separator {
-  display: none; }
+       display: none;
+}
+
 
 /**
  * profile
  */
-
 #cropimage-wrapper {
-  float: left; }
-
+       float: left;
+}
 #crop-image-form {
-  clear: both; }
+       clear: both;
+}
+
 
 /**
  * intros
  */
-
 .intro-wrapper {
-  margin-top: 20px; }
-
+       margin-top: 20px;
+}
 .intro-fullname {
-  font-size: 1.1em;
-  font-weight: bold; }
-
+       font-size: 1.1em;
+       font-weight: bold;
+}
 .intro-desc {
-  margin-bottom: 20px;
-  font-weight: bold; }
-
+       margin-bottom: 20px;
+       font-weight: bold;
+}
 .intro-note {
-  padding: 10px; }
-
+       padding: 10px;
+}
 .intro-end {
-  padding: 30px; }
-
+       padding: 30px;
+}
 .intro-form {
-  float: left; }
-
-.intro-approve-form, .intro-approve-as-friend-end {
-  clear: both; }
-
+       float: left;
+}
+.intro-approve-form,
+.intro-approve-as-friend-end {
+       clear: both;
+}
 .intro-submit-approve, .intro-submit-ignore {
-  margin-right: 20px; }
-
+       margin-right: 20px;
+}
 .intro-submit-approve {
-  margin-top: 15px; }
-
-.intro-approve-as-friend-label, .intro-approve-as-fan-label, .intro-approve-as-friend, .intro-approve-as-fan {
-  float: left; }
-
+       margin-top: 15px;
+}
+.intro-approve-as-friend-label,
+.intro-approve-as-fan-label,
+.intro-approve-as-friend,
+.intro-approve-as-fan {
+       float: left;
+}
 .intro-form-end {
-  clear: both;
-  margin-bottom: 10px; }
-
+       clear: both;
+       margin-bottom: 10px;
+}
 .intro-approve-as-friend-desc {
-  margin-top: 10px; }
-
+       margin-top: 10px;
+}
 .intro-approve-as-end {
-  clear: both;
-  margin-bottom: 10px; }
-
+       clear: both;
+       margin-bottom: 10px;
+}
 .intro-end, .clear {
-  clear: both; }
+       clear: both;
+}
+
 
 /**
  * events
  */
-
 .eventcal {
-  float: left;
-  font-size: 20px; }
-
+       float: left;
+       font-size: 20px;
+}
 .event {
-  background: #2e2f2e; }
-
+       background: @bg_colour;
+}
 .vevent {
-  border: 1px solid #ccc;
-  .event-description, .event-location, .event-start {
-    margin-left: 10px;
-    margin-right: 10px; } }
-
+       border: 1px solid darken(@main_alt_colour, 13.5%);
+       .event-description, .event-location, .event-start {
+               margin-left: 10px;
+               margin-right: 10px;
+       }
+}
 #new-event-link {
-  margin-bottom: 10px; }
-
+       margin-bottom: 10px;
+}
 .edit-event-link, .plink-event-link {
   /*float: left;      */
   /*margin-top: 4px;  */
   /*margin-right: 4px;*/
-  /*margin-bottom: 15px;*/ }
-
+  /*margin-bottom: 15px;*/
+}
 .event-description:before {
-  content: url('../../../images/calendar.png');
-  margin-right: 15px; }
-
-.event-start, .event-end {
-  margin-left: 10px;
-  width: 330px;
-  font-size: smaller; }
-
-.event-start .dtstart, .event-end .dtend {
-  float: right; }
-
+       content: url('../../../images/calendar.png');
+       margin-right: 15px;
+}
+.event-start,
+.event-end {
+       margin-left: 10px;
+       width: 330px;
+       font-size: smaller;
+}
+.event-start .dtstart,
+.event-end .dtend {
+       float: right;
+}
 .event-list-date {
-  margin-bottom: 10px; }
-
+       margin-bottom: 10px;
+}
 .prevcal, .nextcal {
-  float: left;
-  margin-left: 32px;
-  margin-right: 32px;
-  margin-top: 64px; }
-
-.event-calendar-end {
-  clear: both; }
-
+       float: left;
+       margin: 64px 32px auto 32px;
+}
 .calendar {
-  font-family: monospace; }
-
+       font-family: monospace;
+}
 .today {
-  font-weight: bold;
-  color: #FF0000; }
-
+       font-weight: bold;
+       color: red;
+}
 #event-start-text, #event-finish-text {
-  margin-top: 10px;
-  margin-bottom: 5px; }
-
-#event-nofinish-checkbox, #event-nofinish-text, #event-adjust-checkbox, #event-adjust-text, #event-share-checkbox {
-  float: left; }
-
+       margin-top: 10px;
+       margin-bottom: 5px;
+}
+#event-nofinish-checkbox,
+#event-nofinish-text,
+#event-adjust-checkbox,
+#event-adjust-text,
+#event-share-checkbox {
+       float: left;
+}
 #event-datetime-break {
-  margin-bottom: 10px; }
-
-#event-nofinish-break, #event-adjust-break, #event-share-break {
-  clear: both; }
-
+       margin-bottom: 10px;
+}
+#event-nofinish-break,
+#event-adjust-break,
+#event-share-break {
+       clear: both;
+}
 #event-desc-text, #event-location-text {
-  margin-top: 10px;
-  margin-bottom: 5px; }
-
+       margin-top: 10px;
+       margin-bottom: 5px;
+}
 #event-submit {
-  margin-top: 10px; }
-
+       margin-top: 10px;
+}
 .body-tag {
-  margin: 10px 0;
-  opacity: 0.5;
-  &:hover {
-    opacity: 1.0 !important; } }
-
+       margin: 10px 0;
+       opacity: 0.5;
+       &:hover {
+               opacity: 1.0 !important;
+       }
+}
 .filesavetags, .categorytags {
-  margin: 20px 0;
-  opacity: 0.5; }
-
+       margin: 20px 0;
+       opacity: 0.5;
+}
 .filesavetags:hover, .categorytags:hover {
-  margin: 20px 0;
-  opacity: 1.0 !important; }
-
+       margin: 20px 0;
+       opacity: 1.0 !important;
+}
 .item-select {
-  opacity: 0.1;
-  margin: 5px 0 0 6px !important;
-  &:hover {
-    opacity: 1; } }
-
+       opacity: 0.1;
+       margin: 5px 0 0 6px !important;
+       &:hover {
+               opacity: 1;
+       }
+}
 .checkeditem {
-  opacity: 1; }
-
+       opacity: 1;
+}
 #item-delete-selected {
-  margin-top: 30px; }
-
+       margin-top: 30px;
+}
 /* was tired of having no way of moving it around, so
 * here's a little 'hook' to do so */
-
 .delete-checked {
-  position: absolute;
-  left: 35px;
-  margin-top: 20px; }
-
-#item-delete-selected-end {
-  clear: both; }
-
+       position: absolute;
+       left: 35px;
+       margin-top: 20px;
+}
 #item-delete-selected-icon {
-  float: left;
-  margin-right: 5px; }
-
+       float: left;
+       margin-right: 5px;
+}
 #item-delete-selected-desc {
-  float: left;
-  margin-right: 5px;
-  &:hover {
-    text-decoration: underline; } }
-
+       float: left;
+       margin-right: 5px;
+       &:hover {
+               text-decoration: underline;
+       }
+}
 .fc-state-highlight {
-  background: #eec;
-  color: #2e2f2e; }
+       background: @main_colour;
+       color: @bg_colour;
+}
+
 
 /**
  * directory
  */
-
 .directory-item {
-  float: left;
-  margin: 0 5px 4px 0;
-  padding: 3px;
-  width: 180px;
-  height: 250px;
-  position: relative; }
+       float: left;
+       margin: 0 5px 4px 0;
+       padding: 3px;
+       width: 180px;
+       height: 250px;
+       position: relative;
+}
+
 
 /**
  * sidebar
  */
-
 #group-sidebar {
-  margin-bottom: 10px; }
-
-.group-selected, .nets-selected, .fileas-selected {
-  padding: 3px;
-  color: #2e2f2e;
-  background: #88a9d2;
-  font-weight: bold; }
-
-.group-selected:hover, .nets-selected:hover, .fileas-selected:hover {
-  color: #2e2f2e; }
-
+       margin-bottom: 10px;
+}
+.group-selected,
+.nets-selected,
+.fileas-selected {
+       padding: 3px;
+       color: @bg_colour;
+       background: @main_colour;
+       font-weight: bold;
+}
+.group-selected:hover,
+.nets-selected:hover,
+.fileas-selected:hover {
+       color: @link_colour;
+       background: @bg_colour;
+}
 .groupsideedit {
-  margin-right: 10px; }
-
+       margin-right: 10px;
+}
 #sidebar-group-ul {
-  padding-left: 0; }
-
+       padding-left: 0;
+}
 #sidebar-group-list {
-  margin: 0 0 5px 0;
-  ul {
-    list-style-type: none;
-    list-style-position: inside; }
-  li {
-    margin-top: 10px; }
-  .icon {
-    display: inline-block;
-    height: 12px;
-    width: 12px; } }
-
+       margin: 0 0 5px 0;
+       li {
+               margin-top: 10px;
+       }
+       .icon {
+               display: inline-block;
+               .box(12px, 12px);
+       }
+}
+.sidebar-group-element {
+       padding: 3px;
+       &:hover {
+               color: @bg_colour;
+               background: @link_colour;
+               font-weight: bold;
+               padding: 3px;
+       }
+}
 #sidebar-new-group {
-  margin: auto;
-  display: inline-block;
-  color: #efefef;
-  text-decoration: none;
-  text-align: center; }
-
+       margin: auto;
+       display: inline-block;
+       color: @main_alt_colour;
+       text-decoration: none;
+       text-align: center;
+}
 #peoplefind-sidebar form {
-  margin-bottom: 10px; }
-
+       margin-bottom: 10px;
+}
 #sidebar-new-group {
-  &:hover {
-    /*background: -webkit-gradient( linear, left top, left bottom, color-stop(0.05, #b20202), color-stop(1, #d60808) );*/
-    /*background: -moz-linear-gradient( center top, #b20202 5%, #d60808 100% );*/
-    /*background-color: #b20202;*/ }
-  &:active {
-    position: relative;
-    top: 1px; } }
-
+       &:hover {
+               /*background: -webkit-gradient( linear, left top, left bottom, color-stop(0.05, #b20202), color-stop(1, #d60808) );*/
+               /*background: -moz-linear-gradient( center top, #b20202 5%, #d60808 100% );*/
+               /*background-color: #b20202;*/ }
+       &:active {
+               position: relative;
+               top: 1px;
+       }
+}
 #side-peoplefind-url {
-  background-color: #2e2f2e;
-  color: #eec;
-  border: 1px #999 solid;
-  margin-right: 3px;
-  width: 75%;
-  &:hover, &:focus {
-    background-color: #efefef;
-    color: #222;
-    border: 1px 333 solid; } }
-
+       background-color: @bg_colour;
+       color: @main_colour;
+       .borders(1px, solid, darken(@main_alt_colour, 33.5%));
+       margin-right: 3px;
+       width: 75%;
+       &:hover, &:focus {
+               background-color: @main_alt_colour;
+               color: darken(@main_alt_colour, 80%);
+               .borders(1px, solid, darken(@main_alt_colour, 73.5%));
+       }
+}
 .nets-ul {
-  list-style-type: none;
-  padding-left: 0px;
-  li {
-    margin: 10px 0 0; } }
-
+       .list_reset;
+       li {
+               margin: 10px 0 0;
+       }
+}
 .nets-link, .nets-all {
-  margin-left: 0px; }
-
+       margin-left: 0px;
+}
 #netsearch-box {
-  margin-top: 20px;
-  width: 150px;
-  #search-submit {
-    margin: 5px 0px 0px 0px; } }
+       margin: 20px 0px 30px;
+       width: 135px;
+       #search-submit {
+               margin: 5px 5px 0px 0px;
+       }
+}
+
 
 /**
  * admin
  */
-
 #pending-update {
-  float: right;
-  color: #fff;
-  font-weight: bold;
-  background-color: #ff0000;
-  padding: 0 .3em; }
-
+       float: right;
+       color: white;
+       font-weight: bold;
+       background-color: red;
+       padding: 0 0.3em;
+}
 .admin {
-  &.linklist {
-    border: 0;
-    padding: 0; }
-  &.link {
-    list-style-position: inside; } }
-
+       &.linklist {
+               border: 0;
+               padding: 0;
+       }
+       &.link {
+               .list_reset;
+       }
+}
 #adminpage {
-  color: #eec;
-  background: #2e2f2e;
-  margin: 5px;
-  padding: 10px;
-  dl {
-    clear: left;
-    margin-bottom: 2px;
-    padding-bottom: 2px;
-    border-bottom: 1px solid #000; }
-  dt {
-    width: 250px;
-    float: left;
-    font-weight: bold; }
-  dd {
-    margin-left: 250px; }
-  h3 {
-    border-bottom: 1px solid #ccc; }
-  .submit {
-    clear: left; }
-  #pluginslist {
-    margin: 0;
-    padding: 0; }
-  .plugin {
-    list-style: none;
-    display: block;
-    border: 1px solid #888;
-    padding: 1em;
-    margin-bottom: 5px;
-    clear: left; }
-  .toggleplugin {
-    float: left;
-    margin-right: 1em; }
-  table {
-    width: 100%;
-    border-bottom: 1px solid #000;
-    margin: 5px 0;
-    th {
-      text-align: left; } }
-  td .icon {
-    float: left; }
-  table {
-    &#users img {
-      width: 16px;
-      height: 16px; }
-    tr:hover {
-      color: #2e2f2e;
-      background-color: #eec; } }
-  .selectall {
-    text-align: right; }
-  #users a {
-    color: #eec;
-    text-decoration: underline; } }
-
+       color: @main_colour;
+       background: @bg_colour;
+       margin: 5px;
+       padding: 10px;
+       dl {
+           clear: left;
+               margin-bottom: 2px;
+               padding-bottom: 2px;
+               border-bottom: 1px solid @shadow_colour;
+       }
+       dt {
+               width: 250px;
+               float: left;
+               font-weight: bold;
+       }
+       dd {
+               margin-left: 250px;
+       }
+       h3 {
+               border-bottom: 1px solid darken(@main_alt_colour, 13.5%);
+       }
+       .submit {
+               clear: left;
+       }
+       #pluginslist {
+               margin: 0;
+               padding: 0;
+       }
+       .plugin {
+               display: block;
+               .borders(1px, solid, darken(@main_alt_colour, 40%));
+               padding: 1em;
+               margin-bottom: 5px;
+               clear: left;
+       }
+       .toggleplugin {
+               float: left;
+               margin-right: 1em;
+       }
+       table {
+               width: 100%;
+               border-bottom: 1px solid @shadow_colour;
+               margin: 5px 0;
+               th {
+                       text-align: left;
+               }
+       }
+       td .icon {
+               float: left;
+       }
+       table {
+               &#users img {
+                       .box(16px, 16px);
+               }
+       }
+       .selectall {
+               text-align: right;
+       }
+       #users a {
+               color: @main_colour;
+               text-decoration: underline;
+       }
+}
 #users .name {
-  color: #eec; }
+       color: @main_colour;
+}
+
 
 /**
  * form fields
  */
-
 .field {
-  /*margin-bottom: 10px;*/
-  /*padding-bottom: 10px;*/
-  overflow: auto;
-  /* width: 100%;*/
-  label {
-    width: 38%;
-    display: inline-block;
-    font-size: 1.077em;
-    margin: 0 10px 1em 0;
-    border: 1px #2e2f2e solid;
-    padding: 5px;
-    background: #eec;
-    color: #111; } }
-
+       overflow: auto;
+       label {
+               width: 38%;
+               display: inline-block;
+               font-size: 1.077em;
+               margin: 0 10px 1em 0;
+               border: 1px @bg_colour solid;
+               padding: 5px;
+               background: @main_colour;
+               color: #111;
+       }
+}
 .field .onoff {
-  float: right;
-  margin: 0 330px 0 auto;
-  width: 80px;
-  a {
-    display: block;
-    border: 1px solid #666;
-    padding: 3px 6px 4px 10px;
-    height: 16px;
-    text-decoration: none; }
-  .on {
-    background: url("../../../images/onoff.jpg") no-repeat 42px 1px #999999;
-    color: #111;
-    text-align: left; }
-  .off {
-    background: url("../../../images/onoff.jpg") no-repeat 2px 1px #cccccc;
-    color: #333;
-    text-align: right; } }
-
+       float: right;
+       margin: 0 330px 0 auto;
+       width: 80px;
+       a {
+               display: block;
+               .borders(1px, solid, darken(@main_alt_colour, 53.5%));
+               padding: 3px 6px 4px 10px;
+               height: 16px;
+               text-decoration: none;
+       }
+       .on, .off {
+               background-image: url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAUACIDASIAAhEBAxEB/8QAGgABAQACAwAAAAAAAAAAAAAAAAQDBQEGCf/EACgQAAIBAwIFAwUAAAAAAAAAAAECAAMEERIUBRMxUpEhIoEjM1Nxkv/EABcBAAMBAAAAAAAAAAAAAAAAAAABAgT/xAAaEQEAAgMBAAAAAAAAAAAAAAAAAQIRMVES/9oADAMBAAIRAxEAPwD1ERKFNFVaNNVUYACgACcNVt1dEKUwzZwNI9cSDczDVdnuKDjomrPyJOQ2SXNq/L0rTPMzp9vXHWZfo/jT+RNFQV6e2yPt6s/Ms3EWQofhnDqjszWFqzMcljRUknxEn3ES/dup8xxPZ0hXtKFViQzorEDpkiZtqvc3mIkzs40bVe5vMbVe5vMREbrN3xy4t7utSVaZVHZQSDnAP7iIm+K1xpkm09f/2Q==');
+               background-repeat: no-repeat;
+       }
+       .on {
+               background-position: 42px 1px;
+               background-color: darken(@main_alt_colour, 33.5%);
+               color: darken(@main_alt_colour, 86.5%);
+               text-align: left;
+       }
+       .off {
+               background-position: 2px 1px;
+               background-color: darken(@main_alt_colour, 13.5%);
+               color: darken(@main_alt_colour, 73.5%);
+               text-align: right;
+       }
+}
 .hidden {
-  display: none !important; }
-
+       display: none !important;
+}
 .field textarea {
-  width: 80%;
-  height: 100px; }
-
+       .box(80%, 100px);
+}
 .field_help {
-  display: block;
-  margin-left: 297px;
-  color: #aaa; }
-
+       display: block;
+       margin-left: 297px;
+       color: darken(@main_alt_colour, 24%);
+}
 .field.radio .field_help {
-  margin-left: 297px; }
-
+       margin-left: 297px;
+}
 label {
-  width: 38%;
-  display: inline-block;
-  font-size: 1.077em;
-  margin: 0 10px 1em 0;
-  border: 1px #2e2f2e solid;
-  padding: 5px;
-  background: #eec;
-  color: #111; }
-
+       width: 38%;
+       display: inline-block;
+       font-size: 1.077em;
+       margin: 0 10px 1em 0;
+       .borders(1px, solid, @bg_colour);
+       padding: 5px;
+       background: @main_colour;
+       color: darken(@main_alt_colour, 86.5%);
+       .box_shadow(3px, 3px, 5px);
+}
 input {
-  width: 250px;
-  height: 25px;
-  border: 1px #999 solid;
-  &[type="text"], &[type="password"], &[type="search"] {
-    width: 250px;
-    height: 25px;
-    border: 1px #999 solid; }
-  &[type="checkbox"], &[type="radio"] {
-    border: 1px #999 solid;
-    margin: 0 0 0 0;
-    height: 15px;
-    width: 15px; }
-  &[type="submit"], &[type="button"] {
-    background-color: #eee;
-    border: 2px outset #aaa;
-    border-radius: 5px;
-    box-shadow: 1px 3px 4px 0 #111;
-    color: #2e302e;
-    cursor: pointer;
-    font-weight: bold;
-    width: auto;
-    text-shadow: 1px 1px #000;
-    -webkit-border-radius: 5px;
-    -moz-border-radius: 5px; }
-  &[type="submit"]:active, &[type="button"]:active {
-    box-shadow: 0 0 0 0; } }
+       .box(250px, 25px);
+       .borders(1px, solid, darken(@main_alt_colour, 33.5%));
+       &[type="checkbox"],
+       &[type="radio"] {
+               margin: 0;
+               .box(15px, 15px);
+       }
+       &[type="submit"],
+       &[type="button"] {
+               background-color: @main_alt_colour;
+               .borders(2px, outset, darken(@main_alt_colour, 24%));
+               .rounded_corners;
+               .box_shadow(1px, 3px, 4px, 0);
+               color: @bg_alt_colour;
+               cursor: pointer;
+               font-weight: bold;
+               width: auto;
+               .text_shadow;
+       }
+       &[type="submit"]:active,
+       &[type="button"]:active {
+               .box_shadow(0, 0, 0, 0);
+       }
+}
 
 
 /*
  * update
  */
-
 .popup {
-  width: 100%;
-  height: 100%;
-  top: 0px;
-  left: 0px;
-  position: absolute;
-  display: none;
-  .background {
-    background-color: #000;
-    opacity: 0.5;
-    width: 100%;
-    height: 100%;
-    position: absolute;
-    top: 0px;
-    left: 0px; }
-  .panel {
-    top: 25%;
-    left: 25%;
-    width: 50%;
-    height: 50%;
-    padding: 1em;
-    position: absolute;
-    border: 4px solid #000000;
-    background-color: #FFFFFF; } }
-
+       .box(100%, 100%);
+       top: 0px;
+       left: 0px;
+       position: absolute;
+       display: none;
+       .background {
+               background-color: darken(@main_alt_colour, 86.5%);
+               opacity: 0.5;
+               .box(100%, 100%);
+               position: absolute;
+               top: 0px;
+               left: 0px;
+       }
+       .panel {
+               top: 25%;
+               left: 25%;
+               .box(50%, 50%);
+               padding: 1em;
+               position: absolute;
+               .borders(4px, solid, black);
+               background-color: white;
+       }
+}
 #panel {
-  z-index: 100; }
-
-.grey {
-  color: grey; }
-
+       z-index: 100;
+}
+.grey, .gray {
+       color: gray;
+}
 .orange {
-  color: orange; }
-
+       color: orange;
+}
 .red {
-  color: red; }
-
+       color: red;
+}
 .popup .panel {
-  .panel_text {
-    display: block;
-    overflow: auto;
-    height: 80%; }
-  .panel_in {
-    width: 100%;
-    height: 100%;
-    position: relative; }
-  .panel_actions {
-    width: 100%;
-    bottom: 4px;
-    left: 0px;
-    position: absolute; } }
-
+       .panel_text {
+               display: block;
+               overflow: auto;
+               height: 80%;
+       }
+       .panel_in {
+               .box(100%, 100%);
+               position: relative;
+       }
+       .panel_actions {
+               width: 100%;
+               bottom: 4px;
+               left: 0px;
+               position: absolute;
+       }
+}
 .panel_text .progress {
-  width: 50%;
-  overflow: hidden;
-  height: auto;
-  border: 1px solid #cccccc;
-  margin-bottom: 5px;
-  span {
-    float: right;
-    display: block;
-    width: 25%;
-    background-color: #eeeeee;
-    text-align: right; } }
+       width: 50%;
+       overflow: hidden;
+       height: auto;
+       .borders(1px, solid, darken(@main_alt_colour, 13.5%));
+       margin-bottom: 5px;
+       span {
+               float: right;
+               display: block;
+               width: 25%;
+               background-color: @main_alt_colour;
+               text-align: right;
+       }
+}
+
 
 /**
  * OAuth
  */
-
 .oauthapp {
-  height: auto;
-  overflow: auto;
-  border-bottom: 2px solid #cccccc;
-  padding-bottom: 1em;
-  margin-bottom: 1em;
-  img {
-    float: left;
-    width: 48px;
-    height: 48px;
-    margin: 10px;
-    &.noicon {
-      background-image: url("../../../images/icons/48/plugin.png");
-      background-position: center center;
-      background-repeat: no-repeat; } }
-  a {
-    float: left; } }
+       height: auto;
+       overflow: auto;
+       border-bottom: 2px solid darken(@main_alt_colour, 13.5%);
+       padding-bottom: 1em;
+       margin-bottom: 1em;
+       img {
+               float: left;
+               .box(48px, 48px);
+               margin: 10px;
+               &.noicon {
+                       background-image: url("../../../images/icons/48/plugin.png");
+                       background-position: center center;
+                       background-repeat: no-repeat;
+               }
+       }
+       a {
+               float: left;
+       }
+}
+
 
 /**
  * icons
  */
-
 .iconspacer {
-  display: block;
-  width: 16px;
-  height: 16px; }
-
+       display: block;
+       .box(16px, 16px);
+}
 .icon {
-  display: block;
-  width: 20px;
-  height: 20px;
-  background: url(dark/icons.png) no-repeat;
-  border: 0;
-  text-decoration: none;
-  border-radius: 5px;
-  &:hover {
-    border: 0;
-    text-decoration: none; } }
-
+       display: block;
+       .box;
+       background: url(dark/icons.png) no-repeat;
+       border: 0;
+       text-decoration: none;
+       .rounded_corners;
+       &:hover {
+               border: 0;
+               text-decoration: none;
+       }
+}
 .editicon {
-  display: inline-block;
-  width: 21px;
-  height: 21px;
-  background: url(dark/editicons.png) no-repeat;
-  border: 0;
-  text-decoration: none; }
-
+       display: inline-block;
+       .box(21px, 21px);
+       background: url(dark/editicons.png) no-repeat;
+       border: 0;
+       text-decoration: none;
+}
 .shadow {
-  box-shadow: 2px 2px 5px 2px #111;
-  &:active, &:focus, &:hover {
-    box-shadow: 0 0 0 0; } }
-
+       .box_shadow(2px, 2px, 5px, 2px);
+       &:active, &:focus, &:hover {
+               .box_shadow(0, 0, 0, 0);
+       }
+}
 .editicon:hover {
-  border: 0; }
-
+       border: 0;
+}
 .boldbb {
-  background-position: 0px 0px;
-  &:hover {
-    background-position: -22px 0px; } }
-
+       background-position: 0px 0px;
+       &:hover {
+               background-position: -22px 0px; }
+}
 .italicbb {
-  background-position: 0px -22px;
-  &:hover {
-    background-position: -22px -22px; } }
-
+       background-position: 0px -22px;
+       &:hover {
+               background-position: -22px -22px; }
+}
 .underlinebb {
-  background-position: 0px -44px;
-  &:hover {
-    background-position: -22px -44px; } }
-
+       background-position: 0px -44px;
+       &:hover {
+               background-position: -22px -44px; }
+}
 .quotebb {
-  background-position: 0px -66px;
-  &:hover {
-    background-position: -22px -66px; } }
-
+       background-position: 0px -66px;
+       &:hover {
+               background-position: -22px -66px; }
+}
 .codebb {
-  background-position: 0px -88px;
-  &:hover {
-    background-position: -22px -88px; } }
-
+       background-position: 0px -88px;
+       &:hover {
+               background-position: -22px -88px; }
+}
 .imagebb {
-  background-position: -44px 0px;
-  &:hover {
-    background-position: -66px 0px; } }
-
+       background-position: -44px 0px;
+       &:hover {
+               background-position: -66px 0px; }
+}
 .urlbb {
-  background-position: -44px -22px;
-  &:hover {
-    background-position: -66px -22px; } }
-
+       background-position: -44px -22px;
+       &:hover {
+               background-position: -66px -22px; }
+}
 .videobb {
-  background-position: -44px -44px;
-  &:hover {
-    background-position: -66px -44px; } }
-
+       background-position: -44px -44px;
+       &:hover {
+               background-position: -66px -44px; }
+}
 .icon {
-  &.drop, &.drophide, &.delete {
-    float: left;
-    margin: 0 2px; }
-  &.s22 {
-    &.delete {
-      display: block;
-      background-position: -110px 0; }
-    &.text {
-      padding: 10px 0px 0px 25px;
-      width: 200px; } }
-  &.text {
-    text-indent: 0px; }
-  &.s16 {
-    min-width: 16px;
-    height: 16px; } }
-
+       &.drop, &.drophide, &.delete {
+               float: left;
+               margin: 0 2px;
+       }
+       &.s22 {
+               &.delete {
+                       display: block;
+                       background-position: -110px 0;
+               }
+               &.text {
+                       padding: 10px 0px 0px 25px;
+                       width: 200px;
+               }
+       }
+       &.text {
+               text-indent: 0px;
+       }
+       &.s16 {
+               min-width: 16px;
+               height: 16px;
+       }
+}
+// special case for wall items
+.wall-item-delete-wrapper.icon.delete,
+.wall-item-delete-wrapper.icon.drophide {
+       margin: 0;
+}
 .s16 .add {
-  background: url("../../../images/icons/16/add.png") no-repeat; }
-
+       background: url("../../../images/icons/16/add.png") no-repeat;
+}
 .add {
-  margin: 0px 5px; }
-
+       margin: 0px 5px;
+}
 .article {
-  background-position: -50px 0; }
-
+       background-position: -50px 0;
+}
 .audio {
-  background-position: -70px 0; }
-
+       background-position: -70px 0;
+}
 .block {
-  background-position: -90px 0px; }
-
+       background-position: -90px 0px;
+}
 .drop, .delete {
-  background-position: -110px 0; }
-
+       background-position: -110px 0;
+}
 .drophide {
-  background-position: -130px 0; }
-
+       background-position: -130px 0;
+}
 .edit {
-  background-position: -150px 0; }
-
+       background-position: -150px 0;
+}
 .camera {
-  background-position: -170px 0; }
-
+       background-position: -170px 0;
+}
 .dislike {
-  background-position: -190px 0; }
-
+       background-position: -190px 0;
+}
 .file-as {
-  background-position: -230px -60px; }
-
+       background-position: -230px -60px;
+}
 .like {
-  background-position: -211px 0; }
-
+       background-position: -211px 0;
+}
 .link {
-  background-position: -230px 0; }
-
-.globe, .location {
-  background-position: -50px -20px; }
-
-.noglobe, .nolocation {
-  background-position: -70px -20px; }
-
+       background-position: -230px 0;
+}
+.globe,
+.location {
+       background-position: -50px -20px;
+}
+.noglobe,
+.nolocation {
+       background-position: -70px -20px;
+}
 .no {
-  background-position: -90px -20px; }
-
+       background-position: -90px -20px;
+}
 .pause {
-  background-position: -110px -20px; }
-
+       background-position: -110px -20px;
+}
 .play {
-  background-position: -130px -20px; }
-
+       background-position: -130px -20px;
+}
 .pencil {
-  background-position: -151px -18px; }
-
+       background-position: -151px -18px;
+}
 .small-pencil {
-  background-position: -170px -20px; }
-
+       background-position: -170px -20px;
+}
 .recycle {
-  background-position: -190px -20px; }
-
+       background-position: -190px -20px;
+}
 .remote-link {
-  background-position: -210px -20px; }
-
+       background-position: -210px -20px;
+}
 .share {
-  background-position: -230px -20px; }
-
+       background-position: -230px -20px;
+}
 .tools {
-  background-position: -50px -40px; }
-
+       background-position: -50px -40px;
+}
 .lock {
-  background-position: -70px -40px; }
-
+       background-position: -70px -40px;
+}
 .unlock {
-  background-position: -88px -40px; }
-
+       background-position: -88px -40px;
+}
 .video {
-  background-position: -110px -40px; }
-
+       background-position: -110px -40px;
+}
 .attach {
-  background-position: -190px -40px; }
-
+       background-position: -190px -40px;
+}
 .language {
-  background-position: -210px -40px; }
-
+       background-position: -210px -40px;
+}
 .starred {
-  background-position: -130px -60px; }
-
+       background-position: -130px -60px;
+}
 .unstarred {
-  background-position: -150px -60px; }
-
+       background-position: -150px -60px;
+}
 .tagged {
-  background-position: -170px -60px; }
-
+       background-position: -170px -60px;
+}
 .on {
-  background-position: -50px -60px; }
-
+       background-position: -50px -60px;
+}
 .off {
-  background-position: -70px -60px; }
-
+       background-position: -70px -60px;
+}
 .prev {
-  background-position: -90px -60px; }
-
+       background-position: -90px -60px;
+}
 .next {
-  background-position: -110px -60px; }
-
+       background-position: -110px -60px;
+}
 .icon.dim {
-  opacity: 0.3; }
-
+       opacity: 0.3;
+}
 #pause {
-  position: fixed;
-  bottom: 40px;
-  right: 30px; }
-
+       position: fixed;
+       bottom: 40px;
+       right: 30px;
+}
 .border {
-  border: 1px solid #babdb6;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-  &:hover {
-    border: 1px solid #babdb6;
-    -webkit-border-radius: 5px;
-    -moz-border-radius: 5px;
-    border-radius: 5px; } }
-
+       .borders(1px, solid, @border2);
+       .rounded_corners;
+       &:hover {
+               .borders(1px, solid, @border2);
+               .rounded_corners;
+       }
+}
 .attachtype {
-  display: block;
-  width: 20px;
-  height: 23px;
-  background-image: url(../../../images/content-types.png); }
-
+       display: block;
+       .box(20px, 23px);
+       background-image: url(../../../images/content-types.png);
+}
 .type-video {
-  background-position: 0px 0px; }
-
+       background-position: 0px 0px;
+}
 .type-image {
-  background-position: -20px 0; }
-
+       background-position: -20px 0;
+}
 .type-audio {
-  background-position: -40px 0; }
-
+       background-position: -40px 0;
+}
 .type-text {
-  background-position: -60px 0px; }
-
+       background-position: -60px 0px;
+}
 .type-unkn {
-  background-position: -80px 0; }
+       background-position: -80px 0;
+}
+
 
 /**
  * footer
  */
-
 .cc-license {
-  margin-top: 100px;
-  font-size: 0.7em; }
-
+       margin-top: 100px;
+       font-size: 0.7em;
+}
 footer {
-  display: block;
-  /*margin: 50px 20%;*/
-  clear: both; }
-
+       display: block;
+       clear: both;
+}
 #profile-jot-text {
-  height: 20px;
-  color: #eec;
-  border: 1px solid #eec;
-  border-radius: 5px;
-  width: 99.5%; }
+       height: 20px;
+       color: @main_colour;
+       .borders;
+       .rounded_corners;
+       width: 99.5%;
+}
+
 
 /**
  * acl
  */
-
-#photo-edit-perms-select, #photos-upload-permissions-wrapper, #profile-jot-acl-wrapper {
-  display: block !important;
-  background: #2e2f2e;
-  color: #eec; }
-
+#photo-edit-perms-select,
+#photos-upload-permissions-wrapper,
+#profile-jot-acl-wrapper {
+       display: block !important;
+       background: @bg_colour;
+       color: @main_colour;
+}
 #acl-wrapper {
-  width: 660px;
-  margin: 0 auto; }
-
+       width: 660px;
+       margin: 0 auto;
+}
 #acl-search {
-  float: right;
-  background: white url("../../../images/search_18.png") no-repeat right center;
-  padding-right: 20px;
-  margin: 6px;
-  color: #111; }
-
+       float: right;
+       background: white url("../../../images/search_18.png") no-repeat right center;
+       padding-right: 20px;
+       margin: 6px;
+       color: @shadow_colour;
+}
 #acl-showall {
-  float: left;
-  display: block;
-  width: auto;
-  height: 18px;
-  background: #eeeecc url("../../../images/show_all_off.png") 8px 8px no-repeat;
-  padding: 7px 10px 7px 30px;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-  color: #999;
-  margin: 5px 0;
-  &.selected {
-    color: #000;
-    background: #ff9900 url(../../../images/show_all_on.png) 8px 8px no-repeat; } }
-
+       float: left;
+       display: block;
+       .box(auto, 18px);
+       background: @main_colour url("../../../images/show_all_off.png") 8px 8px no-repeat;
+       padding: 7px 10px 7px 30px;
+       .rounded_corners;
+       color: darken(@main_alt_colour, 33.5%);
+       margin: 5px 0;
+       &.selected {
+               color: black;
+               background: #ff9900 url(../../../images/show_all_on.png) 8px 8px no-repeat;
+       }
+}
 #acl-list {
-  height: 210px;
-  border: 1px solid #ccc;
-  clear: both;
-  margin-top: 30px;
-  overflow: auto; }
-
+       height: 210px;
+       .borders(1px, solid, darken(@main_alt_colour, 13.5%);
+       clear: both;
+       margin-top: 30px;
+       overflow: auto;
+}
 /*#acl-list-content {
 }*/
-
 .acl-list-item {
-  border: 1px solid #eec;
-  display: block;
-  float: left;
-  height: 110px;
-  margin: 3px 0 5px 5px;
-  width: 120px;
-  img {
-    width: 22px;
-    height: 22px;
-    float: left;
-    margin: 5px 5px 20px; }
-  p {
-    height: 12px;
-    font-size: 10px;
-    margin: 0 0 22px;
-    padding: 2px 0 1px; }
-  a {
-    background: #eeeecc 3px 3px no-repeat;
-    -webkit-border-radius: 2px;
-    -moz-border-radius: 2px;
-    border-radius: 2px;
-    clear: both;
-    font-size: 10px;
-    display: block;
-    width: 55px;
-    height: 20px;
-    color: #2e2f2e;
-    margin: 5px auto 0;
-    padding: 0 3px;
-    text-align: center;
-    vertical-align: middle; } }
-
+       .borders;
+       .box(120px, 110px);
+       display: block;
+       float: left;
+       margin: 3px 0 5px 5px;
+       img {
+               .box(22px, 22px);
+               float: left;
+               margin: 5px 5px 20px;
+       }
+       p {
+               height: 12px;
+               font-size: 10px;
+               margin: 0 0 22px;
+               padding: 2px 0 1px;
+       }
+       a {
+               background: @main_colour 3px 3px no-repeat;
+               .rounded_corners;
+               .box(55px, 20px);
+               clear: both;
+               font-size: 10px;
+               display: block;
+               color: @bg_colour;
+               margin: 5px auto 0;
+               padding: 0 3px;
+               text-align: center;
+               vertical-align: middle;
+       }
+}
 #acl-wrapper a:hover {
-  text-decoration: none;
-  color: #2e2f2e;
-  border: 0; }
-
+       text-decoration: none;
+       color: @bg_colour;
+       border: 0;
+}
+//data URI:
+// data:[<MIME-type>][;charset=<encoding>][;base64],<data>
 .acl-button-show {
-  background-image: url('../../../images/show_off.png');
-  margin: 0 auto; }
-
+       // background-image: url('../../../images/show_off.png');
+       background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAFCAYAAABmWJ3mAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABxSURBVAiZY/z//z8DDMyaNUuEgYEhk4GBwZ8JJrhv3z5DZmbmMwwMDOoMDAxpLKtWraqTl5d3fPv2rcn///9XpKWlpTIwMDCwfPr0SePWrVtmP378YPn//385zASmf//+Rf/8+XMpIyPj2bS0tHcwCQBWkiq6M5HGDgAAAABJRU5ErkJggg==');
+       margin: 0 auto;
+}
 .acl-button-hide {
-  background-image: url('../../../images/hide_off.png');
-  margin: 0 auto; }
-
+       // background-image: url('../../../images/hide_off.png');
+       background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACWSURBVAiZBcEhDsIwFAbg/72+VXQ7wPSCIlj8JMlmcKQGgdgRCCfpEz0HjgSDw3IA1AQC1QqSpXwfqeoZwHOaphsAqGpfVVVHIYQNM1+J6MLMOwA9gAOVUhBC6Ky1r7quv03TrMZxzAwAIjKIyCel9JvneQ8ApKprY8zdObfNOXMp5bEsyyDGmJaITt77NwDEGI/W2vYP0nYuQ/Tw9H4AAAAASUVORK5CYII=');
+       margin: 0 auto;
+}
 .acl-button-show.selected {
-  color: #2e2f2e;
-  background-color: #9ade00;
-  background-image: url(../../../images/show_on.png); }
-
+       // background: #9ade00 url(../../../images/show_on.png);
+       background: #9ade00 url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAFCAYAAABmWJ3mAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABXSURBVAiZTcyhDYNQGADh7xEGwGDxhD2qUWxAwIBgE9BdoxO03YaEEX7USzh5l1yKCJl0pBoT+uIhK3zRYk52Az5444w1FijxwoYOTT4UGPHHL9a4crgBhcYSpxKVgzIAAAAASUVORK5CYII=');
+       color: @bg_colour;
+}
 .acl-button-hide.selected {
-  color: #2e2f2e;
-  background-color: #ff4141;
-  background-image: url(../../../images/hide_on.png); }
-
+       // background: #ff4141 url(../../../images/hide_on.png);
+       background: #ff4141 url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACSSURBVAiZBcGhDoJQFAbg/z/3cGliJDOTszmLichGstkMPoTzvfA2N4vN6gMYCGhwMifMTY7fxyCy4zBcCrMjAFRk7p3LWAEzRwYT2StQgMwBrGlmOJCZV72Ok+QpcTyZ1/VHAEBEyiiKHq+2/d6bZgUADMCUIqeR94t338tAns2sVKea/sy2y667AUAgN+pc+gcI6S733PoZRAAAAABJRU5ErkJggg==');
+       color: @bg_colour;
+}
 .acl-list-item {
-  &.groupshow {
-    border-color: #9ade00; }
-  &.grouphide {
-    border-color: #ff4141; } }
-
+       &.groupshow {
+               border-color: @group_show;
+       }
+       &.grouphide {
+               border-color: @group_hide;
+       }
+}
 /** /acl **/
 
-/* autocomplete popup */
 
+/* autocomplete popup */
 .acpopup {
-  max-height: 175px;
-  max-width: 42%;
-  background-color: #555753;
-  color: #fff;
-  overflow: auto;
-  z-index: 100000;
-  border: 1px solid #cccccc; }
-
+       max-height: 175px;
+       max-width: 42%;
+       background-color: @menu_bg_colour;
+       color: white;
+       overflow: auto;
+       z-index: 100000;
+       border: 1px solid darken(@main_alt_colour, 13.5%);
+}
 .acpopupitem {
-  background-color: #555753;
-  padding: 4px;
-  clear: left;
-  img {
-    float: left;
-    margin-right: 4px; }
-  &.selected {
-    color: #2e302e;
-    background-color: #eeeeec; } }
-
+       background-color: @menu_bg_colour;
+       padding: 4px;
+       clear: left;
+       img {
+               float: left;
+               margin-right: 4px;
+       }
+       &.selected {
+               color: @bg_alt_colour;
+               background-color: @main_alt_colour;
+       }
+}
 .qcomment-wrapper {
-  padding: 0px;
-  margin: 5px 5px 5px 81%; }
-
+       padding: 0px;
+       margin: 5px 5px 5px 81%;
+}
 .qcomment {
-  opacity: 0.5;
-  &:hover {
-    opacity: 1.0; } }
-
+       opacity: 0.5;
+       &:hover {
+               opacity: 1.0;
+       }
+}
 #network-star-link {
-  margin-top: 10px; }
-
+       margin-top: 10px;
+}
 .network-star {
-  float: left;
-  margin-right: 5px;
-  &.icon.starred {
-    display: inline-block; } }
-
+       float: left;
+       margin-right: 5px;
+       &.icon.starred {
+               display: inline-block;
+       }
+}
 #fileas-sidebar {}
 
 .fileas-ul {
-  padding: 0; }
+       padding: 0;
+}
+
 
 /*
  * addons theming
  */
-
 #sidebar-page-list {
-  ul {
-    padding: 0;
-    margin: 5px 0; }
-  li {
-    list-style: none; } }
-
+       ul {
+               padding: 0;
+               margin: 5px 0;
+       }
+       li {
+               list-style: none;
+       }
+}
 #jappix_mini {
-  margin-left: 130px;
-  position: fixed;
-  bottom: 0;
-  right: 175px !important;
-  /* override the jappix css */
-  z-index: 999; }
-
-/* media stuff */
+       margin-left: 130px;
+       position: fixed;
+       bottom: 0;
+       /* override the jappix css */
+       right: 175px !important;
+       z-index: 999;
+}
+
+
+//* media stuff */
 @media handheld {
-  body {
-    font-size: 15pt; } }
+       body {
+               font-size: 15pt;
+       }
+}
+//* Smartphones (portrait and landscape) ----------- */
+@media only screen and (min-device-width: 320px)
+       and (max-device-width: 480px) {
+       body {
+               font-size: 10px;
+       }
+}
+//* Smartphones (landscape) ----------- */
+@media only screen and (min-width: 321px) {
+       body {
+               font-size: 10px;
+       }
+}
+//* Smartphones (portrait) ----------- */
+@media only screen and (max-width: 320px) {
+       body {
+               font-size: 10px;
+       }
+}
+//* iPads (portrait and landscape) ----------- */
+@media only screen and (min-device-width: 768px)
+       and (max-device-width: 1024px) {
+       body {
+               font-size: 16px;
+       }
+}
+//* iPads (landscape) ----------- */
+@media only screen and (min-device-width: 768px)
+       and (max-device-width: 1024px)
+       and (orientation: landscape) {
+       body {
+               font-size: 16px;
+       }
+}
+//* iPads (portrait) ----------- */
+@media only screen and (min-device-width: 768px)
+       and (max-device-width: 1024px)
+       and (orientation: portrait) {
+       body {
+               font-size: 16px;
+       }
+}
+//* Desktops and laptops ----------- */
+//adjusted to 1024 from 1224.
+//not everybody has a fucking big screen ffs
+@media only screen and (min-width: 1024px) {
+       body {
+               font-size: 16px;
+       }
+}
+//* Large screens - */
+@media only screen and (min-width: 1520px) {
+       body {
+               font-size: 18px;
+       }
+}
+//* iPhone 4 ----------- */
+@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
+       only screen and (min-device-pixel-ratio: 1.5) {
+       body {
+               font-size: 16px;
+       }
+}
+
diff --git a/view/theme/dispy/icons/connect.png b/view/theme/dispy/icons/connect.png
new file mode 100644 (file)
index 0000000..b76fc13
Binary files /dev/null and b/view/theme/dispy/icons/connect.png differ
index 688ac1451ebcd64a19206f4689295871bc06c74d..c6b3394572aa3d2d749f599bb1b17a513b4a9fbc 100644 (file)
        <div id="profile-jot-submit-wrapper" class="jothidden">
 
                <div id="profile-upload-wrapper" style="display: $visitor;">
-                       <div id="wall-image-upload-div"><a class="icon border camera" href="#" onclick="return false;" id="wall-image-upload" title="$upload"></a></div>
+                       <div id="wall-image-upload-div"><a class="icon camera" href="#" onclick="return false;" id="wall-image-upload" title="$upload"></a></div>
                </div>
                <div id="profile-attach-wrapper" style="display: $visitor;">
-                       <div id="wall-file-upload-div"><a class="icon border attach" href="#" onclick="return false;" id="wall-file-upload" title="$attach"></a></div>
+                       <div id="wall-file-upload-div"><a class="icon attach" href="#" onclick="return false;" id="wall-file-upload" title="$attach"></a></div>
                </div>
                <div id="profile-link-wrapper" style="display: $visitor;" ondragenter="linkdropper(event);" ondragover="linkdropper(event);" ondrop="linkdrop(event);">
-                       <a class="icon border link" id="profile-link" ondragenter="return linkdropper(event);" ondragover="return linkdropper(event);" ondrop="linkdrop(event);" onclick="jotGetLink(); return false;" title="$weblink"></a>
+                       <a class="icon link" id="profile-link" ondragenter="return linkdropper(event);" ondragover="return linkdropper(event);" ondrop="linkdrop(event);" onclick="jotGetLink(); return false;" title="$weblink"></a>
                </div>
                <div id="profile-video-wrapper" style="display: $visitor;">
-                       <a class="icon border video" id="profile-video" onclick="jotVideoURL();return false;" title="$video"></a>
+                       <a class="icon video" id="profile-video" onclick="jotVideoURL();return false;" title="$video"></a>
                </div>
                <div id="profile-audio-wrapper" style="display: $visitor;">
-                       <a class="icon border audio" id="profile-audio" onclick="jotAudioURL();return false;" title="$audio"></a>
+                       <a class="icon audio" id="profile-audio" onclick="jotAudioURL();return false;" title="$audio"></a>
                </div>
                <div id="profile-location-wrapper" style="display: $visitor;">
-                       <a class="icon border globe" id="profile-location" onclick="jotGetLocation();return false;" title="$setloc"></a>
+                       <a class="icon globe" id="profile-location" onclick="jotGetLocation();return false;" title="$setloc"></a>
                </div>
                <div id="profile-nolocation-wrapper" style="display: none;">
-                       <a class="icon border noglobe" id="profile-nolocation" onclick="jotClearLocation();return false;" title="$noloc"></a>
+                       <a class="icon noglobe" id="profile-nolocation" onclick="jotClearLocation();return false;" title="$noloc"></a>
                </div>
 
                <div id="profile-jot-plugin-wrapper">
diff --git a/view/theme/dispy/js/modernizr.custom.2.5.3.js b/view/theme/dispy/js/modernizr.custom.2.5.3.js
new file mode 100644 (file)
index 0000000..2502348
--- /dev/null
@@ -0,0 +1,989 @@
+/* Modernizr 2.5.3 (Custom Build) | MIT & BSD\r
+ * Build: http://www.modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-flexbox_legacy-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-printshiv-mq-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load\r
+ */\r
+;\r
+\r
+\r
+\r
+window.Modernizr = (function( window, document, undefined ) {\r
+\r
+    var version = '2.5.3',\r
+\r
+    Modernizr = {},\r
+\r
+\r
+    docElement = document.documentElement,\r
+\r
+    mod = 'modernizr',\r
+    modElem = document.createElement(mod),\r
+    mStyle = modElem.style,\r
+\r
+    inputElem  = document.createElement('input')  ,\r
+\r
+    smile = ':)',\r
+\r
+    toString = {}.toString,\r
+\r
+    prefixes = ' -webkit- -moz- -o- -ms- '.split(' '),\r
+\r
+\r
+\r
+    omPrefixes = 'Webkit Moz O ms',\r
+\r
+    cssomPrefixes = omPrefixes.split(' '),\r
+\r
+    domPrefixes = omPrefixes.toLowerCase().split(' '),\r
+\r
+    ns = {'svg': 'http://www.w3.org/2000/svg'},\r
+\r
+    tests = {},\r
+    inputs = {},\r
+    attrs = {},\r
+\r
+    classes = [],\r
+\r
+    slice = classes.slice,\r
+\r
+    featureName, \r
+\r
+\r
+    injectElementWithStyles = function( rule, callback, nodes, testnames ) {\r
+\r
+      var style, ret, node,\r
+          div = document.createElement('div'),\r
+                body = document.body, \r
+                fakeBody = body ? body : document.createElement('body');\r
+\r
+      if ( parseInt(nodes, 10) ) {\r
+                      while ( nodes-- ) {\r
+              node = document.createElement('div');\r
+              node.id = testnames ? testnames[nodes] : mod + (nodes + 1);\r
+              div.appendChild(node);\r
+          }\r
+      }\r
+\r
+                style = ['&#173;','<style>', rule, '</style>'].join('');\r
+      div.id = mod;\r
+          (body ? div : fakeBody).innerHTML += style;\r
+      fakeBody.appendChild(div);\r
+      if(!body){\r
+                fakeBody.style.background = "";\r
+          docElement.appendChild(fakeBody);\r
+      }\r
+\r
+      ret = callback(div, rule);\r
+        !body ? fakeBody.parentNode.removeChild(fakeBody) : div.parentNode.removeChild(div);\r
+\r
+      return !!ret;\r
+\r
+    },\r
+\r
+    testMediaQuery = function( mq ) {\r
+\r
+      var matchMedia = window.matchMedia || window.msMatchMedia;\r
+      if ( matchMedia ) {\r
+        return matchMedia(mq).matches;\r
+      }\r
+\r
+      var bool;\r
+\r
+      injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) {\r
+        bool = (window.getComputedStyle ?\r
+                  getComputedStyle(node, null) :\r
+                  node.currentStyle)['position'] == 'absolute';\r
+      });\r
+\r
+      return bool;\r
+\r
+     },\r
\r
+\r
+    isEventSupported = (function() {\r
+\r
+      var TAGNAMES = {\r
+        'select': 'input', 'change': 'input',\r
+        'submit': 'form', 'reset': 'form',\r
+        'error': 'img', 'load': 'img', 'abort': 'img'\r
+      };\r
+\r
+      function isEventSupported( eventName, element ) {\r
+\r
+        element = element || document.createElement(TAGNAMES[eventName] || 'div');\r
+        eventName = 'on' + eventName;\r
+\r
+            var isSupported = eventName in element;\r
+\r
+        if ( !isSupported ) {\r
+                if ( !element.setAttribute ) {\r
+            element = document.createElement('div');\r
+          }\r
+          if ( element.setAttribute && element.removeAttribute ) {\r
+            element.setAttribute(eventName, '');\r
+            isSupported = is(element[eventName], 'function');\r
+\r
+                    if ( !is(element[eventName], 'undefined') ) {\r
+              element[eventName] = undefined;\r
+            }\r
+            element.removeAttribute(eventName);\r
+          }\r
+        }\r
+\r
+        element = null;\r
+        return isSupported;\r
+      }\r
+      return isEventSupported;\r
+    })(),\r
+\r
+\r
+    _hasOwnProperty = ({}).hasOwnProperty, hasOwnProperty;\r
+\r
+    if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) {\r
+      hasOwnProperty = function (object, property) {\r
+        return _hasOwnProperty.call(object, property);\r
+      };\r
+    }\r
+    else {\r
+      hasOwnProperty = function (object, property) { \r
+        return ((property in object) && is(object.constructor.prototype[property], 'undefined'));\r
+      };\r
+    }\r
+\r
+\r
+    if (!Function.prototype.bind) {\r
+      Function.prototype.bind = function bind(that) {\r
+\r
+        var target = this;\r
+\r
+        if (typeof target != "function") {\r
+            throw new TypeError();\r
+        }\r
+\r
+        var args = slice.call(arguments, 1),\r
+            bound = function () {\r
+\r
+            if (this instanceof bound) {\r
+\r
+              var F = function(){};\r
+              F.prototype = target.prototype;\r
+              var self = new F;\r
+\r
+              var result = target.apply(\r
+                  self,\r
+                  args.concat(slice.call(arguments))\r
+              );\r
+              if (Object(result) === result) {\r
+                  return result;\r
+              }\r
+              return self;\r
+\r
+            } else {\r
+\r
+              return target.apply(\r
+                  that,\r
+                  args.concat(slice.call(arguments))\r
+              );\r
+\r
+            }\r
+\r
+        };\r
+\r
+        return bound;\r
+      };\r
+    }\r
+\r
+    function setCss( str ) {\r
+        mStyle.cssText = str;\r
+    }\r
+\r
+    function setCssAll( str1, str2 ) {\r
+        return setCss(prefixes.join(str1 + ';') + ( str2 || '' ));\r
+    }\r
+\r
+    function is( obj, type ) {\r
+        return typeof obj === type;\r
+    }\r
+\r
+    function contains( str, substr ) {\r
+        return !!~('' + str).indexOf(substr);\r
+    }\r
+\r
+    function testProps( props, prefixed ) {\r
+        for ( var i in props ) {\r
+            if ( mStyle[ props[i] ] !== undefined ) {\r
+                return prefixed == 'pfx' ? props[i] : true;\r
+            }\r
+        }\r
+        return false;\r
+    }\r
+\r
+    function testDOMProps( props, obj, elem ) {\r
+        for ( var i in props ) {\r
+            var item = obj[props[i]];\r
+            if ( item !== undefined) {\r
+\r
+                            if (elem === false) return props[i];\r
+\r
+                            if (is(item, 'function')){\r
+                                return item.bind(elem || obj);\r
+                }\r
+\r
+                            return item;\r
+            }\r
+        }\r
+        return false;\r
+    }\r
+\r
+    function testPropsAll( prop, prefixed, elem ) {\r
+\r
+        var ucProp  = prop.charAt(0).toUpperCase() + prop.substr(1),\r
+            props   = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');\r
+\r
+            if(is(prefixed, "string") || is(prefixed, "undefined")) {\r
+          return testProps(props, prefixed);\r
+\r
+            } else {\r
+          props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');\r
+          return testDOMProps(props, prefixed, elem);\r
+        }\r
+    }\r
+\r
+    var testBundle = (function( styles, tests ) {\r
+        var style = styles.join(''),\r
+            len = tests.length;\r
+\r
+        injectElementWithStyles(style, function( node, rule ) {\r
+            var style = document.styleSheets[document.styleSheets.length - 1],\r
+                                                    cssText = style ? (style.cssRules && style.cssRules[0] ? style.cssRules[0].cssText : style.cssText || '') : '',\r
+                children = node.childNodes, hash = {};\r
+\r
+            while ( len-- ) {\r
+                hash[children[len].id] = children[len];\r
+            }\r
+\r
+                       Modernizr['touch'] = ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch || (hash['touch'] && hash['touch'].offsetTop) === 9; \r
+             Modernizr['csstransforms3d'] = (hash['csstransforms3d'] && hash['csstransforms3d'].offsetLeft) === 9 && hash['csstransforms3d'].offsetHeight === 3;                  Modernizr['generatedcontent'] = (hash['generatedcontent'] && hash['generatedcontent'].offsetHeight) >= 1;                       Modernizr['fontface'] = /src/i.test(cssText) &&\r
+                                                                  cssText.indexOf(rule.split(' ')[0]) === 0;            }, len, tests);\r
+\r
+    })([\r
+                    '@font-face {font-family:"font";src:url("https://")}'                    ,['@media (',prefixes.join('touch-enabled),('),mod,')',\r
+                                '{#touch{top:9px;position:absolute}}'].join('')            ,['@media (',prefixes.join('transform-3d),('),mod,')',\r
+                                '{#csstransforms3d{left:9px;position:absolute;height:3px;}}'].join('')\r
+\r
+        ,['#generatedcontent:after{content:"',smile,'";visibility:hidden}'].join('')  \r
+    ],\r
+      [\r
+                'fontface'                         ,'touch'                 ,'csstransforms3d'  \r
+        ,'generatedcontent' \r
+\r
+    ]);    tests['flexbox'] = function() {\r
+      return testPropsAll('flexOrder');\r
+    };\r
+\r
+\r
+    tests['flexbox-legacy'] = function() {\r
+        return testPropsAll('boxDirection');\r
+    };\r
+\r
+\r
+    tests['canvas'] = function() {\r
+        var elem = document.createElement('canvas');\r
+        return !!(elem.getContext && elem.getContext('2d'));\r
+    };\r
+\r
+    tests['canvastext'] = function() {\r
+        return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function'));\r
+    };    tests['touch'] = function() {\r
+        return Modernizr['touch'];\r
+    };\r
+\r
+    tests['geolocation'] = function() {\r
+        return !!navigator.geolocation;\r
+    };\r
+\r
+    tests['postmessage'] = function() {\r
+      return !!window.postMessage;\r
+    };\r
+\r
+\r
+    tests['websqldatabase'] = function() {\r
+      return !!window.openDatabase;\r
+    };\r
+\r
+    tests['indexedDB'] = function() {\r
+      return !!testPropsAll("indexedDB",window);\r
+    };\r
+\r
+    tests['hashchange'] = function() {\r
+      return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7);\r
+    };\r
+\r
+    tests['history'] = function() {\r
+      return !!(window.history && history.pushState);\r
+    };\r
+\r
+    tests['draganddrop'] = function() {\r
+        var div = document.createElement('div');\r
+        return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div);\r
+    };\r
+\r
+    tests['websockets'] = function() {\r
+        for ( var i = -1, len = cssomPrefixes.length; ++i < len; ){\r
+          if ( window[cssomPrefixes[i] + 'WebSocket'] ){\r
+            return true;\r
+          }\r
+        }\r
+        return 'WebSocket' in window;\r
+    };\r
+\r
+\r
+    tests['rgba'] = function() {\r
+        setCss('background-color:rgba(150,255,150,.5)');\r
+\r
+        return contains(mStyle.backgroundColor, 'rgba');\r
+    };\r
+\r
+    tests['hsla'] = function() {\r
+            setCss('background-color:hsla(120,40%,100%,.5)');\r
+\r
+        return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla');\r
+    };\r
+\r
+    tests['multiplebgs'] = function() {\r
+                setCss('background:url(https://),url(https://),red url(https://)');\r
+\r
+            return /(url\s*\(.*?){3}/.test(mStyle.background);\r
+    };\r
+    tests['backgroundsize'] = function() {\r
+        return testPropsAll('backgroundSize');\r
+    };\r
+\r
+    tests['borderimage'] = function() {\r
+        return testPropsAll('borderImage');\r
+    };\r
+\r
+\r
+\r
+    tests['borderradius'] = function() {\r
+        return testPropsAll('borderRadius');\r
+    };\r
+\r
+    tests['boxshadow'] = function() {\r
+        return testPropsAll('boxShadow');\r
+    };\r
+\r
+    tests['textshadow'] = function() {\r
+        return document.createElement('div').style.textShadow === '';\r
+    };\r
+\r
+\r
+    tests['opacity'] = function() {\r
+                setCssAll('opacity:.55');\r
+\r
+                    return /^0.55$/.test(mStyle.opacity);\r
+    };\r
+\r
+\r
+    tests['cssanimations'] = function() {\r
+        return testPropsAll('animationName');\r
+    };\r
+\r
+\r
+    tests['csscolumns'] = function() {\r
+        return testPropsAll('columnCount');\r
+    };\r
+\r
+\r
+    tests['cssgradients'] = function() {\r
+        var str1 = 'background-image:',\r
+            str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));',\r
+            str3 = 'linear-gradient(left top,#9f9, white);';\r
+\r
+        setCss(\r
+                       (str1 + '-webkit- '.split(' ').join(str2 + str1) \r
+                       + prefixes.join(str3 + str1)).slice(0, -str1.length)\r
+        );\r
+\r
+        return contains(mStyle.backgroundImage, 'gradient');\r
+    };\r
+\r
+\r
+    tests['cssreflections'] = function() {\r
+        return testPropsAll('boxReflect');\r
+    };\r
+\r
+\r
+    tests['csstransforms'] = function() {\r
+        return !!testPropsAll('transform');\r
+    };\r
+\r
+\r
+    tests['csstransforms3d'] = function() {\r
+\r
+        var ret = !!testPropsAll('perspective');\r
+\r
+                        if ( ret && 'webkitPerspective' in docElement.style ) {\r
+\r
+                      ret = Modernizr['csstransforms3d'];\r
+        }\r
+        return ret;\r
+    };\r
+\r
+\r
+    tests['csstransitions'] = function() {\r
+        return testPropsAll('transition');\r
+    };\r
+\r
+\r
+\r
+    tests['fontface'] = function() {\r
+        return Modernizr['fontface'];\r
+    };\r
+\r
+    tests['generatedcontent'] = function() {\r
+        return Modernizr['generatedcontent'];\r
+    };\r
+    tests['video'] = function() {\r
+        var elem = document.createElement('video'),\r
+            bool = false;\r
+\r
+            try {\r
+            if ( bool = !!elem.canPlayType ) {\r
+                bool      = new Boolean(bool);\r
+                bool.ogg  = elem.canPlayType('video/ogg; codecs="theora"')      .replace(/^no$/,'');\r
+\r
+                bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,'');\r
+\r
+                bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,'');\r
+            }\r
+\r
+        } catch(e) { }\r
+\r
+        return bool;\r
+    };\r
+\r
+    tests['audio'] = function() {\r
+        var elem = document.createElement('audio'),\r
+            bool = false;\r
+\r
+        try { \r
+            if ( bool = !!elem.canPlayType ) {\r
+                bool      = new Boolean(bool);\r
+                bool.ogg  = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,'');\r
+                bool.mp3  = elem.canPlayType('audio/mpeg;')               .replace(/^no$/,'');\r
+\r
+                                                    bool.wav  = elem.canPlayType('audio/wav; codecs="1"')     .replace(/^no$/,'');\r
+                bool.m4a  = ( elem.canPlayType('audio/x-m4a;')            || \r
+                              elem.canPlayType('audio/aac;'))             .replace(/^no$/,'');\r
+            }\r
+        } catch(e) { }\r
+\r
+        return bool;\r
+    };\r
+\r
+\r
+    tests['localstorage'] = function() {\r
+        try {\r
+            localStorage.setItem(mod, mod);\r
+            localStorage.removeItem(mod);\r
+            return true;\r
+        } catch(e) {\r
+            return false;\r
+        }\r
+    };\r
+\r
+    tests['sessionstorage'] = function() {\r
+        try {\r
+            sessionStorage.setItem(mod, mod);\r
+            sessionStorage.removeItem(mod);\r
+            return true;\r
+        } catch(e) {\r
+            return false;\r
+        }\r
+    };\r
+\r
+\r
+    tests['webworkers'] = function() {\r
+        return !!window.Worker;\r
+    };\r
+\r
+\r
+    tests['applicationcache'] = function() {\r
+        return !!window.applicationCache;\r
+    };\r
+\r
+\r
+    tests['svg'] = function() {\r
+        return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect;\r
+    };\r
+\r
+    tests['inlinesvg'] = function() {\r
+      var div = document.createElement('div');\r
+      div.innerHTML = '<svg/>';\r
+      return (div.firstChild && div.firstChild.namespaceURI) == ns.svg;\r
+    };\r
+\r
+    tests['smil'] = function() {\r
+        return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate')));\r
+    };\r
+\r
+\r
+    tests['svgclippaths'] = function() {\r
+        return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath')));\r
+    };\r
+\r
+    function webforms() {\r
+                                            Modernizr['input'] = (function( props ) {\r
+            for ( var i = 0, len = props.length; i < len; i++ ) {\r
+                attrs[ props[i] ] = !!(props[i] in inputElem);\r
+            }\r
+            if (attrs.list){\r
+                                  attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement);\r
+            }\r
+            return attrs;\r
+        })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' '));\r
+                            Modernizr['inputtypes'] = (function(props) {\r
+\r
+            for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) {\r
+\r
+                inputElem.setAttribute('type', inputElemType = props[i]);\r
+                bool = inputElem.type !== 'text';\r
+\r
+                                                    if ( bool ) {\r
+\r
+                    inputElem.value         = smile;\r
+                    inputElem.style.cssText = 'position:absolute;visibility:hidden;';\r
+\r
+                    if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) {\r
+\r
+                      docElement.appendChild(inputElem);\r
+                      defaultView = document.defaultView;\r
+\r
+                                        bool =  defaultView.getComputedStyle &&\r
+                              defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' &&\r
+                                                                                  (inputElem.offsetHeight !== 0);\r
+\r
+                      docElement.removeChild(inputElem);\r
+\r
+                    } else if ( /^(search|tel)$/.test(inputElemType) ){\r
+                                                                                    } else if ( /^(url|email)$/.test(inputElemType) ) {\r
+                                        bool = inputElem.checkValidity && inputElem.checkValidity() === false;\r
+\r
+                    } else if ( /^color$/.test(inputElemType) ) {\r
+                                                                docElement.appendChild(inputElem);\r
+                        docElement.offsetWidth;\r
+                        bool = inputElem.value != smile;\r
+                        docElement.removeChild(inputElem);\r
+\r
+                    } else {\r
+                                        bool = inputElem.value != smile;\r
+                    }\r
+                }\r
+\r
+                inputs[ props[i] ] = !!bool;\r
+            }\r
+            return inputs;\r
+        })('search tel url email datetime date month week time datetime-local number range color'.split(' '));\r
+        }\r
+    for ( var feature in tests ) {\r
+        if ( hasOwnProperty(tests, feature) ) {\r
+                                    featureName  = feature.toLowerCase();\r
+            Modernizr[featureName] = tests[feature]();\r
+\r
+            classes.push((Modernizr[featureName] ? '' : 'no-') + featureName);\r
+        }\r
+    }\r
+\r
+    Modernizr.input || webforms();    setCss('');\r
+    modElem = inputElem = null;\r
+\r
+\r
+    Modernizr._version      = version;\r
+\r
+    Modernizr._prefixes     = prefixes;\r
+    Modernizr._domPrefixes  = domPrefixes;\r
+    Modernizr._cssomPrefixes  = cssomPrefixes;\r
+\r
+    Modernizr.mq            = testMediaQuery;\r
+\r
+    Modernizr.hasEvent      = isEventSupported;\r
+\r
+    Modernizr.testProp      = function(prop){\r
+        return testProps([prop]);\r
+    };\r
+\r
+    Modernizr.testAllProps  = testPropsAll;\r
+\r
+\r
+    Modernizr.testStyles    = injectElementWithStyles;\r
+    return Modernizr;\r
+\r
+})(this, this.document);\r
+/*! HTML5 Shiv v3.4 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed */\r
+;(function(window, document) {\r
+\r
+  /** Preset options */\r
+  var options = window.html5 || {};\r
+\r
+  /** Used to skip problem elements */\r
+  var reSkip = /^<|^(?:button|form|map|select|textarea)$/i;\r
+\r
+  /** Detect whether the browser supports default html5 styles */\r
+  var supportsHtml5Styles;\r
+\r
+  /** Detect whether the browser supports unknown elements */\r
+  var supportsUnknownElements;\r
+\r
+  (function() {\r
+    var a = document.createElement('a');\r
+\r
+    a.innerHTML = '<xyz></xyz>';\r
+\r
+    //if the hidden property is implemented we can assume, that the browser supports HTML5 Styles\r
+    supportsHtml5Styles = ('hidden' in a);\r
+    supportsUnknownElements = a.childNodes.length == 1 || (function() {\r
+      // assign a false positive if unable to shiv\r
+      try {\r
+        (document.createElement)('a');\r
+      } catch(e) {\r
+        return true;\r
+      }\r
+      var frag = document.createDocumentFragment();\r
+      return (\r
+        typeof frag.cloneNode == 'undefined' ||\r
+        typeof frag.createDocumentFragment == 'undefined' ||\r
+        typeof frag.createElement == 'undefined'\r
+      );\r
+    }());\r
+\r
+  }());\r
+\r
+  /*--------------------------------------------------------------------------*/\r
+\r
+  /**\r
+   * Creates a style sheet with the given CSS text and adds it to the document.\r
+   * @private\r
+   * @param {Document} ownerDocument The document.\r
+   * @param {String} cssText The CSS text.\r
+   * @returns {StyleSheet} The style element.\r
+   */\r
+  function addStyleSheet(ownerDocument, cssText) {\r
+    var p = ownerDocument.createElement('p'),\r
+        parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;\r
+\r
+    p.innerHTML = 'x<style>' + cssText + '</style>';\r
+    return parent.insertBefore(p.lastChild, parent.firstChild);\r
+  }\r
+\r
+  /**\r
+   * Returns the value of `html5.elements` as an array.\r
+   * @private\r
+   * @returns {Array} An array of shived element node names.\r
+   */\r
+  function getElements() {\r
+    var elements = html5.elements;\r
+    return typeof elements == 'string' ? elements.split(' ') : elements;\r
+  }\r
+\r
+  /**\r
+   * Shivs the `createElement` and `createDocumentFragment` methods of the document.\r
+   * @private\r
+   * @param {Document|DocumentFragment} ownerDocument The document.\r
+   */\r
+  function shivMethods(ownerDocument) {\r
+    var cache = {},\r
+        docCreateElement = ownerDocument.createElement,\r
+        docCreateFragment = ownerDocument.createDocumentFragment,\r
+        frag = docCreateFragment();\r
+\r
+    ownerDocument.createElement = function(nodeName) {\r
+      // Avoid adding some elements to fragments in IE < 9 because\r
+      // * Attributes like `name` or `type` cannot be set/changed once an element\r
+      //   is inserted into a document/fragment\r
+      // * Link elements with `src` attributes that are inaccessible, as with\r
+      //   a 403 response, will cause the tab/window to crash\r
+      // * Script elements appended to fragments will execute when their `src`\r
+      //   or `text` property is set\r
+      var node = (cache[nodeName] || (cache[nodeName] = docCreateElement(nodeName))).cloneNode();\r
+      return html5.shivMethods && node.canHaveChildren && !reSkip.test(nodeName) ? frag.appendChild(node) : node;\r
+    };\r
+\r
+    ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +\r
+      'var n=f.cloneNode(),c=n.createElement;' +\r
+      'h.shivMethods&&(' +\r
+        // unroll the `createElement` calls\r
+        getElements().join().replace(/\w+/g, function(nodeName) {\r
+          cache[nodeName] = docCreateElement(nodeName);\r
+          frag.createElement(nodeName);\r
+          return 'c("' + nodeName + '")';\r
+        }) +\r
+      ');return n}'\r
+    )(html5, frag);\r
+  }\r
+\r
+  /*--------------------------------------------------------------------------*/\r
+\r
+  /**\r
+   * Shivs the given document.\r
+   * @memberOf html5\r
+   * @param {Document} ownerDocument The document to shiv.\r
+   * @returns {Document} The shived document.\r
+   */\r
+  function shivDocument(ownerDocument) {\r
+    var shived;\r
+    if (ownerDocument.documentShived) {\r
+      return ownerDocument;\r
+    }\r
+    if (html5.shivCSS && !supportsHtml5Styles) {\r
+      shived = !!addStyleSheet(ownerDocument,\r
+        // corrects block display not defined in IE6/7/8/9\r
+        'article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}' +\r
+        // corrects audio display not defined in IE6/7/8/9\r
+        'audio{display:none}' +\r
+        // corrects canvas and video display not defined in IE6/7/8/9\r
+        'canvas,video{display:inline-block;*display:inline;*zoom:1}' +\r
+        // corrects 'hidden' attribute and audio[controls] display not present in IE7/8/9\r
+        '[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}' +\r
+        // adds styling not present in IE6/7/8/9\r
+        'mark{background:#FF0;color:#000}'\r
+      );\r
+    }\r
+    if (!supportsUnknownElements) {\r
+      shived = !shivMethods(ownerDocument);\r
+    }\r
+    if (shived) {\r
+      ownerDocument.documentShived = shived;\r
+    }\r
+    return ownerDocument;\r
+  }\r
+\r
+  /*--------------------------------------------------------------------------*/\r
+\r
+  /**\r
+   * The `html5` object is exposed so that more elements can be shived and\r
+   * existing shiving can be detected on iframes.\r
+   * @type Object\r
+   * @example\r
+   *\r
+   * // options can be changed before the script is included\r
+   * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };\r
+   */\r
+  var html5 = {\r
+\r
+    /**\r
+     * An array or space separated string of node names of the elements to shiv.\r
+     * @memberOf html5\r
+     * @type Array|String\r
+     */\r
+    'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video',\r
+\r
+    /**\r
+     * A flag to indicate that the HTML5 style sheet should be inserted.\r
+     * @memberOf html5\r
+     * @type Boolean\r
+     */\r
+    'shivCSS': !(options.shivCSS === false),\r
+\r
+    /**\r
+     * A flag to indicate that the document's `createElement` and `createDocumentFragment`\r
+     * methods should be overwritten.\r
+     * @memberOf html5\r
+     * @type Boolean\r
+     */\r
+    'shivMethods': !(options.shivMethods === false),\r
+\r
+    /**\r
+     * A string to describe the type of `html5` object ("default" or "default print").\r
+     * @memberOf html5\r
+     * @type String\r
+     */\r
+    'type': 'default',\r
+\r
+    // shivs the document according to the specified `html5` object options\r
+    'shivDocument': shivDocument\r
+  };\r
+\r
+  /*--------------------------------------------------------------------------*/\r
+\r
+  // expose html5\r
+  window.html5 = html5;\r
+\r
+  // shiv the document\r
+  shivDocument(document);\r
+\r
+  /*------------------------------- Print Shiv -------------------------------*/\r
+\r
+  /** Used to filter media types */\r
+  var reMedia = /^$|\b(?:all|print)\b/;\r
+\r
+  /** Used to namespace printable elements */\r
+  var shivNamespace = 'html5shiv';\r
+\r
+  /** Detect whether the browser supports shivable style sheets */\r
+  var supportsShivableSheets = !supportsUnknownElements && (function() {\r
+    // assign a false negative if unable to shiv\r
+    var docEl = document.documentElement;\r
+    return !(\r
+      typeof document.namespaces == 'undefined' ||\r
+      typeof document.parentWindow == 'undefined' ||\r
+      typeof docEl.applyElement == 'undefined' ||\r
+      typeof docEl.removeNode == 'undefined' ||\r
+      typeof window.attachEvent == 'undefined'\r
+    );\r
+  }());\r
+\r
+  /*--------------------------------------------------------------------------*/\r
+\r
+  /**\r
+   * Wraps all HTML5 elements in the given document with printable elements.\r
+   * (eg. the "header" element is wrapped with the "html5shiv:header" element)\r
+   * @private\r
+   * @param {Document} ownerDocument The document.\r
+   * @returns {Array} An array wrappers added.\r
+   */\r
+  function addWrappers(ownerDocument) {\r
+    var node,\r
+        nodes = ownerDocument.getElementsByTagName('*'),\r
+        index = nodes.length,\r
+        reElements = RegExp('^(?:' + getElements().join('|') + ')$', 'i'),\r
+        result = [];\r
+\r
+    while (index--) {\r
+      node = nodes[index];\r
+      if (reElements.test(node.nodeName)) {\r
+        result.push(node.applyElement(createWrapper(node)));\r
+      }\r
+    }\r
+    return result;\r
+  }\r
+\r
+  /**\r
+   * Creates a printable wrapper for the given element.\r
+   * @private\r
+   * @param {Element} element The element.\r
+   * @returns {Element} The wrapper.\r
+   */\r
+  function createWrapper(element) {\r
+    var node,\r
+        nodes = element.attributes,\r
+        index = nodes.length,\r
+        wrapper = element.ownerDocument.createElement(shivNamespace + ':' + element.nodeName);\r
+\r
+    // copy element attributes to the wrapper\r
+    while (index--) {\r
+      node = nodes[index];\r
+      node.specified && wrapper.setAttribute(node.nodeName, node.nodeValue);\r
+    }\r
+    // copy element styles to the wrapper\r
+    wrapper.style.cssText = element.style.cssText;\r
+    return wrapper;\r
+  }\r
+\r
+  /**\r
+   * Shivs the given CSS text.\r
+   * (eg. header{} becomes html5shiv\:header{})\r
+   * @private\r
+   * @param {String} cssText The CSS text to shiv.\r
+   * @returns {String} The shived CSS text.\r
+   */\r
+  function shivCssText(cssText) {\r
+    var pair,\r
+        parts = cssText.split('{'),\r
+        index = parts.length,\r
+        reElements = RegExp('(^|[\\s,>+~])(' + getElements().join('|') + ')(?=[[\\s,>+~#.:]|$)', 'gi'),\r
+        replacement = '$1' + shivNamespace + '\\:$2';\r
+\r
+    while (index--) {\r
+      pair = parts[index] = parts[index].split('}');\r
+      pair[pair.length - 1] = pair[pair.length - 1].replace(reElements, replacement);\r
+      parts[index] = pair.join('}');\r
+    }\r
+    return parts.join('{');\r
+  }\r
+\r
+  /**\r
+   * Removes the given wrappers, leaving the original elements.\r
+   * @private\r
+   * @params {Array} wrappers An array of printable wrappers.\r
+   */\r
+  function removeWrappers(wrappers) {\r
+    var index = wrappers.length;\r
+    while (index--) {\r
+      wrappers[index].removeNode();\r
+    }\r
+  }\r
+\r
+  /*--------------------------------------------------------------------------*/\r
+\r
+  /**\r
+   * Shivs the given document for print.\r
+   * @memberOf html5\r
+   * @param {Document} ownerDocument The document to shiv.\r
+   * @returns {Document} The shived document.\r
+   */\r
+  function shivPrint(ownerDocument) {\r
+    var shivedSheet,\r
+        wrappers,\r
+        namespaces = ownerDocument.namespaces,\r
+        ownerWindow = ownerDocument.parentWindow;\r
+\r
+    if (!supportsShivableSheets || ownerDocument.printShived) {\r
+      return ownerDocument;\r
+    }\r
+    if (typeof namespaces[shivNamespace] == 'undefined') {\r
+      namespaces.add(shivNamespace);\r
+    }\r
+\r
+    ownerWindow.attachEvent('onbeforeprint', function() {\r
+      var imports,\r
+          length,\r
+          sheet,\r
+          collection = ownerDocument.styleSheets,\r
+          cssText = [],\r
+          index = collection.length,\r
+          sheets = Array(index);\r
+\r
+      // convert styleSheets collection to an array\r
+      while (index--) {\r
+        sheets[index] = collection[index];\r
+      }\r
+      // concat all style sheet CSS text\r
+      while ((sheet = sheets.pop())) {\r
+        // IE does not enforce a same origin policy for external style sheets\r
+        if (!sheet.disabled && reMedia.test(sheet.media)) {\r
+          for (imports = sheet.imports, index = 0, length = imports.length; index < length; index++) {\r
+            sheets.push(imports[index]);\r
+          }\r
+          try {\r
+            cssText.push(sheet.cssText);\r
+          } catch(er){}\r
+        }\r
+      }\r
+      // wrap all HTML5 elements with printable elements and add the shived style sheet\r
+      cssText = shivCssText(cssText.reverse().join(''));\r
+      wrappers = addWrappers(ownerDocument);\r
+      shivedSheet = addStyleSheet(ownerDocument, cssText);\r
+    });\r
+\r
+    ownerWindow.attachEvent('onafterprint', function() {\r
+      // remove wrappers, leaving the original elements, and remove the shived style sheet\r
+      removeWrappers(wrappers);\r
+      shivedSheet.removeNode(true);\r
+    });\r
+\r
+    ownerDocument.printShived = true;\r
+    return ownerDocument;\r
+  }\r
+\r
+  /*--------------------------------------------------------------------------*/\r
+\r
+  // expose API\r
+  html5.type += ' print';\r
+  html5.shivPrint = shivPrint;\r
+\r
+  // shiv for print\r
+  shivPrint(document);\r
+\r
+}(this, document));/*yepnope1.5.3|WTFPL*/\r
+(function(a,b,c){function d(a){return o.call(a)=="[object Function]"}function e(a){return typeof a=="string"}function f(){}function g(a){return!a||a=="loaded"||a=="complete"||a=="uninitialized"}function h(){var a=p.shift();q=1,a?a.t?m(function(){(a.t=="c"?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){a!="img"&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l={},o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};y[c]===1&&(r=1,y[c]=[],l=b.createElement(a)),a=="object"?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),a!="img"&&(r||y[c]===2?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i(b=="c"?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),p.length==1&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&o.call(a.opera)=="[object Opera]",l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return o.call(a)=="[object Array]"},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,i){var j=b(a),l=j.autoCallback;j.url.split(".").pop().split("?").shift(),j.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]||h),j.instead?j.instead(a,e,f,g,i):(y[j.url]?j.noexec=!0:y[j.url]=1,f.load(j.url,j.forceCSS||!j.forceJS&&"css"==j.url.split(".").pop().split("?").shift()?"c":c,j.noexec,j.attrs,j.timeout),(d(e)||d(l))&&f.load(function(){k(),e&&e(j.origUrl,i,g),l&&l(j.origUrl,i,g),y[j.url]=2})))}function i(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var j,l,m=this.yepnope.loader;if(e(a))g(a,0,m,0);else if(w(a))for(j=0;j<a.length;j++)l=a[j],e(l)?g(l,0,m,0):w(l)?B(l):Object(l)===l&&i(l,m);else Object(a)===a&&i(a,m)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,b.readyState==null&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}})(this,document);\r
+Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0));};\r
+;
\ No newline at end of file
diff --git a/view/theme/dispy/js/modernizr.custom.2.5.3.min.js b/view/theme/dispy/js/modernizr.custom.2.5.3.min.js
new file mode 100644 (file)
index 0000000..1ce20bd
--- /dev/null
@@ -0,0 +1,4 @@
+/* Modernizr 2.5.3 (Custom Build) | MIT & BSD\r
+ * Build: http://www.modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-flexbox_legacy-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-printshiv-mq-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load\r
+ */\r
+;window.Modernizr=function(a,b,c){function C(a){i.cssText=a}function D(a,b){return C(m.join(a+";")+(b||""))}function E(a,b){return typeof a===b}function F(a,b){return!!~(""+a).indexOf(b)}function G(a,b){for(var d in a)if(i[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function H(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:E(f,"function")?f.bind(d||b):f}return!1}function I(a,b,c){var d=a.charAt(0).toUpperCase()+a.substr(1),e=(a+" "+o.join(d+" ")+d).split(" ");return E(b,"string")||E(b,"undefined")?G(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),H(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d<e;d++)t[c[d]]=c[d]in j;return t.list&&(t.list=!!b.createElement("datalist")&&!!a.HTMLDataListElement),t}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,g,h,i=a.length;d<i;d++)j.setAttribute("type",g=a[d]),e=j.type!=="text",e&&(j.value=k,j.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(g)&&j.style.WebkitAppearance!==c?(f.appendChild(j),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(j,null).WebkitAppearance!=="textfield"&&j.offsetHeight!==0,f.removeChild(j)):/^(search|tel)$/.test(g)||(/^(url|email)$/.test(g)?e=j.checkValidity&&j.checkValidity()===!1:/^color$/.test(g)?(f.appendChild(j),f.offsetWidth,e=j.value!=k,f.removeChild(j)):e=j.value!=k)),s[a[d]]=!!e;return s}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var d="2.5.3",e={},f=b.documentElement,g="modernizr",h=b.createElement(g),i=h.style,j=b.createElement("input"),k=":)",l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={svg:"http://www.w3.org/2000/svg"},r={},s={},t={},u=[],v=u.slice,w,x=function(a,c,d,e){var h,i,j,k=b.createElement("div"),l=b.body,m=l?l:b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:g+(d+1),k.appendChild(j);return h=["&#173;","<style>",a,"</style>"].join(""),k.id=g,(l?k:m).innerHTML+=h,m.appendChild(k),l||(m.style.background="",f.appendChild(m)),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},y=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return x("@media "+b+" { #"+g+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},z=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=E(e[d],"function"),E(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),A={}.hasOwnProperty,B;!E(A,"undefined")&&!E(A.call,"undefined")?B=function(a,b){return A.call(a,b)}:B=function(a,b){return b in a&&E(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=v.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(v.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(v.call(arguments)))};return e});var J=function(c,d){var f=c.join(""),g=d.length;x(f,function(c,d){var f=b.styleSheets[b.styleSheets.length-1],h=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"",i=c.childNodes,j={};while(g--)j[i[g].id]=i[g];e.touch="ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch||(j.touch&&j.touch.offsetTop)===9,e.csstransforms3d=(j.csstransforms3d&&j.csstransforms3d.offsetLeft)===9&&j.csstransforms3d.offsetHeight===3,e.generatedcontent=(j.generatedcontent&&j.generatedcontent.offsetHeight)>=1,e.fontface=/src/i.test(h)&&h.indexOf(d.split(" ")[0])===0},g,d)}(['@font-face {font-family:"font";src:url("https://")}',["@media (",m.join("touch-enabled),("),g,")","{#touch{top:9px;position:absolute}}"].join(""),["@media (",m.join("transform-3d),("),g,")","{#csstransforms3d{left:9px;position:absolute;height:3px;}}"].join(""),['#generatedcontent:after{content:"',k,'";visibility:hidden}'].join("")],["fontface","touch","csstransforms3d","generatedcontent"]);r.flexbox=function(){return I("flexOrder")},r["flexbox-legacy"]=function(){return I("boxDirection")},r.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},r.canvastext=function(){return!!e.canvas&&!!E(b.createElement("canvas").getContext("2d").fillText,"function")},r.touch=function(){return e.touch},r.geolocation=function(){return!!navigator.geolocation},r.postmessage=function(){return!!a.postMessage},r.websqldatabase=function(){return!!a.openDatabase},r.indexedDB=function(){return!!I("indexedDB",a)},r.hashchange=function(){return z("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},r.history=function(){return!!a.history&&!!history.pushState},r.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},r.websockets=function(){for(var b=-1,c=o.length;++b<c;)if(a[o[b]+"WebSocket"])return!0;return"WebSocket"in a},r.rgba=function(){return C("background-color:rgba(150,255,150,.5)"),F(i.backgroundColor,"rgba")},r.hsla=function(){return C("background-color:hsla(120,40%,100%,.5)"),F(i.backgroundColor,"rgba")||F(i.backgroundColor,"hsla")},r.multiplebgs=function(){return C("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(i.background)},r.backgroundsize=function(){return I("backgroundSize")},r.borderimage=function(){return I("borderImage")},r.borderradius=function(){return I("borderRadius")},r.boxshadow=function(){return I("boxShadow")},r.textshadow=function(){return b.createElement("div").style.textShadow===""},r.opacity=function(){return D("opacity:.55"),/^0.55$/.test(i.opacity)},r.cssanimations=function(){return I("animationName")},r.csscolumns=function(){return I("columnCount")},r.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return C((a+"-webkit- ".split(" ").join(b+a)+m.join(c+a)).slice(0,-a.length)),F(i.backgroundImage,"gradient")},r.cssreflections=function(){return I("boxReflect")},r.csstransforms=function(){return!!I("transform")},r.csstransforms3d=function(){var a=!!I("perspective");return a&&"webkitPerspective"in f.style&&(a=e.csstransforms3d),a},r.csstransitions=function(){return I("transition")},r.fontface=function(){return e.fontface},r.generatedcontent=function(){return e.generatedcontent},r.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},r.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},r.localstorage=function(){try{return localStorage.setItem(g,g),localStorage.removeItem(g),!0}catch(a){return!1}},r.sessionstorage=function(){try{return sessionStorage.setItem(g,g),sessionStorage.removeItem(g),!0}catch(a){return!1}},r.webworkers=function(){return!!a.Worker},r.applicationcache=function(){return!!a.applicationCache},r.svg=function(){return!!b.createElementNS&&!!b.createElementNS(q.svg,"svg").createSVGRect},r.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==q.svg},r.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(l.call(b.createElementNS(q.svg,"animate")))},r.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(l.call(b.createElementNS(q.svg,"clipPath")))};for(var L in r)B(r,L)&&(w=L.toLowerCase(),e[w]=r[L](),u.push((e[w]?"":"no-")+w));return e.input||K(),C(""),h=j=null,e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.mq=y,e.hasEvent=z,e.testProp=function(a){return G([a])},e.testAllProps=I,e.testStyles=x,e}(this,this.document),function(a,b){function g(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function h(){var a=k.elements;return typeof a=="string"?a.split(" "):a}function i(a){var b={},c=a.createElement,e=a.createDocumentFragment,f=e();a.createElement=function(a){var e=(b[a]||(b[a]=c(a))).cloneNode();return k.shivMethods&&e.canHaveChildren&&!d.test(a)?f.appendChild(e):e},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+h().join().replace(/\w+/g,function(a){return b[a]=c(a),f.createElement(a),'c("'+a+'")'})+");return n}")(k,f)}function j(a){var b;return a.documentShived?a:(k.shivCSS&&!e&&(b=!!g(a,"article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio{display:none}canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}mark{background:#FF0;color:#000}")),f||(b=!i(a)),b&&(a.documentShived=b),a)}function o(a){var b,c=a.getElementsByTagName("*"),d=c.length,e=RegExp("^(?:"+h().join("|")+")$","i"),f=[];while(d--)b=c[d],e.test(b.nodeName)&&f.push(b.applyElement(p(b)));return f}function p(a){var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(m+":"+a.nodeName);while(d--)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function q(a){var b,c=a.split("{"),d=c.length,e=RegExp("(^|[\\s,>+~])("+h().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),f="$1"+m+"\\:$2";while(d--)b=c[d]=c[d].split("}"),b[b.length-1]=b[b.length-1].replace(e,f),c[d]=b.join("}");return c.join("{")}function r(a){var b=a.length;while(b--)a[b].removeNode()}function s(a){var b,c,d=a.namespaces,e=a.parentWindow;return!n||a.printShived?a:(typeof d[m]=="undefined"&&d.add(m),e.attachEvent("onbeforeprint",function(){var d,e,f,h=a.styleSheets,i=[],j=h.length,k=Array(j);while(j--)k[j]=h[j];while(f=k.pop())if(!f.disabled&&l.test(f.media)){for(d=f.imports,j=0,e=d.length;j<e;j++)k.push(d[j]);try{i.push(f.cssText)}catch(m){}}i=q(i.reverse().join("")),c=o(a),b=g(a,i)}),e.attachEvent("onafterprint",function(){r(c),b.removeNode(!0)}),a.printShived=!0,a)}var c=a.html5||{},d=/^<|^(?:button|form|map|select|textarea)$/i,e,f;(function(){var a=b.createElement("a");a.innerHTML="<xyz></xyz>",e="hidden"in a,f=a.childNodes.length==1||function(){try{b.createElement("a")}catch(a){return!0}var c=b.createDocumentFragment();return typeof c.cloneNode=="undefined"||typeof c.createDocumentFragment=="undefined"||typeof c.createElement=="undefined"}()})();var k={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:j};a.html5=k,j(b);var l=/^$|\b(?:all|print)\b/,m="html5shiv",n=!f&&function(){var c=b.documentElement;return typeof b.namespaces!="undefined"&&typeof b.parentWindow!="undefined"&&typeof c.applyElement!="undefined"&&typeof c.removeNode!="undefined"&&typeof a.attachEvent!="undefined"}();k.type+=" print",k.shivPrint=s,s(b)}(this,document),function(a,b,c){function d(a){return o.call(a)=="[object Function]"}function e(a){return typeof a=="string"}function f(){}function g(a){return!a||a=="loaded"||a=="complete"||a=="uninitialized"}function h(){var a=p.shift();q=1,a?a.t?m(function(){(a.t=="c"?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){a!="img"&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l={},o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};y[c]===1&&(r=1,y[c]=[],l=b.createElement(a)),a=="object"?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),a!="img"&&(r||y[c]===2?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i(b=="c"?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),p.length==1&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&o.call(a.opera)=="[object Opera]",l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return o.call(a)=="[object Array]"},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,i){var j=b(a),l=j.autoCallback;j.url.split(".").pop().split("?").shift(),j.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]||h),j.instead?j.instead(a,e,f,g,i):(y[j.url]?j.noexec=!0:y[j.url]=1,f.load(j.url,j.forceCSS||!j.forceJS&&"css"==j.url.split(".").pop().split("?").shift()?"c":c,j.noexec,j.attrs,j.timeout),(d(e)||d(l))&&f.load(function(){k(),e&&e(j.origUrl,i,g),l&&l(j.origUrl,i,g),y[j.url]=2})))}function i(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var j,l,m=this.yepnope.loader;if(e(a))g(a,0,m,0);else if(w(a))for(j=0;j<a.length;j++)l=a[j],e(l)?g(l,0,m,0):w(l)?B(l):Object(l)===l&&i(l,m);else Object(a)===a&&i(a,m)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,b.readyState==null&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};
\ No newline at end of file
diff --git a/view/theme/dispy/light/_base.less b/view/theme/dispy/light/_base.less
new file mode 100644 (file)
index 0000000..35a539a
--- /dev/null
@@ -0,0 +1,101 @@
+//*
+//* _base.less
+//*
+//*
+
+//* backgrounds */
+@dk_bg_colour: #1d1f1d;
+@bg_colour: #2e2f2e;
+@bg_alt_colour: #2e302e;
+@med_bg_colour: #4e4f4f;
+@menu_bg_colour: #555753;
+
+
+//* font colour, aka color: */
+@lt_main_colour: #ffff99;
+@main_colour: #eeeecc;
+@main_alt_colour: #eeeeee;
+@disabled_colour: #ddddbb;
+@shiny_colour: #2e3436;
+
+@lt_main_colour: lighten(@bg_colour, 10%);
+@dk_main_colour: darken(@bg_colour, 10%);
+
+//* links */
+@link_colour: #88a9d2;
+@dk_link_colour: darken(@link_colour, 10%);
+@lt_link_colour: lighten(@link_colour, 10%);
+//@hover_colour: #729fcf;
+@hover_colour: darken(@link_colour, 10%);
+
+//* box shadows */
+@menu_shadow: 5px 0 10px 0 #111;
+@main_shadow: 3px 3px 3px 10px 0 #111;
+
+// default here is @main_shadow
+.box_shadow(@h: 5px, @v: 5px, @blur: 5px, @spread: 0px, @colour: #111) {
+       -moz-box-shadow: @h @v @blur @spread @colour;
+       -o-box-shadow: @h @v @blur @spread @colour;
+       -webkit-box-shadow: @h @v @blur @spread @colour;
+       -ms-box-shadow: @h @v @blur @spread @colour;
+       box-shadow: @h @v @blur @spread @colour;
+}
+
+//* text-shadow */
+.text_shadow (@h: 1px, @v: 1px, @c: #111) {
+       -moz-text-shadow: @h @v @c;
+       -o-text-shadow: @h @v @c;
+       -webkit-text-shadow: @h @v @c;
+       -ms-text-shadow: @h @v @c;
+       text-shadow: @h @v @c;
+}
+//* transitions */
+.transition (@type: all, @dur: 0.5s, @effect: ease-in-out) {
+    -webkit-transition: @arguments;
+    -moz-transition: @arguments;
+    -o-transition: @arguments;
+    -ms-transition: @arguments;
+    transition: @arguments;
+}
+
+//* borders */
+.borders (@size: 1px, @style: solid, @colour: @main_colour) {
+       border: @size @style @colour;
+}
+
+//* rounded box corners */
+.rounded_corners (@r: 5px) {
+       -o-border-radius: @r;
+       -webkit-border-radius: @r;
+       -moz-border-radius: @r;
+       -ms-border-radius: @r;
+       border-radius: @r;
+}
+
+//* pre wrap */
+.wrap () {
+       white-space: pre-wrap;
+       white-space: pre;
+       word-wrap: break-word;
+}
+//* font size sizing */
+.default_font_size () {
+       font-size: 16px;
+       line-height: 1.1em;
+       font-family: sans-serif;
+}
+
+//* reset ul, ol */
+.list_reset () {
+       margin: 0px;
+       padding: 0px;
+       list-style: none;
+       list-style-position: inside;
+}
+
+//* box size: width, height */
+.box (@w: 20px, @h: 20px) {
+       width: @w;
+       height: @h;
+}
+
index fc293def867c2eae42d023197cd3e34b3a555719..19ae9b6e889325128255402bf7f43261c3c5ab33 100644 (file)
@@ -2,10 +2,10 @@ article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display
 audio,canvas,video,time{display:inline-block;*display:inline;*zoom:1;}
 audio:not([controls]),[hidden]{display:none;}
 html{font-size:100%;overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
-body{margin:0;font-size:16px;line-height:1.1em;font-family:sans-serif;color:#222;background-color:#e8e8e8;}
-button,input,select,textarea{font-family:sans-serif;color:#222;background-color:#e8e8e8;}
-select{border:1px #555 dotted;padding:3px;margin:3px;color:#222;background:#e8e8e8;}
-option{padding:3px;color:#222;background:#e8e8e8;}option[selected="selected"]{color:#111;background:#cca;}
+body{margin:0;font-size:16px;line-height:1.1em;font-family:sans-serif;color:#111;background-color:#eee;}
+button,input,select,textarea{font-family:sans-serif;color:#222;background-color:#eee;}
+select{border:1px #555 dotted;padding:3px;margin:3px;color:#222;background:#eee;}
+option{padding:3px;color:#222;background:#eee;}option[selected="selected"]{color:#111;background:#cca;}
 ul,ol{padding:0;}
 :focus{outline:0;}
 [disabled="disabled"]{background:#ddd;color:#333;}
@@ -73,8 +73,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
 #nav-buttons{clear:both;list-style:none;padding:0px;margin:0px;height:25px;}#nav-buttons>li{padding:0;display:inline-block;margin:0px -4px 0px 0px;}
 .floaterflip{display:block;position:fixed;z-index:110;top:56px;right:19px;width:22px;height:22px;overflow:hidden;margin:0px;background:transparent url(light/icons.png) -190px -60px no-repeat;}
 .search-box{display:inline-block;margin:5px;position:fixed;right:0px;bottom:0px;z-index:100;background:#1d1f1d;border-radius:5px;}
-#search-text{border:1px #eec solid;background:#2e3436;color:#eec;}
-.search-box #search-text{margin:8px;width:10em;height:14px;color:#eec;}
+#search-text{border:1px #eec solid;background:#2e3436;color:#eec;font-size:8pt;margin:8px;width:10em;height:14px;}
 #scrollup{position:fixed;right:5px;bottom:40px;z-index:100;}#scrollup a:hover{text-decoration:none;border:0;}
 #user-menu{box-shadow:5px 0 10px 0 #111;display:block;width:75%;margin:3px 0 0 0;position:relative;background-color:#555753;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;background:#555753 url("light/menu-user-pin.jpg") 98% center no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;}
 #user-menu-label{font-size:12px;padding:3px 20px 9px 5px;height:10px;}
@@ -103,11 +102,11 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
 .vcard #profile-photo-wrapper{margin:20px;}.vcard #profile-photo-wrapper img{box-shadow:3px 3px 10px 0 #000;}
 #asidemain h4{font-size:1.2em;}
 #asidemain #viewcontacts{text-align:right;}
+#asidemain #contact-block{width:99%;}#asidemain #contact-block .contact-block-content{width:99%;}#asidemain #contact-block .contact-block-content .contact-block-div{float:left;margin:0 5px 5px 0;width:50px;height:50px;padding:3px;position:relative;}
 .aprofile dt{background:transparent;color:#666666;font-weight:bold;box-shadow:1px 1px 5px 0 #000;margin:15px 0 5px;padding-left:5px;}
 #profile-extra-links ul{margin-left:0px;padding-left:0px;list-style:none;}
 #dfrn-request-link{background:#3465a4 url(light/connect.png) no-repeat 95% center;border-radius:5px 5px 5px 5px;color:#fff;display:block;font-size:1.2em;padding:0.2em 0.5em;}
 #wallmessage-link{color:#eee;display:block;font-size:1.2em;padding:0.2em 0.5em;}
-#netsearch-box{margin:20px 0px 30px;width:150px;}#netsearch-box #search-submit{margin:5px 5px 0px 0px;}
 .ttright{margin:0px 0px 0px 0px;}
 .contact-block-div{width:50px;height:50px;float:left;}
 .contact-block-textdiv{width:150px;height:34px;float:left;}
@@ -217,7 +216,7 @@ div[id$="text"]{font-weight:bold;border-bottom:1px solid #ccc;}
 div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:left;}
 .profile-match-wrapper{float:left;margin:0 5px 40px 0;width:120px;height:120px;padding:3px;position:relative;}
 .icon.drophide.profile-match-ignore{margin:0 6px 0 -3px;}
-[id$="-end"],[class$="end"]{clear:both;margin:0 0 10px 0;}
+[id$="-end"],[class$="-end"]{clear:both;margin:0 0 10px 0;}
 .profile-match-end{margin:0 0 5px 0;}
 .profile-match-name{font-weight:bold;margin:auto auto auto 23px;}
 .profile-match-connect{font-style:italic;margin:auto auto auto 23px;}
@@ -384,7 +383,7 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
 #side-peoplefind-url{background-color:#e5e0cf;color:#666;border:1px #666 solid;margin-right:3px;width:75%;}#side-peoplefind-url:hover,#side-peoplefind-url:focus{background-color:#efefef;color:#222;border:1px 333 solid;}
 .nets-ul{list-style-type:none;padding-left:0px;}.nets-ul li{margin:10px 0 0;}
 .nets-link,.nets-all{margin-left:0px;}
-#netsearch-box{margin-top:20px;width:150px;}#netsearch-box #search-submit{margin:5px 0px 0px 0px;}
+#netsearch-box{margin:20px 0px 30px;width:135px;}#netsearch-box #search-submit{margin:5px 5px 0px 0px;}
 #pending-update{float:right;color:#fff;font-weight:bold;background-color:#ff0000;padding:0 .3em;}
 .admin.linklist{border:0;padding:0;}
 .admin.link{list-style-position:inside;}
index f14284f39c0a344885987a92a70500f9b8bef076..8968da42ee2d1644dbf61f4cad86868582837bce 100644 (file)
@@ -13,6 +13,8 @@
 /* from html5boilerplate */
 /* these are to tell browsers they should be displayed a certain way */
 
+//@import "_base.less";
+
 article, aside, details, figcaption, figure, footer, header, hgroup, nav, section {
   display: block; }
 
@@ -44,25 +46,25 @@ body {
   font-size: 16px;
   line-height: 1.1em;
   font-family: sans-serif;
-  color: #222;
-  background-color: #e8e8e8; }
+  color: #111;
+  background-color: #eee; }
 
 button, input, select, textarea {
   font-family: sans-serif;
   color: #222;
-  background-color: #e8e8e8; }
+  background-color: #eee; }
 
 select {
   border: 1px #555 dotted;
   padding: 3px;
   margin: 3px;
   color: #222;
-  background: #e8e8e8; }
+  background: #eee; }
 
 option {
   padding: 3px;
   color: #222;
-  background: #e8e8e8;
+  background: #eee;
   &[selected="selected"] {
     color: #111;
     background: #cca; } }
@@ -478,13 +480,11 @@ nav #nav-notifications-linkmenu {
 #search-text {
   border: 1px #eec solid;
   background: #2e3436;
-  color: #eec; }
-
-.search-box #search-text {
+  color: #eec;
+  font-size: 8pt;
   margin: 8px;
   width: 10em;
-  height: 14px;
-  color: #eec; }
+  height: 14px; }
 
 #scrollup {
   position: fixed;
@@ -694,10 +694,26 @@ nav #nav-notifications-linkmenu {
 */
 
 #asidemain {
-  h4 {
-    font-size: 1.2em; }
-  #viewcontacts {
-    text-align: right; } }
+       h4 {
+               font-size: 1.2em; }
+       #viewcontacts {
+               text-align: right;
+       }
+       #contact-block {
+               width: 99%;
+               .contact-block-content {
+                       width: 99%;
+                       .contact-block-div {
+                               float: left;
+                               margin: 0 5px 5px 0;
+                               width: 50px;
+                               height: 50px;
+                               padding: 3px;
+                               position: relative;
+                       }
+               }
+       }
+}
 
 .aprofile dt {
   background: transparent;
@@ -728,12 +744,6 @@ nav #nav-notifications-linkmenu {
   font-size: 1.2em;
   padding: 0.2em 0.5em; }
 
-#netsearch-box {
-  margin: 20px 0px 30px;
-  width: 150px;
-  #search-submit {
-    margin: 5px 5px 0px 0px; } }
-
 .ttright {
   margin: 0px 0px 0px 0px; }
 
@@ -1401,7 +1411,7 @@ div {
        
 }
 
-[id$="-end"], [class$="end"] {
+[id$="-end"], [class$="-end"] {
   clear: both;
   margin: 0 0 10px 0; }
 
@@ -2207,10 +2217,12 @@ div {
   margin-left: 0px; }
 
 #netsearch-box {
-  margin-top: 20px;
-  width: 150px;
-  #search-submit {
-    margin: 5px 0px 0px 0px; } }
+       margin: 20px 0px 30px;
+       width: 135px;
+       #search-submit {
+               margin: 5px 5px 0px 0px;
+       }
+}
 
 /**
  * admin
index 732caf6900a3de4c48f6f9bfbff8cb09d109b090..a5595830851ae9143d82a4ef28bcd5db3509a977 100644 (file)
@@ -11,7 +11,7 @@
 </div>
 
 {{ if $prevlink }}<div id="photo-prev-link"><a href="$prevlink.0">$prevlink.1</a></div>{{ endif }}
-<div id="photo-photo"><a href="$photo.href" title="$photo.title"><img src="$photo.src" /></a></div>
+<div id="photo-photo"><a href="$photo.href" class="lightbox" title="$photo.title"><img src="$photo.src" /></a></div>
 {{ if $nextlink }}<div id="photo-next-link"><a href="$nextlink.0">$nextlink.1</a></div>{{ endif }}
 <div id="photo-photo-end"></div>
 <div id="photo-caption">$desc</div>
 
 {{ if $likebuttons }}
 <div id="photo-like-div">
-       $likebuttons
-       $like
-       $dislike        
+       $likebuttons $like $dislike
 </div>
 {{ endif }}
-
+<div id="wall-photo-container">
 $comments
+</div>
 
 $paginate
 
index f14ea7915e1f75c48c89577e75fd3b59bfe7f89b..cf0054a675ee85a5aded3174318e66f4dcb867cc 100644 (file)
@@ -2,7 +2,7 @@
 
        {{ if $profile.edit }}
        <div class="action">
-       <span class="icon-profile-edit"></span>
+       <span class="icon-profile-edit" rel="#profiles-menu"></span>
        <a href="#" rel="#profiles-menu" class="ttright" id="profiles-menu-trigger" title="$profile.edit.3">$profile.edit.1</a>
        <ul id="profiles-menu" class="menu-popup">
                {{ for $profile.menu.entries as $e }}
index 1598220b87c9084e517a52fbbe7f77e38c468db6..ee8698cc08ff1b7daf4646c4cd20d832bc9d0e84 100644 (file)
@@ -20,8 +20,9 @@ function dispy_init(&$a) {
     /** @purpose set some theme defaults
     */
     $cssFile = null;
-    $colour = false;
     $colour = get_pconfig(local_user(), "dispy", "colour");
+       $baseurl = $a->get_baseurl($ssl_state);
+
     if ($colour === false) { $colour = "light"; }
     if ($colour == "light") {
                $colour_path = "/light/";
@@ -39,9 +40,13 @@ function dispy_init(&$a) {
        }
 
        $a->page['htmlhead'] .= <<<EOT
+       <script type="text/javascript" src="$baseurl/view/theme/dispy/js/modernizr.custom.2.5.3.min.js"></script>
        <script type="text/javascript">
        $(document).ready(function() {
-               $('.group-edit-icon').hover(
+               // Select all links with lightbox class
+               $("a.lightbox").fancybox();
+
+       $('.group-edit-icon').hover(
                        function() {
                                $(this).addClass('icon');
                                $(this).removeClass('iconspacer'); },
index 2667c4334a1309beacab7ee6c96673d56bf6b601..7cbcdc4d2c40307a2dc39430943c5aa19baa283e 100644 (file)
@@ -1571,7 +1571,7 @@ input#dfrn-url {
 .contact-photo-menu li a:hover { color: #FFFFFF; background: #3465A4; text-decoration: none; }
 
 
-#block-message, #ignore-message {
+#block-message, #ignore-message, #archive-message {
        color: #FF0000;
 }
 
diff --git a/view/update_fail_eml.tpl b/view/update_fail_eml.tpl
deleted file mode 100644 (file)
index f68a3de..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-Hey, \r
-I'm $sitename.   \r
-The friendica developers released update $update recently, \r
-but when I tried to install it, something went terribly wrong.  \r
-This needs to be fixed soon and I can't do it alone. Please contact a \r
-friendica developer if you can not help me on your own. My database might be invalid. \r
-\r
-The error message is '$error'.   \r
-\r
-I'm sorry, \r
-your friendica server at $siteurl
\ No newline at end of file