]> git.mxchange.org Git - friendica.git/commitdiff
Merge branch 'master', remote-tracking branch 'remotes/upstream/master'
authorSimon L'nu <simon.lnu@gmail.com>
Fri, 23 Mar 2012 14:41:55 +0000 (10:41 -0400)
committerSimon L'nu <simon.lnu@gmail.com>
Fri, 23 Mar 2012 14:41:55 +0000 (10:41 -0400)
* remotes/upstream/master: (25 commits)
  diabook: theme.php remove code duplication last photos check for user "hidewall" remove unneeded regex move js code to close popup in main.js (missing stop event propagation in popup links)
  user settings: don't show emoticons
  fix in css right_aside
  small fix
  fix 1024resolution
  add right_aside to theme diabook
  ability to change tags in edited posts
  normalise comparison link on delegation page
  quattro(-green) styling the 'filed under: remove' text
  it's only item.filer ;-)
  non static filer text
  new lines removed
  removed some new lines to cut down number of changed files
  removed unneccessary stuff
  removed problem from previous commit
  tests for the template engine
  adding filer functionality to quattro(-green)
  missing tooltip for "file as"
  prevent re-registrations using a deleted username - not an issue with Friendica but could create a serious privacy issue with federated platforms
  add file_as-option to diabook-derivates
  ...

* master:

43 files changed:
.htaccess
boot.php
database.sql
include/Contact.php
include/items.php
include/text.php
js/main.js
mod/delegate.php
mod/editpost.php
mod/item.php
mod/register.php
mod/regmod.php
mod/settings.php
tests/template_test.php [new file with mode: 0755]
tests/xss_filter_test.php
update.php
view/default.php
view/settings.tpl
view/theme/comix-plain/wall_item.tpl
view/theme/comix-plain/wallwall_item.tpl
view/theme/comix/wall_item.tpl
view/theme/comix/wallwall_item.tpl
view/theme/diabook-blue/icons/file_as.png [new file with mode: 0755]
view/theme/diabook-blue/style.css
view/theme/diabook-blue/wall_item.tpl
view/theme/diabook/communityhome.tpl [new file with mode: 0755]
view/theme/diabook/directory_item.tpl [new file with mode: 0755]
view/theme/diabook/icons/file_as.png [new file with mode: 0755]
view/theme/diabook/profile_side.tpl
view/theme/diabook/profile_vcard.tpl
view/theme/diabook/right_aside.tpl [new file with mode: 0644]
view/theme/diabook/style-network.css [new file with mode: 0644]
view/theme/diabook/style-profile.css [new file with mode: 0644]
view/theme/diabook/theme.php
view/theme/diabook/wall_item.tpl
view/theme/duepuntozero/wall_item.tpl
view/theme/duepuntozero/wallwall_item.tpl
view/theme/quattro-green/colors.less
view/theme/quattro-green/style.css
view/theme/quattro/quattro.less
view/theme/quattro/style.css
view/wall_item.tpl
view/wallwall_item.tpl

index 28ac3dd8021c59df634ef7da5f14a042df823957..6cb3a074943c33d61c076d427ae4e5c154c4861c 100755 (executable)
--- a/.htaccess
+++ b/.htaccess
@@ -5,9 +5,6 @@ AddType audio/ogg .oga
 <FilesMatch "\.(out|log)$">
 Deny from all
 </FilesMatch>
-<Files "(include|library)">
-Deny from all
-</Files>
 
 <IfModule mod_rewrite.c>
   RewriteEngine on
index 910de6f82dd5ee0edd6e45c2f39f97db66b75c2b..f976ef6368c98b26c2c874d0196bce383048320f 100755 (executable)
--- 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.1288' );
+define ( 'FRIENDICA_VERSION',      '2.3.1289' );
 define ( 'DFRN_PROTOCOL_VERSION',  '2.23'    );
-define ( 'DB_UPDATE_VERSION',      1132      );
+define ( 'DB_UPDATE_VERSION',      1133      );
 
 define ( 'EOL',                    "<br />\r\n"     );
 define ( 'ATOM_TIME',              'Y-m-d\TH:i:s\Z' );
index f058bc59ef9b149d51251d8098b4b442b81d4ff7..327b482c0690e929417d3520ba36778050f60464 100755 (executable)
@@ -861,3 +861,9 @@ INDEX ( `term` )
 ) ENGINE = MyISAM DEFAULT CHARSET=utf8;
 
 
+CREATE TABLE IF NOT EXISTS `userd` (
+`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
+`username` CHAR( 255 ) NOT NULL,
+INDEX ( `username` )
+) ENGINE = MyISAM DEFAULT CHARSET=utf8;
+
index baccea30550012fc16bf2a831f47b7e572ef07cd..d9949b1ef8db45cb3167fb61e84b9d3383d39a64 100755 (executable)
@@ -15,6 +15,12 @@ function user_remove($uid) {
 
        call_hooks('remove_user',$r[0]);
 
+       // save username (actually the nickname as it is guaranteed 
+       // unique), so it cannot be re-registered in the future.
+
+       q("insert into userd ( username ) values ( '%s' )",
+               $r[0]['nickname']
+       );
 
        q("DELETE FROM `contact` WHERE `uid` = %d", intval($uid));
        q("DELETE FROM `group` WHERE `uid` = %d", intval($uid));
index 5a297c83ef5422690bf2eb542861025fd0c33e6f..b96f88566db1a08b784005794d8fb1bc58f72915 100755 (executable)
@@ -1582,9 +1582,10 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
 
                                if(count($r)) {
                                        if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {  
-                                               $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+                                               $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `tag` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
                                                        dbesc($datarray['title']),
                                                        dbesc($datarray['body']),
+                                                       dbesc($datarray['tag']),
                                                        dbesc(datetime_convert('UTC','UTC',$datarray['edited'])),
                                                        dbesc($item_id),
                                                        intval($importer['uid'])
@@ -1727,9 +1728,10 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
 
                                if(count($r)) {
                                        if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {  
-                                               $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+                                               $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `tag` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
                                                        dbesc($datarray['title']),
                                                        dbesc($datarray['body']),
+                                                       dbesc($datarray['tag']),
                                                        dbesc(datetime_convert('UTC','UTC',$datarray['edited'])),
                                                        dbesc($item_id),
                                                        intval($importer['uid'])
@@ -1800,7 +1802,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
                                        // but otherwise there's a possible data mixup on the sender's system.
                                        // the tgroup delivery code called from item_store will correct it if it's a forum,
                                        // but we're going to unconditionally correct it here so that the post will always be owned by our contact. 
-                                       logger('local_delivery: Correcting item owner.', LOGGER_DEBUG);
+                                       logger('consume_feed: Correcting item owner.', LOGGER_DEBUG);
                                        $datarray['owner-name']   = $contact['name'];
                                        $datarray['owner-link']   = $contact['url'];
                                        $datarray['owner-avatar'] = $contact['thumb'];
@@ -2332,9 +2334,10 @@ function local_delivery($importer,$data) {
 
                                if(count($r)) {
                                        if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {  
-                                               $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+                                               $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `tag` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
                                                        dbesc($datarray['title']),
                                                        dbesc($datarray['body']),
+                                                       dbesc($datarray['tag']),
                                                        dbesc(datetime_convert('UTC','UTC',$datarray['edited'])),
                                                        dbesc($item_id),
                                                        intval($importer['importer_uid'])
@@ -2497,9 +2500,10 @@ function local_delivery($importer,$data) {
 
                        if(count($r)) {
                                if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {  
-                                       $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+                                       $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `tag` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
                                                dbesc($datarray['title']),
                                                dbesc($datarray['body']),
+                                               dbesc($datarray['tag']),
                                                dbesc(datetime_convert('UTC','UTC',$datarray['edited'])),
                                                dbesc($item_id),
                                                intval($importer['importer_uid'])
index 92a74eb49ee94ad542793caac0543417f8e85488..6f66cef651d35344196cebce4165cee2be9ad615 100644 (file)
@@ -1338,3 +1338,16 @@ function file_tag_unsave_file($uid,$item,$file) {
 function normalise_openid($s) {
        return trim(str_replace(array('http://','https://'),array('',''),$s),'/');
 }
+
+
+function undo_post_tagging($s) {
+       $matches = null;
+       $cnt = preg_match_all('/([@#])\[url=(.*?)\](.*?)\[\/url\]/ism',$s,$matches,PREG_SET_ORDER);
+       if($cnt) {
+               foreach($matches as $mtch) {
+                       $s = str_replace($mtch[0], $mtch[1] . $mtch[3],$s);
+               }
+       }
+       return $s;
+}
+
index babd2a1c389cc985dee231d0587e0e0d100ac477..2b4b13791aeef4765c3ab3f15b28627d080034ef 100755 (executable)
        var in_progress = false;
        var langSelect = false;
        var commentBusy = false;
+       var last_popup_menu = null;
+       var last_popup_button = null;
 
        $(function() {
                $.ajaxSetup({cache: false});
 
                msie = $.browser.msie ;
                
-               /* setup tooltips */
+               /* setup tooltips *//*
                $("a,.tt").each(function(){
                        var e = $(this);
                        var pos="bottom";
@@ -43,7 +45,7 @@
                        if (e.hasClass("ttleft")) pos="left";
                        if (e.hasClass("ttright")) pos="right";
                        e.tipTip({defaultPosition: pos, edgeOffset: 8});
-               });
+               });*/
                
                
                
                        if (menu.attr('popup')=="false") return false;
                        $(this).parent().toggleClass("selected");
                        menu.toggle();
+                       if (menu.css("display") == "none") {
+                               last_popup_menu = null;
+                               last_popup_button = null;
+                       } else {
+                               last_popup_menu = menu;
+                               last_popup_button = $(this).parent();
+                       }
                        return false;
                });
+               $('html').click(function() {
+                       last_popup_menu.hide();
+                       last_popup_button.removeClass("selected");
+                       last_popup_menu = null;
+                       last_popup_button = null;
+               });
                
                // fancyboxes
                $("a.popupbox").fancybox({
index c19df0681d7c5c154a4be90a7a7643682f411dc2..8c50318590532211d965a10e4f75fbf1f48c35ff 100644 (file)
@@ -86,7 +86,7 @@ function delegate_content(&$a) {
 
        $r = q("select nurl from contact where substring_index(contact.nurl,'/',3) = '%s' 
                and contact.uid = %d and contact.self = 0 and network = '%s' ",
-               dbesc($a->get_baseurl()),
+               dbesc(normalise_link($a->get_baseurl())),
                intval(local_user()),
                dbesc(NETWORK_DFRN)
        ); 
index 778ac3dccd5e8343bdab20315c151dc723a8c5c2..2ddba36aad11e98fe7e75744993f7f04ecc488f9 100755 (executable)
@@ -104,7 +104,7 @@ function editpost_content(&$a) {
                '$wait' => t('Please wait'),
                '$permset' => t('Permission settings'),
                '$ptyp' => $itm[0]['type'],
-               '$content' => $itm[0]['body'],
+               '$content' => undo_post_tagging($itm[0]['body']),
                '$post_id' => $post_id,
                '$baseurl' => $a->get_baseurl(),
                '$defloc' => $a->user['default-location'],
index ee6c5c9a7390ff69418f4f91afefeb626bd0d7f9..fc1c5fd0f4c91844cfb0b6c3f070abb7223b7246 100755 (executable)
@@ -177,10 +177,11 @@ function item_post(&$a) {
                $verb              = $orig_post['verb'];
                $emailcc           = $orig_post['emailcc'];
                $app                       = $orig_post['app'];
-
+               $categories        = $orig_post['file'];
                $body              = escape_tags(trim($_REQUEST['body']));
                $private           = $orig_post['private'];
                $pubmail_enable    = $orig_post['pubmail'];
+
        }
        else {
 
@@ -213,8 +214,10 @@ function item_post(&$a) {
                $coord             = notags(trim($_REQUEST['coord']));
                $verb              = notags(trim($_REQUEST['verb']));
                $emailcc           = notags(trim($_REQUEST['emailcc']));
-
                $body              = escape_tags(trim($_REQUEST['body']));
+
+               // $categories = TODO
+
                $private = ((strlen($str_group_allow) || strlen($str_contact_allow) || strlen($str_group_deny) || strlen($str_contact_deny)) ? 1 : 0);
 
                if(($parent_item) && 
@@ -242,8 +245,6 @@ function item_post(&$a) {
                        }
                }
 
-
-
                if(! strlen($body)) {
                        if($preview)
                                killme();
@@ -500,6 +501,7 @@ function item_post(&$a) {
        $datarray['location']      = $location;
        $datarray['coord']         = $coord;
        $datarray['tag']           = $str_tags;
+       $datarray['file']          = $categories;
        $datarray['inform']        = $inform;
        $datarray['verb']          = $verb;
        $datarray['allow_cid']     = $str_contact_allow;
@@ -559,9 +561,12 @@ function item_post(&$a) {
 
 
        if($orig_post) {
-               $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
-                       dbesc($title),
-                       dbesc($body),
+               $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `tag` = '%s', `attach` = '%s', `file` = '%s', `edited` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
+                       dbesc($datarray['title']),
+                       dbesc($datarray['body']),
+                       dbesc($datarray['tag']),
+                       dbesc($datarray['attach']),
+                       dbesc($datarray['file']),
                        dbesc(datetime_convert()),
                        intval($post_id),
                        intval($profile_uid)
index 388b3e250767c31d6f0761acb65701d1550f657a..6d0e2700bceac58c61dab0b39658f51343782763 100755 (executable)
@@ -150,6 +150,16 @@ function register_post(&$a) {
        if(count($r))
                $err .= t('Nickname is already registered. Please choose another.') . EOL;
 
+       // Check deleted accounts that had this nickname. Doesn't matter to us,
+       // but could be a security issue for federated platforms.
+
+       $r = q("SELECT * FROM `userd`
+                       WHERE `username` = '%s' LIMIT 1",
+                       dbesc($nickname)
+       );
+       if(count($r))
+               $err .= t('Nickname was once registered here and may not be re-used. Please choose another.') . EOL;
+
        if(strlen($err)) {
                notice( $err );
                return;
index 17e728ba2d16266531c791316710e0403aae068d..21f41eb01ccc3c854443f22e3465ba50cc3797fa 100755 (executable)
@@ -64,6 +64,11 @@ function user_allow($hash) {
 
 }
 
+
+// This does not have to go through user_remove() and save the nickname
+// permanently against re-registration, as the person was not yet
+// allowed to have friends on this system
+
 function user_deny($hash) {
 
        $register = q("SELECT * FROM `register` WHERE `hash` = '%s' LIMIT 1",
index 59ede47297ed551f2284f33a5d1aab76f32b3573..99bf8842d25ac37654906580bb674b68345e9612 100755 (executable)
@@ -263,7 +263,7 @@ function settings_post(&$a) {
        $suggestme        = ((x($_POST,'suggestme')) ? intval($_POST['suggestme'])  : 0);  
        $hide_friends     = (($_POST['hide-friends'] == 1) ? 1: 0);
        $hidewall         = (($_POST['hidewall'] == 1) ? 1: 0);
-
+       $nosmile          = ((x($_POST,'nosmile')) ? intval($_POST['nosmile'])  : 0);  
 
        $notify = 0;
 
@@ -347,6 +347,7 @@ function settings_post(&$a) {
        set_pconfig(local_user(),'system','suggestme', $suggestme);
        set_pconfig(local_user(),'system','update_interval', $browser_update);
        set_pconfig(local_user(),'system','itemspage_network', $itemspage_network);
+       set_pconfig(local_user(),'system','no_smilies',$nosmile);
 
        $r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `openid` = '%s', `timezone` = '%s',  `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s', `allow_location` = %d, `theme` = '%s', `maxreq` = %d, `expire` = %d, `openidserver` = '%s', `blockwall` = %d, `hidewall` = %d, `blocktags` = %d  WHERE `uid` = %d LIMIT 1",
                        dbesc($username),
@@ -674,6 +675,9 @@ function settings_content(&$a) {
        $itemspage_network = intval(get_pconfig(local_user(), 'system','itemspage_network'));
        $itemspage_network = (($itemspage_network > 0 && $itemspage_network < 101) ? $itemspage_network : 40); // default if not set: 40 items
        
+       $nosmile = get_pconfig(local_user(),'system','no_smilies');
+       $nosmile = (($nosmile===false)? '0': $nosmile); // default if not set: 0
+       
        if(! strlen($a->user['timezone']))
                $timezone = date_default_timezone_get();
 
@@ -841,6 +845,7 @@ function settings_content(&$a) {
                '$theme'        => array('theme', t('Display Theme:'), $theme_selected, '', $themes),
                '$ajaxint'   => array('browser_update',  t("Update browser every xx seconds"), $browser_update, t('Minimum of 10 seconds, no maximum')),
                '$itemspage_network'   => array('itemspage_network',  t("Number of items to display on the network page:"), $itemspage_network, t('Maximum of 100 items')),
+               '$nosmile'      => array('nosmile', t("Don't show emoticons"), $nosmile, ''),
 
                '$h_prv'        => t('Security and Privacy Settings'),
 
diff --git a/tests/template_test.php b/tests/template_test.php
new file mode 100755 (executable)
index 0000000..1f9f805
--- /dev/null
@@ -0,0 +1,224 @@
+<?php
+/**\r
+ * this file contains tests for the template engine\r
+ *\r
+ * @package test.util\r
+ */\r
+\r
+/** required, it is the file under test */\r
+require_once('include/template_processor.php');
+require_once('include/text.php');
+
+class TemplateMockApp {
+       public $theme_info=array();
+}
+
+if(!function_exists('current_theme')) {
+function current_theme() {\r
+       return 'clean';\r
+}
+}
+
+if(!function_exists('x')) {
+function x($s,$k = NULL) {
+       return false;
+}
+}
+
+if(!function_exists('get_app')) {
+function get_app() {
+       return new TemplateMockApp();
+}
+}
+
+/**\r
+ * TestCase for the template engine\r
+ *\r
+ * @author Alexander Kampmann\r
+ * @package test.util\r
+ */\r
+class TemplateTest extends PHPUnit_Framework_TestCase {
+
+       public function setUp() {
+               global $t;
+               $t=new Template;
+       }
+
+       public function testListToShort() {
+               @list($first, $second)=array('first');
+
+               $this->assertTrue(is_null($second));
+       }
+
+       public function testSimpleVariableString() {
+               $tpl='Hello $name!';
+
+               $text=replace_macros($tpl, array('$name'=>'Anna'));
+
+               $this->assertEquals('Hello Anna!', $text);
+       }
+
+       public function testSimpleVariableInt() {\r
+               $tpl='There are $num new messages!';\r
+\r
+               $text=replace_macros($tpl, array('$num'=>172));\r
+\r
+               $this->assertEquals('There are 172 new messages!', $text);\r
+       }
+
+       public function testConditionalElse() {\r
+               $tpl='There{{ if $num!=1 }} are $num new messages{{ else }} is 1 new message{{ endif }}!';\r
+\r
+               $text1=replace_macros($tpl, array('$num'=>1));
+               $text22=replace_macros($tpl, array('$num'=>22));\r
+\r
+               $this->assertEquals('There is 1 new message!', $text1);
+               $this->assertEquals('There are 22 new messages!', $text22);\r
+       }
+
+       public function testConditionalNoElse() {\r
+               $tpl='{{ if $num!=0 }}There are $num new messages!{{ endif }}';\r
+\r
+               $text0=replace_macros($tpl, array('$num'=>0));\r
+               $text22=replace_macros($tpl, array('$num'=>22));\r
+\r
+               $this->assertEquals('', $text0);\r
+               $this->assertEquals('There are 22 new messages!', $text22);\r
+       }
+
+       public function testConditionalFail() {\r
+               $tpl='There {{ if $num!=1 }} are $num new messages{{ else }} is 1 new message{{ endif }}!';\r
+\r
+               $text1=replace_macros($tpl, array());\r
+\r
+               //$this->assertEquals('There is 1 new message!', $text1);\r
+       }
+
+       public function testSimpleFor() {\r
+               $tpl='{{ for $messages as $message }} $message {{ endfor }}';\r
+\r
+               $text=replace_macros($tpl, array('$messages'=>array('message 1', 'message 2')));\r
+\r
+               $this->assertEquals(' message 1  message 2 ', $text);\r
+       }
+
+       public function testFor() {\r
+               $tpl='{{ for $messages as $message }} from: $message.from to $message.to {{ endfor }}';\r
+\r
+               $text=replace_macros($tpl, array('$messages'=>array(array('from'=>'Mike', 'to'=>'Alex'), array('from'=>'Alex', 'to'=>'Mike'))));\r
+\r
+               $this->assertEquals(' from: Mike to Alex  from: Alex to Mike ', $text);\r
+       }
+       
+       public function testKeyedFor() {\r
+               $tpl='{{ for $messages as $from=>$to }} from: $from to $to {{ endfor }}';\r
+       \r
+               $text=replace_macros($tpl, array('$messages'=>array('Mike'=>'Alex', 'Sven'=>'Mike')));\r
+       \r
+               $this->assertEquals(' from: Mike to Alex  from: Sven to Mike ', $text);\r
+       }
+
+       public function testForEmpty() {\r
+               $tpl='messages: {{for $messages as $message}} from: $message.from to $message.to  {{ endfor }}';\r
+\r
+               $text=replace_macros($tpl, array('$messages'=>array()));\r
+\r
+               $this->assertEquals('messages: ', $text);\r
+       }
+
+       public function testForWrongType() {\r
+               $tpl='messages: {{for $messages as $message}} from: $message.from to $message.to  {{ endfor }}';\r
+\r
+               $text=replace_macros($tpl, array('$messages'=>11));\r
+\r
+               $this->assertEquals('messages: ', $text);\r
+       }
+
+       public function testForConditional() {\r
+               $tpl='new messages: {{for $messages as $message}}{{ if $message.new }} $message.text{{endif}}{{ endfor }}';\r
+\r
+               $text=replace_macros($tpl, array('$messages'=>array(
+                               array('new'=>true, 'text'=>'new message'),
+                               array('new'=>false, 'text'=>'old message'))));\r
+\r
+               $this->assertEquals('new messages:  new message', $text);\r
+       }
+       
+       public function testConditionalFor() {\r
+               $tpl='{{ if $enabled }}new messages:{{for $messages as $message}} $message.text{{ endfor }}{{endif}}';\r
+       \r
+               $text=replace_macros($tpl, array('$enabled'=>true, 
+                               '$messages'=>array(\r
+                               array('new'=>true, 'text'=>'new message'),\r
+                               array('new'=>false, 'text'=>'old message'))));\r
+       \r
+               $this->assertEquals('new messages: new message old message', $text);\r
+       }
+
+       public function testFantasy() {\r
+               $tpl='Fantasy: {{fantasy $messages}}';\r
+\r
+               $text=replace_macros($tpl, array('$messages'=>'no no'));\r
+\r
+               $this->assertEquals('Fantasy: {{fantasy no no}}', $text);\r
+       }
+
+       public function testInc() {\r
+               $tpl='{{inc field_input.tpl with $field=$myvar}}{{ endinc }}';\r
+\r
+               $text=replace_macros($tpl, array('$myvar'=>array('myfield', 'label', 'value', 'help')));\r
+\r
+               $this->assertEquals("   \n"
+                               ."      <div class='field input'>\n"
+                               ."              <label for='id_myfield'>label</label>\n"
+                               ."              <input name='myfield' id='id_myfield' value=\"value\">\n"
+                               ."              <span class='field_help'>help</span>\n"
+                               ."      </div>\n", $text);\r
+       }
+
+       public function testIncNoVar() {\r
+               $tpl='{{inc field_input.tpl }}{{ endinc }}';\r
+\r
+               $text=replace_macros($tpl, array('$field'=>array('myfield', 'label', 'value', 'help')));\r
+\r
+               $this->assertEquals("   \n      <div class='field input'>\n             <label for='id_myfield'>label</label>\n"\r
+                               ."              <input name='myfield' id='id_myfield' value=\"value\">\n"\r
+                               ."              <span class='field_help'>help</span>\n"\r
+                               ."      </div>\n", $text);\r
+       }
+       
+       public function testDoubleUse() {\r
+               $tpl='Hello $name! {{ if $enabled }} I love you! {{ endif }}';\r
+       \r
+               $text=replace_macros($tpl, array('$name'=>'Anna', '$enabled'=>false));\r
+       \r
+               $this->assertEquals('Hello Anna! ', $text);
+               
+               $tpl='Hey $name! {{ if $enabled }} I hate you! {{ endif }}';\r
+               \r
+               $text=replace_macros($tpl, array('$name'=>'Max', '$enabled'=>true));\r
+               \r
+               $this->assertEquals('Hey Max!  I hate you! ', $text);\r
+       }
+       
+       public function testIncDouble() {\r
+               $tpl='{{inc field_input.tpl with $field=$var1}}{{ endinc }}'
+               .'{{inc field_input.tpl with $field=$var2}}{{ endinc }}';\r
+       \r
+               $text=replace_macros($tpl, array('$var1'=>array('myfield', 'label', 'value', 'help'), 
+                               '$var2'=>array('myfield2', 'label2', 'value2', 'help2')));\r
+               \r
+               $this->assertEquals("   \n"\r
+                               ."      <div class='field input'>\n"\r
+                               ."              <label for='id_myfield'>label</label>\n"\r
+                               ."              <input name='myfield' id='id_myfield' value=\"value\">\n"\r
+                               ."              <span class='field_help'>help</span>\n"\r
+                               ."      </div>\n"
+                               ."      \n"
+                               ."      <div class='field input'>\n"
+                               ."              <label for='id_myfield2'>label2</label>\n"
+                               ."              <input name='myfield2' id='id_myfield2' value=\"value2\">\n"
+                               ."              <span class='field_help'>help2</span>\n"
+                               ."      </div>\n", $text);\r
+       }
+}
\ No newline at end of file
index d7dcf0472bd698c84df6487d7d1144b2d0e7b1d3..3fb6ac3109daf150c071d7d767b4ecd72a8be5a8 100644 (file)
@@ -27,11 +27,32 @@ class AntiXSSTest extends PHPUnit_Framework_TestCase {
         */
        public function testXmlify() {
                $text="<tag>I want to break\n this!11!<?hard?></tag>";
-               $xml=xmlify($text); //test whether it actually may be part of a xml document
+               $xml=xmlify($text); 
                $retext=unxmlify($text);
 
                $this->assertEquals($text, $retext);
        }
+       
+       /**\r
+        * xmlify and put in a document\r
+        */\r
+       public function testXmlifyDocument() {\r
+               $tag="<tag>I want to break</tag>";\r
+               $xml=xmlify($tag);
+               $text='<text>'.$xml.'</text>'; \r
+               
+               $xml_parser=xml_parser_create(); 
+               //should be possible to parse it
+               $values=array(); $index=array(); 
+               $this->assertEquals(1, xml_parse_into_struct($xml_parser, $text, $values, $index)); 
+               
+               $this->assertEquals(array('TEXT'=>array(0)), 
+                               $index); 
+               $this->assertEquals(array(array('tag'=>'TEXT', 'type'=>'complete', 'level'=>1, 'value'=>$tag)),\r
+                               $values);
+               
+               xml_parser_free($xml_parser); \r
+       }
 
        /**
         * test hex2bin and reverse
index 6a685a6ff0fe191f53c6e9ac40b113bee151c72d..a69742a949d8337cef19b5fba88a6d97c3b8f4e9 100755 (executable)
@@ -1,6 +1,6 @@
 <?php
 
-define( 'UPDATE_VERSION' , 1132 );
+define( 'UPDATE_VERSION' , 1133 );
 
 /**
  *
@@ -1127,3 +1127,12 @@ function update_1131() {
 }
 
 
+function update_1132() {
+       q("CREATE TABLE IF NOT EXISTS `userd` (
+`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
+`username` CHAR( 255 ) NOT NULL,
+INDEX ( `username` )
+) ENGINE = MYISAM ");
+
+}
+
index ab1cb0f092ae4094c2f3dcc9d60b3fd520eed118..61f5f68635e56d13109c65c07d28c8460f0127f4 100755 (executable)
@@ -10,7 +10,8 @@
        <aside><?php if(x($page,'aside')) echo $page['aside']; ?></aside>\r
        <section><?php if(x($page,'content')) echo $page['content']; ?>\r
                <div id="page-footer"></div>\r
-       </section>\r
+       </section>
+       <right_aside><?php if(x($page,'right_aside')) echo $page['right_aside']; ?></right_aside>\r
        <footer><?php if(x($page,'footer')) echo $page['footer']; ?></footer>\r
 </body>\r
 </html>\r
index 25479b5bff8f4ef26c5ff8d1a17063db7d5c848a..2b739c968a62973bdbe0ff5638e61ef302ea491b 100755 (executable)
@@ -31,7 +31,7 @@ $nickname_block
 {{inc field_select.tpl with $field=$theme }}{{endinc}}
 {{inc field_input.tpl with $field=$ajaxint }}{{endinc}}
 {{inc field_input.tpl with $field=$itemspage_network }}{{endinc}}
-
+{{inc field_checkbox.tpl with $field=$nosmile}}{{endinc}}
 
 <div class="settings-submit-wrapper" >
 <input type="submit" name="submit" class="settings-submit" value="$submit" />
index dae16a1c7458f05e0c05c3cb696c59a3d033e2c3..dfcd8ca96003c639eb6f13d4cca343c2ff04fd75 100755 (executable)
@@ -58,7 +58,7 @@
                        <a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
                        {{ endif }}
                        {{ if $item.filer }}
-                       <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.star.filer"></a>
+                       <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.filer"></a>
                        {{ endif }}                     
                        <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
                                {{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }}
index 11decf9c45532586d6993966fced2df0bf53ebd7..abd5967b2a7d13134309367fe26c6ffffe9a242f 100755 (executable)
@@ -62,7 +62,7 @@
                        <a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
                        {{ endif }}
                        {{ if $item.filer }}
-                       <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.star.filer"></a>
+                       <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.filer"></a>
                        {{ endif }}                     
                        
                        <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
index dae16a1c7458f05e0c05c3cb696c59a3d033e2c3..dfcd8ca96003c639eb6f13d4cca343c2ff04fd75 100755 (executable)
@@ -58,7 +58,7 @@
                        <a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
                        {{ endif }}
                        {{ if $item.filer }}
-                       <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.star.filer"></a>
+                       <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.filer"></a>
                        {{ endif }}                     
                        <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
                                {{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }}
index 11decf9c45532586d6993966fced2df0bf53ebd7..abd5967b2a7d13134309367fe26c6ffffe9a242f 100755 (executable)
@@ -62,7 +62,7 @@
                        <a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
                        {{ endif }}
                        {{ if $item.filer }}
-                       <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.star.filer"></a>
+                       <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.filer"></a>
                        {{ endif }}                     
                        
                        <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
diff --git a/view/theme/diabook-blue/icons/file_as.png b/view/theme/diabook-blue/icons/file_as.png
new file mode 100755 (executable)
index 0000000..16713fa
Binary files /dev/null and b/view/theme/diabook-blue/icons/file_as.png differ
index f88c7b95477268f427e105c44fe17c0f092e1def..d3d3d9eb7aaa81132fe8bd0982b9baad0f76a51c 100644 (file)
 .icon.recycle  { background-image: url("../../../view/theme/diabook-blue/icons/recycle.png");}
 .icon.remote-link { background-image: url("../../../view/theme/diabook-blue/icons/remote.png");}
 .icon.tagged    { background-image: url("../../../view/theme/diabook-blue/icons/tagged.png");}
+.icon.file-as { background-image: url("../../../view/theme/diabook-blue/icons/file_as.png");}
 .star-item.icon.unstarred { background-image: url("../../../view/theme/diabook-blue/icons/unstarred.png");}
 .star-item.icon.starred { background-image: url("../../../view/theme/diabook-blue/icons/starred.png");}
 .icon.link             { background-image: url("../../../view/theme/diabook-blue/icons/link.png");}
index ebe40fd4ea095f2e0b20cab4bdd4109d4f525d0b..20d24702b9d6fc3f44fb3c676cd78c8436445ef9 100644 (file)
                                <a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>                                   
                        {{ endif }}     
                        
+                       {{ if $item.filer }}
+                       <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item icon file-as" title="$item.star.filer"></a>
+                       {{ endif }}                             
+                       
                        {{ if $item.plink }}<a class="icon link" title="$item.plink.title" href="$item.plink.href">$item.plink.title</a>{{ endif }}
                        
                                        
diff --git a/view/theme/diabook/communityhome.tpl b/view/theme/diabook/communityhome.tpl
new file mode 100755 (executable)
index 0000000..944aec2
--- /dev/null
@@ -0,0 +1,43 @@
+{{ if $lastusers_title }}
+<h3 style="margin-top:0px;">Help or #NewHere?</h3>
+<a href="https://helpers.pyxis.uberspace.de/profile/helpers" style="margin-left: 10px; color:#000;" title="Friendica Support" target="blank">Friendica Support</a><br>
+<a href="https://letstalk.pyxis.uberspace.de/profile/letstalk" style="margin-left: 10px; color:#000;" title="Let's talk" target="blank">Let's talk</a><br>
+<a href="http://kakste.com/profile/newhere" title="#NewHere" style="margin-left: 10px; color:#000;" target="blank">NewHere</a>
+{{ endif }}
+
+{{ if $lastusers_title }}
+<h3>$lastusers_title</h3>
+<div class='items-wrapper'>
+{{ for $lastusers_items as $i }}
+       $i
+{{ endfor }}
+</div>
+{{ endif }}
+
+{{ if $activeusers_title }}
+<h3>$activeusers_title</h3>
+<div class='items-wrapper'>
+{{ for $activeusers_items as $i }}
+       $i
+{{ endfor }}
+</div>
+{{ endif }}
+
+{{ if $photos_title }}
+<h3>$photos_title</h3>
+<div class='items-wrapper'>
+{{ for $photos_items as $i }}
+       $i
+{{ endfor }}
+</div>
+{{ endif }}
+
+
+{{ if $like_title }}
+<h3>$like_title</h3>
+<ul id='likes'>
+{{ for $like_items as $i }}
+       <li>$i</li>
+{{ endfor }}
+</ul>
+{{ endif }}
diff --git a/view/theme/diabook/directory_item.tpl b/view/theme/diabook/directory_item.tpl
new file mode 100755 (executable)
index 0000000..db1936e
--- /dev/null
@@ -0,0 +1,10 @@
+
+<div class="directory-item" id="directory-item-$id" >
+       <div class="directory-photo-wrapper" id="directory-photo-wrapper-$id" > 
+               <div class="directory-photo" id="directory-photo-$id" >
+                       <a href="$profile-link" class="directory-profile-link" id="directory-profile-link-$id" >
+                               <img class="directory-photo-img" src="$photo" alt="$alt-text" title="$alt-text" />
+                       </a>
+               </div>
+       </div>
+</div>
diff --git a/view/theme/diabook/icons/file_as.png b/view/theme/diabook/icons/file_as.png
new file mode 100755 (executable)
index 0000000..16713fa
Binary files /dev/null and b/view/theme/diabook/icons/file_as.png differ
index a65677696a6e46a0de98f8f7a6dbdb074f44d6d3..0fa8a27fd8382209cf8416c31eaf80800029541f 100644 (file)
        <li id="profile-side-photos" class="menu-profile-list photos"><a class="menu-profile-list-item" href="$ps.usermenu.photos.0">$ps.usermenu.photos.1</a></li>
        <li id="profile-side-events" class="menu-profile-list events"><a class="menu-profile-list-item" href="$ps.usermenu.events.0">$ps.usermenu.events.1</a></li>
        <li id="profile-side-notes" class="menu-profile-list notes"><a class="menu-profile-list-item" href="$ps.usermenu.notes.0">$ps.usermenu.notes.1</a></li>
-       <li id="profile-side-foren" class="menu-profile-list foren"><a class="menu-profile-list-item" href="http://dir.friendika.com/directory/forum" target="blanc">Public Groups</a></li>
+       <li id="profile-side-foren" class="menu-profile-list foren"><a class="menu-profile-list-item" href="$ps.usermenu.pgroups.0" target="blanc">$ps.usermenu.pgroups.1</a></li>
        <li id="profile-side-foren" class="menu-profile-list com_side"><a class="menu-profile-list-item" href="$ps.usermenu.community.0">$ps.usermenu.community.1</a></li>
 </ul>
 
 </div>
 
-                               
\ No newline at end of file
+                               
index 3a545f9ba624ca3f60cafc6556f867f1c3ef6e3b..918cfc97cbaaafcdc3c5918e829467125c367648 100644 (file)
@@ -22,7 +22,7 @@
                                
        
        {{ if $pdesc }}<div class="title">$profile.pdesc</div>{{ endif }}
-       <div id="profile-photo-wrapper"><img class="photo" width="175" height="175" src="$profile.photo?rev=$profile.picdate" alt="$profile.name" /></div>
+       <div id="profile-photo-wrapper"><img class="photo" width="155" height="155" src="$profile.photo?rev=$profile.picdate" alt="$profile.name" /></div>
 
 
 
diff --git a/view/theme/diabook/right_aside.tpl b/view/theme/diabook/right_aside.tpl
new file mode 100644 (file)
index 0000000..a656776
--- /dev/null
@@ -0,0 +1,20 @@
+<div id="profile_side">
+       <div id="ps-usernameicon">
+               <a href="$ps.usermenu.status.0" title="$userinfo.name">
+                       <img src="$userinfo.icon" id="ps-usericon" alt="$userinfo.name">
+               </a>
+               <a href="$ps.usermenu.status.0" id="ps-username" title="$userinfo.name">$userinfo.name</a>
+       </div>
+       
+<ul id="profile-side-menu" class="menu-profile-side">
+       <li id="profile-side-status" class="menu-profile-list home"><a class="menu-profile-list-item" href="$ps.usermenu.status.0">$ps.usermenu.status.1</a></li>
+       <li id="profile-side-photos" class="menu-profile-list photos"><a class="menu-profile-list-item" href="$ps.usermenu.photos.0">$ps.usermenu.photos.1</a></li>
+       <li id="profile-side-events" class="menu-profile-list events"><a class="menu-profile-list-item" href="$ps.usermenu.events.0">$ps.usermenu.events.1</a></li>
+       <li id="profile-side-notes" class="menu-profile-list notes"><a class="menu-profile-list-item" href="$ps.usermenu.notes.0">$ps.usermenu.notes.1</a></li>
+       <li id="profile-side-foren" class="menu-profile-list foren"><a class="menu-profile-list-item" href="http://dir.friendika.com/directory/forum" target="blanc">Public Groups</a></li>
+       <li id="profile-side-foren" class="menu-profile-list com_side"><a class="menu-profile-list-item" href="$ps.usermenu.community.0">$ps.usermenu.community.1</a></li>
+</ul>
+
+</div>
+
+                               
\ No newline at end of file
diff --git a/view/theme/diabook/style-network.css b/view/theme/diabook/style-network.css
new file mode 100644 (file)
index 0000000..f0cf04d
--- /dev/null
@@ -0,0 +1,2461 @@
+/**
+ * Fabio Comuni <http://kirgroup.com/profile/fabrixxm>
+ * Additional Changes: Michael Vogel <icarus@dabo.de>
+ **/
+
+/* ========= */
+/* = Admin = */
+/* ========= */
+
+#adminpage {
+/*        width: 80%;*/
+}
+
+#pending-update {
+        float:right;
+        color: #ffffff;
+        font-weight: bold;
+        background-color: #FF0000;
+        padding: 0em 0.3em;
+}
+
+.admin.linklist {
+        border: 0px; padding: 0px;
+}
+
+.admin.link {
+        list-style-position: inside;
+        font-size: 1em;
+        padding: 5px;
+        width: 100px;
+        margin: 5px;
+}
+
+#adminpage dl {
+        clear: left;
+        margin-bottom: 2px;
+        padding-bottom: 2px;
+        border-bottom: 1px solid black;
+}
+
+#adminpage dt {
+        width: 200px;
+        float: left;
+        font-weight: bold;
+}
+
+#adminpage dd {
+        margin-left: 200px;
+}
+#adminpage h3 {
+        border-bottom: 1px solid #898989;
+        margin-bottom: 5px;
+        margin-top: 10px;
+}
+
+#adminpage .submit {
+        clear:left;
+}
+
+#adminpage #pluginslist {
+        margin: 0px; padding: 0px;
+}
+
+#adminpage .plugin {
+        list-style: none;
+        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: 1p solid #000000; margin: 5px 0px;}
+#adminpage table th { text-align: left;}
+#adminpage td .icon { float: left;}
+#adminpage table#users img { width: 16px; height: 16px; }
+#adminpage table tr:hover { background-color: #eeeeee; }
+#adminpage .selectall { text-align: right; }
+/* icons */
+
+.icon.contacts {
+  background-image: url("../../../view/theme/diabook/icons/contacts.png");}
+.icon.notifications {
+  background-image: url("../../../view/theme/diabook/icons/notifications.png");}
+.icon.notify {
+  background-image: url("../../../view/theme/diabook/icons/notify.png");}
+.icon.messages {
+  background-image: url("../../../view/theme/diabook/icons/messages.png");}
+.icon.community {
+  background-image: url("../../../view/theme/diabook/icons/community.png");}
+  
+.icon.drop     { background-image: url("../../../view/theme/diabook/icons/drop.png");}
+.icon.drophide         { background-image: url("../../../view/theme/diabook/icons/drop.png");}
+.icon.dislike  { background-image: url("../../../view/theme/diabook/icons/dislike.png");}
+.icon.like     { background-image: url("../../../view/theme/diabook/icons/like.png");}
+.icon.pencil   { background-image: url("../../../view/theme/diabook/icons/pencil.png");}
+.icon.recycle  { background-image: url("../../../view/theme/diabook/icons/recycle.png");}
+.icon.remote-link { background-image: url("../../../view/theme/diabook/icons/remote.png");}
+.icon.tagged    { background-image: url("../../../view/theme/diabook/icons/tagged.png");}  
+.icon.file-as { background-image: url("../../../view/theme/diabook/icons/file_as.png");}
+.star-item.icon.unstarred { background-image: url("../../../view/theme/diabook/icons/unstarred.png");}
+.star-item.icon.starred { background-image: url("../../../view/theme/diabook/icons/starred.png");}
+.icon.link             { background-image: url("../../../view/theme/diabook/icons/link.png");}
+.icon.lock             { background-image: url("../../../view/theme/diabook/icons/lock.png");}
+.icon.unlock           { background-image: url("../../../view/theme/diabook/icons/unlock.png");}
+.icon.language    { background-image: url("../../../view/theme/diabook/icons/language.png");}
+
+
+.camera        { background-image: url("../../../view/theme/diabook/icons/camera.png"); 
+                         display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+                         }
+.attach        { background-image: url("../../../view/theme/diabook/icons/attach.png"); 
+                         display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+                         }
+.video2        { background-image: url("../../../view/theme/diabook/icons/video.png"); 
+                         display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+                         }     
+.video         { background-image: url("../../../view/theme/diabook/icons/video.png"); 
+                         display: block; width: 100%; height: 28px; background-repeat: no-repeat;
+                         }
+.audio2        { background-image: url("../../../view/theme/diabook/icons/audio.png"); 
+                         display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+                         }
+.audio         { background-image: url("../../../view/theme/diabook/icons/audio.png"); 
+                         display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+                         }
+.weblink       { background-image: url("../../../view/theme/diabook/icons/weblink.png"); 
+                         display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+                         }
+.globe         { background-image: url("../../../view/theme/diabook/icons/globe.png"); 
+                         display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+                         }
+.unglobe       { background-image: url("../../../view/theme/diabook/icons/unglobe.png"); 
+                         display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+                         }
+.edit    {background-image: url("../../../view/theme/diabook/icons/pencil2.png"); 
+                         display: block; width: 28px; height: 28px; background-repeat: no-repeat;}
+                         
+                         
+
+
+.article       { background-position: -50px  0px;}
+/*.audio               { background-position: -70px  0px;}*/
+.block                 { background-position: -90px  0px;}
+/*.drop                { background-position: -110px 0px;}*/
+/*.drophide    { background-position: -130px 0px;}*/
+/*.edit                { background-position: -150px 0px;}*/
+/*.camera      { background-position: -170px 0px;}*/
+/*.dislike     { background-position: -190px 0px;}*/
+/*.like                { background-position: -210px 0px;}*/
+/*.link                { background-position: -230px 0px;}*/
+
+/*.globe               { background-position: -50px  -20px;}*/
+/*.noglobe     { background-position: -70px  -20px;}*/
+.no            { background-position: -90px  -20px;}
+.pause                 { background-position: -110px -20px;}
+.play          { background-position: -130px -20px;}
+/*.pencil      { background-position: -150px -20px;}*/
+.small-pencil  { background-position: -170px -20px;}
+/*.recycle     { background-position: -190px -20px;}*/
+/*.remote-link { background-position: -210px -20px;}*/
+.share                 { background-position: -230px -20px;}
+
+.tools                 { background-position: -50px  -40px;}
+/*.lock                { background-position: -70px  -40px;}*/
+
+/*.video          { background-position: -110px -40px;}*/
+.youtube        { background-position: -130px -40px;}
+
+/*.attach         { background-position: -190px -40px;}*/
+/*.language       { background-position: -210px -40px;}*/
+
+
+.icon.on             { background-image: url("../../../view/theme/diabook/icons/toogle_on.png"); background-repeat: no-repeat;}
+.icon.off            { background-image: url("../../../view/theme/diabook/icons/toogle_off.png"); background-repeat: no-repeat;}
+.icon.prev           { background-image: url("../../../view/theme/diabook/icons/prev.png"); background-repeat: no-repeat;}
+.icon.next           { background-image: url("../../../view/theme/diabook/icons/next.png"); background-repeat: no-repeat;}
+/*.tagged     { background-position: -130px -60px;}*/
+
+.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 0px; }
+.type-audio { background-position: -40px 0px; }
+.type-text  { background-position: -60px 0px; }
+.type-unkn  { background-position: -80px 0px; }
+
+.icon.drop, .icon.drophide {
+ float: left;
+}
+
+.icon {
+  display: block;
+  width: 20px;
+  height: 20px;
+  /*background-image: url('icons.png');*/
+}
+
+.icon {
+  background-color: transparent ;
+  background-repeat: no-repeat;
+  /* background-position: left center; */
+  display: block;
+  overflow: hidden;
+  text-indent: -9999px;
+  padding: 1px;
+}
+
+.icon.border.camera{
+  background-image: url("../../../view/theme/diabook/icons/camera.png"); 
+  display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+       }
+       
+.icon.border.link{
+  background-image: url("../../../view/theme/diabook/icons/weblink.png"); 
+  display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+  margin-left: 10px;
+       }
+
+.icon.text {
+  text-indent: 0px;
+}
+.icon.s10 {
+  min-width: 10px;
+  height: 10px;
+}
+.icon.s10.notify {
+  background-image: url("../../../images/icons/10/notify_off.png");
+}
+.icon.s10.gear {
+  background-image: url("../../../images/icons/10/gear.png");
+}
+.icon.s10.add {
+  background-image: url("../../../images/icons/10/add.png");
+}
+.icon.s10.delete {
+  background-image: url("../../../images/icons/10/delete.png");
+}
+.icon.s10.edit {
+  background-image: url("../../../images/icons/10/edit.png");
+}
+.icon.s10.star {
+  background-image: url("../../../images/star_dummy.png");
+}
+.icon.s10.menu {
+  background-image: url("../../../images/icons/10/menu.png");
+}
+.icon.s10.link {
+  background-image: url("../../../images/icons/10/link.png");
+}
+.icon.s10.lock {
+  background-image: url("../../../images/icons/10/lock.png");
+}
+.icon.s10.unlock {
+  background-image: url("../../../images/icons/10/unlock.png");
+}
+.icon.s10.text {
+  padding: 2px 0px 0px 15px;
+  font-size: 10px;
+}
+.icon.s16 {
+  min-width: 16px;
+  height: 16px;
+}
+.icon.s16.notify {
+  background-image: url("../../../images/icons/16/notify_off.png");
+}
+.icon.s16.gear {
+  background-image: url("../../../images/icons/16/gear.png");
+}
+.icon.s16.add {
+  background-image: url("../../../images/icons/16/add.png");
+}
+.icon.s16.delete {
+  background-image: url("../../../images/icons/16/delete.png");
+}
+/*.icon.s16.edit {
+  background-image: url("../../../images/icons/16/edit.png");
+}*/
+.icon.s16.star {
+  background-image: url("../../../images/star_dummy.png");
+}
+.icon.s16.menu {
+  background-image: url("../../../images/icons/16/menu.png");
+}
+/*.icon.s16.link {
+  background-image: url("../../../images/icons/16/link.png");
+}*/
+.icon.s16.lock {
+  background-image: url("../../../images/icons/16/lock.png");
+}
+.icon.s16.unlock {
+  background-image: url("../../../images/icons/16/unlock.png");
+}
+.icon.s16.text {
+  padding: 4px 0px 0px 20px;
+  font-size: 10px;
+}
+.icon.s22 {
+  min-width: 22px;
+  height: 22px;
+}
+.icon.s22.notify {
+  background-image: url("../../../images/icons/22/notify_off.png");
+}
+.icon.s22.gear {
+  background-image: url("../../../images/icons/22/gear.png");
+}
+.icon.s22.add {
+  background-image: url("../../../images/icons/22/add.png");
+}
+.icon.s22.delete {
+  background-image: url("../../../images/icons/22/delete.png");
+}
+.icon.s22.edit {
+  background-image: url("../../../images/icons/22/edit.png");
+}
+.icon.s22.star {
+  background-image: url("../../../images/star_dummy.png");
+}
+.icon.s22.menu {
+  background-image: url("../../../images/icons/22/menu.png");
+}
+.icon.s22.link {
+  background-image: url("../../../images/icons/22/link.png");
+}
+.icon.s22.lock {
+  background-image: url("../../../images/icons/22/lock.png");
+}
+.icon.s22.unlock {
+  background-image: url("../../../images/icons/22/unlock.png");
+}
+.icon.s22.text {
+  padding: 10px 0px 0px 25px;
+  width: 200px;
+}
+.icon.s48 {
+  width: 48px;
+  height: 48px;
+}
+.icon.s48.notify {
+  background-image: url("../../../images/icons/48/notify_off.png");
+}
+.icon.s48.gear {
+  background-image: url("../../../images/icons/48/gear.png");
+}
+.icon.s48.add {
+  background-image: url("../../../images/icons/48/add.png");
+}
+.icon.s48.delete {
+  background-image: url("../../../images/icons/48/delete.png");
+}
+.icon.s48.edit {
+  background-image: url("../../../images/icons/48/edit.png");
+}
+.icon.s48.star {
+  background-image: url("../../../images/star_dummy.png");
+}
+.icon.s48.menu {
+  background-image: url("../../../images/icons/48/menu.png");
+}
+.icon.s48.link {
+  background-image: url("../../../images/icons/48/link.png");
+}
+.icon.s48.lock {
+  background-image: url("../../../images/icons/48/lock.png");
+}
+.icon.s48.unlock {
+  background-image: url("../../../images/icons/48/unlock.png");
+}
+
+#contact-edit-links ul {
+  list-style: none;
+  list-style-type: none;
+}
+
+.hide-comments-outer {
+  margin-left: 80px;
+  margin-bottom: 5px;
+  width: 484px;
+  border-bottom: 1px solid #BDCDD4;
+  border-top: 1px solid #BDCDD4;
+
+  padding: 8px;
+}
+
+/* global */
+body {
+  font-family: 'Lato', "Helvetica Neue", Helvetica, Arial, sans-serif;
+  font-size: 13px;
+  background-color: #ffffff;
+  color: #2d2d2d;
+  margin: 50px auto auto;
+  display: table;
+}
+
+h4 {
+  font-size: 1.1em;
+}
+
+a {
+       color: #3465A4;
+       /* color: #3e3e8c; */
+       text-decoration: none;
+}
+a:hover {
+       /* color: blue; */
+       text-decoration: underline
+}
+
+.wall-item-name-link {
+/*  float: left;*/
+}
+
+.wall-item-photo {
+  width: 48px;
+  height: 48px;
+  overflow: hidden;
+  display: block;
+}
+
+.left {
+  float: left;
+}
+.right {
+  float: right;
+}
+.hidden {
+  display: none;
+}
+.clear {
+  clear: both;
+}
+.fakelink {
+  color: #3465A4;
+  /* color: #3e3e8c; */
+  text-decoration: none;
+  cursor: pointer;
+}
+.fakelink:hover {
+  /* color: blue; */
+  /*color: #005c94; */
+  text-decoration: underline;
+}
+code {
+  font-family: Courier, monospace;
+  white-space: pre;
+  display: block;
+  overflow: auto;
+  border: 1px solid #444;
+  background: #EEE;
+  color: #444;
+  padding: 10px;
+  margin-top: 20px;
+}
+#panel {
+  position: absolute;
+  width: 12em;
+  background: #ffffff;
+  color: #2d2d2d;
+  margin: 0px;
+  padding: 1em;
+  list-style: none;
+  border: 3px solid #364e59;
+  z-index: 100000;
+  -webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+  -moz-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+  box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+}
+/* tool */
+.tool {
+  height: auto;
+  overflow: auto;
+  padding: 3px;
+}
+#saved-search-ul .tool:hover,
+#nets-sidebar .tool:hover,
+#sidebar-group-list .tool:hover {
+       background: #EEE;
+}
+.tool .label {
+  float: left;
+}
+.tool .action {
+  float: right;
+}
+.tool a {
+  color: ##3F8FBA;
+}
+.tool a:hover {
+  text-decoration: none;
+}
+/* popup notifications */
+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;
+}
+/* header */
+header {
+  position: fixed;
+  left: 0%;
+  right: 80%;
+  top: 0px;
+  margin: 0px;
+  padding: 0px;
+  width: 22%;
+  height: 32px;
+  background: #000;
+  z-index: 100;
+  -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+  -moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+}
+header #site-location {
+  display: none;
+}
+header #banner {
+  overflow: hidden;
+  text-align: left;
+  width: 82%%;
+  margin-left: 25%;
+}
+header #banner a,
+header #banner a:active,
+header #banner a:visited,
+header #banner a:link,
+header #banner a:hover {
+  color: #ffffff;
+  text-decoration: none;
+  outline: none;
+  vertical-align: middle;
+}
+header #banner #logo-img {
+  height: 25px;
+  margin-top: 5px;
+}
+header #banner #logo-text {
+  font-size: 22px;
+  position: absolute;
+  top: 15%;
+}
+/* nav */
+nav {
+  width: 80%;
+  height: 32px;
+  position: fixed;
+  left: 22%;
+  top: 0px;
+  padding: 0px;
+  background: #000;
+  color: #ffffff;
+  z-index: 99;
+  -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+  -moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+}
+nav a,
+nav a:active,
+nav a:visited,
+nav a:link,
+nav a:hover {
+  color: #ffffff;
+  text-decoration: none;
+  outline: none;
+}
+nav #banner {
+  overflow: hidden;
+  /*text-align: center;*/
+  width: 100%;
+}
+nav #banner a,
+nav #banner a:active,
+nav #banner a:visited,
+nav #banner a:link,
+nav #banner a:hover {
+  color: #ffffff;
+  text-decoration: none;
+  outline: none;
+  vertical-align: bottom;
+}
+nav #banner #logo-img {
+  height: 22px;
+  margin-top: 5px;
+}
+nav #banner #logo-text {
+  font-size: 22px;
+}
+nav #navbar{
+       }
+nav ul {
+  margin: 0px;
+  padding: 0px 20px;
+}
+nav ul li {
+  list-style: none;
+  margin: 0px;
+  /* padding: 1px 1px 3px 1px; */
+  float: left;
+}
+nav ul li .menu-popup {
+  left: 0px;
+  right: auto;
+}
+
+nav #logo-img {
+  height: 25px;
+  margin-top: 4px;
+  margin-left: 30px;
+}
+
+nav #logo-text {
+    font-size: 22px;
+    margin-top: 3px;
+    margin-right: 15px;
+}
+nav .nav-menu-search {
+  position: relative;
+
+  margin: 3px 17px;
+  margin-right: 0px;
+  height: 17px;
+  width: 180px;
+  
+}
+
+nav #search-box #search-text {
+  background-image:  url('icons/lupe.png');
+  background-repeat:no-repeat;
+  padding-left:20px;
+       }
+
+
+nav .nav-menu-icon {
+  position: relative;
+  height: 22px;
+  padding: 5px;
+  margin: 0px 7px;
+  -moz-border-radius: 5px 5px 0 0;
+  -webkit-border-radius: 5px 5px 0 0;
+  border-radius: 5px 5px 0 0;
+}
+nav .nav-menu-icon.selected {
+  background-color: #fff;
+}
+nav .nav-menu-icon img {
+  width: 22px;
+  height: 22px;
+}
+nav .nav-menu-icon .nav-notify {
+  top: 3px;
+}
+nav .nav-menu {
+  position: relative;
+  height: 16px;
+  padding: 5px;
+  margin: 3px 15px 0px;
+  font-size: 13px;
+  /*border-bottom: 3px solid #364A84;*/
+}
+nav .nav-menu.selected {
+  /*border-bottom: 3px solid #9eabb0;*/
+}
+nav .nav-notify {
+  display: none;
+  position: absolute;
+  background-color: #ff0000;
+  /* background-color: #19aeff; */
+  -moz-border-radius: 5px 5px 5px 5px;
+  -webkit-border-radius: 5px 5px 5px 5px;
+  border-radius: 5px 5px 5px 5px;
+  font-size: 10px;
+  font-weight: 900;
+  padding: 1px 4px;
+  top: 0px;
+  right: -6px;
+  min-width: 10px;
+  text-align: center;
+}
+nav .nav-notify.show {
+  display: block;
+}
+nav #nav-help-link,
+nav #nav-search-link,
+nav #nav-directory-link,
+nav #nav-apps-link,
+nav #nav-site-linkmenu, 
+nav #nav-home-link,
+nav #nav-user-linkmenu
+{
+  float: right;
+}
+nav #nav-user-linkmenu{
+       margin-right: 0px;
+       }
+nav #nav-home-link, #nav-directory-link, #nav-apps-link{
+       margin-left: 0px;
+       margin-right: 0px;
+       font-weight: bold;
+       margin: 3px 5px;
+       }
+nav #nav-directory-link{
+  margin-right: 0px;   
+       }
+nav #nav-home-link{
+  margin-left: 0px;    
+       }
+nav #nav-help-link .menu-popup,
+nav #nav-search-link .menu-popup,
+nav #nav-directory-link .menu-popup,
+nav #nav-apps-link .menu-popup,
+nav #nav-site-linkmenu .menu-popup {
+  right: 0px;
+  left: auto;
+}
+
+nav #nav-messages-linkmenu.on .icon.messages, nav #nav-messages-linkmenu.selected .icon.messages{
+       background-image: url("../../../view/theme/diabook/icons/messages2.png");
+       }
+       
+/*nav #nav-notifications-linkmenu.on .icon.notify,*/ nav #nav-notifications-linkmenu.selected .icon.notify{
+       background-image: url("../../../view/theme/diabook/icons/notify2.png");
+       }
+       
+nav #nav-contacts-linkmenu.on .icon.contacts, nav #nav-contacts-linkmenu.selected .icon.contacts{
+       background-image: url("../../../view/theme/diabook/icons/contacts2.png");
+       }
+       
+nav #nav-apps-link.selected {
+  background-color: #364e59;
+}
+
+#nav-notifications-mark-all {
+       /* padding: 1px 1px 2px 26px; */
+       /* border-bottom: 1px solid #364E59; */
+       /* margin: 0px 0px 2px 0px;
+       padding: 5px 10px; */
+}
+
+#nav-notifications-see-all {
+       /* padding: 1px 1px 2px 26px; */
+       /* border-bottom: 1px solid #364E59; */
+       /* margin: 0px 0px 2px 0px;
+       padding: 5px 10px; */
+}
+
+.notify-seen {
+       background: none repeat scroll 0 0 #DDDDDD;
+       }
+
+ul.menu-popup {
+  position: absolute;
+  display: none;
+  width: 11em;
+  background: #ffffff;
+  color: #2d2d2d;
+  margin: 0px;
+  padding: 0px;
+  list-style: none;
+  z-index: 100000;
+  -webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+  -moz-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+  box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+}
+ul.menu-popup a {
+  display: block;
+  color: #2d2d2d;
+  padding: 5px 10px;
+  text-decoration: none;
+}
+ul.menu-popup a:hover {
+  background-color: #fff797; /*bdcdd4;*/
+  color: #000;
+}
+ul.menu-popup .menu-sep {
+  border-top: 1px solid #9eabb0;
+}
+ul.menu-popup li {
+  float: none;
+  overflow: auto;
+  height: auto;
+  display: block;
+}
+ul.menu-popup li img {
+  float: left;
+  width: 16px;
+  height: 16px;
+  padding-right: 5px;
+}
+ul.menu-popup .empty {
+  padding: 5px;
+  text-align: center;
+  color: #9eabb0;
+}
+/* autocomplete popup */
+.acpopup {
+  max-height: 150px;
+  background-color: #ffffff;
+  color: #2d2d2d;
+  border: 1px solid #MenuBorder;
+  overflow: auto;
+  z-index: 100000;
+  -webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+  -moz-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+  box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+}
+.acpopupitem {
+  color: #2d2d2d;
+  padding: 4px;
+  clear: left;
+}
+.acpopupitem img {
+  float: left;
+  margin-right: 4px;
+}
+.acpopupitem.selected {
+  background-color: #bdcdd4;
+}
+#nav-notifications-menu {
+  width: 400px;
+  max-height: 550px;
+  overflow: auto;
+}
+/* #nav-notifications-menu a {
+       display: inline;
+       padding: 5px 0px;
+       margin: 0px 0px 2px 0px;
+}
+#nav-notifications-menu li:hover {
+  background-color: #bdcdd4;
+}*/
+
+#nav-notifications-menu img {
+  float: left;
+  margin-right: 5px;
+}
+#nav-notifications-menu .contactname {
+  font-weight: bold;
+}
+#nav-notifications-menu .notif-when {
+  font-size: 10px;
+  color: #9eabb0;
+  display: block;
+}
+
+.notif-image {
+        width: 32px;
+        height: 32px;
+        padding: 7px 7px 0px 0px;
+}
+
+/*profile_side*/
+#profile_side {
+  margin-bottom: 30px;
+}
+#ps-usericon{
+       height: 25px    
+       }
+#ps-username{
+  font-size: 1.17em;
+  font-weight: bold;
+  vertical-align: top;
+  position: absolute;
+  padding-top: 4px;
+  padding-left: 5px;   
+  color: #2D2D2D;
+       }
+#ps-username:hover{
+  text-decoration: none;       
+       }
+.menu-profile-side{
+  list-style: none;    
+  padding-left: 0px;
+  min-height: 0px;
+       }
+.menu-profile-list{
+  height: auto;
+  overflow: auto;
+  padding-top: 3px;
+  padding-bottom: 3px;
+  padding-left: 16px;
+  min-height: 16px;
+  list-style: none;
+       }
+.menu-profile-list:hover{
+       background: #EEE;
+       }
+.menu-profile-list-item{
+       padding-left: 5px;
+       }       
+.menu-profile-list-item:hover{ 
+       text-decoration: none;
+   }
+/*http://prothemedesign.com/circular-icons/*/
+.menu-profile-list.home{
+       background: url("../../../view/theme/diabook-blue/icons/home.png") no-repeat;
+       }
+.menu-profile-list.photos{
+       background: url("../../../view/theme/diabook-blue/icons/mess_side.png") no-repeat;
+       }
+.menu-profile-list.events{
+       background: url("../../../view/theme/diabook-blue/icons/events.png") no-repeat;
+       }
+.menu-profile-list.notes{
+       background: url("../../../view/theme/diabook-blue/icons/notes.png") no-repeat;
+       }
+.menu-profile-list.foren{
+       background: url("../../../view/theme/diabook-blue/icons/pubgroups.png") no-repeat;
+       }
+.menu-profile-list.com_side{
+       background: url("../../../view/theme/diabook-blue/icons/com_side.png") no-repeat;
+       }
+
+/* aside */
+aside {
+  display: table-cell;
+  vertical-align: top;
+  width: 160px;
+  padding: 0px 10px 0px 10px;
+  border-right: 1px solid #D2D2D2;
+  float: left;
+  /* background: #F1F1F1; */
+}
+
+aside .vcard .fn {
+  font-size: 18px;
+  font-weight: bold;
+  margin-bottom: 5px;
+}
+aside .vcard .title {
+  margin-bottom: 5px;
+}
+aside .vcard dl {
+  height: auto;
+  overflow: auto;
+}
+aside .vcard dt {
+  float: left;
+  margin-left: 0px;
+  /*width: 35%;*/
+  text-align: right;
+  color: #999999;
+}
+aside .vcard dd {
+  float: left;
+  margin-left: 5px;
+  /*width: 60%;*/
+}
+aside #profile-extra-links ul {
+  padding: 0px;
+  margin: 0px;
+}
+aside #profile-extra-links li {
+  padding: 0px;
+  margin: 0px;
+  list-style: none;
+}
+aside #dfrn-request-link {
+  display: block;
+  -moz-border-radius: 5px 5px 5px 5px;
+  -webkit-border-radius: 5px 5px 5px 5px;
+  border-radius: 5px 5px 5px 5px;
+  color: #ffffff;
+  background: #005c94 url('../../../images/connect-bg.png') no-repeat left center;
+  font-weight: bold;
+  text-transform: uppercase;
+  padding: 4px 2px 2px 35px;
+}
+aside #dfrn-request-link:hover {
+  text-decoration: none;
+  background-color: #36c;
+  /* background-color: #19aeff; */
+}
+aside #profiles-menu {
+  width: 20em;
+}
+aside #search-text {
+       width: 150px;
+}
+aside #side-follow-url {
+       width: 150px;
+       }
+aside #side-peoplefind-url {
+       width: 150px;
+       }
+#contact-block {
+  overflow: auto;
+  height: auto;
+}
+#contact-block .contact-block-h4 {
+  float: left;
+  margin: 5px 0px;
+}
+#contact-block .allcontact-link {
+  float: right;
+  margin: 5px 0px;
+}
+#contact-block .contact-block-content {
+  clear: both;
+  overflow: auto;
+  height: auto;
+}
+#contact-block .contact-block-link {
+  float: left;
+  margin: 0px 2px 2px 0px;
+}
+#contact-block .contact-block-link img {
+  widht: 55px;
+  height: 55px;
+}
+#lost-password-link {
+  float: left;
+  margin-right: 20px;  
+       }
+/* widget */
+.widget {
+  margin-bottom: 2em;
+  /*.action .s10 { width: 10px; overflow: hidden; padding: 0px;}
+       .action .s16 { width: 16px; overflow: hidden; padding: 0px;}*/
+/*  font-size: 12px; */
+}
+.widget h3 {
+  padding: 0px;
+  margin: 2px;
+}
+.widget .action {
+  opacity: 0.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;
+}
+.widget input.action {
+  opacity: 0.5;
+  -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;
+}
+.widget:hover .title .action {
+  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;
+}
+.widget .tool:hover .action {
+  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;
+}
+.widget .tool:hover .action.ticked {
+  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;
+}
+.widget ul {
+  padding: 0px;
+}
+.widget ul li {
+  padding-left: 16px;
+  min-height: 16px;
+  list-style: none;
+}
+.widget .tool.selected {
+  background: url("../../../view/theme/diabook/icons/selected.png") no-repeat left center;
+}
+/* widget: search */
+#add-search-popup {
+  width: 200px;
+  top: 18px;
+}
+/* section */
+section {
+  display: table-cell;
+  vertical-align: top;
+  width: auto;
+  padding: 0px 0px 0px 12px;
+}
+
+body .pageheader{
+  text-align: center;
+  margin-top: 25px;
+  font-size: 0px;
+       }
+
+#id_username {
+  width: 173px;        
+       }
+#id_password {
+  width: 173px;                
+       }
+#id_openid_url {
+  width: 173px;        
+       }
+#contact-edit-end {
+       }
+.pager {
+   padding: 10px;
+       text-align: center;
+       font-size: 1.0em;
+       clear: both;
+       display: block;
+}      
+.tabs {
+    
+    background-position: 0 -20px;
+    background-repeat: repeat-x;
+    height: 27px;
+    padding: 0;
+ }
+.tab.button {
+    margin-right: 5px; 
+    margin-left: 5px;  
+    /*background: none repeat scroll 0 0 #F8F8F8;*/
+    border: 1px solid #CCCCCC;
+    border-radius: 3px 3px 3px 3px;
+    font-weight: normal;
+    padding: 3px;
+    color:  #333333;
+       }
+       
+#birthday-notice, #event-notice, #birthday-wrapper, #event-wrapper{
+       margin-bottom: 10px;
+       }
+
+right_aside {
+  display: table-cell;
+  vertical-align: top;
+  width: 160px;
+  padding-right: 10px;
+  /*border-left: 1px solid #D2D2D2;*/
+  
+  /* background: #F1F1F1; */
+}
+right_aside h3 {border-bottom: 1px solid #D2D2D2; padding-top: 5px; padding-bottom: 0px; padding-left: 5px; margin-bottom: 0px; 
+margin-top:30px;}
+right_aside .directory-item {  width: 50px; height: 50px; vertical-align: center; text-align: center; }
+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%; border-bottom: 1px solid #D2D2D2;}
+
+/* wall item */
+.tread-wrapper {
+  border-bottom: 1px solid #D2D2D2;
+  position: relative;
+  padding: 5px;
+  margin-bottom: 0px;
+  width: 575px;
+}
+.wall-item-decor {
+  position: absolute;
+  left: 790px;
+  top: -10px;
+  width: 16px;
+}
+
+.wall-item-container {
+  display: table;
+  width: 580px;
+}
+
+
+.wall-item-container .wall-item-item, .wall-item-container .wall-item-bottom {
+  display: table-row;
+}
+.wall-item-bottom {
+  font-size: 13px;
+}
+.wall-item-container .wall-item-bottom {
+/*  opacity: 0.5;
+  -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; */
+}
+.wall-item-container:hover .wall-item-bottom {
+/*  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; */
+}
+.wall-item-container .wall-item-info {
+  display: table-cell;
+  vertical-align: top;
+  text-align: left;
+  width: 80px;
+}
+.wall-item-container .wall-item-location {
+  padding-right: 40px;
+  display: table-cell;
+}
+.wall-item-container .wall-item-ago {
+  word-wrap: break-word;
+  width: 50px;
+  margin-left: 10px;
+  color: #999;
+}
+.wall-item-location {
+  
+  clear: both;
+  overflow: hidden;
+  
+  margin-bottom: 5px;
+}
+
+.wall-item-container .wall-item-content {
+  font-size: 13px;
+  max-width: 720px;
+  word-wrap: break-word;
+  line-height: 1.4;
+}
+
+.wall-item-container .wall-item-content img {
+  max-width: 700px;
+}
+.wall-item-container .wall-item-links, .wall-item-container .wall-item-actions {
+  display: table-cell;
+  vertical-align: middle;
+}
+.wall-item-container .wall-item-links .icon, .wall-item-container .wall-item-actions .icon {
+  opacity: 0.5;
+  -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;
+}
+.wall-item-container .wall-item-links .icon:hover, .wall-item-container .wall-item-actions .icon: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;
+}
+.wall-item-container .wall-item-name {
+  font-weight: bold;
+}
+.wall-item-container .wall-item-actions-author {
+  width: 100%;
+  margin-bottom: 0.3em;
+}
+.wall-item-container .wall-item-actions-social {
+  float: left;
+  margin-bottom: 1px;
+  display: table-cell;
+}
+.wall-item-container .wall-item-actions-social a {
+  margin-right: 1em;
+}
+.wall-item-actions-social a {
+  float: left;
+}
+.wall-item-container .wall-item-actions-tools {
+  float: right;
+  width: 80px;
+  display: table-cell;
+}
+.wall-item-container .wall-item-actions-tools a {
+  float: right;
+}
+.wall-item-container .wall-item-actions-tools input {
+  float: right;
+}
+.wall-item-container.comment {
+  margin-top: 5px;
+  margin-bottom: 5px;
+  margin-left: 80px;
+  width: 500px;
+  border-bottom: 1px solid hsl(198, 21%, 79%);
+}
+.wall-item-container.comment .contact-photo {
+  width: 32px;
+  height: 32px;
+  margin-left: 16px;
+  /*background: url(../../../images/icons/22/user.png) no-repeat center center;*/
+
+}
+.wall-item-container.comment {
+  top: 15px !important;
+  left: 15px !important;
+}
+.wall-item-container.comment .wall-item-links {
+  padding-left: 12px;
+}
+.wall-item-comment-wrapper {
+  margin: 1px 5px 1px 80px;
+}
+.wall-item-comment-wrapper .comment-edit-photo {
+  display: none;
+}
+.wall-item-comment-wrapper textarea {
+  height: 2.0em;
+  width: 100%;
+  font-size: 10px;
+  color: #999999;
+  border: 1px solid #DDD;
+  padding: 0.3em;
+  font-size: 14px;
+}
+.wall-item-comment-wrapper .comment-edit-text-full {
+  font-size: 14px;
+  height: 4em;
+  color: #2d2d2d;
+  border: 1px solid #2d2d2d;
+}
+.comment-edit-preview {
+  width: 710px;
+  border: 1px solid #2d2d2d;
+  margin-top: 10px;
+}
+.comment-edit-preview .contact-photo {
+  width: 32px;
+  height: 32px;
+  margin-left: 16px;
+  /*background: url(../../../images/icons/22/user.png) no-repeat center center;*/
+
+}
+.comment-edit-preview {
+  top: 15px !important;
+  left: 15px !important;
+}
+.comment-edit-preview .wall-item-links {
+  padding-left: 12px;
+}
+.comment-edit-preview .wall-item-container {
+  width: 700px;
+}
+.comment-edit-preview .tread-wrapper {
+  width: 700px;
+  padding: 0;
+  margin: 10px 0;
+}
+
+.shiny {
+  /* border-right: 10px solid #fce94f; */
+       border-right: 1px solid #A7C7F7;
+       padding-right: 12px;
+}
+
+#jot-preview-content{
+       margin-top: 30px;}
+       
+#jot-preview-content .tread-wrapper {
+  background-color: #fff797;
+}
+
+.wall-item-tags {
+  padding-top: 1px;
+  padding-bottom: 2px;
+}
+.tag {
+  /*background: url("../../../images/tag_b.png") repeat-x center left;*/
+  color: #3465A4;
+  padding-left: 3px;
+  font-size: 12px;
+}
+.tag a {
+  padding-right: 5px;
+  /*background: url("../../../images/tag.png") no-repeat center right;*/
+  color: #3465A4;
+}
+.wwto {
+  position: absolute !important;
+  width: 25px;
+  height: 25px;
+  background: #FFFFFF;
+  border: 2px solid #364e59;
+  height: 25px;
+  width: 25px;
+  overflow: hidden;
+  padding: 1px;
+  position: absolute !important;
+  top: 40px;
+  left: 30px;
+  -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+  -moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+}
+.wwto .contact-photo {
+  width: auto;
+  height: 25px;
+}
+/* contacts menu */
+.contact-photo-wrapper {
+  position: relative;
+  width: 80px;
+}
+
+.contact-photo-wrapper.wwto {
+  width: 25px;
+}
+
+.contact-photo {
+  width: 48px;
+  height: 48px;
+  overflow: hidden;
+  display: block;
+}
+.contact-photo img {
+  width: 48px;
+  height: 48px;
+}
+
+.contact-wrapper {
+  float: left;
+  width: 90px;
+  height: 90px;
+  margin-bottom: 15px;
+}
+.contact-wrapper .contact-photo {
+  width: 80px;
+  height: 80px;
+}
+.contact-wrapper .contact-photo img {
+  width: 80px;
+  height: 80px;
+}
+.contact-wrapper {
+  left: 0px;
+  top: 63px;
+}
+.contact-photo {
+  width: 48px;
+  height: 48px;
+}
+.contact-photo img {
+  width: 48px;
+  height: 48px;
+}
+.contact-name {
+  /* text-align: center; */
+  /*font-weight: bold;*/
+  font-size: 12px;
+}
+.contact-details {
+  color: #999999;
+}
+/* editor */
+.jothidden {
+  display: none;
+}
+#jot {
+  width: 585px;
+  margin: 0px 2em 20px 0px;
+}
+#profile-jot-form #profile-jot-text {
+  height: 2.0em;
+  width: 99%;
+  font-size: 15px;
+  color: #999999;
+  border: 1px solid #DDD;
+  padding: 0.3em;
+  margin-bottom: 10px;
+}
+#jot #jot-tools {
+  margin: 0px;
+  padding: 0px;
+  height: 40px;
+  overflow: none;
+  width: 583px;
+  background-color: #fff;
+  border-bottom: 2px solid #9eabb0;
+}
+
+#jot #jot-tools li {
+  list-style: none;
+  float: left;
+  width: 80px;
+  height: 40px;
+  border-bottom: 2px solid #9eabb0;
+}
+#jot #jot-tools li a {
+  display: block;
+  color: #cccccc;
+  width: 100%;
+  height: 40px;
+  text-align: center;
+  line-height: 40px;
+  overflow: hidden;
+}
+#jot #jot-tools li:hover {
+  background-color: #364e59;
+  border-bottom: 2px solid #bdcdd4;
+}
+#jot #jot-tools li.perms {
+  float: right;
+  width: 40px;
+}
+#jot #jot-tools li.perms a.unlock {
+  width: 30px;
+  border-left: 10px solid #cccccc;
+  background-color: #cccccc;
+  background-position: left center;
+}
+#jot #jot-tools li.perms a.lock {
+  width: 30px;
+  border-left: 10px solid #666666;
+  background-color: #666666;
+}
+#jot #jot-tools li.submit {
+  float: right;
+  background-color: #cccccc;
+  border-bottom: 2px solid #cccccc;
+  border-right: 1px solid #666666;
+  border-left: 1px solid #666666;
+}
+#jot #jot-tools li.submit input {
+  border: 0px;
+  margin: 0px;
+  padding: 0px;
+  background-color: #cccccc;
+  color: #666666;
+  width: 80px;
+  height: 40px;
+  line-height: 40px;
+}
+#jot #jot-tools li.submit input:hover {
+  background-color: #bdcdd4;
+  color: #666666;
+}
+#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;
+}
+#profile-jot-form #jot-title {
+    
+        border-radius: 5px 5px 5px 5px;
+    font-weight: bold;
+    height: 20px;
+    margin: 0 0 5px;
+    width: 60%;
+    border: 1px solid #ffffff;
+}
+#profile-jot-form #jot-title:-webkit-input-placeholder {
+  font-weight: normal;
+}
+#profile-jot-form #jot-title:-moz-placeholder {
+  font-weight: normal;
+}
+#profile-jot-form #profile-jot-text_parent #profile-jot-text_tbl{
+       width: 585px;
+       height: 100px;
+       }
+#jot #jot-title:hover {
+  border: 1px solid #999999;
+}
+#jot #jot-title:focus {
+  border: 1px solid #999999;
+}
+#jot #character-counter {
+  width: 80px;
+  float: right;
+  text-align: right;
+  height: 20px;
+  line-height: 20px;
+  padding-right: 20px;
+}
+#jot-perms-icon, 
+#profile-location,
+#profile-nolocation,
+#profile-youtube, 
+#profile-video, 
+#profile-audio,
+#profile-link,
+#profile-title, 
+#wall-image-upload,
+#wall-file-upload,
+#wall-image-upload-div,
+#wall-file-upload-div,
+.hover, .focus {
+       cursor: pointer;
+       margin-top: 2px;
+}
+#profile-jot-wrapper{
+       margin: 0 2em 20px 0;
+   width: 585px;
+       }
+
+#profile-jot-submit-wrapper {
+       margin-bottom: 50px;
+       width: 585px;
+}
+
+#profile-jot-submit {
+       float: right;
+       margin-top: 2px;
+       
+}
+#profile-upload-wrapper {
+       float: left;
+       margin-top: 2px;
+       margin-left: 10px;
+       
+}
+#profile-attach-wrapper {
+       float: left;
+       margin-left: 15px;
+       margin-top: 2px;
+}
+#profile-rotator {
+       float: left;
+       margin-left: 30px;
+       margin-top: 2px;
+}
+#profile-link-wrapper {
+       float: left;
+       margin-left: 15px;
+       margin-top: 2px;
+}
+#profile-youtube-wrapper {
+       float: left;
+       margin-left: 15px;
+       margin-top: 2px;
+}
+#profile-video-wrapper {
+       float: left;
+       margin-left: 15px;
+       margin-top: 2px;
+}
+#profile-audio-wrapper {
+       float: left;
+       margin-left: 15px;
+       margin-top: 2px;
+}
+#profile-location-wrapper {
+       float: left;
+       margin-left: 15px;
+       margin-top: 2px;
+}
+#profile-jot-perms {
+       float: left;
+       margin-left: 45px;
+       margin-top: 2px;
+}
+#jot-preview-link {
+       float: right;
+       margin-left: 10px;
+       margin-top: 2px;
+       font-size: 10px;
+}
+#profile-jot-perms{
+   float: right;
+       margin-left: 10px;
+       margin-top: 2px;        
+       }
+/** buttons **/
+.button.creation1 {
+    background-color: #fff;
+    border: 1px solid #777777;
+    background-image: -moz-linear-gradient(center top , white 0%, #DDDDDD 100%);
+    border-radius: 3px 3px 3px 3px;
+    box-shadow: 0 1px 1px #CFCFCF;
+}
+.button.creation2 {
+    background-color: #33ACFF;
+    background-image: -moz-linear-gradient(center top , #66C1FF 0%, #0097FF 100%);
+    border: 1px solid #777777;
+    color: white;
+    border-radius: 3px 3px 3px 3px;
+    box-shadow: 0 1px 1px #CFCFCF;
+    margin-left: 5px;
+}
+/*input[type="submit"] {
+       border: 0px;
+    background-color: @ButtonBackgroundColor;
+    color: @ButtonColor;
+    padding: 0px 10px;
+       .rounded(5px);
+    height: 18px;
+}*/
+/** acl **/
+#photo-edit-perms-select, #photos-upload-permissions-wrapper, #profile-jot-acl-wrapper {
+  display: block!important;
+}
+#acl-wrapper {
+  width: 690px;
+  float: left;
+}
+#acl-search {
+  float: right;
+  background: #ffffff url("../../../images/search_18.png") no-repeat right center;
+  padding-right: 20px;
+}
+#acl-showall {
+  float: left;
+  display: block;
+  width: auto;
+  height: 18px;
+  background-color: #cccccc;
+  background-image: url("../../../images/show_all_off.png");
+  background-position: 7px 7px;
+  background-repeat: no-repeat;
+  padding: 7px 5px 0px 30px;
+  color: #999999;
+  -moz-border-radius: 5px 5px 5px 5px;
+  -webkit-border-radius: 5px 5px 5px 5px;
+  border-radius: 5px 5px 5px 5px;
+}
+#acl-showall.selected {
+  color: #000000;
+  background-color: #ff9900;
+  background-image: url("../../../images/show_all_on.png");
+}
+#acl-list {
+  height: 210px;
+  border: 1px solid #cccccc;
+  clear: both;
+  margin-top: 30px;
+  overflow: auto;
+}
+.acl-list-item {
+  display: block;
+  width: 150px;
+  height: 30px;
+  border: 1px solid #cccccc;
+  margin: 5px;
+  float: left;
+}
+.acl-list-item img {
+  width: 22px;
+  height: 22px;
+  float: left;
+  margin: 4px;
+}
+.acl-list-item p {
+  height: 12px;
+  font-size: 10px;
+  margin: 0px;
+  padding: 2px 0px 1px;
+  overflow: hidden;
+}
+.acl-list-item a {
+  font-size: 8px;
+  display: block;
+  width: 40px;
+  height: 10px;
+  float: left;
+  color: #999999;
+  background-color: #cccccc;
+  background-position: 3px 3px;
+  background-repeat: no-repeat;
+  margin-right: 5px;
+  -webkit-border-radius: 2px ;
+  -moz-border-radius: 2px;
+  border-radius: 2px;
+  padding-left: 15px;
+}
+#acl-wrapper a:hover {
+  text-decoration: none;
+  color: #000000;
+}
+.acl-button-show {
+  background-image: url("../../../images/show_off.png");
+}
+.acl-button-hide {
+  background-image: url("../../../images/hide_off.png");
+}
+.acl-button-show.selected {
+  color: #000000;
+  background-color: #9ade00;
+  background-image: url("../../../images/show_on.png");
+}
+.acl-button-hide.selected {
+  color: #000000;
+  background-color: #ff4141;
+  background-image: url("../../../images/hide_on.png");
+}
+.acl-list-item.groupshow {
+  border-color: #9ade00;
+}
+.acl-list-item.grouphide {
+  border-color: #ff4141;
+}
+/** /acl **/
+/** tab buttons **/
+ul.tabs {
+  list-style-type: none;
+  padding-bottom: 10px;
+  font-size: 13px;
+}
+ul.tabs li {
+  float: left;
+  margin-left: 5px;
+}
+ul.tabs li .active {
+    background-color: #333333;
+    border: 1px solid #777777;
+    color: white;
+    border-radius: 3px 3px 3px 3px;
+    box-shadow: 0 1px 1px #CFCFCF;
+    margin-left: 5px;
+}
+/**
+ * Form fields
+ */
+.field {
+  margin-bottom: 10px;
+  padding-bottom: 10px;
+  overflow: auto;
+  width: 100%;
+}
+.field label {
+  float: left;
+  width: 200px;
+}
+.field input, .field textarea {
+  width: 400px;
+}
+.field textarea {
+  height: 100px;
+}
+.field .field_help {
+  display: block;
+  margin-left: 200px;
+  color: #666666;
+}
+.field .onoff {
+  float: left;
+  width: 80px;
+}
+.field .onoff a {
+  display: block;
+  border: 1px solid #666666;
+  background-image: url("../../../images/onoff.jpg");
+  background-repeat: no-repeat;
+  padding: 4px 2px 2px 2px;
+  height: 16px;
+  text-decoration: none;
+}
+.field .onoff .off {
+  border-color: #666666;
+  padding-left: 40px;
+  background-position: left center;
+  background-color: #cccccc;
+  color: #666666;
+  text-align: right;
+}
+.field .onoff .on {
+  border-color: #204A87;
+  padding-right: 40px;
+  background-position: right center;
+  background-color: #D7E3F1;
+  color: #204A87;
+  text-align: left;
+}
+.field .hidden {
+  display: none!important;
+}
+.field.radio .field_help {
+  margin-left: 0px;
+}
+#directory-search-form{
+       margin-bottom: 50px;
+       }
+#profile-edit-links-end {
+        clear: both;
+        margin-bottom: 15px;
+}
+
+#profile-edit-links ul { margin: 20px; padding-bottom: 20px; list-style: none; }
+
+#profile-edit-links li {
+  float: left;
+  list-style: none;
+  margin-left: 10px;
+}
+
+.profile-edit-side-div {
+  display: none;
+}
+
+#register-form label,
+#profile-edit-form label {
+        width: 300px; float: left;
+}
+
+.required {
+  display: inline;
+  color: #B20202;
+}
+
+/* oauth */
+.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;
+}
+/* contacts */
+.contact-entry-wrapper {
+  width: 120px;
+  height: 120px;
+  float: left;
+}
+/* photo */
+.lframe {
+  float: left;
+}
+/* profile match wrapper */
+.profile-match-wrapper {
+  float: left;
+  width: 90px;
+  height: 90px;
+  margin-bottom: 20px;
+}
+.profile-match-wrapper .contact-photo {
+  width: 80px;
+  height: 80px;
+}
+.profile-match-wrapper .contact-photo img {
+  width: 80px;
+  height: 80px;
+}
+.profile-match-wrapper {
+  left: 0px;
+  top: 63px;
+}
+
+.contact-photo-menu-button {
+        position: relative;
+        background-image: url("../../../images/icons/16/menu.png");
+        background-position: top left; 
+        background-repeat: no-repeat;
+        margin: 0px 0px -16px 0px; 
+       padding: 0px;
+        width: 16px;
+        height: 16px;
+        top: -20px; left:0px;
+        overflow: hidden;
+        text-indent: 40px;
+        display: none;
+        
+}
+.contact-photo-menu {
+        width: 11em;
+        border: 3px solid #364e59;
+       color: #2d2d2d;
+        background: #FFFFFF;
+/*        position: absolute;*/
+        position: relative;
+        left: 0px; top: 0px;
+        display: none;
+        z-index: 10000;
+}
+.contact-photo-menu ul { margin:0px; padding: 0px; list-style: none }
+.contact-photo-menu li a {
+       display: block; 
+       padding: 5px 10px; 
+       color: #2d2d2d;
+       text-decoration: none;
+}
+.contact-photo-menu li a:hover {
+       background-color: #bdcdd4; 
+}
+
+/* page footer */
+footer {
+  height: 100px;
+  display: table-row;
+}
+
+blockquote {
+    border-left: 1px solid #D2D2D2;
+    padding-left: 9px;
+    margin: 0 0 0 .8ex;
+}
+.aprofile dt{
+box-shadow: 1px 1px 5px 0;
+    color: #666666;
+    margin: 15px 0 5px;
+    padding-left: 5px; 
+       }
+/* ================== */
+/* = Contacts Block = */
+/* ================== */
+
+.contact-block-img {
+        width: 55px;
+        height: 55px;
+        padding-right: 3px;
+}
+.contact-block-div {
+        float: left;
+}
+
+.contact-block-textdiv { width: 150px; height: 34px; float: left; }
+#contact-block-end { clear: both; } 
+
+#group-edit-wrapper {
+        margin-bottom: 10px;
+}
+
+#group-members-end {
+        clear: both;
+}
+#group-edit-desc {
+ margin-top: 15px;
+}
+
+/*
+#group-separator,
+#prof-separator { display: none;}
+*/
+
+#prvmail-to-label, #prvmail-subject-label, #prvmail-message-label {
+       margin-bottom: 10px;
+       margin-top: 20px;
+}
+
+#prvmail-submit {
+       float: right;
+       margin-top: 10px;
+}
+#prvmail-subject
+{
+background: none repeat scroll 0 0 #FFFFFF;
+border: 1px solid #CCCCCC;
+border-radius: 5px 5px 5px 5px;
+font-weight: bold;
+height: 20px;
+margin: 0 0 5px;
+vertical-align: middle;
+}
+#prvmail-form{
+ width: 597px; 
+       }
+#prvmail-upload-wrapper,
+#prvmail-link-wrapper,
+#prvmail-rotator-wrapper {
+       float: left;
+       margin-top: 10px;
+       margin-right: 10px;
+       width: 24px;
+}
+
+#prvmail-end {
+       clear: both;
+}
+
+.mail-list-sender,
+.mail-list-detail {
+       float: left;
+}
+.mail-list-detail {
+       margin-left: 20px;
+}
+
+.mail-list-subject {
+       font-size: 1.1em;
+       margin-top: 10px;
+}
+a.mail-list-link {
+    display: block;
+    font-size: 1.3em;
+    padding: 4px 0;
+}
+
+/*
+*a.mail-list-link:hover {
+*      background-color: #15607B;
+*      color: #F5F6FB;
+*}
+*/
+
+.mail-list-outside-wrapper-end {
+       clear: both;
+}
+
+.mail-list-outside-wrapper {
+       margin-top: 30px;
+}
+
+.mail-list-delete-wrapper {
+       float: right;
+       margin-right: 30px;
+       margin-top: 15px;
+}
+
+.mail-list-delete-icon {
+       border: none;
+}
+
+.mail-conv-sender,
+.mail-conv-detail {
+       float: left;
+}
+.mail-conv-detail {
+       margin-left: 20px;
+       width: 500px;
+}
+
+.mail-conv-subject {
+    font-size: 1.4em;
+    margin: 10px 0;
+}
+
+.mail-conv-outside-wrapper-end {
+       clear: both;
+}
+
+.mail-conv-outside-wrapper {
+       margin-top: 30px;
+}
+
+.mail-conv-delete-wrapper {
+       float: right;
+       margin-right: 30px;
+       margin-top: 15px;
+}
+.mail-conv-break {
+       clear: both;
+}
+
+.mail-conv-delete-icon {
+       border: none;
+}
+
+/* ========== */
+/* = Events = */
+/* ========== */
+.eventcal {
+        float: left;
+        font-size: 20px;
+}
+
+.vevent {
+        border: 1px solid #CCCCCC;
+}
+.vevent .event-description, .vevent .event-location {
+        margin-left: 10px;
+        margin-right: 10px;
+}
+.vevent .event-start {
+        margin-left: 10px;
+        margin-right: 10px;
+}
+
+#new-event-link {
+        margin-bottom: 10px;
+}
+
+.edit-event-link, .plink-event-link {
+        float: left;
+        margin-top: 4px;
+        margin-right: 4px;
+        margin-bottom: 15px;
+}
+
+.event-description:before {
+        content: url('../../../images/calendar.png');
+        margin-right: 15px;
+}
+
+.event-start, .event-end {
+        margin-left: 10px;
+        width: 330px;
+        clear: both;
+}
+
+.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;
+}
+
+.calendar {
+        font-family: Courier, monospace;
+}
+.today {
+        font-weight: bold;
+        color: #FF0000;
+}
+
+.settings-block {
+        border: 1px solid #AAA;
+        margin: 10px;
+        padding: 10px;
+}
+
+.app-title {
+        margin: 10px;
+}
+
+#identity-manage-desc {
+        margin-top:15px;
+        margin-bottom: 15px;
+}
+
+#identity-manage-choose {
+        margin-bottom: 15px;
+}
+
+#identity-submit {
+        margin-top: 20px;
+}
+
+#photo-prev-link, #photo-next-link {
+        padding: 10px;
+        float: left;
+}
+.lightbox{
+       float: left;
+       }
+
+#photo-photo {
+        float: left;
+}
+#photo-like-div .wall-item-like-buttons {
+        float: left;
+    margin-right: 5px;
+    margin-top: 30px;
+       }
+.comment-edit-text-empty {
+    margin: 10px 0 0;
+    width: 85%;
+}
+.comment-edit-photo {
+    margin: 10px 0 0;
+}
+.wall-item-like-buttons .icon.like {
+float: left;
+}
+
+#photo-photo-end {
+        clear: both;
+}
+
+.tabs .comment-wwedit-wrapper {
+       display: block;
+   margin-top: 30px;
+   margin-left: 50px;
+       }
+
+.profile-match-photo {
+        float: left;
+        text-align: center;
+        width: 120px;
+}
+
+.profile-match-name {
+        float: left;
+        text-align: center;
+        width: 120px;
+        overflow: hidden;
+}
+
+.profile-match-break,
+.profile-match-end {
+        clear: both;
+}
+
+.profile-match-connect {
+        text-align: center;
+        font-weight: bold;
+}
+
+.profile-match-wrapper {
+        float: left;
+        padding: 10px;
+        width: 120px;
+        height: 120px;
+        scroll: auto;
+}
+#profile-match-wrapper-end {
+        clear: both;
+}
+
+/* ============= */
+/* = Directory = */
+/* ============= */
+/* contacts menu */
+.contact-photo-wrapper {
+  position: relative;
+}
+.contact-photo {
+  width: 48px;
+  height: 48px;
+  overflow: hidden;
+  display: block;
+}
+.contact-photo img {
+  width: 48px;
+  height: 48px;
+}
+.contact-photo-menu-button {
+  display: none;
+  /* position: absolute; */
+  /* position: absolute; */
+  left: -2px;
+  top: -20px;
+}
+.contact-wrapper {
+  float: left;
+  width: 90px;
+  height: 90px;
+  margin-bottom: 15px;
+}
+.contact-wrapper .contact-photo {
+  width: 80px;
+  height: 80px;
+}
+.contact-wrapper .contact-photo img {
+  width: 80px;
+  height: 80px;
+}
+.contact-wrapper .contact-photo-menu-button {
+  left: 0px;
+  top: 63px;
+}
+.directory-item {
+  float: left;
+  width: 200px;
+  height: 200px;
+}
+.directory-item .contact-photo {
+  width: 175px;
+  height: 175px;
+}
+.directory-item .contact-photo img {
+  width: 175px;
+  height: 175px;
+}
+.contact-name {
+  text-align: left;
+  font-weight: bold;
+  font-size: 12px;
+}
+.contact-details {
+  color: #999999;
+}
+#side-bar-photos-albums li{
+list-style-type: disc;
+}
+#side-bar-photos-albums ul li{
+  margin-left: 30px;
+  padding-left: 0px;
+       }
+#side-bar-photos-albums{
+       margin-top: 15px;       
+       }
+.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-album-image-wrapper, .photo-top-image-wrapper {
+  float: left;
+   -moz-box-shadow: 0 0 5px #888;
+   -webkit-box-shadow: 0 0 5px #888;
+   box-shadow: 0 0 5px #888;
+  background-color: #000;
+   -webkit-border-radius: 5px;
+   -moz-border-radius: 5px;
+  border-radius: 5px;
+  padding-bottom: 20px;
+  position: relative;
+  margin: 0 10px 10px 0;
+  width: 200px; height: 140px;
+  overflow: hidden;  
+}
+/*
+.photo-top-album-name {
+  position: absolute;
+  bottom: 0;
+  padding: 0 5px;
+}*/
+/*.photo-top-image-wrapper {
+        position: relative;
+        float: left;
+        margin-top: 15px;
+        margin-right: 15px;
+        width: 200px; height: 200px; 
+        
+}*/
+.photo-top-album-name {
+        width: 100%;
+        position: absolute; 
+        bottom: 0px; 
+        padding-left: 3px;
+        background-color: #EEE;
+}
+.photo-top-album-link{
+  color: #3465A4;
+       }
+#photo-top-end {
+        clear: both;
+}
+
+#photo-top-links {
+        margin-bottom: 30px;
+        margin-left: 30px;
+}
+
+#photos-upload-newalbum-div {
+        float: left;
+        width: 175px;
+}
\ No newline at end of file
diff --git a/view/theme/diabook/style-profile.css b/view/theme/diabook/style-profile.css
new file mode 100644 (file)
index 0000000..f0cf04d
--- /dev/null
@@ -0,0 +1,2461 @@
+/**
+ * Fabio Comuni <http://kirgroup.com/profile/fabrixxm>
+ * Additional Changes: Michael Vogel <icarus@dabo.de>
+ **/
+
+/* ========= */
+/* = Admin = */
+/* ========= */
+
+#adminpage {
+/*        width: 80%;*/
+}
+
+#pending-update {
+        float:right;
+        color: #ffffff;
+        font-weight: bold;
+        background-color: #FF0000;
+        padding: 0em 0.3em;
+}
+
+.admin.linklist {
+        border: 0px; padding: 0px;
+}
+
+.admin.link {
+        list-style-position: inside;
+        font-size: 1em;
+        padding: 5px;
+        width: 100px;
+        margin: 5px;
+}
+
+#adminpage dl {
+        clear: left;
+        margin-bottom: 2px;
+        padding-bottom: 2px;
+        border-bottom: 1px solid black;
+}
+
+#adminpage dt {
+        width: 200px;
+        float: left;
+        font-weight: bold;
+}
+
+#adminpage dd {
+        margin-left: 200px;
+}
+#adminpage h3 {
+        border-bottom: 1px solid #898989;
+        margin-bottom: 5px;
+        margin-top: 10px;
+}
+
+#adminpage .submit {
+        clear:left;
+}
+
+#adminpage #pluginslist {
+        margin: 0px; padding: 0px;
+}
+
+#adminpage .plugin {
+        list-style: none;
+        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: 1p solid #000000; margin: 5px 0px;}
+#adminpage table th { text-align: left;}
+#adminpage td .icon { float: left;}
+#adminpage table#users img { width: 16px; height: 16px; }
+#adminpage table tr:hover { background-color: #eeeeee; }
+#adminpage .selectall { text-align: right; }
+/* icons */
+
+.icon.contacts {
+  background-image: url("../../../view/theme/diabook/icons/contacts.png");}
+.icon.notifications {
+  background-image: url("../../../view/theme/diabook/icons/notifications.png");}
+.icon.notify {
+  background-image: url("../../../view/theme/diabook/icons/notify.png");}
+.icon.messages {
+  background-image: url("../../../view/theme/diabook/icons/messages.png");}
+.icon.community {
+  background-image: url("../../../view/theme/diabook/icons/community.png");}
+  
+.icon.drop     { background-image: url("../../../view/theme/diabook/icons/drop.png");}
+.icon.drophide         { background-image: url("../../../view/theme/diabook/icons/drop.png");}
+.icon.dislike  { background-image: url("../../../view/theme/diabook/icons/dislike.png");}
+.icon.like     { background-image: url("../../../view/theme/diabook/icons/like.png");}
+.icon.pencil   { background-image: url("../../../view/theme/diabook/icons/pencil.png");}
+.icon.recycle  { background-image: url("../../../view/theme/diabook/icons/recycle.png");}
+.icon.remote-link { background-image: url("../../../view/theme/diabook/icons/remote.png");}
+.icon.tagged    { background-image: url("../../../view/theme/diabook/icons/tagged.png");}  
+.icon.file-as { background-image: url("../../../view/theme/diabook/icons/file_as.png");}
+.star-item.icon.unstarred { background-image: url("../../../view/theme/diabook/icons/unstarred.png");}
+.star-item.icon.starred { background-image: url("../../../view/theme/diabook/icons/starred.png");}
+.icon.link             { background-image: url("../../../view/theme/diabook/icons/link.png");}
+.icon.lock             { background-image: url("../../../view/theme/diabook/icons/lock.png");}
+.icon.unlock           { background-image: url("../../../view/theme/diabook/icons/unlock.png");}
+.icon.language    { background-image: url("../../../view/theme/diabook/icons/language.png");}
+
+
+.camera        { background-image: url("../../../view/theme/diabook/icons/camera.png"); 
+                         display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+                         }
+.attach        { background-image: url("../../../view/theme/diabook/icons/attach.png"); 
+                         display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+                         }
+.video2        { background-image: url("../../../view/theme/diabook/icons/video.png"); 
+                         display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+                         }     
+.video         { background-image: url("../../../view/theme/diabook/icons/video.png"); 
+                         display: block; width: 100%; height: 28px; background-repeat: no-repeat;
+                         }
+.audio2        { background-image: url("../../../view/theme/diabook/icons/audio.png"); 
+                         display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+                         }
+.audio         { background-image: url("../../../view/theme/diabook/icons/audio.png"); 
+                         display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+                         }
+.weblink       { background-image: url("../../../view/theme/diabook/icons/weblink.png"); 
+                         display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+                         }
+.globe         { background-image: url("../../../view/theme/diabook/icons/globe.png"); 
+                         display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+                         }
+.unglobe       { background-image: url("../../../view/theme/diabook/icons/unglobe.png"); 
+                         display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+                         }
+.edit    {background-image: url("../../../view/theme/diabook/icons/pencil2.png"); 
+                         display: block; width: 28px; height: 28px; background-repeat: no-repeat;}
+                         
+                         
+
+
+.article       { background-position: -50px  0px;}
+/*.audio               { background-position: -70px  0px;}*/
+.block                 { background-position: -90px  0px;}
+/*.drop                { background-position: -110px 0px;}*/
+/*.drophide    { background-position: -130px 0px;}*/
+/*.edit                { background-position: -150px 0px;}*/
+/*.camera      { background-position: -170px 0px;}*/
+/*.dislike     { background-position: -190px 0px;}*/
+/*.like                { background-position: -210px 0px;}*/
+/*.link                { background-position: -230px 0px;}*/
+
+/*.globe               { background-position: -50px  -20px;}*/
+/*.noglobe     { background-position: -70px  -20px;}*/
+.no            { background-position: -90px  -20px;}
+.pause                 { background-position: -110px -20px;}
+.play          { background-position: -130px -20px;}
+/*.pencil      { background-position: -150px -20px;}*/
+.small-pencil  { background-position: -170px -20px;}
+/*.recycle     { background-position: -190px -20px;}*/
+/*.remote-link { background-position: -210px -20px;}*/
+.share                 { background-position: -230px -20px;}
+
+.tools                 { background-position: -50px  -40px;}
+/*.lock                { background-position: -70px  -40px;}*/
+
+/*.video          { background-position: -110px -40px;}*/
+.youtube        { background-position: -130px -40px;}
+
+/*.attach         { background-position: -190px -40px;}*/
+/*.language       { background-position: -210px -40px;}*/
+
+
+.icon.on             { background-image: url("../../../view/theme/diabook/icons/toogle_on.png"); background-repeat: no-repeat;}
+.icon.off            { background-image: url("../../../view/theme/diabook/icons/toogle_off.png"); background-repeat: no-repeat;}
+.icon.prev           { background-image: url("../../../view/theme/diabook/icons/prev.png"); background-repeat: no-repeat;}
+.icon.next           { background-image: url("../../../view/theme/diabook/icons/next.png"); background-repeat: no-repeat;}
+/*.tagged     { background-position: -130px -60px;}*/
+
+.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 0px; }
+.type-audio { background-position: -40px 0px; }
+.type-text  { background-position: -60px 0px; }
+.type-unkn  { background-position: -80px 0px; }
+
+.icon.drop, .icon.drophide {
+ float: left;
+}
+
+.icon {
+  display: block;
+  width: 20px;
+  height: 20px;
+  /*background-image: url('icons.png');*/
+}
+
+.icon {
+  background-color: transparent ;
+  background-repeat: no-repeat;
+  /* background-position: left center; */
+  display: block;
+  overflow: hidden;
+  text-indent: -9999px;
+  padding: 1px;
+}
+
+.icon.border.camera{
+  background-image: url("../../../view/theme/diabook/icons/camera.png"); 
+  display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+       }
+       
+.icon.border.link{
+  background-image: url("../../../view/theme/diabook/icons/weblink.png"); 
+  display: block; width: 28px; height: 28px; background-repeat: no-repeat;
+  margin-left: 10px;
+       }
+
+.icon.text {
+  text-indent: 0px;
+}
+.icon.s10 {
+  min-width: 10px;
+  height: 10px;
+}
+.icon.s10.notify {
+  background-image: url("../../../images/icons/10/notify_off.png");
+}
+.icon.s10.gear {
+  background-image: url("../../../images/icons/10/gear.png");
+}
+.icon.s10.add {
+  background-image: url("../../../images/icons/10/add.png");
+}
+.icon.s10.delete {
+  background-image: url("../../../images/icons/10/delete.png");
+}
+.icon.s10.edit {
+  background-image: url("../../../images/icons/10/edit.png");
+}
+.icon.s10.star {
+  background-image: url("../../../images/star_dummy.png");
+}
+.icon.s10.menu {
+  background-image: url("../../../images/icons/10/menu.png");
+}
+.icon.s10.link {
+  background-image: url("../../../images/icons/10/link.png");
+}
+.icon.s10.lock {
+  background-image: url("../../../images/icons/10/lock.png");
+}
+.icon.s10.unlock {
+  background-image: url("../../../images/icons/10/unlock.png");
+}
+.icon.s10.text {
+  padding: 2px 0px 0px 15px;
+  font-size: 10px;
+}
+.icon.s16 {
+  min-width: 16px;
+  height: 16px;
+}
+.icon.s16.notify {
+  background-image: url("../../../images/icons/16/notify_off.png");
+}
+.icon.s16.gear {
+  background-image: url("../../../images/icons/16/gear.png");
+}
+.icon.s16.add {
+  background-image: url("../../../images/icons/16/add.png");
+}
+.icon.s16.delete {
+  background-image: url("../../../images/icons/16/delete.png");
+}
+/*.icon.s16.edit {
+  background-image: url("../../../images/icons/16/edit.png");
+}*/
+.icon.s16.star {
+  background-image: url("../../../images/star_dummy.png");
+}
+.icon.s16.menu {
+  background-image: url("../../../images/icons/16/menu.png");
+}
+/*.icon.s16.link {
+  background-image: url("../../../images/icons/16/link.png");
+}*/
+.icon.s16.lock {
+  background-image: url("../../../images/icons/16/lock.png");
+}
+.icon.s16.unlock {
+  background-image: url("../../../images/icons/16/unlock.png");
+}
+.icon.s16.text {
+  padding: 4px 0px 0px 20px;
+  font-size: 10px;
+}
+.icon.s22 {
+  min-width: 22px;
+  height: 22px;
+}
+.icon.s22.notify {
+  background-image: url("../../../images/icons/22/notify_off.png");
+}
+.icon.s22.gear {
+  background-image: url("../../../images/icons/22/gear.png");
+}
+.icon.s22.add {
+  background-image: url("../../../images/icons/22/add.png");
+}
+.icon.s22.delete {
+  background-image: url("../../../images/icons/22/delete.png");
+}
+.icon.s22.edit {
+  background-image: url("../../../images/icons/22/edit.png");
+}
+.icon.s22.star {
+  background-image: url("../../../images/star_dummy.png");
+}
+.icon.s22.menu {
+  background-image: url("../../../images/icons/22/menu.png");
+}
+.icon.s22.link {
+  background-image: url("../../../images/icons/22/link.png");
+}
+.icon.s22.lock {
+  background-image: url("../../../images/icons/22/lock.png");
+}
+.icon.s22.unlock {
+  background-image: url("../../../images/icons/22/unlock.png");
+}
+.icon.s22.text {
+  padding: 10px 0px 0px 25px;
+  width: 200px;
+}
+.icon.s48 {
+  width: 48px;
+  height: 48px;
+}
+.icon.s48.notify {
+  background-image: url("../../../images/icons/48/notify_off.png");
+}
+.icon.s48.gear {
+  background-image: url("../../../images/icons/48/gear.png");
+}
+.icon.s48.add {
+  background-image: url("../../../images/icons/48/add.png");
+}
+.icon.s48.delete {
+  background-image: url("../../../images/icons/48/delete.png");
+}
+.icon.s48.edit {
+  background-image: url("../../../images/icons/48/edit.png");
+}
+.icon.s48.star {
+  background-image: url("../../../images/star_dummy.png");
+}
+.icon.s48.menu {
+  background-image: url("../../../images/icons/48/menu.png");
+}
+.icon.s48.link {
+  background-image: url("../../../images/icons/48/link.png");
+}
+.icon.s48.lock {
+  background-image: url("../../../images/icons/48/lock.png");
+}
+.icon.s48.unlock {
+  background-image: url("../../../images/icons/48/unlock.png");
+}
+
+#contact-edit-links ul {
+  list-style: none;
+  list-style-type: none;
+}
+
+.hide-comments-outer {
+  margin-left: 80px;
+  margin-bottom: 5px;
+  width: 484px;
+  border-bottom: 1px solid #BDCDD4;
+  border-top: 1px solid #BDCDD4;
+
+  padding: 8px;
+}
+
+/* global */
+body {
+  font-family: 'Lato', "Helvetica Neue", Helvetica, Arial, sans-serif;
+  font-size: 13px;
+  background-color: #ffffff;
+  color: #2d2d2d;
+  margin: 50px auto auto;
+  display: table;
+}
+
+h4 {
+  font-size: 1.1em;
+}
+
+a {
+       color: #3465A4;
+       /* color: #3e3e8c; */
+       text-decoration: none;
+}
+a:hover {
+       /* color: blue; */
+       text-decoration: underline
+}
+
+.wall-item-name-link {
+/*  float: left;*/
+}
+
+.wall-item-photo {
+  width: 48px;
+  height: 48px;
+  overflow: hidden;
+  display: block;
+}
+
+.left {
+  float: left;
+}
+.right {
+  float: right;
+}
+.hidden {
+  display: none;
+}
+.clear {
+  clear: both;
+}
+.fakelink {
+  color: #3465A4;
+  /* color: #3e3e8c; */
+  text-decoration: none;
+  cursor: pointer;
+}
+.fakelink:hover {
+  /* color: blue; */
+  /*color: #005c94; */
+  text-decoration: underline;
+}
+code {
+  font-family: Courier, monospace;
+  white-space: pre;
+  display: block;
+  overflow: auto;
+  border: 1px solid #444;
+  background: #EEE;
+  color: #444;
+  padding: 10px;
+  margin-top: 20px;
+}
+#panel {
+  position: absolute;
+  width: 12em;
+  background: #ffffff;
+  color: #2d2d2d;
+  margin: 0px;
+  padding: 1em;
+  list-style: none;
+  border: 3px solid #364e59;
+  z-index: 100000;
+  -webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+  -moz-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+  box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+}
+/* tool */
+.tool {
+  height: auto;
+  overflow: auto;
+  padding: 3px;
+}
+#saved-search-ul .tool:hover,
+#nets-sidebar .tool:hover,
+#sidebar-group-list .tool:hover {
+       background: #EEE;
+}
+.tool .label {
+  float: left;
+}
+.tool .action {
+  float: right;
+}
+.tool a {
+  color: ##3F8FBA;
+}
+.tool a:hover {
+  text-decoration: none;
+}
+/* popup notifications */
+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;
+}
+/* header */
+header {
+  position: fixed;
+  left: 0%;
+  right: 80%;
+  top: 0px;
+  margin: 0px;
+  padding: 0px;
+  width: 22%;
+  height: 32px;
+  background: #000;
+  z-index: 100;
+  -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+  -moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+}
+header #site-location {
+  display: none;
+}
+header #banner {
+  overflow: hidden;
+  text-align: left;
+  width: 82%%;
+  margin-left: 25%;
+}
+header #banner a,
+header #banner a:active,
+header #banner a:visited,
+header #banner a:link,
+header #banner a:hover {
+  color: #ffffff;
+  text-decoration: none;
+  outline: none;
+  vertical-align: middle;
+}
+header #banner #logo-img {
+  height: 25px;
+  margin-top: 5px;
+}
+header #banner #logo-text {
+  font-size: 22px;
+  position: absolute;
+  top: 15%;
+}
+/* nav */
+nav {
+  width: 80%;
+  height: 32px;
+  position: fixed;
+  left: 22%;
+  top: 0px;
+  padding: 0px;
+  background: #000;
+  color: #ffffff;
+  z-index: 99;
+  -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+  -moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+}
+nav a,
+nav a:active,
+nav a:visited,
+nav a:link,
+nav a:hover {
+  color: #ffffff;
+  text-decoration: none;
+  outline: none;
+}
+nav #banner {
+  overflow: hidden;
+  /*text-align: center;*/
+  width: 100%;
+}
+nav #banner a,
+nav #banner a:active,
+nav #banner a:visited,
+nav #banner a:link,
+nav #banner a:hover {
+  color: #ffffff;
+  text-decoration: none;
+  outline: none;
+  vertical-align: bottom;
+}
+nav #banner #logo-img {
+  height: 22px;
+  margin-top: 5px;
+}
+nav #banner #logo-text {
+  font-size: 22px;
+}
+nav #navbar{
+       }
+nav ul {
+  margin: 0px;
+  padding: 0px 20px;
+}
+nav ul li {
+  list-style: none;
+  margin: 0px;
+  /* padding: 1px 1px 3px 1px; */
+  float: left;
+}
+nav ul li .menu-popup {
+  left: 0px;
+  right: auto;
+}
+
+nav #logo-img {
+  height: 25px;
+  margin-top: 4px;
+  margin-left: 30px;
+}
+
+nav #logo-text {
+    font-size: 22px;
+    margin-top: 3px;
+    margin-right: 15px;
+}
+nav .nav-menu-search {
+  position: relative;
+
+  margin: 3px 17px;
+  margin-right: 0px;
+  height: 17px;
+  width: 180px;
+  
+}
+
+nav #search-box #search-text {
+  background-image:  url('icons/lupe.png');
+  background-repeat:no-repeat;
+  padding-left:20px;
+       }
+
+
+nav .nav-menu-icon {
+  position: relative;
+  height: 22px;
+  padding: 5px;
+  margin: 0px 7px;
+  -moz-border-radius: 5px 5px 0 0;
+  -webkit-border-radius: 5px 5px 0 0;
+  border-radius: 5px 5px 0 0;
+}
+nav .nav-menu-icon.selected {
+  background-color: #fff;
+}
+nav .nav-menu-icon img {
+  width: 22px;
+  height: 22px;
+}
+nav .nav-menu-icon .nav-notify {
+  top: 3px;
+}
+nav .nav-menu {
+  position: relative;
+  height: 16px;
+  padding: 5px;
+  margin: 3px 15px 0px;
+  font-size: 13px;
+  /*border-bottom: 3px solid #364A84;*/
+}
+nav .nav-menu.selected {
+  /*border-bottom: 3px solid #9eabb0;*/
+}
+nav .nav-notify {
+  display: none;
+  position: absolute;
+  background-color: #ff0000;
+  /* background-color: #19aeff; */
+  -moz-border-radius: 5px 5px 5px 5px;
+  -webkit-border-radius: 5px 5px 5px 5px;
+  border-radius: 5px 5px 5px 5px;
+  font-size: 10px;
+  font-weight: 900;
+  padding: 1px 4px;
+  top: 0px;
+  right: -6px;
+  min-width: 10px;
+  text-align: center;
+}
+nav .nav-notify.show {
+  display: block;
+}
+nav #nav-help-link,
+nav #nav-search-link,
+nav #nav-directory-link,
+nav #nav-apps-link,
+nav #nav-site-linkmenu, 
+nav #nav-home-link,
+nav #nav-user-linkmenu
+{
+  float: right;
+}
+nav #nav-user-linkmenu{
+       margin-right: 0px;
+       }
+nav #nav-home-link, #nav-directory-link, #nav-apps-link{
+       margin-left: 0px;
+       margin-right: 0px;
+       font-weight: bold;
+       margin: 3px 5px;
+       }
+nav #nav-directory-link{
+  margin-right: 0px;   
+       }
+nav #nav-home-link{
+  margin-left: 0px;    
+       }
+nav #nav-help-link .menu-popup,
+nav #nav-search-link .menu-popup,
+nav #nav-directory-link .menu-popup,
+nav #nav-apps-link .menu-popup,
+nav #nav-site-linkmenu .menu-popup {
+  right: 0px;
+  left: auto;
+}
+
+nav #nav-messages-linkmenu.on .icon.messages, nav #nav-messages-linkmenu.selected .icon.messages{
+       background-image: url("../../../view/theme/diabook/icons/messages2.png");
+       }
+       
+/*nav #nav-notifications-linkmenu.on .icon.notify,*/ nav #nav-notifications-linkmenu.selected .icon.notify{
+       background-image: url("../../../view/theme/diabook/icons/notify2.png");
+       }
+       
+nav #nav-contacts-linkmenu.on .icon.contacts, nav #nav-contacts-linkmenu.selected .icon.contacts{
+       background-image: url("../../../view/theme/diabook/icons/contacts2.png");
+       }
+       
+nav #nav-apps-link.selected {
+  background-color: #364e59;
+}
+
+#nav-notifications-mark-all {
+       /* padding: 1px 1px 2px 26px; */
+       /* border-bottom: 1px solid #364E59; */
+       /* margin: 0px 0px 2px 0px;
+       padding: 5px 10px; */
+}
+
+#nav-notifications-see-all {
+       /* padding: 1px 1px 2px 26px; */
+       /* border-bottom: 1px solid #364E59; */
+       /* margin: 0px 0px 2px 0px;
+       padding: 5px 10px; */
+}
+
+.notify-seen {
+       background: none repeat scroll 0 0 #DDDDDD;
+       }
+
+ul.menu-popup {
+  position: absolute;
+  display: none;
+  width: 11em;
+  background: #ffffff;
+  color: #2d2d2d;
+  margin: 0px;
+  padding: 0px;
+  list-style: none;
+  z-index: 100000;
+  -webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+  -moz-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+  box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+}
+ul.menu-popup a {
+  display: block;
+  color: #2d2d2d;
+  padding: 5px 10px;
+  text-decoration: none;
+}
+ul.menu-popup a:hover {
+  background-color: #fff797; /*bdcdd4;*/
+  color: #000;
+}
+ul.menu-popup .menu-sep {
+  border-top: 1px solid #9eabb0;
+}
+ul.menu-popup li {
+  float: none;
+  overflow: auto;
+  height: auto;
+  display: block;
+}
+ul.menu-popup li img {
+  float: left;
+  width: 16px;
+  height: 16px;
+  padding-right: 5px;
+}
+ul.menu-popup .empty {
+  padding: 5px;
+  text-align: center;
+  color: #9eabb0;
+}
+/* autocomplete popup */
+.acpopup {
+  max-height: 150px;
+  background-color: #ffffff;
+  color: #2d2d2d;
+  border: 1px solid #MenuBorder;
+  overflow: auto;
+  z-index: 100000;
+  -webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+  -moz-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+  box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+}
+.acpopupitem {
+  color: #2d2d2d;
+  padding: 4px;
+  clear: left;
+}
+.acpopupitem img {
+  float: left;
+  margin-right: 4px;
+}
+.acpopupitem.selected {
+  background-color: #bdcdd4;
+}
+#nav-notifications-menu {
+  width: 400px;
+  max-height: 550px;
+  overflow: auto;
+}
+/* #nav-notifications-menu a {
+       display: inline;
+       padding: 5px 0px;
+       margin: 0px 0px 2px 0px;
+}
+#nav-notifications-menu li:hover {
+  background-color: #bdcdd4;
+}*/
+
+#nav-notifications-menu img {
+  float: left;
+  margin-right: 5px;
+}
+#nav-notifications-menu .contactname {
+  font-weight: bold;
+}
+#nav-notifications-menu .notif-when {
+  font-size: 10px;
+  color: #9eabb0;
+  display: block;
+}
+
+.notif-image {
+        width: 32px;
+        height: 32px;
+        padding: 7px 7px 0px 0px;
+}
+
+/*profile_side*/
+#profile_side {
+  margin-bottom: 30px;
+}
+#ps-usericon{
+       height: 25px    
+       }
+#ps-username{
+  font-size: 1.17em;
+  font-weight: bold;
+  vertical-align: top;
+  position: absolute;
+  padding-top: 4px;
+  padding-left: 5px;   
+  color: #2D2D2D;
+       }
+#ps-username:hover{
+  text-decoration: none;       
+       }
+.menu-profile-side{
+  list-style: none;    
+  padding-left: 0px;
+  min-height: 0px;
+       }
+.menu-profile-list{
+  height: auto;
+  overflow: auto;
+  padding-top: 3px;
+  padding-bottom: 3px;
+  padding-left: 16px;
+  min-height: 16px;
+  list-style: none;
+       }
+.menu-profile-list:hover{
+       background: #EEE;
+       }
+.menu-profile-list-item{
+       padding-left: 5px;
+       }       
+.menu-profile-list-item:hover{ 
+       text-decoration: none;
+   }
+/*http://prothemedesign.com/circular-icons/*/
+.menu-profile-list.home{
+       background: url("../../../view/theme/diabook-blue/icons/home.png") no-repeat;
+       }
+.menu-profile-list.photos{
+       background: url("../../../view/theme/diabook-blue/icons/mess_side.png") no-repeat;
+       }
+.menu-profile-list.events{
+       background: url("../../../view/theme/diabook-blue/icons/events.png") no-repeat;
+       }
+.menu-profile-list.notes{
+       background: url("../../../view/theme/diabook-blue/icons/notes.png") no-repeat;
+       }
+.menu-profile-list.foren{
+       background: url("../../../view/theme/diabook-blue/icons/pubgroups.png") no-repeat;
+       }
+.menu-profile-list.com_side{
+       background: url("../../../view/theme/diabook-blue/icons/com_side.png") no-repeat;
+       }
+
+/* aside */
+aside {
+  display: table-cell;
+  vertical-align: top;
+  width: 160px;
+  padding: 0px 10px 0px 10px;
+  border-right: 1px solid #D2D2D2;
+  float: left;
+  /* background: #F1F1F1; */
+}
+
+aside .vcard .fn {
+  font-size: 18px;
+  font-weight: bold;
+  margin-bottom: 5px;
+}
+aside .vcard .title {
+  margin-bottom: 5px;
+}
+aside .vcard dl {
+  height: auto;
+  overflow: auto;
+}
+aside .vcard dt {
+  float: left;
+  margin-left: 0px;
+  /*width: 35%;*/
+  text-align: right;
+  color: #999999;
+}
+aside .vcard dd {
+  float: left;
+  margin-left: 5px;
+  /*width: 60%;*/
+}
+aside #profile-extra-links ul {
+  padding: 0px;
+  margin: 0px;
+}
+aside #profile-extra-links li {
+  padding: 0px;
+  margin: 0px;
+  list-style: none;
+}
+aside #dfrn-request-link {
+  display: block;
+  -moz-border-radius: 5px 5px 5px 5px;
+  -webkit-border-radius: 5px 5px 5px 5px;
+  border-radius: 5px 5px 5px 5px;
+  color: #ffffff;
+  background: #005c94 url('../../../images/connect-bg.png') no-repeat left center;
+  font-weight: bold;
+  text-transform: uppercase;
+  padding: 4px 2px 2px 35px;
+}
+aside #dfrn-request-link:hover {
+  text-decoration: none;
+  background-color: #36c;
+  /* background-color: #19aeff; */
+}
+aside #profiles-menu {
+  width: 20em;
+}
+aside #search-text {
+       width: 150px;
+}
+aside #side-follow-url {
+       width: 150px;
+       }
+aside #side-peoplefind-url {
+       width: 150px;
+       }
+#contact-block {
+  overflow: auto;
+  height: auto;
+}
+#contact-block .contact-block-h4 {
+  float: left;
+  margin: 5px 0px;
+}
+#contact-block .allcontact-link {
+  float: right;
+  margin: 5px 0px;
+}
+#contact-block .contact-block-content {
+  clear: both;
+  overflow: auto;
+  height: auto;
+}
+#contact-block .contact-block-link {
+  float: left;
+  margin: 0px 2px 2px 0px;
+}
+#contact-block .contact-block-link img {
+  widht: 55px;
+  height: 55px;
+}
+#lost-password-link {
+  float: left;
+  margin-right: 20px;  
+       }
+/* widget */
+.widget {
+  margin-bottom: 2em;
+  /*.action .s10 { width: 10px; overflow: hidden; padding: 0px;}
+       .action .s16 { width: 16px; overflow: hidden; padding: 0px;}*/
+/*  font-size: 12px; */
+}
+.widget h3 {
+  padding: 0px;
+  margin: 2px;
+}
+.widget .action {
+  opacity: 0.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;
+}
+.widget input.action {
+  opacity: 0.5;
+  -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;
+}
+.widget:hover .title .action {
+  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;
+}
+.widget .tool:hover .action {
+  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;
+}
+.widget .tool:hover .action.ticked {
+  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;
+}
+.widget ul {
+  padding: 0px;
+}
+.widget ul li {
+  padding-left: 16px;
+  min-height: 16px;
+  list-style: none;
+}
+.widget .tool.selected {
+  background: url("../../../view/theme/diabook/icons/selected.png") no-repeat left center;
+}
+/* widget: search */
+#add-search-popup {
+  width: 200px;
+  top: 18px;
+}
+/* section */
+section {
+  display: table-cell;
+  vertical-align: top;
+  width: auto;
+  padding: 0px 0px 0px 12px;
+}
+
+body .pageheader{
+  text-align: center;
+  margin-top: 25px;
+  font-size: 0px;
+       }
+
+#id_username {
+  width: 173px;        
+       }
+#id_password {
+  width: 173px;                
+       }
+#id_openid_url {
+  width: 173px;        
+       }
+#contact-edit-end {
+       }
+.pager {
+   padding: 10px;
+       text-align: center;
+       font-size: 1.0em;
+       clear: both;
+       display: block;
+}      
+.tabs {
+    
+    background-position: 0 -20px;
+    background-repeat: repeat-x;
+    height: 27px;
+    padding: 0;
+ }
+.tab.button {
+    margin-right: 5px; 
+    margin-left: 5px;  
+    /*background: none repeat scroll 0 0 #F8F8F8;*/
+    border: 1px solid #CCCCCC;
+    border-radius: 3px 3px 3px 3px;
+    font-weight: normal;
+    padding: 3px;
+    color:  #333333;
+       }
+       
+#birthday-notice, #event-notice, #birthday-wrapper, #event-wrapper{
+       margin-bottom: 10px;
+       }
+
+right_aside {
+  display: table-cell;
+  vertical-align: top;
+  width: 160px;
+  padding-right: 10px;
+  /*border-left: 1px solid #D2D2D2;*/
+  
+  /* background: #F1F1F1; */
+}
+right_aside h3 {border-bottom: 1px solid #D2D2D2; padding-top: 5px; padding-bottom: 0px; padding-left: 5px; margin-bottom: 0px; 
+margin-top:30px;}
+right_aside .directory-item {  width: 50px; height: 50px; vertical-align: center; text-align: center; }
+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%; border-bottom: 1px solid #D2D2D2;}
+
+/* wall item */
+.tread-wrapper {
+  border-bottom: 1px solid #D2D2D2;
+  position: relative;
+  padding: 5px;
+  margin-bottom: 0px;
+  width: 575px;
+}
+.wall-item-decor {
+  position: absolute;
+  left: 790px;
+  top: -10px;
+  width: 16px;
+}
+
+.wall-item-container {
+  display: table;
+  width: 580px;
+}
+
+
+.wall-item-container .wall-item-item, .wall-item-container .wall-item-bottom {
+  display: table-row;
+}
+.wall-item-bottom {
+  font-size: 13px;
+}
+.wall-item-container .wall-item-bottom {
+/*  opacity: 0.5;
+  -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; */
+}
+.wall-item-container:hover .wall-item-bottom {
+/*  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; */
+}
+.wall-item-container .wall-item-info {
+  display: table-cell;
+  vertical-align: top;
+  text-align: left;
+  width: 80px;
+}
+.wall-item-container .wall-item-location {
+  padding-right: 40px;
+  display: table-cell;
+}
+.wall-item-container .wall-item-ago {
+  word-wrap: break-word;
+  width: 50px;
+  margin-left: 10px;
+  color: #999;
+}
+.wall-item-location {
+  
+  clear: both;
+  overflow: hidden;
+  
+  margin-bottom: 5px;
+}
+
+.wall-item-container .wall-item-content {
+  font-size: 13px;
+  max-width: 720px;
+  word-wrap: break-word;
+  line-height: 1.4;
+}
+
+.wall-item-container .wall-item-content img {
+  max-width: 700px;
+}
+.wall-item-container .wall-item-links, .wall-item-container .wall-item-actions {
+  display: table-cell;
+  vertical-align: middle;
+}
+.wall-item-container .wall-item-links .icon, .wall-item-container .wall-item-actions .icon {
+  opacity: 0.5;
+  -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;
+}
+.wall-item-container .wall-item-links .icon:hover, .wall-item-container .wall-item-actions .icon: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;
+}
+.wall-item-container .wall-item-name {
+  font-weight: bold;
+}
+.wall-item-container .wall-item-actions-author {
+  width: 100%;
+  margin-bottom: 0.3em;
+}
+.wall-item-container .wall-item-actions-social {
+  float: left;
+  margin-bottom: 1px;
+  display: table-cell;
+}
+.wall-item-container .wall-item-actions-social a {
+  margin-right: 1em;
+}
+.wall-item-actions-social a {
+  float: left;
+}
+.wall-item-container .wall-item-actions-tools {
+  float: right;
+  width: 80px;
+  display: table-cell;
+}
+.wall-item-container .wall-item-actions-tools a {
+  float: right;
+}
+.wall-item-container .wall-item-actions-tools input {
+  float: right;
+}
+.wall-item-container.comment {
+  margin-top: 5px;
+  margin-bottom: 5px;
+  margin-left: 80px;
+  width: 500px;
+  border-bottom: 1px solid hsl(198, 21%, 79%);
+}
+.wall-item-container.comment .contact-photo {
+  width: 32px;
+  height: 32px;
+  margin-left: 16px;
+  /*background: url(../../../images/icons/22/user.png) no-repeat center center;*/
+
+}
+.wall-item-container.comment {
+  top: 15px !important;
+  left: 15px !important;
+}
+.wall-item-container.comment .wall-item-links {
+  padding-left: 12px;
+}
+.wall-item-comment-wrapper {
+  margin: 1px 5px 1px 80px;
+}
+.wall-item-comment-wrapper .comment-edit-photo {
+  display: none;
+}
+.wall-item-comment-wrapper textarea {
+  height: 2.0em;
+  width: 100%;
+  font-size: 10px;
+  color: #999999;
+  border: 1px solid #DDD;
+  padding: 0.3em;
+  font-size: 14px;
+}
+.wall-item-comment-wrapper .comment-edit-text-full {
+  font-size: 14px;
+  height: 4em;
+  color: #2d2d2d;
+  border: 1px solid #2d2d2d;
+}
+.comment-edit-preview {
+  width: 710px;
+  border: 1px solid #2d2d2d;
+  margin-top: 10px;
+}
+.comment-edit-preview .contact-photo {
+  width: 32px;
+  height: 32px;
+  margin-left: 16px;
+  /*background: url(../../../images/icons/22/user.png) no-repeat center center;*/
+
+}
+.comment-edit-preview {
+  top: 15px !important;
+  left: 15px !important;
+}
+.comment-edit-preview .wall-item-links {
+  padding-left: 12px;
+}
+.comment-edit-preview .wall-item-container {
+  width: 700px;
+}
+.comment-edit-preview .tread-wrapper {
+  width: 700px;
+  padding: 0;
+  margin: 10px 0;
+}
+
+.shiny {
+  /* border-right: 10px solid #fce94f; */
+       border-right: 1px solid #A7C7F7;
+       padding-right: 12px;
+}
+
+#jot-preview-content{
+       margin-top: 30px;}
+       
+#jot-preview-content .tread-wrapper {
+  background-color: #fff797;
+}
+
+.wall-item-tags {
+  padding-top: 1px;
+  padding-bottom: 2px;
+}
+.tag {
+  /*background: url("../../../images/tag_b.png") repeat-x center left;*/
+  color: #3465A4;
+  padding-left: 3px;
+  font-size: 12px;
+}
+.tag a {
+  padding-right: 5px;
+  /*background: url("../../../images/tag.png") no-repeat center right;*/
+  color: #3465A4;
+}
+.wwto {
+  position: absolute !important;
+  width: 25px;
+  height: 25px;
+  background: #FFFFFF;
+  border: 2px solid #364e59;
+  height: 25px;
+  width: 25px;
+  overflow: hidden;
+  padding: 1px;
+  position: absolute !important;
+  top: 40px;
+  left: 30px;
+  -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+  -moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
+}
+.wwto .contact-photo {
+  width: auto;
+  height: 25px;
+}
+/* contacts menu */
+.contact-photo-wrapper {
+  position: relative;
+  width: 80px;
+}
+
+.contact-photo-wrapper.wwto {
+  width: 25px;
+}
+
+.contact-photo {
+  width: 48px;
+  height: 48px;
+  overflow: hidden;
+  display: block;
+}
+.contact-photo img {
+  width: 48px;
+  height: 48px;
+}
+
+.contact-wrapper {
+  float: left;
+  width: 90px;
+  height: 90px;
+  margin-bottom: 15px;
+}
+.contact-wrapper .contact-photo {
+  width: 80px;
+  height: 80px;
+}
+.contact-wrapper .contact-photo img {
+  width: 80px;
+  height: 80px;
+}
+.contact-wrapper {
+  left: 0px;
+  top: 63px;
+}
+.contact-photo {
+  width: 48px;
+  height: 48px;
+}
+.contact-photo img {
+  width: 48px;
+  height: 48px;
+}
+.contact-name {
+  /* text-align: center; */
+  /*font-weight: bold;*/
+  font-size: 12px;
+}
+.contact-details {
+  color: #999999;
+}
+/* editor */
+.jothidden {
+  display: none;
+}
+#jot {
+  width: 585px;
+  margin: 0px 2em 20px 0px;
+}
+#profile-jot-form #profile-jot-text {
+  height: 2.0em;
+  width: 99%;
+  font-size: 15px;
+  color: #999999;
+  border: 1px solid #DDD;
+  padding: 0.3em;
+  margin-bottom: 10px;
+}
+#jot #jot-tools {
+  margin: 0px;
+  padding: 0px;
+  height: 40px;
+  overflow: none;
+  width: 583px;
+  background-color: #fff;
+  border-bottom: 2px solid #9eabb0;
+}
+
+#jot #jot-tools li {
+  list-style: none;
+  float: left;
+  width: 80px;
+  height: 40px;
+  border-bottom: 2px solid #9eabb0;
+}
+#jot #jot-tools li a {
+  display: block;
+  color: #cccccc;
+  width: 100%;
+  height: 40px;
+  text-align: center;
+  line-height: 40px;
+  overflow: hidden;
+}
+#jot #jot-tools li:hover {
+  background-color: #364e59;
+  border-bottom: 2px solid #bdcdd4;
+}
+#jot #jot-tools li.perms {
+  float: right;
+  width: 40px;
+}
+#jot #jot-tools li.perms a.unlock {
+  width: 30px;
+  border-left: 10px solid #cccccc;
+  background-color: #cccccc;
+  background-position: left center;
+}
+#jot #jot-tools li.perms a.lock {
+  width: 30px;
+  border-left: 10px solid #666666;
+  background-color: #666666;
+}
+#jot #jot-tools li.submit {
+  float: right;
+  background-color: #cccccc;
+  border-bottom: 2px solid #cccccc;
+  border-right: 1px solid #666666;
+  border-left: 1px solid #666666;
+}
+#jot #jot-tools li.submit input {
+  border: 0px;
+  margin: 0px;
+  padding: 0px;
+  background-color: #cccccc;
+  color: #666666;
+  width: 80px;
+  height: 40px;
+  line-height: 40px;
+}
+#jot #jot-tools li.submit input:hover {
+  background-color: #bdcdd4;
+  color: #666666;
+}
+#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;
+}
+#profile-jot-form #jot-title {
+    
+        border-radius: 5px 5px 5px 5px;
+    font-weight: bold;
+    height: 20px;
+    margin: 0 0 5px;
+    width: 60%;
+    border: 1px solid #ffffff;
+}
+#profile-jot-form #jot-title:-webkit-input-placeholder {
+  font-weight: normal;
+}
+#profile-jot-form #jot-title:-moz-placeholder {
+  font-weight: normal;
+}
+#profile-jot-form #profile-jot-text_parent #profile-jot-text_tbl{
+       width: 585px;
+       height: 100px;
+       }
+#jot #jot-title:hover {
+  border: 1px solid #999999;
+}
+#jot #jot-title:focus {
+  border: 1px solid #999999;
+}
+#jot #character-counter {
+  width: 80px;
+  float: right;
+  text-align: right;
+  height: 20px;
+  line-height: 20px;
+  padding-right: 20px;
+}
+#jot-perms-icon, 
+#profile-location,
+#profile-nolocation,
+#profile-youtube, 
+#profile-video, 
+#profile-audio,
+#profile-link,
+#profile-title, 
+#wall-image-upload,
+#wall-file-upload,
+#wall-image-upload-div,
+#wall-file-upload-div,
+.hover, .focus {
+       cursor: pointer;
+       margin-top: 2px;
+}
+#profile-jot-wrapper{
+       margin: 0 2em 20px 0;
+   width: 585px;
+       }
+
+#profile-jot-submit-wrapper {
+       margin-bottom: 50px;
+       width: 585px;
+}
+
+#profile-jot-submit {
+       float: right;
+       margin-top: 2px;
+       
+}
+#profile-upload-wrapper {
+       float: left;
+       margin-top: 2px;
+       margin-left: 10px;
+       
+}
+#profile-attach-wrapper {
+       float: left;
+       margin-left: 15px;
+       margin-top: 2px;
+}
+#profile-rotator {
+       float: left;
+       margin-left: 30px;
+       margin-top: 2px;
+}
+#profile-link-wrapper {
+       float: left;
+       margin-left: 15px;
+       margin-top: 2px;
+}
+#profile-youtube-wrapper {
+       float: left;
+       margin-left: 15px;
+       margin-top: 2px;
+}
+#profile-video-wrapper {
+       float: left;
+       margin-left: 15px;
+       margin-top: 2px;
+}
+#profile-audio-wrapper {
+       float: left;
+       margin-left: 15px;
+       margin-top: 2px;
+}
+#profile-location-wrapper {
+       float: left;
+       margin-left: 15px;
+       margin-top: 2px;
+}
+#profile-jot-perms {
+       float: left;
+       margin-left: 45px;
+       margin-top: 2px;
+}
+#jot-preview-link {
+       float: right;
+       margin-left: 10px;
+       margin-top: 2px;
+       font-size: 10px;
+}
+#profile-jot-perms{
+   float: right;
+       margin-left: 10px;
+       margin-top: 2px;        
+       }
+/** buttons **/
+.button.creation1 {
+    background-color: #fff;
+    border: 1px solid #777777;
+    background-image: -moz-linear-gradient(center top , white 0%, #DDDDDD 100%);
+    border-radius: 3px 3px 3px 3px;
+    box-shadow: 0 1px 1px #CFCFCF;
+}
+.button.creation2 {
+    background-color: #33ACFF;
+    background-image: -moz-linear-gradient(center top , #66C1FF 0%, #0097FF 100%);
+    border: 1px solid #777777;
+    color: white;
+    border-radius: 3px 3px 3px 3px;
+    box-shadow: 0 1px 1px #CFCFCF;
+    margin-left: 5px;
+}
+/*input[type="submit"] {
+       border: 0px;
+    background-color: @ButtonBackgroundColor;
+    color: @ButtonColor;
+    padding: 0px 10px;
+       .rounded(5px);
+    height: 18px;
+}*/
+/** acl **/
+#photo-edit-perms-select, #photos-upload-permissions-wrapper, #profile-jot-acl-wrapper {
+  display: block!important;
+}
+#acl-wrapper {
+  width: 690px;
+  float: left;
+}
+#acl-search {
+  float: right;
+  background: #ffffff url("../../../images/search_18.png") no-repeat right center;
+  padding-right: 20px;
+}
+#acl-showall {
+  float: left;
+  display: block;
+  width: auto;
+  height: 18px;
+  background-color: #cccccc;
+  background-image: url("../../../images/show_all_off.png");
+  background-position: 7px 7px;
+  background-repeat: no-repeat;
+  padding: 7px 5px 0px 30px;
+  color: #999999;
+  -moz-border-radius: 5px 5px 5px 5px;
+  -webkit-border-radius: 5px 5px 5px 5px;
+  border-radius: 5px 5px 5px 5px;
+}
+#acl-showall.selected {
+  color: #000000;
+  background-color: #ff9900;
+  background-image: url("../../../images/show_all_on.png");
+}
+#acl-list {
+  height: 210px;
+  border: 1px solid #cccccc;
+  clear: both;
+  margin-top: 30px;
+  overflow: auto;
+}
+.acl-list-item {
+  display: block;
+  width: 150px;
+  height: 30px;
+  border: 1px solid #cccccc;
+  margin: 5px;
+  float: left;
+}
+.acl-list-item img {
+  width: 22px;
+  height: 22px;
+  float: left;
+  margin: 4px;
+}
+.acl-list-item p {
+  height: 12px;
+  font-size: 10px;
+  margin: 0px;
+  padding: 2px 0px 1px;
+  overflow: hidden;
+}
+.acl-list-item a {
+  font-size: 8px;
+  display: block;
+  width: 40px;
+  height: 10px;
+  float: left;
+  color: #999999;
+  background-color: #cccccc;
+  background-position: 3px 3px;
+  background-repeat: no-repeat;
+  margin-right: 5px;
+  -webkit-border-radius: 2px ;
+  -moz-border-radius: 2px;
+  border-radius: 2px;
+  padding-left: 15px;
+}
+#acl-wrapper a:hover {
+  text-decoration: none;
+  color: #000000;
+}
+.acl-button-show {
+  background-image: url("../../../images/show_off.png");
+}
+.acl-button-hide {
+  background-image: url("../../../images/hide_off.png");
+}
+.acl-button-show.selected {
+  color: #000000;
+  background-color: #9ade00;
+  background-image: url("../../../images/show_on.png");
+}
+.acl-button-hide.selected {
+  color: #000000;
+  background-color: #ff4141;
+  background-image: url("../../../images/hide_on.png");
+}
+.acl-list-item.groupshow {
+  border-color: #9ade00;
+}
+.acl-list-item.grouphide {
+  border-color: #ff4141;
+}
+/** /acl **/
+/** tab buttons **/
+ul.tabs {
+  list-style-type: none;
+  padding-bottom: 10px;
+  font-size: 13px;
+}
+ul.tabs li {
+  float: left;
+  margin-left: 5px;
+}
+ul.tabs li .active {
+    background-color: #333333;
+    border: 1px solid #777777;
+    color: white;
+    border-radius: 3px 3px 3px 3px;
+    box-shadow: 0 1px 1px #CFCFCF;
+    margin-left: 5px;
+}
+/**
+ * Form fields
+ */
+.field {
+  margin-bottom: 10px;
+  padding-bottom: 10px;
+  overflow: auto;
+  width: 100%;
+}
+.field label {
+  float: left;
+  width: 200px;
+}
+.field input, .field textarea {
+  width: 400px;
+}
+.field textarea {
+  height: 100px;
+}
+.field .field_help {
+  display: block;
+  margin-left: 200px;
+  color: #666666;
+}
+.field .onoff {
+  float: left;
+  width: 80px;
+}
+.field .onoff a {
+  display: block;
+  border: 1px solid #666666;
+  background-image: url("../../../images/onoff.jpg");
+  background-repeat: no-repeat;
+  padding: 4px 2px 2px 2px;
+  height: 16px;
+  text-decoration: none;
+}
+.field .onoff .off {
+  border-color: #666666;
+  padding-left: 40px;
+  background-position: left center;
+  background-color: #cccccc;
+  color: #666666;
+  text-align: right;
+}
+.field .onoff .on {
+  border-color: #204A87;
+  padding-right: 40px;
+  background-position: right center;
+  background-color: #D7E3F1;
+  color: #204A87;
+  text-align: left;
+}
+.field .hidden {
+  display: none!important;
+}
+.field.radio .field_help {
+  margin-left: 0px;
+}
+#directory-search-form{
+       margin-bottom: 50px;
+       }
+#profile-edit-links-end {
+        clear: both;
+        margin-bottom: 15px;
+}
+
+#profile-edit-links ul { margin: 20px; padding-bottom: 20px; list-style: none; }
+
+#profile-edit-links li {
+  float: left;
+  list-style: none;
+  margin-left: 10px;
+}
+
+.profile-edit-side-div {
+  display: none;
+}
+
+#register-form label,
+#profile-edit-form label {
+        width: 300px; float: left;
+}
+
+.required {
+  display: inline;
+  color: #B20202;
+}
+
+/* oauth */
+.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;
+}
+/* contacts */
+.contact-entry-wrapper {
+  width: 120px;
+  height: 120px;
+  float: left;
+}
+/* photo */
+.lframe {
+  float: left;
+}
+/* profile match wrapper */
+.profile-match-wrapper {
+  float: left;
+  width: 90px;
+  height: 90px;
+  margin-bottom: 20px;
+}
+.profile-match-wrapper .contact-photo {
+  width: 80px;
+  height: 80px;
+}
+.profile-match-wrapper .contact-photo img {
+  width: 80px;
+  height: 80px;
+}
+.profile-match-wrapper {
+  left: 0px;
+  top: 63px;
+}
+
+.contact-photo-menu-button {
+        position: relative;
+        background-image: url("../../../images/icons/16/menu.png");
+        background-position: top left; 
+        background-repeat: no-repeat;
+        margin: 0px 0px -16px 0px; 
+       padding: 0px;
+        width: 16px;
+        height: 16px;
+        top: -20px; left:0px;
+        overflow: hidden;
+        text-indent: 40px;
+        display: none;
+        
+}
+.contact-photo-menu {
+        width: 11em;
+        border: 3px solid #364e59;
+       color: #2d2d2d;
+        background: #FFFFFF;
+/*        position: absolute;*/
+        position: relative;
+        left: 0px; top: 0px;
+        display: none;
+        z-index: 10000;
+}
+.contact-photo-menu ul { margin:0px; padding: 0px; list-style: none }
+.contact-photo-menu li a {
+       display: block; 
+       padding: 5px 10px; 
+       color: #2d2d2d;
+       text-decoration: none;
+}
+.contact-photo-menu li a:hover {
+       background-color: #bdcdd4; 
+}
+
+/* page footer */
+footer {
+  height: 100px;
+  display: table-row;
+}
+
+blockquote {
+    border-left: 1px solid #D2D2D2;
+    padding-left: 9px;
+    margin: 0 0 0 .8ex;
+}
+.aprofile dt{
+box-shadow: 1px 1px 5px 0;
+    color: #666666;
+    margin: 15px 0 5px;
+    padding-left: 5px; 
+       }
+/* ================== */
+/* = Contacts Block = */
+/* ================== */
+
+.contact-block-img {
+        width: 55px;
+        height: 55px;
+        padding-right: 3px;
+}
+.contact-block-div {
+        float: left;
+}
+
+.contact-block-textdiv { width: 150px; height: 34px; float: left; }
+#contact-block-end { clear: both; } 
+
+#group-edit-wrapper {
+        margin-bottom: 10px;
+}
+
+#group-members-end {
+        clear: both;
+}
+#group-edit-desc {
+ margin-top: 15px;
+}
+
+/*
+#group-separator,
+#prof-separator { display: none;}
+*/
+
+#prvmail-to-label, #prvmail-subject-label, #prvmail-message-label {
+       margin-bottom: 10px;
+       margin-top: 20px;
+}
+
+#prvmail-submit {
+       float: right;
+       margin-top: 10px;
+}
+#prvmail-subject
+{
+background: none repeat scroll 0 0 #FFFFFF;
+border: 1px solid #CCCCCC;
+border-radius: 5px 5px 5px 5px;
+font-weight: bold;
+height: 20px;
+margin: 0 0 5px;
+vertical-align: middle;
+}
+#prvmail-form{
+ width: 597px; 
+       }
+#prvmail-upload-wrapper,
+#prvmail-link-wrapper,
+#prvmail-rotator-wrapper {
+       float: left;
+       margin-top: 10px;
+       margin-right: 10px;
+       width: 24px;
+}
+
+#prvmail-end {
+       clear: both;
+}
+
+.mail-list-sender,
+.mail-list-detail {
+       float: left;
+}
+.mail-list-detail {
+       margin-left: 20px;
+}
+
+.mail-list-subject {
+       font-size: 1.1em;
+       margin-top: 10px;
+}
+a.mail-list-link {
+    display: block;
+    font-size: 1.3em;
+    padding: 4px 0;
+}
+
+/*
+*a.mail-list-link:hover {
+*      background-color: #15607B;
+*      color: #F5F6FB;
+*}
+*/
+
+.mail-list-outside-wrapper-end {
+       clear: both;
+}
+
+.mail-list-outside-wrapper {
+       margin-top: 30px;
+}
+
+.mail-list-delete-wrapper {
+       float: right;
+       margin-right: 30px;
+       margin-top: 15px;
+}
+
+.mail-list-delete-icon {
+       border: none;
+}
+
+.mail-conv-sender,
+.mail-conv-detail {
+       float: left;
+}
+.mail-conv-detail {
+       margin-left: 20px;
+       width: 500px;
+}
+
+.mail-conv-subject {
+    font-size: 1.4em;
+    margin: 10px 0;
+}
+
+.mail-conv-outside-wrapper-end {
+       clear: both;
+}
+
+.mail-conv-outside-wrapper {
+       margin-top: 30px;
+}
+
+.mail-conv-delete-wrapper {
+       float: right;
+       margin-right: 30px;
+       margin-top: 15px;
+}
+.mail-conv-break {
+       clear: both;
+}
+
+.mail-conv-delete-icon {
+       border: none;
+}
+
+/* ========== */
+/* = Events = */
+/* ========== */
+.eventcal {
+        float: left;
+        font-size: 20px;
+}
+
+.vevent {
+        border: 1px solid #CCCCCC;
+}
+.vevent .event-description, .vevent .event-location {
+        margin-left: 10px;
+        margin-right: 10px;
+}
+.vevent .event-start {
+        margin-left: 10px;
+        margin-right: 10px;
+}
+
+#new-event-link {
+        margin-bottom: 10px;
+}
+
+.edit-event-link, .plink-event-link {
+        float: left;
+        margin-top: 4px;
+        margin-right: 4px;
+        margin-bottom: 15px;
+}
+
+.event-description:before {
+        content: url('../../../images/calendar.png');
+        margin-right: 15px;
+}
+
+.event-start, .event-end {
+        margin-left: 10px;
+        width: 330px;
+        clear: both;
+}
+
+.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;
+}
+
+.calendar {
+        font-family: Courier, monospace;
+}
+.today {
+        font-weight: bold;
+        color: #FF0000;
+}
+
+.settings-block {
+        border: 1px solid #AAA;
+        margin: 10px;
+        padding: 10px;
+}
+
+.app-title {
+        margin: 10px;
+}
+
+#identity-manage-desc {
+        margin-top:15px;
+        margin-bottom: 15px;
+}
+
+#identity-manage-choose {
+        margin-bottom: 15px;
+}
+
+#identity-submit {
+        margin-top: 20px;
+}
+
+#photo-prev-link, #photo-next-link {
+        padding: 10px;
+        float: left;
+}
+.lightbox{
+       float: left;
+       }
+
+#photo-photo {
+        float: left;
+}
+#photo-like-div .wall-item-like-buttons {
+        float: left;
+    margin-right: 5px;
+    margin-top: 30px;
+       }
+.comment-edit-text-empty {
+    margin: 10px 0 0;
+    width: 85%;
+}
+.comment-edit-photo {
+    margin: 10px 0 0;
+}
+.wall-item-like-buttons .icon.like {
+float: left;
+}
+
+#photo-photo-end {
+        clear: both;
+}
+
+.tabs .comment-wwedit-wrapper {
+       display: block;
+   margin-top: 30px;
+   margin-left: 50px;
+       }
+
+.profile-match-photo {
+        float: left;
+        text-align: center;
+        width: 120px;
+}
+
+.profile-match-name {
+        float: left;
+        text-align: center;
+        width: 120px;
+        overflow: hidden;
+}
+
+.profile-match-break,
+.profile-match-end {
+        clear: both;
+}
+
+.profile-match-connect {
+        text-align: center;
+        font-weight: bold;
+}
+
+.profile-match-wrapper {
+        float: left;
+        padding: 10px;
+        width: 120px;
+        height: 120px;
+        scroll: auto;
+}
+#profile-match-wrapper-end {
+        clear: both;
+}
+
+/* ============= */
+/* = Directory = */
+/* ============= */
+/* contacts menu */
+.contact-photo-wrapper {
+  position: relative;
+}
+.contact-photo {
+  width: 48px;
+  height: 48px;
+  overflow: hidden;
+  display: block;
+}
+.contact-photo img {
+  width: 48px;
+  height: 48px;
+}
+.contact-photo-menu-button {
+  display: none;
+  /* position: absolute; */
+  /* position: absolute; */
+  left: -2px;
+  top: -20px;
+}
+.contact-wrapper {
+  float: left;
+  width: 90px;
+  height: 90px;
+  margin-bottom: 15px;
+}
+.contact-wrapper .contact-photo {
+  width: 80px;
+  height: 80px;
+}
+.contact-wrapper .contact-photo img {
+  width: 80px;
+  height: 80px;
+}
+.contact-wrapper .contact-photo-menu-button {
+  left: 0px;
+  top: 63px;
+}
+.directory-item {
+  float: left;
+  width: 200px;
+  height: 200px;
+}
+.directory-item .contact-photo {
+  width: 175px;
+  height: 175px;
+}
+.directory-item .contact-photo img {
+  width: 175px;
+  height: 175px;
+}
+.contact-name {
+  text-align: left;
+  font-weight: bold;
+  font-size: 12px;
+}
+.contact-details {
+  color: #999999;
+}
+#side-bar-photos-albums li{
+list-style-type: disc;
+}
+#side-bar-photos-albums ul li{
+  margin-left: 30px;
+  padding-left: 0px;
+       }
+#side-bar-photos-albums{
+       margin-top: 15px;       
+       }
+.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-album-image-wrapper, .photo-top-image-wrapper {
+  float: left;
+   -moz-box-shadow: 0 0 5px #888;
+   -webkit-box-shadow: 0 0 5px #888;
+   box-shadow: 0 0 5px #888;
+  background-color: #000;
+   -webkit-border-radius: 5px;
+   -moz-border-radius: 5px;
+  border-radius: 5px;
+  padding-bottom: 20px;
+  position: relative;
+  margin: 0 10px 10px 0;
+  width: 200px; height: 140px;
+  overflow: hidden;  
+}
+/*
+.photo-top-album-name {
+  position: absolute;
+  bottom: 0;
+  padding: 0 5px;
+}*/
+/*.photo-top-image-wrapper {
+        position: relative;
+        float: left;
+        margin-top: 15px;
+        margin-right: 15px;
+        width: 200px; height: 200px; 
+        
+}*/
+.photo-top-album-name {
+        width: 100%;
+        position: absolute; 
+        bottom: 0px; 
+        padding-left: 3px;
+        background-color: #EEE;
+}
+.photo-top-album-link{
+  color: #3465A4;
+       }
+#photo-top-end {
+        clear: both;
+}
+
+#photo-top-links {
+        margin-bottom: 30px;
+        margin-left: 30px;
+}
+
+#photos-upload-newalbum-div {
+        float: left;
+        width: 175px;
+}
\ No newline at end of file
index 39479ce522269e8db387c17aaebb5cfbf9d29213..b487b8f88af96c6bca03528a1074f986a2d92495 100755 (executable)
@@ -11,109 +11,195 @@ $a->theme_info = array(
   'extends' => 'diabook',
 );
 
-//profile_side
+//change css on network and profilepages
+$cssFile = null;
 
 
-
-$nav['usermenu']=array();
-$userinfo = null;
-
-if(local_user()) {
+/**
+ * prints last community activity
+ */
+function diabook_community_info(){
+       $a = get_app();
+       //right_aside at networkpages
+
+       // last 12 users
+       $aside['$lastusers_title'] = t('Last users');
+       $aside['$lastusers_items'] = array();
+       $sql_extra = "";
+       $publish = (get_config('system','publish_all') ? '' : " AND `publish` = 1 " );
+       $order = " ORDER BY `register_date` DESC ";
+
+       $r = q("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`
+                       FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` 
+                       WHERE `is-default` = 1 $publish AND `user`.`blocked` = 0 $sql_extra $order LIMIT %d , %d ",
+               0,
+               12
+       );
+       $tpl = file_get_contents( dirname(__file__).'/directory_item.tpl');
+       if(count($r)) {
+               $photo = 'thumb';
+               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' => $profile_link,
+                               '$photo' => $rr[$photo],
+                               '$alt-text' => $rr['name'],
+                       ));
+                       $aside['$lastusers_items'][] = $entry;
+               }
+       }
        
-
-
-$r = q("SELECT micro FROM contact WHERE uid=%d AND self=1", intval($a->user['uid']));
+       
+       // last 10 liked items
+       $aside['$like_title'] = t('Last likes');
+       $aside['$like_items'] = array();
+       $r = q("SELECT `T1`.`created`, `T1`.`liker`, `T1`.`liker-link`, `item`.* FROM 
+                       (SELECT `parent-uri`, `created`, `author-name` AS `liker`,`author-link` AS `liker-link` 
+                               FROM `item` WHERE `verb`='http://activitystrea.ms/schema/1.0/like' GROUP BY `parent-uri` ORDER BY `created` DESC) AS T1
+                       INNER JOIN `item` ON `item`.`uri`=`T1`.`parent-uri` 
+                       WHERE `T1`.`liker-link` LIKE '%s%%' OR `item`.`author-link` LIKE '%s%%'
+                       GROUP BY `uri`
+                       ORDER BY `T1`.`created` DESC
+                       LIMIT 0,10",
+                       $a->get_baseurl(),$a->get_baseurl()
+                       );
+
+       foreach ($r as $rr) {
+               $author  = '<a href="' . $rr['liker-link'] . '">' . $rr['liker'] . '</a>';
+               $objauthor =  '<a href="' . $rr['author-link'] . '">' . $rr['author-name'] . '</a>';
                
-$userinfo = array(
-                       'icon' => (count($r) ? $r[0]['micro']: $a->get_baseurl()."/images/default-profile-mm.jpg"),
-                       'name' => $a->user['username'],
-               );      
+               //var_dump($rr['verb'],$rr['object-type']); killme();
+               switch($rr['verb']){
+                       case 'http://activitystrea.ms/schema/1.0/post':
+                               switch ($rr['object-type']){
+                                       case 'http://activitystrea.ms/schema/1.0/event':
+                                               $post_type = t('event');
+                                               break;
+                                       default:
+                                               $post_type = t('status');
+                               }
+                               break;
+                       default:
+                               if ($rr['resource-id']){
+                                       $post_type = t('photo');
+                                       $m=array();     preg_match("/\[url=([^]]*)\]/", $rr['body'], $m);
+                                       $rr['plink'] = $m[1];
+                               } else {
+                                       $post_type = t('status');
+                               }
+               }
+               $plink = '<a href="' . $rr['plink'] . '">' . $post_type . '</a>';
+
+               $aside['$like_items'][] = sprintf( t('%1$s likes %2$s\'s %3$s'), $author, $objauthor, $plink);
+               
+       }
+       
+       
+       // last 12 photos
+       $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 
+                               (SELECT `resource-id`, MAX(`scale`) as maxscale FROM `photo` 
+                                       WHERE `profile`=0 AND `contact-id`=0 AND `album` NOT IN ('Contact Photos', '%s', 'Profile Photos', '%s')
+                                               AND `allow_cid`='' AND `allow_gid`='' AND `deny_cid`='' AND `deny_gid`='' GROUP BY `resource-id`) AS `t1`
+                               INNER JOIN `photo` ON `photo`.`resource-id`=`t1`.`resource-id` AND `photo`.`scale` = `t1`.`maxscale`,
+                               `user` 
+                               WHERE `user`.`uid` = `photo`.`uid`
+                               AND `user`.`blockwall`=0
+                               AND `user`.`hidewall`=0
+                               ORDER BY `photo`.`edited` DESC
+                               LIMIT 0, 12",
+                               dbesc(t('Contact Photos')),
+                               dbesc(t('Profile Photos'))
+                               );
+               if(count($r)) {
+               $tpl = file_get_contents( dirname(__file__).'/directory_item.tpl');
+               foreach($r as $rr) {
+                       $photo_page = $a->get_baseurl() . '/photos/' . $rr['nickname'] . '/image/' . $rr['resource-id'];
+                       $photo_url = $a->get_baseurl() . '/photo/' .  $rr['resource-id'] . '-' . $rr['scale'] .'.jpg';
+               
+                       $entry = replace_macros($tpl,array(
+                               '$id' => $rr['id'],
+                               '$profile-link' => $photo_page,
+                               '$photo' => $photo_url,
+                               '$alt-text' => $rr['username']." : ".$rr['desc'],
+                       ));
+
+                       $aside['$photos_items'][] = $entry;
+               }
+       }
+       
+
+       $tpl = file_get_contents(dirname(__file__).'/communityhome.tpl');
+       $a->page['right_aside'] = replace_macros($tpl, $aside);
        
-$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'][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'), "", "");
-
-if($is_url = preg_match ("/\bnetwork\b/i", $_SERVER['REQUEST_URI'])) {
-$tpl = get_markup_template('profile_side.tpl');
-
-$a->page['aside'] .= replace_macros($tpl, array(
-               '$userinfo' => $userinfo,
-               '$ps' => $ps,
-       ));
-}
 }
 
-//js scripts
-$a->page['htmlhead'] .= <<< EOT
 
-<script>
+//profile_side at networkpages
+if ($a->argv[0] === "network"){
 
-//contacts
-$('html').click(function() {
- $('#nav-contacts-linkmenu').removeClass('selected');
- document.getElementById( "nav-contacts-menu" ).style.display = "none";
- });
- $('#nav-contacts-linkmenu').click(function(event){
-     event.stopPropagation();
- });
+       // 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']['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.friendika.com/directory/forum', t('Public Groups'), "", "");
+
+               $tpl = get_markup_template('profile_side.tpl');
+
+               $a->page['aside'] .= replace_macros($tpl, array(
+                               '$userinfo' => $userinfo,
+                               '$ps' => $ps,
+                       ));
+
+       }
+       
+       // COMMUNITY
+       diabook_community_info();
+       
+       // CUSTOM CSS
+       $cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook/style-network.css";
+       
+}
 
-//messages
-$('html').click(function() {
- $('#nav-messages-linkmenu').removeClass('selected');
- document.getElementById( "nav-messages-menu" ).style.display = "none";
- });
 
- $('#nav-messages-linkmenu').click(function(event){
-     event.stopPropagation();
- });
 
-//notifications
-$('html').click(function() {
- $('#nav-notifications-linkmenu').removeClass('selected');
- document.getElementById( "nav-notifications-menu" ).style.display = "none";
- });
+//right_aside at profile pages
+if ($a->argv[0] === "profile"){
+       
+       // COMMUNITY
+       diabook_community_info();
+       
+       // CUSTOM CSS
+       $cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook/style-profile.css";
+       
+}
 
- $('#nav-notifications-linkmenu').click(function(event){
-     event.stopPropagation();
- });
 
-//usermenu
-$('html').click(function() {
- $('#nav-user-linkmenu').removeClass('selected');
- document.getElementById( "nav-user-menu" ).style.display = "none";
- });
+// custom css
+if (!is_null($cssFile)) $a->page['htmlhead'] .= sprintf('<link rel="stylesheet" type="text/css" href="%s" />', $cssFile);
 
- $('#nav-user-linkmenu').click(function(event){
-     event.stopPropagation();
- });
- //settingsmenu
- $('html').click(function() {
- $('#nav-site-linkmenu').removeClass('selected');
- document.getElementById( "nav-site-menu" ).style.display = "none";
- });
+//js scripts
 
- $('#nav-site-linkmenu').click(function(event){
-     event.stopPropagation();
- });
- //appsmenu
- $('html').click(function() {
- $('#nav-apps-link').removeClass('selected');
- document.getElementById( "nav-apps-menu" ).style.display = "none";
- });
+$a->page['htmlhead'] .= <<< EOT
 
- $('#nav-apps-link').click(function(event){
-     event.stopPropagation();
- });
+<script>
  $(function() {
        $('a.lightbox').fancybox(); // Select all links with lightbox class
-});
-
+ });
  </script>
 EOT;
+
index ebe40fd4ea095f2e0b20cab4bdd4109d4f525d0b..20d24702b9d6fc3f44fb3c676cd78c8436445ef9 100644 (file)
                                <a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>                                   
                        {{ endif }}     
                        
+                       {{ if $item.filer }}
+                       <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item icon file-as" title="$item.star.filer"></a>
+                       {{ endif }}                             
+                       
                        {{ if $item.plink }}<a class="icon link" title="$item.plink.title" href="$item.plink.href">$item.plink.title</a>{{ endif }}
                        
                                        
index e2db70a14a3fbadd4e51c000643a0fc990229605..9d1dd7d70e45c183d353b9925c4339ec1dc5d53b 100755 (executable)
@@ -58,7 +58,7 @@
                        <a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
                        {{ endif }}
                        {{ if $item.filer }}
-                       <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.star.filer"></a>
+                       <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.filer"></a>
                        {{ endif }}                     
                        <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
                                {{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }}
index 420c0e08b998037dbce38303149aae4da1236e41..bad5680c7a11c7e0bb9deb477df74b1db4e3cfb7 100755 (executable)
@@ -62,7 +62,7 @@
                        <a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
                        {{ endif }}
                        {{ if $item.filer }}
-                       <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.star.filer"></a>
+                       <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.filer"></a>
                        {{ endif }}                     
                        
                        <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
index 57fd2ef60b3d59d4ce1f6de31b919d7144ed3c13..9eee19f4cdf44cb1883bebe59e185f6ba8d55b8b 100755 (executable)
@@ -72,6 +72,8 @@
 @NoticeColor: @Grey1;
 @NoticeBackgroundColor: #511919;
 
+@FieldHelpColor: @Grey3;
+
 @ThreadBackgroundColor: #f6f7f8;
 @ShinyBorderColor: @Green4;
 
index 301477679aff60859a68f75c465fcb4d20c83378..2f463c96c786c714f60dd4c6b1e1e5d764e9d6ef 100755 (executable)
@@ -615,7 +615,7 @@ aside #profiles-menu {
 }
 #contact-block .contact-block-content {
   clear: both;
-  overflow: idden;
+  overflow: hidden;
   height: auto;
 }
 #contact-block .contact-block-link {
@@ -623,7 +623,7 @@ aside #profiles-menu {
   margin: 0px 2px 2px 0px;
 }
 #contact-block .contact-block-link img {
-  widht: 48px;
+  width: 48px;
   height: 48px;
 }
 /* mail view */
@@ -787,7 +787,7 @@ section {
 }
 .wall-item-decor {
   position: absolute;
-  left: 790px;
+  left: 97%;
   top: -10px;
   width: 16px;
 }
@@ -968,6 +968,10 @@ section {
   background: url("../../../images/tag.png") no-repeat center right;
   color: #ffffff;
 }
+.filesavetags {
+  padding: 3px 0px 3px 0px;
+  opacity: 0.5;
+}
 .wwto {
   position: absolute !important;
   width: 25px;
@@ -1304,6 +1308,37 @@ ul.tabs li {
 ul.tabs li .active {
   border-bottom: 1px solid #009100;
 }
+/** group editor **/
+#group-edit-desc {
+  margin-top: 1em;
+  color: #999999;
+}
+#group-update-wrapper {
+  height: auto;
+  overflow: auto;
+}
+#group-update-wrapper #group {
+  width: 300px;
+  float: left;
+  margin-right: 20px;
+}
+#group-update-wrapper #contacts {
+  width: 300px;
+  float: left;
+}
+#group-update-wrapper #group-separator {
+  display: none;
+}
+#group-update-wrapper .contact_list {
+  height: 300px;
+  border: 1px solid #364e59;
+  overflow: auto;
+}
+#group-update-wrapper .contact_list .contact-block-div {
+  width: 50px;
+  height: 50px;
+  float: left;
+}
 /**
  * Form fields
  */
@@ -1326,7 +1361,7 @@ ul.tabs li .active {
 .field .field_help {
   display: block;
   margin-left: 200px;
-  color: #666666;
+  color: #999999;
 }
 .field .onoff {
   float: left;
index 27c48f195223f3e83b298c223a44da11a1a762c3..fca65c90763e6cc97d6e69ca3852399f5b9b9656 100755 (executable)
@@ -113,7 +113,7 @@ header {
        
        #banner {
                overflow: hidden;
-           text-align: center;
+                text-align: center;
                width: 100%;
                a, a:active, a:visited, a:link, a:hover { color: @Grey1; text-decoration: none; outline: none; vertical-align: bottom; }
                #logo-img { height: 22px; margin-top:5px;}
@@ -448,7 +448,7 @@ section {
        margin-bottom: 20px;
        width: 780px;
 }
-.wall-item-decor { position: absolute; left: 790px; top: -10px;  width: 16px;}
+.wall-item-decor { position: absolute; left: 97%; top: -10px;  width: 16px;}
 .unstarred { display: none; }
 
 .wall-item-container {
@@ -570,6 +570,10 @@ section {
                color: @TagColor;
        }
 }
+.filesavetags {
+    padding: 3px 0px 3px 0px;
+    opacity: 0.5;
+}
 
 .wwto { 
        position: absolute !important; 
index 6087e4cd17b1ad88dcad659a091b0dcd20f52484..8f0abe86dfdad5b1fefd4089ea3ca9a3e97a1826 100755 (executable)
@@ -787,7 +787,7 @@ section {
 }
 .wall-item-decor {
   position: absolute;
-  left: 790px;
+  left: 97%;
   top: -10px;
   width: 16px;
 }
@@ -968,6 +968,10 @@ section {
   background: url("../../../images/tag.png") no-repeat center right;
   color: #ffffff;
 }
+.filesavetags {
+  padding: 3px 0px 3px 0px;
+  opacity: 0.5;
+}
 .wwto {
   position: absolute !important;
   width: 25px;
index c990775106f5efba8b9e81a1bcd076876e45ff50..e771db0682f3e48f9db8a0c12606a51bd37d1580 100755 (executable)
@@ -51,6 +51,9 @@
                                <a href="#" id="unstar-$item.id" onclick="dostar($item.id); return false;"  class="$item.star.classundo"  title="$item.star.undo">$item.star.undo</a>
                                <a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="$item.star.classtagger" title="$item.star.tagger">$item.star.tagger</a>
                        {{ endif }}
+                       {{ if $item.filer }}
+                                <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.filer">$item.filer</a>
+                       {{ endif }}                     
                        
                        {{ if $item.vote }}
                                <a href="#" id="like-$item.id" title="$item.vote.like.0" onclick="dolike($item.id,'like'); return false">$item.vote.like.1</a>
index be942f26195885a9fb95493f195f49615025c1e1..693ebaba6f3a81e082480e55770a8404224d49f2 100755 (executable)
@@ -58,6 +58,9 @@
                                <a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="$item.star.classtagger" title="$item.star.tagger">$item.star.tagger</a>
 
                        {{ endif }}
+                       {{ if $item.filer }}
+                                <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.filer">$item.filer</a>
+                       {{ endif }}                     
                        
                        {{ if $item.vote }}
                                <a href="#" id="like-$item.id" title="$item.vote.like.0" onclick="dolike($item.id,'like'); return false">$item.vote.like.1</a>