Merge remote branch 'upstream/master'

This commit is contained in:
Michael Vogel 2012-05-16 08:24:46 +02:00
commit f2c0c40f6e
109 changed files with 17648 additions and 12649 deletions

View File

@ -9,7 +9,7 @@ require_once('include/nav.php');
require_once('include/cache.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica');
define ( 'FRIENDICA_VERSION', '2.3.1336' );
define ( 'FRIENDICA_VERSION', '3.0.1343' );
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
define ( 'DB_UPDATE_VERSION', 1143 );
@ -123,6 +123,8 @@ define ( 'NETWORK_XMPP', 'xmpp'); // XMPP
define ( 'NETWORK_MYSPACE', 'mysp'); // MySpace
define ( 'NETWORK_GPLUS', 'goog'); // Google+
define ( 'NETWORK_PHANTOM', 'unkn'); // Place holder
/**
* These numbers are used in stored permissions
* and existing allocations MUST NEVER BE CHANGED
@ -142,6 +144,8 @@ $netgroup_ids = array(
NETWORK_XMPP => (-10),
NETWORK_MYSPACE => (-11),
NETWORK_GPLUS => (-12),
NETWORK_PHANTOM => (-127),
);

View File

@ -209,7 +209,7 @@ function contact_photo_menu($contact) {
);
$args = array('contact' => $contact, 'menu' => $menu);
$args = array('contact' => $contact, 'menu' => &$menu);
call_hooks('contact_photo_menu', $args);

View File

@ -278,6 +278,9 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
else
$nickname = $a->user['nickname'];
// prevent private email from leaking.
if($item['network'] === NETWORK_MAIL && local_user() != $item['uid'])
continue;
$profile_name = ((strlen($item['author-name'])) ? $item['author-name'] : $item['name']);
if($item['author-link'] && (! $item['author-name']))
@ -447,8 +450,8 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
else {
// prevent private email reply to public conversation from leaking.
if($item['private'] && ! $threads[$threadsid]['private'])
continue;
if($item['network'] === NETWORK_MAIL && local_user() != $item['uid'])
continue;
$comments_seen ++;
$comment_lastcollapsed = false;

View File

@ -119,7 +119,7 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0)
$check_date = datetime_convert('UTC','UTC',$last_update,'Y-m-d H:i:s');
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
`contact`.`name`, `contact`.`photo`, `contact`.`url`,
`contact`.`name`, `contact`.`network`, `contact`.`photo`, `contact`.`url`,
`contact`.`name-date`, `contact`.`uri-date`, `contact`.`avatar-date`,
`contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
`contact`.`id` AS `contact-id`, `contact`.`uid` AS `contact-uid`,

View File

@ -15,10 +15,10 @@
*/
if(! function_exists('get_language')) {
function get_language() {
if(! function_exists('get_browser_language')) {
function get_browser_language() {
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
if (x($_SERVER,'HTTP_ACCEPT_LANGUAGE')) {
// break up string into pieces (languages and q factors)
preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i',
$_SERVER['HTTP_ACCEPT_LANGUAGE'], $lang_parse);

View File

@ -70,8 +70,10 @@ function reload_plugins() {
$installed = array();
$parr = explode(',',$plugins);
if(count($parr)) {
foreach($parr as $pl) {
$pl = trim($pl);
$fname = 'addon/' . $pl . '/' . $pl . '.php';
@ -101,6 +103,7 @@ function reload_plugins() {
}
}
}
}}
@ -163,6 +166,14 @@ function call_hooks($name, &$data = null) {
$func = $hook[HOOK_FUNCTION];
$func($a,$data);
}
else {
// remove orphan hooks
q("delete from hook where hook = '%s' and file = '$s' and function = '%s' limit 1",
dbesc($hook[HOOK_HOOK]),
dbesc($hook[HOOK_FILE]),
dbesc($hook[HOOK_FUNCTION])
);
}
}
}
}

View File

@ -76,7 +76,7 @@ function authenticate_success($user_record, $login_initial = false, $interactive
header('X-Account-Management-Status: active; name="' . $a->user['username'] . '"; id="' . $a->user['nickname'] .'"');
if($login_initial) {
$l = get_language();
$l = get_browser_language();
q("UPDATE `user` SET `login_date` = '%s', `language` = '%s' WHERE `uid` = %d LIMIT 1",
dbesc(datetime_convert()),

View File

@ -27,7 +27,7 @@ $install = ((file_exists('.htconfig.php') && filesize('.htconfig.php')) ? false
@include(".htconfig.php");
$lang = get_language();
$lang = get_browser_language();
load_translation_table($lang);

View File

@ -0,0 +1,395 @@
/**
* Ajax Autocomplete for jQuery, version 1.1.3
* (c) 2010 Tomas Kirda
*
* Ajax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license.
* For details, see the web site: http://www.devbridge.com/projects/autocomplete/jquery/
*
* Last Review: 04/19/2010
* Heavily modified for contact completion in Friendica (add photos, hover tips. etc.) 11-May-2012 mike@macgirvin.com
*/
/*jslint onevar: true, evil: true, nomen: true, eqeqeq: true, bitwise: true, regexp: true, newcap: true, immed: true */
/*global window: true, document: true, clearInterval: true, setInterval: true, jQuery: true */
(function($) {
var reEscape = new RegExp('(\\' + ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'].join('|\\') + ')', 'g');
function fnFormatResult(value, data, currentValue) {
var pattern = '(' + currentValue.replace(reEscape, '\\$1') + ')';
return value.replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>');
}
function Autocomplete(el, options) {
this.el = $(el);
this.el.attr('autocomplete', 'off');
this.suggestions = [];
this.data = [];
this.badQueries = [];
this.selectedIndex = -1;
this.currentValue = this.el.val();
this.intervalId = 0;
this.cachedResponse = [];
this.onChangeInterval = null;
this.ignoreValueChange = false;
this.serviceUrl = options.serviceUrl;
this.isLocal = false;
this.options = {
autoSubmit: false,
minChars: 1,
maxHeight: 300,
deferRequestBy: 0,
width: 0,
highlight: true,
params: {},
fnFormatResult: fnFormatResult,
delimiter: null,
zIndex: 9999
};
this.initialize();
this.setOptions(options);
}
$.fn.autocomplete = function(options) {
return new Autocomplete(this.get(0)||$('<input />'), options);
};
Autocomplete.prototype = {
killerFn: null,
initialize: function() {
var me, uid, autocompleteElId;
me = this;
uid = Math.floor(Math.random()*0x100000).toString(16);
autocompleteElId = 'Autocomplete_' + uid;
this.killerFn = function(e) {
if ($(e.target).parents('.autocomplete').size() === 0) {
me.killSuggestions();
me.disableKillerFn();
}
};
if (!this.options.width) { this.options.width = this.el.width(); }
this.mainContainerId = 'AutocompleteContainter_' + uid;
$('<div id="' + this.mainContainerId + '" style="position:absolute;z-index:9999;"><div class="autocomplete-w1"><div class="autocomplete" id="' + autocompleteElId + '" style="display:none; width:300px;"></div></div></div>').appendTo('body');
this.container = $('#' + autocompleteElId);
this.fixPosition();
if (window.opera) {
this.el.keypress(function(e) { me.onKeyPress(e); });
} else {
this.el.keydown(function(e) { me.onKeyPress(e); });
}
this.el.keyup(function(e) { me.onKeyUp(e); });
this.el.blur(function() { me.enableKillerFn(); });
this.el.focus(function() { me.fixPosition(); });
},
setOptions: function(options){
var o = this.options;
$.extend(o, options);
if(o.lookup){
this.isLocal = true;
if($.isArray(o.lookup)){ o.lookup = { suggestions:o.lookup, data:[] }; }
}
$('#'+this.mainContainerId).css({ zIndex:o.zIndex });
this.container.css({ maxHeight: o.maxHeight + 'px', width:o.width });
},
clearCache: function(){
this.cachedResponse = [];
this.badQueries = [];
},
disable: function(){
this.disabled = true;
},
enable: function(){
this.disabled = false;
},
fixPosition: function() {
var offset = this.el.offset();
$('#' + this.mainContainerId).css({ top: (offset.top + this.el.innerHeight()) + 'px', left: offset.left + 'px' });
},
enableKillerFn: function() {
var me = this;
$(document).bind('click', me.killerFn);
},
disableKillerFn: function() {
var me = this;
$(document).unbind('click', me.killerFn);
},
killSuggestions: function() {
var me = this;
this.stopKillSuggestions();
this.intervalId = window.setInterval(function() { me.hide(); me.stopKillSuggestions(); }, 300);
},
stopKillSuggestions: function() {
window.clearInterval(this.intervalId);
},
onKeyPress: function(e) {
if (this.disabled || !this.enabled) { return; }
// return will exit the function
// and event will not be prevented
switch (e.keyCode) {
case 27: //KEY_ESC:
this.el.val(this.currentValue);
this.hide();
break;
case 9: //KEY_TAB:
case 13: //KEY_RETURN:
if (this.selectedIndex === -1) {
this.hide();
return;
}
this.select(this.selectedIndex);
if(e.keyCode === 9){ return; }
break;
case 38: //KEY_UP:
this.moveUp();
break;
case 40: //KEY_DOWN:
this.moveDown();
break;
default:
return;
}
e.stopImmediatePropagation();
e.preventDefault();
},
onKeyUp: function(e) {
if(this.disabled){ return; }
switch (e.keyCode) {
case 38: //KEY_UP:
case 40: //KEY_DOWN:
return;
}
clearInterval(this.onChangeInterval);
if (this.currentValue !== this.el.val()) {
if (this.options.deferRequestBy > 0) {
// Defer lookup in case when value changes very quickly:
var me = this;
this.onChangeInterval = setInterval(function() { me.onValueChange(); }, this.options.deferRequestBy);
} else {
this.onValueChange();
}
}
},
onValueChange: function() {
clearInterval(this.onChangeInterval);
this.currentValue = this.el.val();
var q = this.getQuery(this.currentValue);
this.selectedIndex = -1;
if (this.ignoreValueChange) {
this.ignoreValueChange = false;
return;
}
if (q === '' || q.length < this.options.minChars) {
this.hide();
} else {
this.getSuggestions(q);
}
},
getQuery: function(val) {
var d, arr;
d = this.options.delimiter;
if (!d) { return $.trim(val); }
arr = val.split(d);
return $.trim(arr[arr.length - 1]);
},
getSuggestionsLocal: function(q) {
var ret, arr, len, val, i;
arr = this.options.lookup;
len = arr.suggestions.length;
ret = { suggestions:[], data:[] };
q = q.toLowerCase();
for(i=0; i< len; i++){
val = arr.suggestions[i];
if(val.toLowerCase().indexOf(q) === 0){
ret.suggestions.push(val);
ret.data.push(arr.data[i]);
}
}
return ret;
},
getSuggestions: function(q) {
var cr, me;
cr = this.isLocal ? this.getSuggestionsLocal(q) : this.cachedResponse[q];
if (cr && $.isArray(cr.suggestions)) {
this.suggestions = cr.suggestions;
this.data = cr.data;
this.suggest();
} else if (!this.isBadQuery(q)) {
me = this;
me.options.params.query = q;
$.get(this.serviceUrl, me.options.params, function(txt) { me.processResponse(txt); }, 'text');
}
},
isBadQuery: function(q) {
var i = this.badQueries.length;
while (i--) {
if (q.indexOf(this.badQueries[i]) === 0) { return true; }
}
return false;
},
hide: function() {
this.enabled = false;
this.selectedIndex = -1;
this.container.hide();
},
suggest: function() {
if (this.suggestions.length === 0) {
this.hide();
return;
}
var me, len, div, f, v, i, s, mOver, mClick, l, img;
me = this;
len = this.suggestions.length;
f = this.options.fnFormatResult;
v = this.getQuery(this.currentValue);
mOver = function(xi) { return function() { me.activate(xi); }; };
mClick = function(xi) { return function() { me.select(xi); }; };
this.container.hide().empty();
for (i = 0; i < len; i++) {
s = this.suggestions[i];
l = this.links[i];
img = '<img height="24" width="24" src="' + this.photos[i] + '" alt="' + s + '" />&nbsp;';
div = $((me.selectedIndex === i ? '<div class="selected"' : '<div') + ' title="' + l + '">' + img + f(s, this.data[i], v) + '</div>');
div.mouseover(mOver(i));
div.click(mClick(i));
this.container.append(div);
}
this.enabled = true;
this.container.show();
},
processResponse: function(text) {
var response;
try {
response = eval('(' + text + ')');
} catch (err) { return; }
if (!$.isArray(response.data)) { response.data = []; }
if(!this.options.noCache){
this.cachedResponse[response.query] = response;
if (response.suggestions.length === 0) { this.badQueries.push(response.query); }
}
if (response.query === this.getQuery(this.currentValue)) {
this.photos = response.photos;
this.links = response.links;
this.suggestions = response.suggestions;
this.data = response.data;
this.suggest();
}
},
activate: function(index) {
var divs, activeItem;
divs = this.container.children();
// Clear previous selection:
if (this.selectedIndex !== -1 && divs.length > this.selectedIndex) {
$(divs.get(this.selectedIndex)).removeClass();
}
this.selectedIndex = index;
if (this.selectedIndex !== -1 && divs.length > this.selectedIndex) {
activeItem = divs.get(this.selectedIndex);
$(activeItem).addClass('selected');
}
return activeItem;
},
deactivate: function(div, index) {
div.className = '';
if (this.selectedIndex === index) { this.selectedIndex = -1; }
},
select: function(i) {
var selectedValue, f;
selectedValue = this.suggestions[i];
if (selectedValue) {
this.el.val(selectedValue);
if (this.options.autoSubmit) {
f = this.el.parents('form');
if (f.length > 0) { f.get(0).submit(); }
}
this.ignoreValueChange = true;
this.hide();
this.onSelect(i);
}
},
moveUp: function() {
if (this.selectedIndex === -1) { return; }
if (this.selectedIndex === 0) {
this.container.children().get(0).className = '';
this.selectedIndex = -1;
this.el.val(this.currentValue);
return;
}
this.adjustScroll(this.selectedIndex - 1);
},
moveDown: function() {
if (this.selectedIndex === (this.suggestions.length - 1)) { return; }
this.adjustScroll(this.selectedIndex + 1);
},
adjustScroll: function(i) {
var activeItem, offsetTop, upperBound, lowerBound;
activeItem = this.activate(i);
offsetTop = activeItem.offsetTop;
upperBound = this.container.scrollTop();
lowerBound = upperBound + this.options.maxHeight - 25;
if (offsetTop < upperBound) {
this.container.scrollTop(offsetTop);
} else if (offsetTop > lowerBound) {
this.container.scrollTop(offsetTop - this.options.maxHeight + 25);
}
this.el.val(this.getValue(this.suggestions[i]));
},
onSelect: function(i) {
var me, fn, s, d;
me = this;
fn = me.options.onSelect;
s = me.suggestions[i];
d = me.data[i];
me.el.val(me.getValue(s));
if ($.isFunction(fn)) { fn(s, d, me.el); }
},
getValue: function(value){
var del, currVal, arr, me;
me = this;
del = me.options.delimiter;
if (!del) { return value; }
currVal = me.currentValue;
arr = currVal.split(del);
if (arr.length === 1) { return value; }
return currVal.substr(0, currVal.length - arr[arr.length - 1].length) + value;
}
};
}(jQuery));

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,57 @@
<?php
class Text_LanguageDetect_Exception extends Exception
{
/**
* Database file could not be found
*/
const DB_NOT_FOUND = 10;
/**
* Database file found, but not readable
*/
const DB_NOT_READABLE = 11;
/**
* Database file is empty
*/
const DB_EMPTY = 12;
/**
* Database contents is not a PHP array
*/
const DB_NOT_ARRAY = 13;
/**
* Magic quotes are activated
*/
const MAGIC_QUOTES = 14;
/**
* Parameter of invalid type passed to method
*/
const PARAM_TYPE = 20;
/**
* Character in parameter is invalid
*/
const INVALID_CHAR = 21;
/**
* Language is not in the database
*/
const UNKNOWN_LANGUAGE = 30;
/**
* Error during block detection
*/
const BLOCK_DETECTION = 40;
/**
* Error while clustering languages
*/
const NO_HIGHEST_KEY = 50;
}

View File

@ -0,0 +1,341 @@
<?php
/**
* Part of Text_LanguageDetect
*
* PHP version 5
*
* @category Text
* @package Text_LanguageDetect
* @author Christian Weiske <cweiske@php.net>
* @copyright 2011 Christian Weiske <cweiske@php.net>
* @license http://www.debian.org/misc/bsd.license BSD
* @version SVN: $Id$
* @link http://pear.php.net/package/Text_LanguageDetect/
*/
/**
* Provides a mapping between the languages from lang.dat and the
* ISO 639-1 and ISO-639-2 codes.
*
* Note that this class contains only languages that exist in lang.dat.
*
* @category Text
* @package Text_LanguageDetect
* @author Christian Weiske <cweiske@php.net>
* @copyright 2011 Christian Weiske <cweiske@php.net>
* @license http://www.debian.org/misc/bsd.license BSD
* @link http://www.loc.gov/standards/iso639-2/php/code_list.php
*/
class Text_LanguageDetect_ISO639
{
/**
* Maps all language names from the language database to the
* ISO 639-1 2-letter language code.
*
* NULL indicates that there is no 2-letter code.
*
* @var array
*/
public static $nameToCode2 = array(
'albanian' => 'sq',
'arabic' => 'ar',
'azeri' => 'az',
'bengali' => 'bn',
'bulgarian' => 'bg',
'cebuano' => null,
'croatian' => 'hr',
'czech' => 'cs',
'danish' => 'da',
'dutch' => 'nl',
'english' => 'en',
'estonian' => 'et',
'farsi' => 'fa',
'finnish' => 'fi',
'french' => 'fr',
'german' => 'de',
'hausa' => 'ha',
'hawaiian' => null,
'hindi' => 'hi',
'hungarian' => 'hu',
'icelandic' => 'is',
'indonesian' => 'id',
'italian' => 'it',
'kazakh' => 'kk',
'kyrgyz' => 'ky',
'latin' => 'la',
'latvian' => 'lv',
'lithuanian' => 'lt',
'macedonian' => 'mk',
'mongolian' => 'mn',
'nepali' => 'ne',
'norwegian' => 'no',
'pashto' => 'ps',
'pidgin' => null,
'polish' => 'pl',
'portuguese' => 'pt',
'romanian' => 'ro',
'russian' => 'ru',
'serbian' => 'sr',
'slovak' => 'sk',
'slovene' => 'sl',
'somali' => 'so',
'spanish' => 'es',
'swahili' => 'sw',
'swedish' => 'sv',
'tagalog' => 'tl',
'turkish' => 'tr',
'ukrainian' => 'uk',
'urdu' => 'ur',
'uzbek' => 'uz',
'vietnamese' => 'vi',
'welsh' => 'cy',
);
/**
* Maps all language names from the language database to the
* ISO 639-2 3-letter language code.
*
* @var array
*/
public static $nameToCode3 = array(
'albanian' => 'sqi',
'arabic' => 'ara',
'azeri' => 'aze',
'bengali' => 'ben',
'bulgarian' => 'bul',
'cebuano' => 'ceb',
'croatian' => 'hrv',
'czech' => 'ces',
'danish' => 'dan',
'dutch' => 'nld',
'english' => 'eng',
'estonian' => 'est',
'farsi' => 'fas',
'finnish' => 'fin',
'french' => 'fra',
'german' => 'deu',
'hausa' => 'hau',
'hawaiian' => 'haw',
'hindi' => 'hin',
'hungarian' => 'hun',
'icelandic' => 'isl',
'indonesian' => 'ind',
'italian' => 'ita',
'kazakh' => 'kaz',
'kyrgyz' => 'kir',
'latin' => 'lat',
'latvian' => 'lav',
'lithuanian' => 'lit',
'macedonian' => 'mkd',
'mongolian' => 'mon',
'nepali' => 'nep',
'norwegian' => 'nor',
'pashto' => 'pus',
'pidgin' => 'crp',
'polish' => 'pol',
'portuguese' => 'por',
'romanian' => 'ron',
'russian' => 'rus',
'serbian' => 'srp',
'slovak' => 'slk',
'slovene' => 'slv',
'somali' => 'som',
'spanish' => 'spa',
'swahili' => 'swa',
'swedish' => 'swe',
'tagalog' => 'tgl',
'turkish' => 'tur',
'ukrainian' => 'ukr',
'urdu' => 'urd',
'uzbek' => 'uzb',
'vietnamese' => 'vie',
'welsh' => 'cym',
);
/**
* Maps ISO 639-1 2-letter language codes to the language names
* in the language database
*
* Not all languages have a 2 letter code, so some are missing
*
* @var array
*/
public static $code2ToName = array(
'ar' => 'arabic',
'az' => 'azeri',
'bg' => 'bulgarian',
'bn' => 'bengali',
'cs' => 'czech',
'cy' => 'welsh',
'da' => 'danish',
'de' => 'german',
'en' => 'english',
'es' => 'spanish',
'et' => 'estonian',
'fa' => 'farsi',
'fi' => 'finnish',
'fr' => 'french',
'ha' => 'hausa',
'hi' => 'hindi',
'hr' => 'croatian',
'hu' => 'hungarian',
'id' => 'indonesian',
'is' => 'icelandic',
'it' => 'italian',
'kk' => 'kazakh',
'ky' => 'kyrgyz',
'la' => 'latin',
'lt' => 'lithuanian',
'lv' => 'latvian',
'mk' => 'macedonian',
'mn' => 'mongolian',
'ne' => 'nepali',
'nl' => 'dutch',
'no' => 'norwegian',
'pl' => 'polish',
'ps' => 'pashto',
'pt' => 'portuguese',
'ro' => 'romanian',
'ru' => 'russian',
'sk' => 'slovak',
'sl' => 'slovene',
'so' => 'somali',
'sq' => 'albanian',
'sr' => 'serbian',
'sv' => 'swedish',
'sw' => 'swahili',
'tl' => 'tagalog',
'tr' => 'turkish',
'uk' => 'ukrainian',
'ur' => 'urdu',
'uz' => 'uzbek',
'vi' => 'vietnamese',
);
/**
* Maps ISO 639-2 3-letter language codes to the language names
* in the language database.
*
* @var array
*/
public static $code3ToName = array(
'ara' => 'arabic',
'aze' => 'azeri',
'ben' => 'bengali',
'bul' => 'bulgarian',
'ceb' => 'cebuano',
'ces' => 'czech',
'crp' => 'pidgin',
'cym' => 'welsh',
'dan' => 'danish',
'deu' => 'german',
'eng' => 'english',
'est' => 'estonian',
'fas' => 'farsi',
'fin' => 'finnish',
'fra' => 'french',
'hau' => 'hausa',
'haw' => 'hawaiian',
'hin' => 'hindi',
'hrv' => 'croatian',
'hun' => 'hungarian',
'ind' => 'indonesian',
'isl' => 'icelandic',
'ita' => 'italian',
'kaz' => 'kazakh',
'kir' => 'kyrgyz',
'lat' => 'latin',
'lav' => 'latvian',
'lit' => 'lithuanian',
'mkd' => 'macedonian',
'mon' => 'mongolian',
'nep' => 'nepali',
'nld' => 'dutch',
'nor' => 'norwegian',
'pol' => 'polish',
'por' => 'portuguese',
'pus' => 'pashto',
'rom' => 'romanian',
'rus' => 'russian',
'slk' => 'slovak',
'slv' => 'slovene',
'som' => 'somali',
'spa' => 'spanish',
'sqi' => 'albanian',
'srp' => 'serbian',
'swa' => 'swahili',
'swe' => 'swedish',
'tgl' => 'tagalog',
'tur' => 'turkish',
'ukr' => 'ukrainian',
'urd' => 'urdu',
'uzb' => 'uzbek',
'vie' => 'vietnamese',
);
/**
* Returns the 2-letter ISO 639-1 code for the given language name.
*
* @param string $lang English language name like "swedish"
*
* @return string Two-letter language code (e.g. "sv") or NULL if not found
*/
public static function nameToCode2($lang)
{
$lang = strtolower($lang);
if (!isset(self::$nameToCode2[$lang])) {
return null;
}
return self::$nameToCode2[$lang];
}
/**
* Returns the 3-letter ISO 639-2 code for the given language name.
*
* @param string $lang English language name like "swedish"
*
* @return string Three-letter language code (e.g. "swe") or NULL if not found
*/
public static function nameToCode3($lang)
{
$lang = strtolower($lang);
if (!isset(self::$nameToCode3[$lang])) {
return null;
}
return self::$nameToCode3[$lang];
}
/**
* Returns the language name for the given 2-letter ISO 639-1 code.
*
* @param string $code Two-letter language code (e.g. "sv")
*
* @return string English language name like "swedish"
*/
public static function code2ToName($code)
{
$lang = strtolower($code);
if (!isset(self::$code2ToName[$code])) {
return null;
}
return self::$code2ToName[$code];
}
/**
* Returns the language name for the given 3-letter ISO 639-2 code.
*
* @param string $code Three-letter language code (e.g. "swe")
*
* @return string English language name like "swedish"
*/
public static function code3ToName($code)
{
$lang = strtolower($code);
if (!isset(self::$code3ToName[$code])) {
return null;
}
return self::$code3ToName[$code];
}
}
?>

View File

@ -0,0 +1,349 @@
<?php
/**
* This class represents a text sample to be parsed.
*
* @category Text
* @package Text_LanguageDetect
* @author Nicholas Pisarro
* @copyright 2006
* @license BSD
* @version CVS: $Id: Parser.php 322327 2012-01-15 17:55:59Z cweiske $
* @link http://pear.php.net/package/Text_LanguageDetect/
* @link http://langdetect.blogspot.com/
*/
/**
* This class represents a text sample to be parsed.
*
* This separates the analysis of a text sample from the primary LanguageDetect
* class. After a new profile has been built, the data can be retrieved using
* the accessor functions.
*
* This class is intended to be used by the Text_LanguageDetect class, not
* end-users.
*
* @category Text
* @package Text_LanguageDetect
* @author Nicholas Pisarro
* @copyright 2006
* @license BSD
* @version release: 0.3.0
*/
class Text_LanguageDetect_Parser extends Text_LanguageDetect
{
/**
* the piece of text being parsed
*
* @access private
* @var string
*/
var $_string;
/**
* stores the trigram frequencies of the sample
*
* @access private
* @var string
*/
var $_trigrams = array();
/**
* stores the trigram ranks of the sample
*
* @access private
* @var array
*/
var $_trigram_ranks = array();
/**
* stores the unicode blocks of the sample
*
* @access private
* @var array
*/
var $_unicode_blocks = array();
/**
* Whether the parser should compile the unicode ranges
*
* @access private
* @var bool
*/
var $_compile_unicode = false;
/**
* Whether the parser should compile trigrams
*
* @access private
* @var bool
*/
var $_compile_trigram = false;
/**
* Whether the trigram parser should pad the beginning of the string
*
* @access private
* @var bool
*/
var $_trigram_pad_start = false;
/**
* Whether the unicode parser should skip non-alphabetical ascii chars
*
* @access private
* @var bool
*/
var $_unicode_skip_symbols = true;
/**
* Constructor
*
* @access private
* @param string $string string to be parsed
*/
function Text_LanguageDetect_Parser($string) {
$this->_string = $string;
}
/**
* Returns true if a string is suitable for parsing
*
* @param string $str input string to test
* @return bool true if acceptable, false if not
*/
public static function validateString($str) {
if (!empty($str) && strlen($str) > 3 && preg_match('/\S/', $str)) {
return true;
} else {
return false;
}
}
/**
* turn on/off trigram counting
*
* @access public
* @param bool $bool true for on, false for off
*/
function prepareTrigram($bool = true)
{
$this->_compile_trigram = $bool;
}
/**
* turn on/off unicode block counting
*
* @access public
* @param bool $bool true for on, false for off
*/
function prepareUnicode($bool = true)
{
$this->_compile_unicode = $bool;
}
/**
* turn on/off padding the beginning of the sample string
*
* @access public
* @param bool $bool true for on, false for off
*/
function setPadStart($bool = true)
{
$this->_trigram_pad_start = $bool;
}
/**
* Should the unicode block counter skip non-alphabetical ascii chars?
*
* @access public
* @param bool $bool true for on, false for off
*/
function setUnicodeSkipSymbols($bool = true)
{
$this->_unicode_skip_symbols = $bool;
}
/**
* Returns the trigram ranks for the text sample
*
* @access public
* @return array trigram ranks in the text sample
*/
function &getTrigramRanks()
{
return $this->_trigram_ranks;
}
/**
* Return the trigram freqency table
*
* only used in testing to make sure the parser is working
*
* @access public
* @return array trigram freqencies in the text sample
*/
function &getTrigramFreqs()
{
return $this->_trigram;
}
/**
* returns the array of unicode blocks
*
* @access public
* @return array unicode blocks in the text sample
*/
function &getUnicodeBlocks()
{
return $this->_unicode_blocks;
}
/**
* Executes the parsing operation
*
* Be sure to call the set*() functions to set options and the
* prepare*() functions first to tell it what kind of data to compute
*
* Afterwards the get*() functions can be used to access the compiled
* information.
*
* @access public
*/
function analyze()
{
$len = strlen($this->_string);
$byte_counter = 0;
// unicode startup
if ($this->_compile_unicode) {
$blocks = $this->_read_unicode_block_db();
$block_count = count($blocks);
$skipped_count = 0;
$unicode_chars = array();
}
// trigram startup
if ($this->_compile_trigram) {
// initialize them as blank so the parser will skip the first two
// (since it skips trigrams with more than 2 contiguous spaces)
$a = ' ';
$b = ' ';
// kludge
// if it finds a valid trigram to start and the start pad option is
// off, then set a variable that will be used to reduce this
// trigram after parsing has finished
if (!$this->_trigram_pad_start) {
$a = $this->_next_char($this->_string, $byte_counter, true);
if ($a != ' ') {
$b = $this->_next_char($this->_string, $byte_counter, true);
$dropone = " $a$b";
}
$byte_counter = 0;
$a = ' ';
$b = ' ';
}
}
while ($byte_counter < $len) {
$char = $this->_next_char($this->_string, $byte_counter, true);
// language trigram detection
if ($this->_compile_trigram) {
if (!($b == ' ' && ($a == ' ' || $char == ' '))) {
if (!isset($this->_trigram[$a . $b . $char])) {
$this->_trigram[$a . $b . $char] = 1;
} else {
$this->_trigram[$a . $b . $char]++;
}
}
$a = $b;
$b = $char;
}
// unicode block detection
if ($this->_compile_unicode) {
if ($this->_unicode_skip_symbols
&& strlen($char) == 1
&& ($char < 'A' || $char > 'z'
|| ($char > 'Z' && $char < 'a'))
&& $char != "'") { // does not skip the apostrophe
// since it's included in the language
// models
$skipped_count++;
continue;
}
// build an array of all the characters
if (isset($unicode_chars[$char])) {
$unicode_chars[$char]++;
} else {
$unicode_chars[$char] = 1;
}
}
// todo: add byte detection here
}
// unicode cleanup
if ($this->_compile_unicode) {
foreach ($unicode_chars as $utf8_char => $count) {
$search_result = $this->_unicode_block_name(
$this->_utf8char2unicode($utf8_char), $blocks, $block_count);
if ($search_result != -1) {
$block_name = $search_result[2];
} else {
$block_name = '[Malformatted]';
}
if (isset($this->_unicode_blocks[$block_name])) {
$this->_unicode_blocks[$block_name] += $count;
} else {
$this->_unicode_blocks[$block_name] = $count;
}
}
}
// trigram cleanup
if ($this->_compile_trigram) {
// pad the end
if ($b != ' ') {
if (!isset($this->_trigram["$a$b "])) {
$this->_trigram["$a$b "] = 1;
} else {
$this->_trigram["$a$b "]++;
}
}
// perl compatibility; Language::Guess does not pad the beginning
// kludge
if (isset($dropone)) {
if ($this->_trigram[$dropone] == 1) {
unset($this->_trigram[$dropone]);
} else {
$this->_trigram[$dropone]--;
}
}
if (!empty($this->_trigram)) {
$this->_trigram_ranks = $this->_arr_rank($this->_trigram);
} else {
$this->_trigram_ranks = array();
}
}
}
}
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
?>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,35 @@
<?php
/**
* example usage (CLI)
*
* @package Text_LanguageDetect
* @version CVS: $Id: example_clui.php 322305 2012-01-15 00:04:17Z clockwerx $
*/
require_once 'Text/LanguageDetect.php';
$l = new Text_LanguageDetect;
$stdin = fopen('php://stdin', 'r');
echo "Supported languages:\n";
$langs = $l->getLanguages();
sort($langs);
echo join(', ', $langs);
echo "\ntotal ", count($langs), "\n\n";
while ($line = fgets($stdin)) {
$result = $l->detect($line, 4);
print_r($result);
$blocks = $l->detectUnicodeBlocks($line, true);
print_r($blocks);
}
fclose($stdin);
unset($l);
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
?>

View File

@ -0,0 +1,72 @@
<?php
/**
* example usage (web)
*
* @package Text_LanguageDetect
* @version CVS: $Id: example_web.php 205493 2006-01-18 00:26:57Z taak $
*/
// browsers will encode multi-byte characters wrong unless they think the page is utf8-encoded
header('Content-type: text/html; charset=utf-8', true);
require_once 'Text/LanguageDetect.php';
$l = new Text_LanguageDetect;
if (isset($_REQUEST['q'])) {
$q = stripslashes($_REQUEST['q']);
}
?>
<html>
<head>
<title>Text_LanguageDetect demonstration</title>
</head>
<body>
<h2>Text_LanguageDetect</h2>
<?
echo "<small>Supported languages:\n";
$langs = $l->getLanguages();
sort($langs);
foreach ($langs as $lang) {
echo ucfirst($lang), ', ';
$i++;
}
echo "<br />total $i</small><br /><br />";
?>
<form method="post">
Enter text to identify language (at least a couple of sentences):<br />
<textarea name="q" wrap="virtual" cols="80" rows="8"><?= $q ?></textarea>
<br />
<input type="submit" value="Submit" />
</form>
<?
if (isset($q) && strlen($q)) {
$len = $l->utf8strlen($q);
if ($len < 20) { // this value picked somewhat arbitrarily
echo "Warning: string not very long ($len chars)<br />\n";
}
$result = $l->detectConfidence($q);
if ($result == null) {
echo "Text_LanguageDetect cannot identify this piece of text. <br /><br />\n";
} else {
echo "Text_LanguageDetect thinks this text is written in <b>{$result['language']}</b> ({$result['similarity']}, {$result['confidence']})<br /><br />\n";
}
$result = $l->detectUnicodeBlocks($q, false);
if (!empty($result)) {
arsort($result);
echo "Unicode blocks present: ", join(', ', array_keys($result)), "\n<br /><br />";
}
}
unset($l);
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
?>
</body></html>

View File

@ -0,0 +1,21 @@
<?php
/**
* Demonstrates how to use ISO language codes.
*
* The "name mode" changes the way languages are accepted and returned.
*/
require_once 'Text/LanguageDetect.php';
$l = new Text_LanguageDetect();
//will output the ISO 639-1 two-letter language code
// "de"
$l->setNameMode(2);
echo $l->detectSimple('Das ist ein kleiner Text') . "\n";
//will output the ISO 639-2 three-letter language code
// "deu"
$l->setNameMode(3);
echo $l->detectSimple('Das ist ein kleiner Text') . "\n";
?>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,72 @@
<?php
set_include_path(
__DIR__ . '/../' . PATH_SEPARATOR . get_include_path()
);
require_once 'Text/LanguageDetect/ISO639.php';
class Text_LanguageDetect_ISO639Test extends PHPUnit_Framework_TestCase
{
public function testNameToCode2()
{
$this->assertEquals(
'de',
Text_LanguageDetect_ISO639::nameToCode2('german')
);
}
public function testNameToCode2Fail()
{
$this->assertNull(
Text_LanguageDetect_ISO639::nameToCode2('doesnotexist')
);
}
public function testNameToCode3()
{
$this->assertEquals(
'fra',
Text_LanguageDetect_ISO639::nameToCode3('french')
);
}
public function testNameToCode3Fail()
{
$this->assertNull(
Text_LanguageDetect_ISO639::nameToCode3('doesnotexist')
);
}
public function testCode2ToName()
{
$this->assertEquals(
'english',
Text_LanguageDetect_ISO639::code2ToName('en')
);
}
public function testCode2ToNameFail()
{
$this->assertNull(
Text_LanguageDetect_ISO639::code2ToName('nx')
);
}
public function testCode3ToName()
{
$this->assertEquals(
'romanian',
Text_LanguageDetect_ISO639::code3ToName('rom')
);
}
public function testCode3ToNameFail()
{
$this->assertNull(
Text_LanguageDetect_ISO639::code3ToName('nxx')
);
}
}
?>

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
(function(){tinymce.create("tinymce.plugins.AutolinkPlugin",{init:function(a,b){var c=this;if(tinyMCE.isIE){return}a.onKeyDown.add(function(d,f){if(f.keyCode==13){return c.handleEnter(d)}});a.onKeyPress.add(function(d,f){if(f.which==41){return c.handleEclipse(d)}});a.onKeyUp.add(function(d,f){if(f.keyCode==32){return c.handleSpacebar(d)}})},handleEclipse:function(a){this.parseCurrentLine(a,-1,"(",true)},handleSpacebar:function(a){this.parseCurrentLine(a,0,"",true)},handleEnter:function(a){this.parseCurrentLine(a,-1,"",false)},parseCurrentLine:function(i,d,b,g){var a,f,c,n,k,m,h,e,j;a=i.selection.getRng().cloneRange();if(a.startOffset<5){e=a.endContainer.previousSibling;if(e==null){if(a.endContainer.firstChild==null||a.endContainer.firstChild.nextSibling==null){return}e=a.endContainer.firstChild.nextSibling}j=e.length;a.setStart(e,j);a.setEnd(e,j);if(a.endOffset<5){return}f=a.endOffset;n=e}else{n=a.endContainer;if(n.nodeType!=3&&n.firstChild){while(n.nodeType!=3&&n.firstChild){n=n.firstChild}a.setStart(n,0);a.setEnd(n,n.nodeValue.length)}if(a.endOffset==1){f=2}else{f=a.endOffset-1-d}}c=f;do{a.setStart(n,f-2);a.setEnd(n,f-1);f-=1}while(a.toString()!=" "&&a.toString()!=""&&a.toString().charCodeAt(0)!=160&&(f-2)>=0&&a.toString()!=b);if(a.toString()==b||a.toString().charCodeAt(0)==160){a.setStart(n,f);a.setEnd(n,c);f+=1}else{if(a.startOffset==0){a.setStart(n,0);a.setEnd(n,c)}else{a.setStart(n,f);a.setEnd(n,c)}}m=a.toString();h=m.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|[A-Z0-9._%+-]+@)(.+)$/i);if(h){if(h[1]=="www."){h[1]="http://www."}else{if(/@$/.test(h[1])){h[1]="mailto:"+h[1]}}k=i.selection.getBookmark();i.selection.setRng(a);tinyMCE.execCommand("createlink",false,h[1]+h[2]);i.selection.moveToBookmark(k);if(tinyMCE.isWebKit){i.selection.collapse(false);var l=Math.min(n.length,c+1);a.setStart(n,l);a.setEnd(n,l);i.selection.setRng(a)}}},getInfo:function(){return{longname:"Autolink",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autolink",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autolink",tinymce.plugins.AutolinkPlugin)})();
(function(){tinymce.create("tinymce.plugins.AutolinkPlugin",{init:function(a,b){var c=this;a.onKeyDown.addToTop(function(d,f){if(f.keyCode==13){return c.handleEnter(d)}});if(tinyMCE.isIE){return}a.onKeyPress.add(function(d,f){if(f.which==41){return c.handleEclipse(d)}});a.onKeyUp.add(function(d,f){if(f.keyCode==32){return c.handleSpacebar(d)}})},handleEclipse:function(a){this.parseCurrentLine(a,-1,"(",true)},handleSpacebar:function(a){this.parseCurrentLine(a,0,"",true)},handleEnter:function(a){this.parseCurrentLine(a,-1,"",false)},parseCurrentLine:function(i,d,b,g){var a,f,c,n,k,m,h,e,j;a=i.selection.getRng(true).cloneRange();if(a.startOffset<5){e=a.endContainer.previousSibling;if(e==null){if(a.endContainer.firstChild==null||a.endContainer.firstChild.nextSibling==null){return}e=a.endContainer.firstChild.nextSibling}j=e.length;a.setStart(e,j);a.setEnd(e,j);if(a.endOffset<5){return}f=a.endOffset;n=e}else{n=a.endContainer;if(n.nodeType!=3&&n.firstChild){while(n.nodeType!=3&&n.firstChild){n=n.firstChild}a.setStart(n,0);a.setEnd(n,n.nodeValue.length)}if(a.endOffset==1){f=2}else{f=a.endOffset-1-d}}c=f;do{a.setStart(n,f-2);a.setEnd(n,f-1);f-=1}while(a.toString()!=" "&&a.toString()!=""&&a.toString().charCodeAt(0)!=160&&(f-2)>=0&&a.toString()!=b);if(a.toString()==b||a.toString().charCodeAt(0)==160){a.setStart(n,f);a.setEnd(n,c);f+=1}else{if(a.startOffset==0){a.setStart(n,0);a.setEnd(n,c)}else{a.setStart(n,f);a.setEnd(n,c)}}var m=a.toString();if(m.charAt(m.length-1)=="."){a.setEnd(n,c-1)}m=a.toString();h=m.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|[A-Z0-9._%+-]+@)(.+)$/i);if(h){if(h[1]=="www."){h[1]="http://www."}else{if(/@$/.test(h[1])){h[1]="mailto:"+h[1]}}k=i.selection.getBookmark();i.selection.setRng(a);tinyMCE.execCommand("createlink",false,h[1]+h[2]);i.selection.moveToBookmark(k);if(tinyMCE.isWebKit){i.selection.collapse(false);var l=Math.min(n.length,c+1);a.setStart(n,l);a.setEnd(n,l);i.selection.setRng(a)}}},getInfo:function(){return{longname:"Autolink",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autolink",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autolink",tinymce.plugins.AutolinkPlugin)})();

View File

@ -1,174 +1,180 @@
/**
* editor_plugin_src.js
*
* Copyright 2011, Moxiecode Systems AB
* Released under LGPL License.
*
* License: http://tinymce.moxiecode.com/license
* Contributing: http://tinymce.moxiecode.com/contributing
*/
(function() {
tinymce.create('tinymce.plugins.AutolinkPlugin', {
/**
* Initializes the plugin, this will be executed after the plugin has been created.
* This call is done before the editor instance has finished it's initialization so use the onInit event
* of the editor instance to intercept that event.
*
* @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
* @param {string} url Absolute URL to where the plugin is located.
*/
init : function(ed, url) {
var t = this;
// Internet Explorer has built-in automatic linking
if (tinyMCE.isIE)
return;
// Add a key down handler
ed.onKeyDown.add(function(ed, e) {
if (e.keyCode == 13)
return t.handleEnter(ed);
});
ed.onKeyPress.add(function(ed, e) {
if (e.which == 41)
return t.handleEclipse(ed);
});
// Add a key up handler
ed.onKeyUp.add(function(ed, e) {
if (e.keyCode == 32)
return t.handleSpacebar(ed);
});
},
handleEclipse : function(ed) {
this.parseCurrentLine(ed, -1, '(', true);
},
handleSpacebar : function(ed) {
this.parseCurrentLine(ed, 0, '', true);
},
handleEnter : function(ed) {
this.parseCurrentLine(ed, -1, '', false);
},
parseCurrentLine : function(ed, end_offset, delimiter, goback) {
var r, end, start, endContainer, bookmark, text, matches, prev, len;
// We need at least five characters to form a URL,
// hence, at minimum, five characters from the beginning of the line.
r = ed.selection.getRng().cloneRange();
if (r.startOffset < 5) {
// During testing, the caret is placed inbetween two text nodes.
// The previous text node contains the URL.
prev = r.endContainer.previousSibling;
if (prev == null) {
if (r.endContainer.firstChild == null || r.endContainer.firstChild.nextSibling == null)
return;
prev = r.endContainer.firstChild.nextSibling;
}
len = prev.length;
r.setStart(prev, len);
r.setEnd(prev, len);
if (r.endOffset < 5)
return;
end = r.endOffset;
endContainer = prev;
} else {
endContainer = r.endContainer;
// Get a text node
if (endContainer.nodeType != 3 && endContainer.firstChild) {
while (endContainer.nodeType != 3 && endContainer.firstChild)
endContainer = endContainer.firstChild;
r.setStart(endContainer, 0);
r.setEnd(endContainer, endContainer.nodeValue.length);
}
if (r.endOffset == 1)
end = 2;
else
end = r.endOffset - 1 - end_offset;
}
start = end;
do
{
// Move the selection one character backwards.
r.setStart(endContainer, end - 2);
r.setEnd(endContainer, end - 1);
end -= 1;
// Loop until one of the following is found: a blank space, &nbsp;, delimeter, (end-2) >= 0
} while (r.toString() != ' ' && r.toString() != '' && r.toString().charCodeAt(0) != 160 && (end -2) >= 0 && r.toString() != delimiter);
if (r.toString() == delimiter || r.toString().charCodeAt(0) == 160) {
r.setStart(endContainer, end);
r.setEnd(endContainer, start);
end += 1;
} else if (r.startOffset == 0) {
r.setStart(endContainer, 0);
r.setEnd(endContainer, start);
}
else {
r.setStart(endContainer, end);
r.setEnd(endContainer, start);
}
text = r.toString();
matches = text.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|[A-Z0-9._%+-]+@)(.+)$/i);
if (matches) {
if (matches[1] == 'www.') {
matches[1] = 'http://www.';
} else if (/@$/.test(matches[1])) {
matches[1] = 'mailto:' + matches[1];
}
bookmark = ed.selection.getBookmark();
ed.selection.setRng(r);
tinyMCE.execCommand('createlink',false, matches[1] + matches[2]);
ed.selection.moveToBookmark(bookmark);
// TODO: Determine if this is still needed.
if (tinyMCE.isWebKit) {
// move the caret to its original position
ed.selection.collapse(false);
var max = Math.min(endContainer.length, start + 1);
r.setStart(endContainer, max);
r.setEnd(endContainer, max);
ed.selection.setRng(r);
}
}
},
/**
* Returns information about the plugin as a name/value array.
* The current keys are longname, author, authorurl, infourl and version.
*
* @return {Object} Name/value array containing information about the plugin.
*/
getInfo : function() {
return {
longname : 'Autolink',
author : 'Moxiecode Systems AB',
authorurl : 'http://tinymce.moxiecode.com',
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autolink',
version : tinymce.majorVersion + "." + tinymce.minorVersion
};
}
});
// Register plugin
tinymce.PluginManager.add('autolink', tinymce.plugins.AutolinkPlugin);
})();
/**
* editor_plugin_src.js
*
* Copyright 2011, Moxiecode Systems AB
* Released under LGPL License.
*
* License: http://tinymce.moxiecode.com/license
* Contributing: http://tinymce.moxiecode.com/contributing
*/
(function() {
tinymce.create('tinymce.plugins.AutolinkPlugin', {
/**
* Initializes the plugin, this will be executed after the plugin has been created.
* This call is done before the editor instance has finished it's initialization so use the onInit event
* of the editor instance to intercept that event.
*
* @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
* @param {string} url Absolute URL to where the plugin is located.
*/
init : function(ed, url) {
var t = this;
// Add a key down handler
ed.onKeyDown.addToTop(function(ed, e) {
if (e.keyCode == 13)
return t.handleEnter(ed);
});
// Internet Explorer has built-in automatic linking for most cases
if (tinyMCE.isIE)
return;
ed.onKeyPress.add(function(ed, e) {
if (e.which == 41)
return t.handleEclipse(ed);
});
// Add a key up handler
ed.onKeyUp.add(function(ed, e) {
if (e.keyCode == 32)
return t.handleSpacebar(ed);
});
},
handleEclipse : function(ed) {
this.parseCurrentLine(ed, -1, '(', true);
},
handleSpacebar : function(ed) {
this.parseCurrentLine(ed, 0, '', true);
},
handleEnter : function(ed) {
this.parseCurrentLine(ed, -1, '', false);
},
parseCurrentLine : function(ed, end_offset, delimiter, goback) {
var r, end, start, endContainer, bookmark, text, matches, prev, len;
// We need at least five characters to form a URL,
// hence, at minimum, five characters from the beginning of the line.
r = ed.selection.getRng(true).cloneRange();
if (r.startOffset < 5) {
// During testing, the caret is placed inbetween two text nodes.
// The previous text node contains the URL.
prev = r.endContainer.previousSibling;
if (prev == null) {
if (r.endContainer.firstChild == null || r.endContainer.firstChild.nextSibling == null)
return;
prev = r.endContainer.firstChild.nextSibling;
}
len = prev.length;
r.setStart(prev, len);
r.setEnd(prev, len);
if (r.endOffset < 5)
return;
end = r.endOffset;
endContainer = prev;
} else {
endContainer = r.endContainer;
// Get a text node
if (endContainer.nodeType != 3 && endContainer.firstChild) {
while (endContainer.nodeType != 3 && endContainer.firstChild)
endContainer = endContainer.firstChild;
r.setStart(endContainer, 0);
r.setEnd(endContainer, endContainer.nodeValue.length);
}
if (r.endOffset == 1)
end = 2;
else
end = r.endOffset - 1 - end_offset;
}
start = end;
do
{
// Move the selection one character backwards.
r.setStart(endContainer, end - 2);
r.setEnd(endContainer, end - 1);
end -= 1;
// Loop until one of the following is found: a blank space, &nbsp;, delimeter, (end-2) >= 0
} while (r.toString() != ' ' && r.toString() != '' && r.toString().charCodeAt(0) != 160 && (end -2) >= 0 && r.toString() != delimiter);
if (r.toString() == delimiter || r.toString().charCodeAt(0) == 160) {
r.setStart(endContainer, end);
r.setEnd(endContainer, start);
end += 1;
} else if (r.startOffset == 0) {
r.setStart(endContainer, 0);
r.setEnd(endContainer, start);
}
else {
r.setStart(endContainer, end);
r.setEnd(endContainer, start);
}
// Exclude last . from word like "www.site.com."
var text = r.toString();
if (text.charAt(text.length - 1) == '.') {
r.setEnd(endContainer, start - 1);
}
text = r.toString();
matches = text.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|[A-Z0-9._%+-]+@)(.+)$/i);
if (matches) {
if (matches[1] == 'www.') {
matches[1] = 'http://www.';
} else if (/@$/.test(matches[1])) {
matches[1] = 'mailto:' + matches[1];
}
bookmark = ed.selection.getBookmark();
ed.selection.setRng(r);
tinyMCE.execCommand('createlink',false, matches[1] + matches[2]);
ed.selection.moveToBookmark(bookmark);
// TODO: Determine if this is still needed.
if (tinyMCE.isWebKit) {
// move the caret to its original position
ed.selection.collapse(false);
var max = Math.min(endContainer.length, start + 1);
r.setStart(endContainer, max);
r.setEnd(endContainer, max);
ed.selection.setRng(r);
}
}
},
/**
* Returns information about the plugin as a name/value array.
* The current keys are longname, author, authorurl, infourl and version.
*
* @return {Object} Name/value array containing information about the plugin.
*/
getInfo : function() {
return {
longname : 'Autolink',
author : 'Moxiecode Systems AB',
authorurl : 'http://tinymce.moxiecode.com',
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autolink',
version : tinymce.majorVersion + "." + tinymce.minorVersion
};
}
});
// Register plugin
tinymce.PluginManager.add('autolink', tinymce.plugins.AutolinkPlugin);
})();

View File

@ -1 +1 @@
(function(){var a=tinymce.DOM;tinymce.create("tinymce.plugins.FullScreenPlugin",{init:function(d,e){var f=this,g={},c,b;f.editor=d;d.addCommand("mceFullScreen",function(){var i,j=a.doc.documentElement;if(d.getParam("fullscreen_is_enabled")){if(d.getParam("fullscreen_new_window")){closeFullscreen()}else{a.win.setTimeout(function(){tinymce.dom.Event.remove(a.win,"resize",f.resizeFunc);tinyMCE.get(d.getParam("fullscreen_editor_id")).setContent(d.getContent());tinyMCE.remove(d);a.remove("mce_fullscreen_container");j.style.overflow=d.getParam("fullscreen_html_overflow");a.setStyle(a.doc.body,"overflow",d.getParam("fullscreen_overflow"));a.win.scrollTo(d.getParam("fullscreen_scrollx"),d.getParam("fullscreen_scrolly"));tinyMCE.settings=tinyMCE.oldSettings},10)}return}if(d.getParam("fullscreen_new_window")){i=a.win.open(e+"/fullscreen.htm","mceFullScreenPopup","fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width="+screen.availWidth+",height="+screen.availHeight);try{i.resizeTo(screen.availWidth,screen.availHeight)}catch(h){}}else{tinyMCE.oldSettings=tinyMCE.settings;g.fullscreen_overflow=a.getStyle(a.doc.body,"overflow",1)||"auto";g.fullscreen_html_overflow=a.getStyle(j,"overflow",1);c=a.getViewPort();g.fullscreen_scrollx=c.x;g.fullscreen_scrolly=c.y;if(tinymce.isOpera&&g.fullscreen_overflow=="visible"){g.fullscreen_overflow="auto"}if(tinymce.isIE&&g.fullscreen_overflow=="scroll"){g.fullscreen_overflow="auto"}if(tinymce.isIE&&(g.fullscreen_html_overflow=="visible"||g.fullscreen_html_overflow=="scroll")){g.fullscreen_html_overflow="auto"}if(g.fullscreen_overflow=="0px"){g.fullscreen_overflow=""}a.setStyle(a.doc.body,"overflow","hidden");j.style.overflow="hidden";c=a.getViewPort();a.win.scrollTo(0,0);if(tinymce.isIE){c.h-=1}if(tinymce.isIE6){b="absolute;top:"+c.y}else{b="fixed;top:0"}n=a.add(a.doc.body,"div",{id:"mce_fullscreen_container",style:"position:"+b+";left:0;width:"+c.w+"px;height:"+c.h+"px;z-index:200000;"});a.add(n,"div",{id:"mce_fullscreen"});tinymce.each(d.settings,function(k,l){g[l]=k});g.id="mce_fullscreen";g.width=n.clientWidth;g.height=n.clientHeight-15;g.fullscreen_is_enabled=true;g.fullscreen_editor_id=d.id;g.theme_advanced_resizing=false;g.save_onsavecallback=function(){d.setContent(tinyMCE.get(g.id).getContent());d.execCommand("mceSave")};tinymce.each(d.getParam("fullscreen_settings"),function(m,l){g[l]=m});if(g.theme_advanced_toolbar_location==="external"){g.theme_advanced_toolbar_location="top"}f.fullscreenEditor=new tinymce.Editor("mce_fullscreen",g);f.fullscreenEditor.onInit.add(function(){f.fullscreenEditor.setContent(d.getContent());f.fullscreenEditor.focus()});f.fullscreenEditor.render();f.fullscreenElement=new tinymce.dom.Element("mce_fullscreen_container");f.fullscreenElement.update();f.resizeFunc=tinymce.dom.Event.add(a.win,"resize",function(){var o=tinymce.DOM.getViewPort(),l=f.fullscreenEditor,k,m;k=l.dom.getSize(l.getContainer().firstChild);m=l.dom.getSize(l.getContainer().getElementsByTagName("iframe")[0]);l.theme.resizeTo(o.w-k.w+m.w,o.h-k.h+m.h)})}});d.addButton("fullscreen",{title:"fullscreen.desc",cmd:"mceFullScreen"});d.onNodeChange.add(function(i,h){h.setActive("fullscreen",i.getParam("fullscreen_is_enabled"))})},getInfo:function(){return{longname:"Fullscreen",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("fullscreen",tinymce.plugins.FullScreenPlugin)})();
(function(){var a=tinymce.DOM;tinymce.create("tinymce.plugins.FullScreenPlugin",{init:function(d,e){var f=this,g={},c,b;f.editor=d;d.addCommand("mceFullScreen",function(){var i,j=a.doc.documentElement;if(d.getParam("fullscreen_is_enabled")){if(d.getParam("fullscreen_new_window")){closeFullscreen()}else{a.win.setTimeout(function(){tinymce.dom.Event.remove(a.win,"resize",f.resizeFunc);tinyMCE.get(d.getParam("fullscreen_editor_id")).setContent(d.getContent());tinyMCE.remove(d);a.remove("mce_fullscreen_container");j.style.overflow=d.getParam("fullscreen_html_overflow");a.setStyle(a.doc.body,"overflow",d.getParam("fullscreen_overflow"));a.win.scrollTo(d.getParam("fullscreen_scrollx"),d.getParam("fullscreen_scrolly"));tinyMCE.settings=tinyMCE.oldSettings},10)}return}if(d.getParam("fullscreen_new_window")){i=a.win.open(e+"/fullscreen.htm","mceFullScreenPopup","fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width="+screen.availWidth+",height="+screen.availHeight);try{i.resizeTo(screen.availWidth,screen.availHeight)}catch(h){}}else{tinyMCE.oldSettings=tinyMCE.settings;g.fullscreen_overflow=a.getStyle(a.doc.body,"overflow",1)||"auto";g.fullscreen_html_overflow=a.getStyle(j,"overflow",1);c=a.getViewPort();g.fullscreen_scrollx=c.x;g.fullscreen_scrolly=c.y;if(tinymce.isOpera&&g.fullscreen_overflow=="visible"){g.fullscreen_overflow="auto"}if(tinymce.isIE&&g.fullscreen_overflow=="scroll"){g.fullscreen_overflow="auto"}if(tinymce.isIE&&(g.fullscreen_html_overflow=="visible"||g.fullscreen_html_overflow=="scroll")){g.fullscreen_html_overflow="auto"}if(g.fullscreen_overflow=="0px"){g.fullscreen_overflow=""}a.setStyle(a.doc.body,"overflow","hidden");j.style.overflow="hidden";c=a.getViewPort();a.win.scrollTo(0,0);if(tinymce.isIE){c.h-=1}if(tinymce.isIE6||document.compatMode=="BackCompat"){b="absolute;top:"+c.y}else{b="fixed;top:0"}n=a.add(a.doc.body,"div",{id:"mce_fullscreen_container",style:"position:"+b+";left:0;width:"+c.w+"px;height:"+c.h+"px;z-index:200000;"});a.add(n,"div",{id:"mce_fullscreen"});tinymce.each(d.settings,function(k,l){g[l]=k});g.id="mce_fullscreen";g.width=n.clientWidth;g.height=n.clientHeight-15;g.fullscreen_is_enabled=true;g.fullscreen_editor_id=d.id;g.theme_advanced_resizing=false;g.save_onsavecallback=function(){d.setContent(tinyMCE.get(g.id).getContent());d.execCommand("mceSave")};tinymce.each(d.getParam("fullscreen_settings"),function(m,l){g[l]=m});if(g.theme_advanced_toolbar_location==="external"){g.theme_advanced_toolbar_location="top"}f.fullscreenEditor=new tinymce.Editor("mce_fullscreen",g);f.fullscreenEditor.onInit.add(function(){f.fullscreenEditor.setContent(d.getContent());f.fullscreenEditor.focus()});f.fullscreenEditor.render();f.fullscreenElement=new tinymce.dom.Element("mce_fullscreen_container");f.fullscreenElement.update();f.resizeFunc=tinymce.dom.Event.add(a.win,"resize",function(){var o=tinymce.DOM.getViewPort(),l=f.fullscreenEditor,k,m;k=l.dom.getSize(l.getContainer().firstChild);m=l.dom.getSize(l.getContainer().getElementsByTagName("iframe")[0]);l.theme.resizeTo(o.w-k.w+m.w,o.h-k.h+m.h)})}});d.addButton("fullscreen",{title:"fullscreen.desc",cmd:"mceFullScreen"});d.onNodeChange.add(function(i,h){h.setActive("fullscreen",i.getParam("fullscreen_is_enabled"))})},getInfo:function(){return{longname:"Fullscreen",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("fullscreen",tinymce.plugins.FullScreenPlugin)})();

View File

@ -79,7 +79,7 @@
vp.h -= 1;
// Use fixed position if it exists
if (tinymce.isIE6)
if (tinymce.isIE6 || document.compatMode == 'BackCompat')
posCss = 'absolute;top:' + vp.y;
else
posCss = 'fixed;top:0';

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -261,12 +261,96 @@
selection.collapse(start);
}
function canDelete(backspace) {
var rng, container, offset, nonEditableParent;
function removeNodeIfNotParent(node) {
var parent = container;
while (parent) {
if (parent === node) {
return;
}
parent = parent.parentNode;
}
dom.remove(node);
moveSelection();
}
function isNextPrevTreeNodeNonEditable() {
var node, walker, nonEmptyElements = ed.schema.getNonEmptyElements();
walker = new tinymce.dom.TreeWalker(container, ed.getBody());
while (node = (backspace ? walker.prev() : walker.next())) {
// Found IMG/INPUT etc
if (nonEmptyElements[node.nodeName.toLowerCase()]) {
break;
}
// Found text node with contents
if (node.nodeType === 3 && tinymce.trim(node.nodeValue).length > 0) {
break;
}
// Found non editable node
if (getContentEditable(node) === "false") {
removeNodeIfNotParent(node);
return true;
}
}
// Check if the content node is within a non editable parent
if (getNonEditableParent(node)) {
return true;
}
return false;
}
if (selection.isCollapsed()) {
rng = selection.getRng(true);
container = rng.startContainer;
offset = rng.startOffset;
container = getParentCaretContainer(container) || container;
// Is in noneditable parent
if (nonEditableParent = getNonEditableParent(container)) {
removeNodeIfNotParent(nonEditableParent);
return false;
}
// Check if the caret is in the middle of a text node
if (container.nodeType == 3 && (backspace ? offset > 0 : offset < container.nodeValue.length)) {
return true;
}
// Resolve container index
if (container.nodeType == 1) {
container = container.childNodes[offset] || container;
}
// Check if previous or next tree node is non editable then block the event
if (isNextPrevTreeNodeNonEditable()) {
return false;
}
}
return true;
}
startElement = selection.getStart()
endElement = selection.getEnd();
// Disable all key presses in contentEditable=false except delete or backspace
nonEditableParent = getNonEditableParent(startElement) || getNonEditableParent(endElement);
if (nonEditableParent && (keyCode < 112 || keyCode > 124) && keyCode != VK.DELETE && keyCode != VK.BACKSPACE) {
// Is Ctrl+c, Ctrl+v or Ctrl+x then use default browser behavior
if ((tinymce.isMac ? e.metaKey : e.ctrlKey) && (keyCode == 67 || keyCode == 88 || keyCode == 86)) {
return;
}
e.preventDefault();
// Arrow left/right select the element and collapse left/right
@ -298,6 +382,7 @@
positionCaretOnElement(nonEditableParent, true);
} else {
dom.remove(nonEditableParent);
return;
}
} else {
removeCaretContainer(caretContainer);
@ -315,23 +400,31 @@
positionCaretOnElement(nonEditableParent, false);
} else {
dom.remove(nonEditableParent);
return;
}
} else {
removeCaretContainer(caretContainer);
}
}
}
if ((keyCode == VK.BACKSPACE || keyCode == VK.DELETE) && !canDelete(keyCode == VK.BACKSPACE)) {
e.preventDefault();
return false;
}
}
}
};
ed.onMouseDown.addToTop(function(ed, e){
// prevent collapsing selection to caret when clicking in a non-editable section
ed.onMouseDown.addToTop(function(ed, e) {
var node = ed.selection.getNode();
if (getContentEditable(node) === "false" && node == e.target) {
e.preventDefault();
// Expand selection on mouse down we can't block the default event since it's used for drag/drop
moveSelection();
}
});
ed.onMouseUp.addToTop(moveSelection);
ed.onKeyDown.addToTop(handleKey);
ed.onKeyUp.addToTop(moveSelection);
@ -341,6 +434,31 @@
init : function(ed, url) {
var editClass, nonEditClass, nonEditableRegExps;
// Converts configured regexps to noneditable span items
function convertRegExpsToNonEditable(ed, args) {
var i = nonEditableRegExps.length, content = args.content, cls = tinymce.trim(nonEditClass);
// Don't replace the variables when raw is used for example on undo/redo
if (args.format == "raw") {
return;
}
while (i--) {
content = content.replace(nonEditableRegExps[i], function(match) {
var args = arguments, index = args[args.length - 2];
// Is value inside an attribute then don't replace
if (index > 0 && content.charAt(index - 1) == '"') {
return match;
}
return '<span class="' + cls + '" data-mce-content="' + ed.dom.encode(args[0]) + '">' + ed.dom.encode(typeof(args[1]) === "string" ? args[1] : args[0]) + '</span>';
});
}
args.content = content;
};
editClass = " " + tinymce.trim(ed.getParam("noneditable_editable_class", "mceEditable")) + " ";
nonEditClass = " " + tinymce.trim(ed.getParam("noneditable_noneditable_class", "mceNonEditable")) + " ";
@ -354,26 +472,10 @@
handleContentEditableSelection(ed);
if (nonEditableRegExps) {
ed.onBeforeSetContent.add(function(ed, args) {
var i = nonEditableRegExps.length, content = args.content, cls = tinymce.trim(nonEditClass);
// Don't replace the variables when raw is used for example on undo/redo
if (args.format == "raw") {
return;
}
while (i--) {
content = content.replace(nonEditableRegExps[i], function() {
var args = arguments;
return '<span class="' + cls + '" data-mce-content="' + ed.dom.encode(args[0]) + '">' + ed.dom.encode(typeof(args[1]) === "string" ? args[1] : args[0]) + '</span>';
});
}
args.content = content;
});
ed.selection.onBeforeSetContent.add(convertRegExpsToNonEditable);
ed.onBeforeSetContent.add(convertRegExpsToNonEditable);
}
// Apply contentEditable true/false on elements with the noneditable/editable classes
ed.parser.addAttributeFilter('class', function(nodes) {
var i = nodes.length, className, node;

File diff suppressed because one or more lines are too long

View File

@ -359,7 +359,7 @@
}
// IE9 adds BRs before/after block elements when contents is pasted from word or for example another browser
if (tinymce.isIE && document.documentMode >= 9) {
if (tinymce.isIE && document.documentMode >= 9 && /<(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)/.test(o.content)) {
// IE9 adds BRs before/after block elements when contents is pasted from word or for example another browser
process([[/(?:<br>&nbsp;[\s\r\n]+|<br>)*(<\/?(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)[^>]*>)(?:<br>&nbsp;[\s\r\n]+|<br>)*/g, '$1']]);

View File

@ -1 +1 @@
(function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.explode;tinymce.create("tinymce.plugins.TabFocusPlugin",{init:function(f,g){function e(i,j){if(j.keyCode===9){return a.cancel(j)}}function h(l,p){var j,m,o,n,k;function q(t){n=c.select(":input:enabled,*[tabindex]");function s(v){return v.nodeName==="BODY"||(v.type!="hidden"&&!(v.style.display=="none")&&!(v.style.visibility=="hidden")&&s(v.parentNode))}function i(v){return v.attributes.tabIndex.specified||v.nodeName=="INPUT"||v.nodeName=="TEXTAREA"}function u(){return tinymce.isIE6||tinymce.isIE7}function r(v){return((!u()||i(v)))&&v.getAttribute("tabindex")!="-1"&&s(v)}d(n,function(w,v){if(w.id==l.id){j=v;return false}});if(t>0){for(m=j+1;m<n.length;m++){if(r(n[m])){return n[m]}}}else{for(m=j-1;m>=0;m--){if(r(n[m])){return n[m]}}}return null}if(p.keyCode===9){k=b(l.getParam("tab_focus",l.getParam("tabfocus_elements",":prev,:next")));if(k.length==1){k[1]=k[0];k[0]=":prev"}if(p.shiftKey){if(k[0]==":prev"){n=q(-1)}else{n=c.get(k[0])}}else{if(k[1]==":next"){n=q(1)}else{n=c.get(k[1])}}if(n){if(n.id&&(l=tinymce.get(n.id||n.name))){l.focus()}else{window.setTimeout(function(){if(!tinymce.isWebKit){window.focus()}n.focus()},10)}return a.cancel(p)}}}f.onKeyUp.add(e);if(tinymce.isGecko){f.onKeyPress.add(h);f.onKeyDown.add(e)}else{f.onKeyDown.add(h)}},getInfo:function(){return{longname:"Tabfocus",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("tabfocus",tinymce.plugins.TabFocusPlugin)})();
(function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.explode;tinymce.create("tinymce.plugins.TabFocusPlugin",{init:function(f,g){function e(i,j){if(j.keyCode===9){return a.cancel(j)}}function h(l,p){var j,m,o,n,k;function q(t){n=c.select(":input:enabled,*[tabindex]:not(iframe)");function s(v){return v.nodeName==="BODY"||(v.type!="hidden"&&!(v.style.display=="none")&&!(v.style.visibility=="hidden")&&s(v.parentNode))}function i(v){return v.attributes.tabIndex.specified||v.nodeName=="INPUT"||v.nodeName=="TEXTAREA"}function u(){return tinymce.isIE6||tinymce.isIE7}function r(v){return((!u()||i(v)))&&v.getAttribute("tabindex")!="-1"&&s(v)}d(n,function(w,v){if(w.id==l.id){j=v;return false}});if(t>0){for(m=j+1;m<n.length;m++){if(r(n[m])){return n[m]}}}else{for(m=j-1;m>=0;m--){if(r(n[m])){return n[m]}}}return null}if(p.keyCode===9){k=b(l.getParam("tab_focus",l.getParam("tabfocus_elements",":prev,:next")));if(k.length==1){k[1]=k[0];k[0]=":prev"}if(p.shiftKey){if(k[0]==":prev"){n=q(-1)}else{n=c.get(k[0])}}else{if(k[1]==":next"){n=q(1)}else{n=c.get(k[1])}}if(n){if(n.id&&(l=tinymce.get(n.id||n.name))){l.focus()}else{window.setTimeout(function(){if(!tinymce.isWebKit){window.focus()}n.focus()},10)}return a.cancel(p)}}}f.onKeyUp.add(e);if(tinymce.isGecko){f.onKeyPress.add(h);f.onKeyDown.add(e)}else{f.onKeyDown.add(h)}},getInfo:function(){return{longname:"Tabfocus",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("tabfocus",tinymce.plugins.TabFocusPlugin)})();

View File

@ -22,7 +22,7 @@
var x, i, f, el, v;
function find(d) {
el = DOM.select(':input:enabled,*[tabindex]');
el = DOM.select(':input:enabled,*[tabindex]:not(iframe)');
function canSelectRecursive(e) {
return e.nodeName==="BODY" || (e.type != 'hidden' &&

View File

@ -137,7 +137,7 @@ function updateAction() {
do {
if (cell == tdElm)
break;
col += cell.getAttribute("colspan");
col += cell.getAttribute("colspan")?cell.getAttribute("colspan"):1;
} while ((cell = nextCell(cell)) != null);
for (var i=0; i<rows.length; i++) {
@ -152,7 +152,7 @@ function updateAction() {
cell = updateCell(cell, true);
break;
}
curr += cell.getAttribute("colspan");
curr += cell.getAttribute("colspan")?cell.getAttribute("colspan"):1;
} while ((cell = nextCell(cell)) != null);
}

View File

@ -1,6 +1,6 @@
p, h1, h2, h3, h4, h5, h6, hgroup, aside, div, section, article, blockquote, address, pre {display: block; padding-top: 10px; border: 1px dashed #BBB; background: transparent no-repeat}
p, h1, h2, h3, h4, h5, h6, hgroup, aside, div, section, article, address, pre {margin-left: 3px}
section, article, address, hgroup, aside {margin: 1em 0 0 3px}
p, h1, h2, h3, h4, h5, h6, hgroup, aside, div, section, article, blockquote, address, pre, figure {display: block; padding-top: 10px; border: 1px dashed #BBB; background: transparent no-repeat}
p, h1, h2, h3, h4, h5, h6, hgroup, aside, div, section, article, address, pre, figure {margin-left: 3px}
section, article, address, hgroup, aside, figure {margin: 0 0 1em 3px}
p {background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}
h1 {background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}
@ -17,3 +17,5 @@ address {background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH
pre {background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}
hgroup {background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}
aside {background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}
figure {background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}
figcaption {border: 1px dashed #BBB}

View File

@ -1 +1 @@
(function(){tinymce.create("tinymce.plugins.VisualBlocks",{init:function(a,b){var c;if(!window.NodeList){return}a.addCommand("mceVisualBlocks",function(){var e=a.dom,d;if(!c){c=e.uniqueId();d=e.create("link",{id:c,rel:"stylesheet",href:b+"/css/visualblocks.css"});a.getDoc().getElementsByTagName("head")[0].appendChild(d)}else{d=e.get(c);d.disabled=!d.disabled}a.controlManager.setActive("visualblocks",!d.disabled)});a.addButton("visualblocks",{title:"visualblocks.desc",cmd:"mceVisualBlocks"});a.onInit.add(function(){if(a.settings.visualblocks_default_state){a.execCommand("mceVisualBlocks")}})},getInfo:function(){return{longname:"Visual blocks",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualblocks",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("visualblocks",tinymce.plugins.VisualBlocks)})();
(function(){tinymce.create("tinymce.plugins.VisualBlocks",{init:function(a,b){var c;if(!window.NodeList){return}a.addCommand("mceVisualBlocks",function(){var e=a.dom,d;if(!c){c=e.uniqueId();d=e.create("link",{id:c,rel:"stylesheet",href:b+"/css/visualblocks.css"});a.getDoc().getElementsByTagName("head")[0].appendChild(d)}else{d=e.get(c);d.disabled=!d.disabled}a.controlManager.setActive("visualblocks",!d.disabled)});a.addButton("visualblocks",{title:"visualblocks.desc",cmd:"mceVisualBlocks"});a.onInit.add(function(){if(a.settings.visualblocks_default_state){a.execCommand("mceVisualBlocks",false,null,{skip_focus:true})}})},getInfo:function(){return{longname:"Visual blocks",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualblocks",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("visualblocks",tinymce.plugins.VisualBlocks)})();

View File

@ -42,7 +42,7 @@
ed.onInit.add(function() {
if (ed.settings.visualblocks_default_state) {
ed.execCommand('mceVisualBlocks');
ed.execCommand('mceVisualBlocks', false, null, {skip_focus : true});
}
});
},

View File

@ -62,12 +62,8 @@
<div class="mceActionPanel">
<input type="submit" id="insert" name="insert" value="{#apply}" />
<div id="preview"></div>
<div id="previewblock">
<label for="color">{#advanced_dlg.colorpicker_color}</label> <input id="color" type="text" size="8" class="text mceFocus" aria-required="true" />
</div>
<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();"/>
<div id="preview_wrapper"><div id="previewblock"><label for="color">{#advanced_dlg.colorpicker_color}</label> <input id="color" type="text" size="8" class="text mceFocus" aria-required="true" /></div><span id="preview"></span></div>
</div>
</form>
</body>

File diff suppressed because one or more lines are too long

View File

@ -69,6 +69,16 @@
each(previewStyles.split(' '), function(name) {
var value = dom.getStyle(previewElm, name, true);
// If background is transparent then check if the body has a background color we can use
if (name == 'background-color' && /transparent|rgba\s*\([^)]+,\s*0\)/.test(value)) {
value = dom.getStyle(ed.getBody(), name, true);
// Ignore white since it's the default color, not the nicest fix
if (dom.toHex(value).toLowerCase() == '#ffffff') {
return;
}
}
// Old IE won't calculate the font size so we need to do that manually
if (name == 'font-size') {
if (/em|%$/.test(value)) {
@ -608,7 +618,7 @@
// TODO: ACC Should have an aria-describedby attribute which is user-configurable to describe what this field is actually for.
// Maybe actually inherit it from the original textara?
n = p = DOM.create('span', {role : 'application', 'aria-labelledby' : ed.id + '_voice', id : ed.id + '_parent', 'class' : 'mceEditor ' + ed.settings.skin + 'Skin' + (s.skin_variant ? ' ' + ed.settings.skin + 'Skin' + t._ufirst(s.skin_variant) : '')});
n = p = DOM.create('span', {role : 'application', 'aria-labelledby' : ed.id + '_voice', id : ed.id + '_parent', 'class' : 'mceEditor ' + ed.settings.skin + 'Skin' + (s.skin_variant ? ' ' + ed.settings.skin + 'Skin' + t._ufirst(s.skin_variant) : '') + (ed.settings.directionality == "rtl" ? ' mceRtl' : '')});
DOM.add(n, 'span', {'class': 'mceVoiceLabel', 'style': 'display:none;', id: ed.id + '_voice'}, s.aria_label);
if (!DOM.boxModel)
@ -925,7 +935,7 @@
},
_addToolbars : function(c, o) {
var t = this, i, tb, ed = t.editor, s = t.settings, v, cf = ed.controlManager, di, n, h = [], a, toolbarGroup;
var t = this, i, tb, ed = t.editor, s = t.settings, v, cf = ed.controlManager, di, n, h = [], a, toolbarGroup, toolbarsExist = false;
toolbarGroup = cf.createToolbarGroup('toolbargroup', {
'name': ed.getLang('advanced.toolbar'),
@ -941,6 +951,7 @@
// Create toolbar and add the controls
for (i=1; (v = s['theme_advanced_buttons' + i]); i++) {
toolbarsExist = true;
tb = cf.createToolbar("toolbar" + i, {'class' : 'mceToolbarRow' + i});
if (s['theme_advanced_buttons' + i + '_add'])
@ -954,6 +965,9 @@
o.deltaHeight -= s.theme_advanced_row_height;
}
// Handle case when there are no toolbar buttons and ensure editor height is adjusted accordingly
if (!toolbarsExist)
o.deltaHeight -= s.theme_advanced_row_height;
h.push(toolbarGroup.renderHTML());
h.push(DOM.createHTML('a', {href : '#', accesskey : 'z', title : ed.getLang("advanced.toolbar_focus"), onfocus : 'tinyMCE.getInstanceById(\'' + ed.id + '\').focus();'}, '<!-- IE -->'));
DOM.setHTML(n, h.join(''));
@ -1112,7 +1126,7 @@
}
if (c = cm.get('formatselect')) {
p = getParent(DOM.isBlock);
p = getParent(ed.dom.isBlock);
if (p)
c.select(p.nodeName.toLowerCase());
@ -1210,7 +1224,7 @@
return;
// Handle prefix
if (tinymce.isIE && n.scopeName !== 'HTML')
if (tinymce.isIE && n.scopeName !== 'HTML' && n.scopeName)
na = n.scopeName + ':' + na;
// Remove internal prefix
@ -1271,7 +1285,7 @@
if (v) {
ti += 'class: ' + v + ' ';
if (DOM.isBlock(n) || na == 'img' || na == 'span')
if (ed.dom.isBlock(n) || na == 'img' || na == 'span')
na += '.' + v;
}
}

View File

@ -104,10 +104,12 @@ var ImageDialog = {
},
updateStyle : function() {
var dom = tinyMCEPopup.dom, st, v, f = document.forms[0];
var dom = tinyMCEPopup.dom, st = {}, v, f = document.forms[0];
if (tinyMCEPopup.editor.settings.inline_styles) {
st = tinyMCEPopup.dom.parseStyle(this.styleVal);
tinymce.each(tinyMCEPopup.dom.parseStyle(this.styleVal), function(value, key) {
st[key] = value;
});
// Handle align
v = getSelectValue(f, 'align');

View File

@ -1,7 +1,7 @@
/* Generic */
body {
font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;
background:#F0F0EE;
background:#F0F0EE;
color: black;
padding:0;
margin:8px 8px 0 8px;
@ -94,11 +94,12 @@ h3 {font-size:14px;}
#plugintable, #about #plugintable td {border:1px solid #919B9C;}
#plugintable {width:96%; margin-top:10px;}
#pluginscontainer {height:290px; overflow:auto;}
#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}
#colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px}
#colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline}
#colorpicker #preview_wrapper { text-align:center; padding-top:4px; white-space: nowrap}
#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}
#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}
#colorpicker #light div {overflow:hidden;}
#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}
#colorpicker .panel_wrapper div.current {height:175px;}
#colorpicker #namedcolors {width:150px;}
#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}

View File

@ -58,7 +58,7 @@
/* Menu */
.highcontrastSkin .mceNoIcons span.mceIcon {width:0;}
.highcontrastSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid; }
.highcontrastSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid; direction:ltr}
.highcontrastSkin .mceMenu table {background:white; color: black}
.highcontrastSkin .mceNoIcons a .mceText {padding-left:10px}
.highcontrastSkin .mceMenu a, .highcontrastSkin .mceMenu span, .highcontrastSkin .mceMenu {display:block;background:white; color: black}
@ -90,6 +90,10 @@
.highcontrastSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF}
.highcontrastSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}
/* Rtl */
.mceRtl .mceListBox .mceText {text-align: right; padding: 0 4px 0 0}
.mceRtl .mceMenuItem .mceText {text-align: right}
/* Formats */
.highcontrastSkin .mce_p span.mceText {}
.highcontrastSkin .mce_address span.mceText {font-style:italic}

View File

@ -105,11 +105,12 @@ h3 {font-size:14px;}
#plugintable, #about #plugintable td {border:1px solid #919B9C;}
#plugintable {width:96%; margin-top:10px;}
#pluginscontainer {height:290px; overflow:auto;}
#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}
#colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px}
#colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline}
#colorpicker #preview_wrapper { text-align:center; padding-top:4px; white-space: nowrap}
#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}
#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}
#colorpicker #light div {overflow:hidden;}
#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}
#colorpicker .panel_wrapper div.current {height:175px;}
#colorpicker #namedcolors {width:150px;}
#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}

View File

@ -86,7 +86,7 @@
.o2k7Skin .mce_forecolor span.mceAction, .o2k7Skin .mce_backcolor span.mceAction {height:15px;overflow:hidden}
/* Menu */
.o2k7Skin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #ABC6DD}
.o2k7Skin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #ABC6DD; direction:ltr}
.o2k7Skin .mceNoIcons span.mceIcon {width:0;}
.o2k7Skin .mceNoIcons a .mceText {padding-left:10px}
.o2k7Skin .mceMenu table {background:#FFF}
@ -112,6 +112,10 @@
.o2k7Skin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF}
.o2k7Skin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}
/* Rtl */
.mceRtl .mceListBox .mceText {text-align: right; padding: 0 4px 0 0}
.mceRtl .mceMenuItem .mceText {text-align: right}
/* Formats */
.o2k7Skin .mce_formatPreview a {font-size:10px}
.o2k7Skin .mce_p span.mceText {}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -127,12 +127,15 @@ function acl_init(&$a){
if($type == 'm') {
$x = array();
$x['query'] = $search;
$x['photos'] = array();
$x['links'] = array();
$x['suggestions'] = array();
$x['data'] = array();
if(count($r)) {
foreach($r as $g) {
$x['suggestions'][] = sprintf( t('%s [%s]'),$g['name'],$g['url']);
// '<img src="' . $g['micro'] . ' height="16" width="16" alt="' . t('Image/photo') . '" />' .
$x['photos'][] = $g['micro'];
$x['links'][] = $g['url'];
$x['suggestions'][] = $g['name']; // sprintf( t('%s [%s]'),$g['name'],$g['url']);
$x['data'][] = intval($g['id']);
}
}

View File

@ -18,15 +18,19 @@ function message_init(&$a) {
));
$base = $a->get_baseurl();
$a->page['htmlhead'] .= '<script src="' . $a->get_baseurl(true) . '/library/jquery_ac/jquery.autocomplete-min.js" ></script>';
$a->page['htmlhead'] .= '<script src="' . $a->get_baseurl(true) . '/library/jquery_ac/friendica.complete.js" ></script>';
$a->page['htmlhead'] .= <<< EOT
<script>$(document).ready(function() {
var a;
a = $("#recip").autocomplete({
serviceUrl: '$base/acl',
width: 350
width: 350,
onSelect: function(value,data) {
$("#recip-complete").val(data);
}
});
});
</script>
@ -95,10 +99,6 @@ function message_content(&$a) {
$myprofile = $a->get_baseurl(true) . '/profile/' . $a->user['nickname'];
$tpl = get_markup_template('mail_head.tpl');
$header = replace_macros($tpl, array(
'$messages' => t('Messages'),
@ -172,28 +172,36 @@ function message_content(&$a) {
));
$preselect = (isset($a->argv[2])?array($a->argv[2]):false);
if(defined('EMAIL_AUTOCOMP')) {
// here's where we want to do contact autocomplete
// just figure out how to make it do the right thing
// pictures would be nice, but that didn't work when I tried.
// It sort of barely works, but needs help
// (the json backend is found in mod/acl.php)
$prename = $preurl = $preid = '';
$select = '<input type="text" id="recip" name="messageto" value="' . $preselect .'" />';
}
else {
if($preselect) {
$r = q("select name, url, id from contact where uid = %d and id = %d limit 1",
intval(local_user()),
intval($a->argv[2])
);
if(count($r)) {
$prename = $r[0]['name'];
$preurl = $r[0]['url'];
$preid = $r[0]['id'];
}
}
// the ugly select box
$prefill = (($preselect) ? $prename : '');
$select = contact_select('messageto','message-to-select', $preselect, 4, true, false, false, 10);
}
// the ugly select box
$select = contact_select('messageto','message-to-select', $preselect, 4, true, false, false, 10);
$tpl = get_markup_template('prv_message.tpl');
$o .= replace_macros($tpl,array(
'$header' => t('Send Private Message'),
'$to' => t('To:'),
'$showinputs' => 'true',
'$prefill' => $prefill,
'$autocomp' => $autocomp,
'$preid' => $preid,
'$subject' => t('Subject:'),
'$subjtxt' => ((x($_REQUEST,'subject')) ? strip_tags($_REQUEST['subject']) : ''),
'$text' => ((x($_REQUEST,'body')) ? escape_tags(htmlspecialchars($_REQUEST['body'])) : ''),
@ -369,9 +377,10 @@ function message_content(&$a) {
$seen = $message['seen'];
}
$select = $message['name'] . '<input type="hidden" name="messageto" value="' . $contact_id . '" />';
$parent = '<input type="hidden" name="replyto" value="' . $message['parent-uri'] . '" />';
$tpl = get_markup_template('mail_display.tpl');
$o = replace_macros($tpl, array(
@ -386,6 +395,7 @@ function message_content(&$a) {
// reply
'$header' => t('Send Reply'),
'$to' => t('To:'),
'$showinputs' => '',
'$subject' => t('Subject:'),
'$subjtxt' => template_escape($message['title']),
'$readonly' => ' readonly="readonly" style="background: #BBBBBB;" ',

View File

@ -11,7 +11,7 @@ require_once("boot.php");
$a = new App;
@include(".htconfig.php");
$lang = get_language();
$lang = get_browser_language();
load_translation_table($lang);
require_once("dba.php");

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -751,8 +751,10 @@ $a->strings["Network timeout"] = "Netzwerk Wartezeit";
$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Der Wert ist in Sekunden. Setze 0 für unbegrenzt (nicht empfohlen).";
$a->strings["Delivery interval"] = "Zustellungsintervall";
$a->strings["Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers."] = "Verzögere im Hintergrund laufende Auslieferungsprozesse um die angegebene Anzahl an Sekunden um die Systemlast zu verringern. Empfehlungen: 4-5 für Shared-Hosts, 2-3 für VPS, 0-1 für große dedizierte Server.";
$a->strings["Poll interval"] = "Abfrage Intervall";
$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Verzögere Hintergrundprozesse um diese Anzahl an Sekunden um die Systemlast zu reduzieren. Bei 0 Sekunden wird das Auslieferungsintervall verwendet.";
$a->strings["Maximum Load Average"] = "Maximum Load Average";
$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "";
$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Maximale Systemlast bevor Verteil- und Empfangsprozesse verschoben werden - Standard 50";
$a->strings["Update has been marked successful"] = "Update wurde als erfolgreich markiert";
$a->strings["Executing %s failed. Check system logs."] = "Ausführung von %s schlug fehl. Systemprotokolle prüfen.";
$a->strings["Update %s was successfully applied."] = "Update %s war erfolgreich.";
@ -831,6 +833,8 @@ $a->strings["No compatible communication protocols or feeds were discovered."] =
$a->strings["The profile address specified does not provide adequate information."] = "Die angegebene Profiladresse liefert unzureichende Informationen.";
$a->strings["An author or name was not found."] = "Es wurde kein Autor oder Name gefunden.";
$a->strings["No browser URL could be matched to this address."] = "Zu dieser Adresse konnte keine passende Browser URL gefunden werden.";
$a->strings["Unable to match @-style Identity Address with a known protocol or email contact."] = "Konnte die @-Adresse mit keinem der bekannten Protokolle oder Email-Kontakte abgleichen.";
$a->strings["Use mailto: in front of address to force email check."] = "Verwende mailto: vor der Email Adresse um eine Überprüfung der Email Adresse zu erzwingen.";
$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "Die Adresse dieses Profils gehört zu einem Netzwerk, mit dem die Kommunikation auf dieser Seite ausgeschaltet wurde.";
$a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Eingeschränktes Profil. Diese Person wird keine direkten/privaten Nachrichten von dir erhalten können.";
$a->strings["Unable to retrieve contact information."] = "Konnte die Kontaktinformationen nicht empfangen.";
@ -972,8 +976,8 @@ $a->strings["Install Facebook connector for this account."] = "Facebook-Connecto
$a->strings["Remove Facebook connector"] = "Facebook-Connector entfernen";
$a->strings["Re-authenticate [This is necessary whenever your Facebook password is changed.]"] = "Neu authentifizieren [Das ist immer dann nötig, wenn Du Dein Facebook-Passwort geändert hast.]";
$a->strings["Post to Facebook by default"] = "Veröffentliche standardmäßig bei Facebook";
$a->strings["Facebook friend linking has been disabled on this site. The following settings will have no effect."] = "";
$a->strings["Facebook friend linking has been disabled on this site. If you disable it, you will be unable to re-enable it."] = "";
$a->strings["Facebook friend linking has been disabled on this site. The following settings will have no effect."] = "Das verlinken von Facebook-Kontakten wurde auf dieser Seite deaktiviert. Die folgenden Einstellungen haben keinen Effekt.";
$a->strings["Facebook friend linking has been disabled on this site. If you disable it, you will be unable to re-enable it."] = "Das verlinken von Facebook-Kontakten wurde auf dieser Seite deaktiviert. Wenn du es ausgeschaltet hast, kannst du es nicht wieder aktivieren.";
$a->strings["Link all your Facebook friends and conversations on this website"] = "All meine Facebook-Kontakte und -Konversationen hier auf diese Website importieren";
$a->strings["Facebook conversations consist of your <em>profile wall</em> and your friend <em>stream</em>."] = "Facebook-Konversationen bestehen aus deinen Beiträgen auf deiner<em>Pinnwand</em>, sowie den Beiträgen deiner Freunde <em>Stream</em>.";
$a->strings["On this website, your Facebook friend stream is only visible to you."] = "Hier auf dieser Webseite kannst nur du die Beiträge Deiner Facebook-Freunde (Stream) sehen.";
@ -1255,6 +1259,8 @@ $a->strings["Posterous Post Settings"] = "Posterous Beitrags-Einstellungen";
$a->strings["Enable Posterous Post Plugin"] = "Posterous-Plugin aktivieren";
$a->strings["Posterous login"] = "Posterous-Anmeldename";
$a->strings["Posterous password"] = "Posterous-Passwort";
$a->strings["Posterous site ID"] = "Posterous site ID";
$a->strings["Posterous API token"] = "Posterous API token";
$a->strings["Post to Posterous by default"] = "Veröffentliche öffentliche Beiträge standardmäßig bei Posterous";
$a->strings["Theme settings"] = "Themen Einstellungen";
$a->strings["Set resize level for images in posts and comments (width and height)"] = "Wähle das Vergrößerungsmaß für Bilder in Beiträgen und Kommentaren (Höhe und Breite)";
@ -1277,14 +1283,22 @@ $a->strings["Find Friends"] = "Freunde finden";
$a->strings["Local Directory"] = "Lokales Verzeichnis";
$a->strings["Similar Interests"] = "Ähnliche Interessen";
$a->strings["Invite Friends"] = "Freunde einladen";
$a->strings["Earth View"] = "Earth View";
$a->strings["Earth Layers"] = "Earth Layers";
$a->strings["Set zoomfactor for Earth Layers"] = "Zoomfaktor der Earth Layer";
$a->strings["Set longitude (X) for Earth Layers"] = "Longitude (X) der Earth Layer";
$a->strings["Set latitude (Y) for Earth Layers"] = "Latitude (Y) der Earth Layer";
$a->strings["Help or @NewHere ?"] = "Hilfe oder @NewHere";
$a->strings["Connect Services"] = "Verbinde Dienste";
$a->strings["Last Tweets"] = "Neueste Tweets";
$a->strings["Set twitter search term"] = "";
$a->strings["Set twitter search term"] = "Twitter Suchbegriff";
$a->strings["don't show"] = "nicht zeigen";
$a->strings["show"] = "zeigen";
$a->strings["Show/hide boxes at right-hand column:"] = "Rahmen auf der rechten Seite anzeigen/verbergen";
$a->strings["Set line-height for posts and comments"] = "Liniengröße für Beiträge und Kommantare festlegen";
$a->strings["Set resolution for middle column"] = "Auflösung für die Mittelspalte setzen";
$a->strings["Set color scheme"] = "Wähle Farbschema";
$a->strings["Set zoomfactor for Earth Layer"] = "Zoomfaktor der Earth Layer";
$a->strings["Last tweets"] = "Neueste Tweets";
$a->strings["Alignment"] = "Ausrichtung";
$a->strings["Left"] = "Links";
$a->strings["Center"] = "Mitte";
@ -1514,8 +1528,6 @@ $a->strings["Image/photo"] = "Bild/Foto";
$a->strings["Cannot locate DNS info for database server '%s'"] = "Kann die DNS Informationen für den Datenbanken Server '%s' nicht ermitteln.";
$a->strings["[no subject]"] = "[kein Betreff]";
$a->strings["Visible to everybody"] = "Für jeden sichtbar";
$a->strings["show"] = "zeigen";
$a->strings["don't show"] = "nicht zeigen";
$a->strings["Friendica Notification"] = "Friendica-Benachrichtigung";
$a->strings["Thank You,"] = "Danke,";
$a->strings["%s Administrator"] = "der Administrator von %s";

32
view/eo/lostpass_eml.tpl Normal file
View File

@ -0,0 +1,32 @@
Kara $[username],
$[sitename] ricevis peton por rekomencigi vian pasvorton.
Por konfirmi la peton, bonvolu klaki la sekvantan konfirmligilon
aŭ alglui ĝin en la adreskampo de via retumilo.
Se vi NE petis tiun ŝanĝon, bonvolu NE KLAKU la
sekvantan ligilon kaj ignoru aŭ forvisu ĉi-mesaĝon.
Ni ne ŝanĝu vian pasvorton se ni ne povas kontroli ĉu estas vi
kiu petis lala ŝanĝon.
Sekvu ĉi tion ligilon por konfirmi vian identecon:
$[reset_link]
Poste, vi ricevos mesaĝon enhavonte la novan pasvorton.
Vi eblas ŝangi la pasvorton ĉe viaj kontdoagordoj paĝo post ensaluti.
La akreditaĵoj estas:
Retejo:»$[siteurl]
Salutnomo:»$[email]
Salutoj,
$[sitename] administranto

File diff suppressed because it is too large Load Diff

View File

@ -36,7 +36,7 @@ $a->strings["Suggest a friend for %s"] = "Sugesti amikon por %s";
$a->strings["Event description and start time are required."] = "Okazo bezonas priskribon kaj startotempon.";
$a->strings["l, F j"] = "l, F j";
$a->strings["Edit event"] = "Redakti okazon";
$a->strings["link to source"] = "ligi al fonto";
$a->strings["link to source"] = "ligilo al fonto";
$a->strings["Events"] = "Okazoj";
$a->strings["Create New Event"] = "Krei novan okazon";
$a->strings["Previous"] = "antaŭa";
@ -751,6 +751,10 @@ $a->strings["Network timeout"] = "Reta tempolimo";
$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Valoro en sekundoj. Uzu 0 por mallimitigi (ne rekomendata).";
$a->strings["Delivery interval"] = "Intervalo de liverado";
$a->strings["Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers."] = "Malfruigi fonan liveradon dum tiom da sekundoj por malpliigi la ŝargon de la sistemo. Rekomendoj: 4-5 por komunaj serviloj, 2-3 por virtualaj privataj serviloj, 0-1 por grandaj dediĉitaj serviloj.";
$a->strings["Poll interval"] = "Enketintervalo";
$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Malfruigi fonajn enketprocesojn je tiom da sekundoj por malpliigi la ŝargon de la sistemo. Se 0, uzas la liverintervalon.";
$a->strings["Maximum Load Average"] = "Maksimuma Meza Sistemŝargo";
$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Maksimuma sistemŝargo post kiu livero- kaj enketprocesoj estos prokrastinataj. - Defaŭlte 50.";
$a->strings["Update has been marked successful"] = "Ĝisdatigo estas markita sukcesa";
$a->strings["Executing %s failed. Check system logs."] = "Ne sukcesis plenumi %s. Kontrolu la sistemprotokolojn.";
$a->strings["Update %s was successfully applied."] = "Sukcese aplikis la ĝisdatigo %s.";
@ -829,12 +833,14 @@ $a->strings["No compatible communication protocols or feeds were discovered."] =
$a->strings["The profile address specified does not provide adequate information."] = "La specifita profiladreso ne enhavas sufiĉe da informoj.";
$a->strings["An author or name was not found."] = "Ne trovis aŭtoron aŭ nomon.";
$a->strings["No browser URL could be matched to this address."] = "Neniu retuma URL adreso kongruas al la adreso.";
$a->strings["Unable to match @-style Identity Address with a known protocol or email contact."] = "Ne eblas kongrui @-stilan identecon adreson al iu konata protokolo au retpoŝtadreso.";
$a->strings["Use mailto: in front of address to force email check."] = "Uzu mailto: antaŭ la adreso por devigi la testadon per retpoŝto.";
$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "Tiu profila adreso apartenas al retejo kiu estas maŝaltita je ĉi tiu retejo.";
$a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Profilo limigata. Ĉi persono ne eblos ricevi rektajn/personajn atentigojn de vi. ";
$a->strings["Unable to retrieve contact information."] = "Ne eblas ricevi kontaktinformojn.";
$a->strings["following"] = "sekvanta";
$a->strings["Common Friends"] = "Komunaj Amikoj";
$a->strings["No friends in common."] = "Neniom da komunaj amikoj.";
$a->strings["No contacts in common."] = "Neniom da komunaj kontaktoj.";
$a->strings["Item has been removed."] = "Elemento estas forviŝita.";
$a->strings["Applications"] = "Programoj";
$a->strings["No installed applications."] = "Neniom da instalitaj programoj.";
@ -920,6 +926,7 @@ $a->strings["No entries."] = "Neniom da afiŝoj.";
$a->strings["Friend Suggestions"] = "Amikosugestoj";
$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Neniu sugestoj disponeblas. Se ĉi tiu estas nova retejo, bonvolu reprovi post 24 horoj.";
$a->strings["Ignore/Hide"] = "Ignori/Kaŝi";
$a->strings["%s [%s]"] = "%s [%s]";
$a->strings["Global Directory"] = "Tutmonda Katalogo";
$a->strings["Find on this site"] = "Trovi en ĉi retejo";
$a->strings["Site Directory"] = "Reteja Katalogo";
@ -970,6 +977,8 @@ $a->strings["Install Facebook connector for this account."] = "Instali la Facebo
$a->strings["Remove Facebook connector"] = "Forigi la Facebook konektilon.";
$a->strings["Re-authenticate [This is necessary whenever your Facebook password is changed.]"] = "Reaŭtentiĝi [Tio estas bezonata ĉiam kiam vi ŝanĝis vian pasvorton ĉe Facebook.]";
$a->strings["Post to Facebook by default"] = "Ĉiam afiŝi al Facebook.";
$a->strings["Facebook friend linking has been disabled on this site. The following settings will have no effect."] = "Ligado kun Facebook amikoj estas malaktivita ĉe tiu retejo. La sekvantaj agordoj do ne havas validecon.";
$a->strings["Facebook friend linking has been disabled on this site. If you disable it, you will be unable to re-enable it."] = "Ligado kun Facebook amikoj estas malaktivita ĉe tiu retejo. Se vi malŝaltas ĝin, vi ne eblos ree ŝalti ĝin.";
$a->strings["Link all your Facebook friends and conversations on this website"] = "Alligu ĉiujn viajn Facebook amikojn kaj konversaciojn je ĉi-tiu retejo.";
$a->strings["Facebook conversations consist of your <em>profile wall</em> and your friend <em>stream</em>."] = "Facebok konversacioj konsistas el via <em>profilmuro</em> kaj la <em>fluo</em> de viaj amikoj.";
$a->strings["On this website, your Facebook friend stream is only visible to you."] = "Je ĉi-tiu retejo, la fluo de viaj amikoj ĉe Facebook nur videblas al vi.";
@ -1251,10 +1260,13 @@ $a->strings["Posterous Post Settings"] = "Agordoj pri afiŝoj ĉe Posterous";
$a->strings["Enable Posterous Post Plugin"] = "Ŝalti la Poserous-afiŝo kromprogramon";
$a->strings["Posterous login"] = "Posterous salutnomo";
$a->strings["Posterous password"] = "Posterous pasvorto";
$a->strings["Posterous site ID"] = "Idento de Posterous retejo";
$a->strings["Posterous API token"] = "API ĵetono de Posterous retejo";
$a->strings["Post to Posterous by default"] = "Defaŭlte afiŝi al Posterous";
$a->strings["Theme settings"] = "Agordoj pri la etoso";
$a->strings["Set resize level for images in posts and comments (width and height)"] = "Agordi la regrandignivelo por bildoj en afiŝoj kaj komentoj (larĝo kaj alto)";
$a->strings["Set font-size for posts and comments"] = "Agordi la tiparan grandon por afiŝoj kaj komentoj";
$a->strings["Set theme width"] = "Agordi la larĝo por la etoso";
$a->strings["Color scheme"] = "Kolorskemo";
$a->strings["Your posts and conversations"] = "Viaj afiŝoj kaj komunikadoj";
$a->strings["Your profile page"] = "Via profilo";
@ -1272,8 +1284,17 @@ $a->strings["Find Friends"] = "Trovi Amikojn";
$a->strings["Local Directory"] = "Loka Katalogo";
$a->strings["Similar Interests"] = "Similaj Interesoj";
$a->strings["Invite Friends"] = "Inviti amikojn";
$a->strings["Earth Layers"] = "Tertavoloj (Earth Layers)";
$a->strings["Set zoomfactor for Earth Layer"] = "Agordi zoman faktoron de Tertavolo";
$a->strings["Set longitude (X) for Earth Layer"] = "Agordi longitudon (X) de Tertavolo";
$a->strings["Set latitude (Y) for Earth Layer"] = "Agordi latitudon (Y) de Tertavolo";
$a->strings["Help or @NewHere ?"] = "Helpu aŭ @NewHere ?";
$a->strings["Connect Services"] = "Konekti Servojn";
$a->strings["Last Tweets"] = "Ĵusaj Pepaĵoj";
$a->strings["Set twitter search term"] = "Agordi Twitter serĉtekston";
$a->strings["don't show"] = "kaŝi";
$a->strings["show"] = "montri";
$a->strings["Show/hide boxes at right-hand coloumn:"] = "Montri/kaŝi kestojn en la desktra kolumno:";
$a->strings["Set line-height for posts and comments"] = "Agordi la linigrandon por afiŝoj kaj komentoj";
$a->strings["Set resolution for middle column"] = "Agordi la distingivon por la meza kolumno";
$a->strings["Set color scheme"] = "Agordi Kolorskemon";
@ -1410,9 +1431,9 @@ $a->strings["October"] = "Oktobro";
$a->strings["November"] = "Novembro";
$a->strings["December"] = "Decembro";
$a->strings["bytes"] = "bajtoj";
$a->strings["Categories:"] = "Kategorioj:";
$a->strings["remove"] = "forviŝi";
$a->strings["[remove]"] = "[forviŝi]";
$a->strings["Categories:"] = "Kategorioj:";
$a->strings["Filed under:"] = "Enarkivigita kiel:";
$a->strings["Click to open/close"] = "Klaku por malfermi/fermi";
$a->strings["default"] = "defaŭlta";
@ -1479,10 +1500,6 @@ $a->strings["All Networks"] = "Ĉiuj Retoj";
$a->strings["Saved Folders"] = "Konservitaj Dosierujoj";
$a->strings["Everything"] = "Ĉio";
$a->strings["Categories"] = "Kategorioj";
$a->strings["%d friend in common"] = array(
0 => "%d komuna amiko",
1 => "%d komunaj amikoj",
);
$a->strings["Logged out."] = "Elsalutita.";
$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Okazis problemo ensalutinta kun via OpenID. Bonvolu kontroli la ID.";
$a->strings["The error message was:"] = "La erarmesaĝo estis:";
@ -1510,8 +1527,6 @@ $a->strings["Image/photo"] = "Bildo";
$a->strings["Cannot locate DNS info for database server '%s'"] = "Ne trovis DNS informojn por datumbaza servilo '%s'.";
$a->strings["[no subject]"] = "[neniu temo]";
$a->strings["Visible to everybody"] = "Videbla al ĉiuj";
$a->strings["show"] = "montri";
$a->strings["don't show"] = "kaŝi";
$a->strings["Friendica Notification"] = "Friendica Atentigo";
$a->strings["Thank You,"] = "Dankon,";
$a->strings["%s Administrator"] = "%s Administranto";
@ -1639,7 +1654,7 @@ $a->strings["[today]"] = "[hodiaŭ]";
$a->strings["Birthday Reminders"] = "Memorigilo pri naskiĝtagoj";
$a->strings["Birthdays this week:"] = "Naskiĝtagoj ĉi-semajne:";
$a->strings["[No description]"] = "[Neniu priskribo]";
$a->strings["Event Reminders"] = "Memorigiloj pri Okazoj";
$a->strings["Event Reminders"] = "Memorigilo pri Okazoj";
$a->strings["Events this week:"] = "Okazoj ĉi-semajne:";
$a->strings["Status Messages and Posts"] = "Ŝtatmesaĝoj kaj Afiŝoj";
$a->strings["Profile Details"] = "Profildetaloj";

View File

@ -0,0 +1,11 @@
Saluton!
Mi estas $sitename.
La programistoj de Frienda eldonis ĝisdatigon $update antaŭ ne longe,
sed kiam mi provis instali ĝin, io terure malsukcesis.
Tio tuj bezonas riparon kaj mi ne povas fari ĝin sole. Bonvolu kontakti
Friendica programistion se vi ne povas helpi vin mem. Mia datumbazo eble ne plu validas.
La erarmesaĝo estas '$error'.
Mi bedaŭras,
via Friendica servilo ĉe $siteurl

View File

@ -36,6 +36,7 @@
obj.value = '';
$("#comment-edit-text-" + id).addClass("comment-edit-text-full");
$("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
$("#mod-cmnt-wrap-" + id).show();
openMenu("comment-edit-submit-wrapper-" + id);
}
}
@ -44,6 +45,7 @@
obj.value = '$comment';
$("#comment-edit-text-" + id).removeClass("comment-edit-text-full");
$("#comment-edit-text-" + id).addClass("comment-edit-text-empty");
$("#mod-cmnt-wrap-" + id).hide();
closeMenu("comment-edit-submit-wrapper-" + id);
}
}

View File

@ -0,0 +1,34 @@
<div class="comment-wwedit-wrapper" id="comment-edit-wrapper-$id" style="display: block;">
<form class="comment-edit-form" id="comment-edit-form-$id" action="item" method="post" onsubmit="post_comment($id); return false;">
<input type="hidden" name="type" value="$type" />
<input type="hidden" name="profile_uid" value="$profile_uid" />
<input type="hidden" name="parent" value="$parent" />
<input type="hidden" name="return" value="$return_path" />
<input type="hidden" name="jsreload" value="$jsreload" />
<input type="hidden" name="preview" id="comment-preview-inp-$id" value="0" />
<div class="comment-edit-photo" id="comment-edit-photo-$id" >
<a class="comment-edit-photo-link" href="$mylink" title="$mytitle"><img class="my-comment-photo" src="$myphoto" alt="$mytitle" title="$mytitle" /></a>
</div>
<div class="comment-edit-photo-end"></div>
<div id="mod-cmnt-wrap-$id" class="mod-cmnt-wrap" style="display:none">
<div id="mod-cmnt-name-lbl-$id" class="mod-cmnt-name-lbl">$lbl_modname</div>
<input type="text" id="mod-cmnt-name-$id" class="mod-cmnt-name" name="mod-cmnt-name" value="$modname" />
<div id="mod-cmnt-email-lbl-$id" class="mod-cmnt-email-lbl">$lbl_modemail</div>
<input type="text" id="mod-cmnt-email-$id" class="mod-cmnt-email" name="mod-cmnt-email" value="$modemail" />
<div id="mod-cmnt-url-lbl-$id" class="mod-cmnt-url-lbl">$lbl_modurl</div>
<input type="text" id="mod-cmnt-url-$id" class="mod-cmnt-url" name="mod-cmnt-url" value="$modurl" />
</div>
<textarea id="comment-edit-text-$id" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,$id);" onBlur="commentClose(this,$id);" >$comment</textarea>
<div class="comment-edit-text-end"></div>
<div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-$id" style="display: none;" >
<input type="submit" onclick="post_comment($id); return false;" id="comment-edit-submit-$id" class="comment-edit-submit" name="submit" value="$submit" />
<span onclick="preview_comment($id);" id="comment-edit-preview-link-$id" class="fakelink">$preview</span>
<div id="comment-edit-preview-$id" class="comment-edit-preview" style="display:none;"></div>
</div>
<div class="comment-edit-end"></div>
</form>
</div>

View File

@ -105,3 +105,17 @@ blockquote {
input#acl-search {
background-color: #aaa;
}
.notify-seen {
background:#666;
}
#nav-notifications-menu {
background: #2e2e2f;
}
#nav-notifications-menu li:hover {
background: #444;
}

View File

@ -49,6 +49,9 @@
{{ inc field_input.tpl with $field=$proxy }}{{ endinc }}
{{ inc field_input.tpl with $field=$proxyuser }}{{ endinc }}
{{ inc field_input.tpl with $field=$timeout }}{{ endinc }}
{{ inc field_input.tpl with $field=$delivery_interval }}{{ endinc }}
{{ inc field_input.tpl with $field=$poll_interval }}{{ endinc }}
{{ inc field_input.tpl with $field=$maxloadavg }}{{ endinc }}
{{ inc field_input.tpl with $field=$abandon_days }}{{ endinc }}
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>

View File

@ -14,7 +14,15 @@ $(document).ready(function() {
else $(this).attr("src",ifr_source+"?"+wmode);
});
$("div#pause").attr("style", "position: fixed;bottom: 43px;left: 5px;");
$("div#pause").html("<img src='images/pause.gif' alt='pause' title='pause live-updates (ctrl+space)' style='border: 1px solid black;opacity: 0.2;'>");
$(document).keydown(function(event) {
if (!$("div#pause").html()){
$("div#pause").html("<img src='images/pause.gif' alt='pause' title='pause live-updates (ctrl+space)' style='border: 1px solid black;opacity: 0.2;'>");
}});
$(".autocomplete").attr("style", "width: 350px;color: black;border: 1px solid #D2D2D2;background: white;cursor: pointer;text-align: left;max-height: 350px;overflow: auto;");
});
$(document).ready(function(){
@ -38,6 +46,11 @@ $(document).ready(function() {
$("textarea#comment-edit-text-" +id).autogrow();
};
function open_boxsettings() {
$("div#boxsettings").attr("style","display: block;height:500px;width:300px;");
$("label").attr("style","width: 150px;");
};
function yt_iframe() {
$("iframe").load(function() {
var ifr_src = $(this).contents().find("body iframe").attr("src");
@ -67,12 +80,14 @@ $(document).ready(function() {
$("a#top").attr("id","down");
$("a#down").attr("onclick","scrolldown()");
$("img#scroll_top_bottom").attr("src","view/theme/diabook/icons/scroll_bottom.png");
$("img#scroll_top_bottom").attr("title","Scroll to bottom");
}
if (scrollInfo > "900"){
$("a#down").attr("id","top");
$("a#top").attr("onclick","scrolltop()");
$("img#scroll_top_bottom").attr("src","view/theme/diabook/icons/scroll_top.png");
$("img#scroll_top_bottom").attr("title","Back to top");
}
});
@ -113,4 +128,6 @@ $(document).ready(function() {
function cmtBbClose(id) {
$(".comment-edit-bb-" + id).hide();
}
</script>

View File

@ -10,16 +10,7 @@
<div id="mapcontrol" style="display:none;">
<form id="mapform" action="network" method="post" >
<span style="width: 500px;position: relative;float: right;right:20px;"><p>this ist still under development.
the idea is to provide a map with different layers(e.g. earth population, atomic power plants, wheat growing acreages, sunrise or what you want)
and markers(events, demos, friends, anything, that is intersting for you).
These layer and markers should be importable and deletable by the user.</p>
<p>help on this feature is very appreciated. i am not that good in js so it's a start, but needs tweaks and further dev.
just contact me, if you are intesrested in joining</p>
<p>http://localhost/friendica/profile/thomas</p>
<p>this is build with <b>mapquery</b> http://mapquery.org/ and
<b>openlayers</b>http://openlayers.org/</p>
</span>
<div id="layermanager" style="width: 350px;position: relative;float: right;right:20px;height: 300px;"></div>
<div id="map2" style="height:350px;width:350px;"></div>
<div id="mouseposition" style="width: 350px;"></div>
{{inc field_input.tpl with $field=$ELZoom}}{{endinc}}
@ -28,11 +19,22 @@ just contact me, if you are intesrested in joining</p>
<div class="settings-submit-wrapper">
<input id="mapsub" type="submit" value="$sub" class="settings-submit" name="diabook-settings-map-sub"></input>
</div>
<span style="width: 500px;"><p>this ist still under development.
the idea is to provide a map with different layers(e.g. earth population, atomic power plants, wheat growing acreages, sunrise or what you want)
and markers(events, demos, friends, anything, that is intersting for you).
These layer and markers should be importable and deletable by the user.</p>
<p>help on this feature is very appreciated. i am not that good in js so it's a start, but needs tweaks and further dev.
just contact me, if you are intesrested in joining</p>
<p>https://toktan.org/profile/thomas</p>
<p>this is build with <b>mapquery</b> http://mapquery.org/ and
<b>openlayers</b>http://openlayers.org/</p>
</span>
</form>
</div>
<div id="boxsettings" style="display:none">
<form id="boxsettingsform" action="network" method="post" >
<fieldset><legend>$boxsettings.title.1</legend>
{{inc field_select.tpl with $field=$close_pages}}{{endinc}}
{{inc field_select.tpl with $field=$close_profiles}}{{endinc}}
{{inc field_select.tpl with $field=$close_helpers}}{{endinc}}
@ -46,6 +48,7 @@ just contact me, if you are intesrested in joining</p>
<div class="settings-submit-wrapper">
<input id="boxsub" type="submit" value="$sub" class="settings-submit" name="diabook-settings-box-sub"></input>
</div>
</fieldset>
</form>
</div>

View File

@ -143,12 +143,12 @@ function diabook_form(&$a, $font_size, $line_height, $resolution, $color, $TSear
'dark'=>'dark',
);
$close_pagesC = array(
'1'=>'hide',
'0'=>'show',
'0'=>'show',
'1'=>'hide',
);
$close_mapqueryC = array(
'1'=>'hide',
'0'=>'show',
'0'=>'show',
'1'=>'hide',
);
$close_profilesC = array(
'0'=>'show',
@ -167,8 +167,8 @@ function diabook_form(&$a, $font_size, $line_height, $resolution, $color, $TSear
'1'=>'hide',
);
$close_twitterC = array(
'1'=>'hide',
'0'=>'show',
'0'=>'show',
'1'=>'hide',
);
$close_lastusersC = array(
'0'=>'show',
@ -196,18 +196,18 @@ function diabook_form(&$a, $font_size, $line_height, $resolution, $color, $TSear
'$color' => array('diabook_color', t('Set color scheme'), $color, '', $colors),
'$TSearchTerm' => array('diabook_TSearchTerm', t('Set twitter search term'), $TSearchTerm, '', $TSearchTerm),
'$ELZoom' => array('diabook_ELZoom', t('Set zoomfactor for Earth Layer'), $ELZoom, '', $ELZoom),
'$ELPosX' => array('diabook_ELPosX', t('Set longitude (X) for Earth Layer'), $ELPosX, '', $ELPosX),
'$ELPosY' => array('diabook_ELPosY', t('Set latitude (Y) for Earth Layer'), $ELPosY, '', $ELPosY),
'$close_pages' => array('diabook_close_pages', t('Show "Cummunity Pages" at right-hand coloumn?'), $close_pages, '', $close_pagesC),
'$close_mapquery' => array('diabook_close_mapquery', t('Show "Earth Layers" at right-hand coloumn?'), $close_mapquery, '', $close_mapqueryC),
'$close_profiles' => array('diabook_close_profiles', t('Show "Cummunity Profiles" at right-hand coloumn?'), $close_profiles, '', $close_profilesC),
'$close_helpers' => array('diabook_close_helpers', t('Show "Help or @NewHere" at right-hand coloumn?'), $close_helpers, '', $close_helpersC),
'$close_services' => array('diabook_close_services', t('Show "Connect Services" at right-hand coloumn?'), $close_services, '', $close_servicesC),
'$close_friends' => array('diabook_close_friends', t('Show "Find Friends" at right-hand coloumn?'), $close_friends, '', $close_friendsC),
'$close_twitter' => array('diabook_close_twitter', t('Show "Last Tweets" at right-hand coloumn?'), $close_twitter, '', $close_twitterC),
'$close_lastusers' => array('diabook_close_lastusers', t('Show "Last Users" at right-hand coloumn?'), $close_lastusers, '', $close_lastusersC),
'$close_lastphotos' => array('diabook_close_lastphotos', t('Show "Last Photos" at right-hand coloumn?'), $close_lastphotos, '', $close_lastphotosC),
'$close_lastlikes' => array('diabook_close_lastlikes', t('Show "Last Likes" at right-hand coloumn?'), $close_lastlikes, '', $close_lastlikesC),
'$ELPosX' => array('diabook_ELPosX', t('Set longitude (X) for Earth Layers'), $ELPosX, '', $ELPosX),
'$ELPosY' => array('diabook_ELPosY', t('Set latitude (Y) for Earth Layers'), $ELPosY, '', $ELPosY),
'$close_pages' => array('diabook_close_pages', t('Community Pages'), $close_pages, '', $close_pagesC),
'$close_mapquery' => array('diabook_close_mapquery', t('Earth Layers'), $close_mapquery, '', $close_mapqueryC),
'$close_profiles' => array('diabook_close_profiles', t('Community Profiles'), $close_profiles, '', $close_profilesC),
'$close_helpers' => array('diabook_close_helpers', t('Help or @NewHere ?'), $close_helpers, '', $close_helpersC),
'$close_services' => array('diabook_close_services', t('Connect Services'), $close_services, '', $close_servicesC),
'$close_friends' => array('diabook_close_friends', t('Find Friends'), $close_friends, '', $close_friendsC),
'$close_twitter' => array('diabook_close_twitter', t('Last tweets'), $close_twitter, '', $close_twitterC),
'$close_lastusers' => array('diabook_close_lastusers', t('Last users'), $close_lastusers, '', $close_lastusersC),
'$close_lastphotos' => array('diabook_close_lastphotos', t('Last photos'), $close_lastphotos, '', $close_lastphotosC),
'$close_lastlikes' => array('diabook_close_lastlikes', t('Last likes'), $close_lastlikes, '', $close_lastlikesC),
));
return $o;
}

View File

@ -555,6 +555,7 @@ code {
text-decoration: none;
}
/* popup notifications */
div.jGrowl.top-right { top: 30px; /* put it below header/nav bar */ }
div.jGrowl div.notice {
background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
color: #ffffff;
@ -621,9 +622,7 @@ header #banner #logo-img {
margin-top: 3px;
}
header #banner #logo-text {
font-size: 20px;
position: absolute;
top: 10%;
font-size: 20px!important;position: relative!important;top: -4px!important;
}
/* messages */
#message-new {

View File

@ -555,6 +555,7 @@ code {
text-decoration: none;
}
/* popup notifications */
div.jGrowl.top-right { top: 30px; /* put it below header/nav bar */ }
div.jGrowl div.notice {
background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
color: #ffffff;
@ -621,9 +622,7 @@ header #banner #logo-img {
margin-top: 3px;
}
header #banner #logo-text {
font-size: 20px;
position: absolute;
top: 10%;
font-size: 20px!important;position: relative!important;top: -4px!important;
}
/* messages */
#message-new {

View File

@ -554,6 +554,7 @@ code {
text-decoration: none;
}
/* popup notifications */
div.jGrowl.top-right { top: 30px; /* put it below header/nav bar */ }
div.jGrowl div.notice {
background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
color: #ffffff;
@ -607,9 +608,7 @@ header #banner #logo-img {
margin-top: 3px;
}
header #banner #logo-text {
font-size: 20px;
position: absolute;
top: 10%;
font-size: 20px!important;position: relative!important;top: -4px!important;
}
/* messages */
#message-new {

View File

@ -554,6 +554,7 @@ code {
text-decoration: none;
}
/* popup notifications */
div.jGrowl.top-right { top: 30px; /* put it below header/nav bar */ }
div.jGrowl div.notice {
background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
color: #ffffff;
@ -607,9 +608,7 @@ header #banner #logo-img {
margin-top: 3px;
}
header #banner #logo-text {
font-size: 20px;
position: absolute;
top: 10%;
font-size: 20px!important;position: relative!important;top: -4px!important;
}
/* messages */
#message-new {

View File

@ -831,7 +831,7 @@ ul.menu-popup .empty {
box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
}
.acpopupitem {
color: #2e2f2e;
color: #eec;
padding: 4px;
clear: left;
}

View File

@ -553,6 +553,7 @@ code {
text-decoration: none;
}
/* popup notifications */
div.jGrowl.top-right { top: 30px; /* put it below header/nav bar */ }
div.jGrowl div.notice {
background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
color: #ffffff;
@ -606,9 +607,7 @@ header #banner #logo-img {
margin-top: 3px;
}
header #banner #logo-text {
font-size: 20px;
position: absolute;
top: 10%;
font-size: 20px!important;position: relative!important;top: -4px!important;
}
/* messages */
#message-new {

View File

@ -3,10 +3,7 @@
* Additional Changes: Michael Vogel <icarus@dabo.de>
**/
/* ========= */
/* = Admin = */
/* ========= */
/** Fancy Box **/
#fancybox-content {
width: 0;
height: 0;
@ -19,6 +16,11 @@
background: #2e2e2f !important;
}
/* ========= */
/* = Admin = */
/* ========= */
#adminpage {
/* width: 80%;*/
}
@ -565,6 +567,7 @@ code {
text-decoration: none;
}
/* popup notifications */
div.jGrowl.top-right { top: 30px; /* put it below header/nav bar */ }
div.jGrowl div.notice {
background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
color: #2e2f2e;
@ -615,9 +618,7 @@ header #banner #logo-img {
margin-top: 3px;
}
header #banner #logo-text {
font-size: 20px;
position: absolute;
top: 10%;
font-size: 20px!important;position: relative!important;top: -4px!important;
}
/* messages */
#message-new {
@ -634,7 +635,7 @@ header #banner #logo-text {
text-decoration: none;
}
.mail-list-wrapper {
background-color: #eec;
background-color: #333;
margin-bottom: 5px;
width: 100%;
height: auto;
@ -645,6 +646,7 @@ header #banner #logo-text {
float: left;
width: 20%;
overflow: hidden;
background: #2e2e2f;
}
.mail-list-wrapper .mail-subject {
width: 30%;
@ -916,7 +918,7 @@ nav #nav-apps-link.selected {
}
.notify-seen {
background: none repeat scroll 0 0 #DDDDDD;
background: none repeat scroll 0 0 #666;
}
ul.menu-popup {
@ -1686,7 +1688,7 @@ body .pageheader{
.wall-item-comment-wrapper .comment-edit-text-full {
font-size: 14px;
height: 4em;
color: #2e302e;
color: #eec;
border: 1px solid #2e302e;
}
.comment-edit-preview {

View File

@ -555,6 +555,7 @@ code {
text-decoration: none;
}
/* popup notifications */
div.jGrowl.top-right { top: 30px; /* put it below header/nav bar */ }
div.jGrowl div.notice {
background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
color: #ffffff;
@ -609,9 +610,7 @@ header #banner #logo-img {
margin-top: 3px;
}
header #banner #logo-text {
font-size: 20px;
position: absolute;
top: 10%;
font-size: 20px!important;position: relative!important;top: -4px!important;
}
/* messages */
#message-new {

View File

@ -557,6 +557,7 @@ code {
text-decoration: none;
}
/* popup notifications */
div.jGrowl.top-right { top: 30px; /* put it below header/nav bar */ }
div.jGrowl div.notice {
background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
color: #ffffff;
@ -611,9 +612,7 @@ header #banner #logo-img {
margin-top: 3px;
}
header #banner #logo-text {
font-size: 20px;
position: absolute;
top: 10%;
font-size: 20px!important;position: relative!important;top: -4px!important;
}
/*color*/
/* messages */

View File

@ -555,6 +555,7 @@ code {
text-decoration: none;
}
/* popup notifications */
div.jGrowl.top-right { top: 30px; /* put it below header/nav bar */ }
div.jGrowl div.notice {
background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
color: #ffffff;
@ -609,9 +610,7 @@ header #banner #logo-img {
margin-top: 3px;
}
header #banner #logo-text {
font-size: 20px;
position: absolute;
top: 10%;
font-size: 20px!important;position: relative!important;top: -4px!important;
}
/* messages */
#message-new {

View File

@ -557,6 +557,7 @@ code {
text-decoration: none;
}
/* popup notifications */
div.jGrowl.top-right { top: 30px; /* put it below header/nav bar */ }
div.jGrowl div.notice {
background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
color: #ffffff;
@ -611,9 +612,7 @@ header #banner #logo-img {
margin-top: 3px;
}
header #banner #logo-text {
font-size: 20px;
position: absolute;
top: 10%;
font-size: 20px!important;position: relative!important;top: -4px!important;
}
/* messages */
/*color*/

View File

@ -554,6 +554,7 @@ code {
text-decoration: none;
}
/* popup notifications */
div.jGrowl.top-right { top: 30px; /* put it below header/nav bar */ }
div.jGrowl div.notice {
background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
color: #ffffff;
@ -619,10 +620,7 @@ header #banner #logo-img {
margin-top: 3px;
}
header #banner #logo-text {
font-size: 20px;
position: absolute;
top: 10%;
margin-left: 3px;
font-size: 20px!important;position: relative!important;top: -4px!important;
}
/* messages */
#message-new {

View File

@ -554,6 +554,7 @@ code {
text-decoration: none;
}
/* popup notifications */
div.jGrowl.top-right { top: 30px; /* put it below header/nav bar */ }
div.jGrowl div.notice {
background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
color: #ffffff;
@ -619,10 +620,7 @@ header #banner #logo-img {
margin-top: 3px;
}
header #banner #logo-text {
font-size: 20px;
position: absolute;
top: 10%;
margin-left: 3px;
font-size: 20px!important;position: relative!important;top: -4px!important;
}
/* messages */
#message-new {

View File

@ -0,0 +1,512 @@
/*!
* jQuery UI CSS Framework 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Theming/API
*/
/* Layout helpers
----------------------------------*/
.ui-helper-hidden { display: none; }
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
.ui-helper-clearfix:after { clear: both; }
.ui-helper-clearfix { zoom: 1; }
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
/* Interaction Cues
----------------------------------*/
.ui-state-disabled { cursor: default !important; }
/* Icons
----------------------------------*/
/* states and images */
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
/* Misc visuals
----------------------------------*/
/* Overlays */
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
/*!
* jQuery UI CSS Framework 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Theming/API
*
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
*/
/* Component containers
----------------------------------*/
.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
.ui-widget .ui-widget { font-size: 1em; }
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
.ui-widget-content a { color: #333333; }
.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
.ui-widget-header a { color: #ffffff; }
/* Interaction states
----------------------------------*/
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; }
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
.ui-widget :active { outline: none; }
/* Interaction Cues
----------------------------------*/
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
/* Icons
----------------------------------*/
/* states and images */
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
/* positioning */
.ui-icon-carat-1-n { background-position: 0 0; }
.ui-icon-carat-1-ne { background-position: -16px 0; }
.ui-icon-carat-1-e { background-position: -32px 0; }
.ui-icon-carat-1-se { background-position: -48px 0; }
.ui-icon-carat-1-s { background-position: -64px 0; }
.ui-icon-carat-1-sw { background-position: -80px 0; }
.ui-icon-carat-1-w { background-position: -96px 0; }
.ui-icon-carat-1-nw { background-position: -112px 0; }
.ui-icon-carat-2-n-s { background-position: -128px 0; }
.ui-icon-carat-2-e-w { background-position: -144px 0; }
.ui-icon-triangle-1-n { background-position: 0 -16px; }
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
.ui-icon-triangle-1-e { background-position: -32px -16px; }
.ui-icon-triangle-1-se { background-position: -48px -16px; }
.ui-icon-triangle-1-s { background-position: -64px -16px; }
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
.ui-icon-triangle-1-w { background-position: -96px -16px; }
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
.ui-icon-arrow-1-n { background-position: 0 -32px; }
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
.ui-icon-arrow-1-e { background-position: -32px -32px; }
.ui-icon-arrow-1-se { background-position: -48px -32px; }
.ui-icon-arrow-1-s { background-position: -64px -32px; }
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
.ui-icon-arrow-1-w { background-position: -96px -32px; }
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
.ui-icon-arrow-4 { background-position: 0 -80px; }
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
.ui-icon-extlink { background-position: -32px -80px; }
.ui-icon-newwin { background-position: -48px -80px; }
.ui-icon-refresh { background-position: -64px -80px; }
.ui-icon-shuffle { background-position: -80px -80px; }
.ui-icon-transfer-e-w { background-position: -96px -80px; }
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
.ui-icon-folder-collapsed { background-position: 0 -96px; }
.ui-icon-folder-open { background-position: -16px -96px; }
.ui-icon-document { background-position: -32px -96px; }
.ui-icon-document-b { background-position: -48px -96px; }
.ui-icon-note { background-position: -64px -96px; }
.ui-icon-mail-closed { background-position: -80px -96px; }
.ui-icon-mail-open { background-position: -96px -96px; }
.ui-icon-suitcase { background-position: -112px -96px; }
.ui-icon-comment { background-position: -128px -96px; }
.ui-icon-person { background-position: -144px -96px; }
.ui-icon-print { background-position: -160px -96px; }
.ui-icon-trash { background-position: -176px -96px; }
.ui-icon-locked { background-position: -192px -96px; }
.ui-icon-unlocked { background-position: -208px -96px; }
.ui-icon-bookmark { background-position: -224px -96px; }
.ui-icon-tag { background-position: -240px -96px; }
.ui-icon-home { background-position: 0 -112px; }
.ui-icon-flag { background-position: -16px -112px; }
.ui-icon-calendar { background-position: -32px -112px; }
.ui-icon-cart { background-position: -48px -112px; }
.ui-icon-pencil { background-position: -64px -112px; }
.ui-icon-clock { background-position: -80px -112px; }
.ui-icon-disk { background-position: -96px -112px; }
.ui-icon-calculator { background-position: -112px -112px; }
.ui-icon-zoomin { background-position: -128px -112px; }
.ui-icon-zoomout { background-position: -144px -112px; }
.ui-icon-search { background-position: -160px -112px; }
.ui-icon-wrench { background-position: -176px -112px; }
.ui-icon-gear { background-position: -192px -112px; }
.ui-icon-heart { background-position: -208px -112px; }
.ui-icon-star { background-position: -224px -112px; }
.ui-icon-link { background-position: -240px -112px; }
.ui-icon-cancel { background-position: 0 -128px; }
.ui-icon-plus { background-position: -16px -128px; }
.ui-icon-plusthick { background-position: -32px -128px; }
.ui-icon-minus { background-position: -48px -128px; }
.ui-icon-minusthick { background-position: -64px -128px; }
.ui-icon-close { background-position: -80px -128px; }
.ui-icon-closethick { background-position: -96px -128px; }
.ui-icon-key { background-position: -112px -128px; }
.ui-icon-lightbulb { background-position: -128px -128px; }
.ui-icon-scissors { background-position: -144px -128px; }
.ui-icon-clipboard { background-position: -160px -128px; }
.ui-icon-copy { background-position: -176px -128px; }
.ui-icon-contact { background-position: -192px -128px; }
.ui-icon-image { background-position: -208px -128px; }
.ui-icon-video { background-position: -224px -128px; }
.ui-icon-script { background-position: -240px -128px; }
.ui-icon-alert { background-position: 0 -144px; }
.ui-icon-info { background-position: -16px -144px; }
.ui-icon-notice { background-position: -32px -144px; }
.ui-icon-help { background-position: -48px -144px; }
.ui-icon-check { background-position: -64px -144px; }
.ui-icon-bullet { background-position: -80px -144px; }
.ui-icon-radio-off { background-position: -96px -144px; }
.ui-icon-radio-on { background-position: -112px -144px; }
.ui-icon-pin-w { background-position: -128px -144px; }
.ui-icon-pin-s { background-position: -144px -144px; }
.ui-icon-play { background-position: 0 -160px; }
.ui-icon-pause { background-position: -16px -160px; }
.ui-icon-seek-next { background-position: -32px -160px; }
.ui-icon-seek-prev { background-position: -48px -160px; }
.ui-icon-seek-end { background-position: -64px -160px; }
.ui-icon-seek-start { background-position: -80px -160px; }
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
.ui-icon-seek-first { background-position: -80px -160px; }
.ui-icon-stop { background-position: -96px -160px; }
.ui-icon-eject { background-position: -112px -160px; }
.ui-icon-volume-off { background-position: -128px -160px; }
.ui-icon-volume-on { background-position: -144px -160px; }
.ui-icon-power { background-position: 0 -176px; }
.ui-icon-signal-diag { background-position: -16px -176px; }
.ui-icon-signal { background-position: -32px -176px; }
.ui-icon-battery-0 { background-position: -48px -176px; }
.ui-icon-battery-1 { background-position: -64px -176px; }
.ui-icon-battery-2 { background-position: -80px -176px; }
.ui-icon-battery-3 { background-position: -96px -176px; }
.ui-icon-circle-plus { background-position: 0 -192px; }
.ui-icon-circle-minus { background-position: -16px -192px; }
.ui-icon-circle-close { background-position: -32px -192px; }
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
.ui-icon-circle-zoomin { background-position: -176px -192px; }
.ui-icon-circle-zoomout { background-position: -192px -192px; }
.ui-icon-circle-check { background-position: -208px -192px; }
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
.ui-icon-circlesmall-close { background-position: -32px -208px; }
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
.ui-icon-squaresmall-close { background-position: -80px -208px; }
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
/* Misc visuals
----------------------------------*/
/* Corner radius */
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
/* Overlays */
.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*!
* jQuery UI Resizable 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Resizable#theming
*/
.ui-resizable { position: relative;}
.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*!
* jQuery UI Selectable 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Selectable#theming
*/
.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
/*!
* jQuery UI Accordion 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Accordion#theming
*/
/* IE/Win - Fix animation bug - #4615 */
.ui-accordion { width: 100%; }
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
.ui-accordion .ui-accordion-li-fix { display: inline; }
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
.ui-accordion .ui-accordion-content-active { display: block; }
/*!
* jQuery UI Button 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Button#theming
*/
.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
.ui-button-icons-only { width: 3.4em; }
button.ui-button-icons-only { width: 3.7em; }
/*button text element */
.ui-button .ui-button-text { display: block; line-height: 1.4; }
.ui-button-text-only .ui-button-text { padding: .4em 1em; }
.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
/* no icon support for input elements, provide padding by default */
input.ui-button { padding: .4em 1em; }
/*button icon element(s) */
.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
/*button sets*/
.ui-buttonset { margin-right: 7px; }
.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
/* workarounds */
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
/*!
* jQuery UI Dialog 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Dialog#theming
*/
.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
.ui-draggable .ui-dialog-titlebar { cursor: move; }
/*!
* jQuery UI Slider 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Slider#theming
*/
.ui-slider { position: relative; text-align: left; }
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
.ui-slider-horizontal { height: .8em; }
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
.ui-slider-vertical { width: .8em; height: 100px; }
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
.ui-slider-vertical .ui-slider-range-max { top: 0; }/*!
* jQuery UI Tabs 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Tabs#theming
*/
.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
.ui-tabs .ui-tabs-hide { display: none !important; }
/*!
* jQuery UI Datepicker 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Datepicker#theming
*/
.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
.ui-datepicker .ui-datepicker-prev { left:2px; }
.ui-datepicker .ui-datepicker-next { right:2px; }
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
.ui-datepicker select.ui-datepicker-month,
.ui-datepicker select.ui-datepicker-year { width: 49%;}
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
.ui-datepicker td { border: 0; padding: 1px; }
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
/* with multiple calendars */
.ui-datepicker.ui-datepicker-multi { width:auto; }
.ui-datepicker-multi .ui-datepicker-group { float:left; }
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
/* RTL support */
.ui-datepicker-rtl { direction: rtl; }
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
.ui-datepicker-cover {
display: none; /*sorry for IE5*/
display/**/: block; /*sorry for IE5*/
position: absolute; /*must have*/
z-index: -1; /*must have*/
filter: mask(); /*must have*/
top: -4px; /*must have*/
left: -4px; /*must have*/
width: 200px; /*must have*/
height: 200px; /*must have*/
}/*!
* jQuery UI Progressbar 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Progressbar#theming
*/
.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }

File diff suppressed because one or more lines are too long

View File

@ -17,11 +17,11 @@ the matched element
**options** an object of key-value pairs with options for the map. Possible
pairs are:
* **layers** (array of MapQuery.Layer *or* MapQuery.Layer): Either an array
* or a single layer that should be added to the map
* **layers** (array of MapQuery.Layer *or* MapQuery.Layer): Either an array
or a single layer that should be added to the map
* **center** ({position: [x,y], zoom: z(int), box: [llx,lly,urx,ury]}):
* Initially go to a certain location. At least one layer (in the `layers`
* option) needs to be specified.
Initially go to a certain location. At least one layer (in the `layers`
option) needs to be specified.
> Returns: $('selector') (jQuery object)
@ -68,6 +68,8 @@ $.MapQuery.Map = function(element, options) {
delete this.olMapOptions.layers;
delete this.olMapOptions.maxExtent;
delete this.olMapOptions.zoomToMaxExtent;
delete this.olMapOptions.center;
//TODO SMO20110630 the maxExtent is in mapprojection, decide whether or
//not we need to change it to displayProjection
this.maxExtent = this.options.maxExtent;
@ -75,6 +77,9 @@ $.MapQuery.Map = function(element, options) {
this.maxExtent[0],this.maxExtent[1],this.maxExtent[2],this.maxExtent[3]);
this.projection = this.options.projection;
this.displayProjection = this.options.displayProjection;
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
OpenLayers.Util.onImageLoadErrorColor = "transparent";
@ -96,14 +101,46 @@ $.MapQuery.Map = function(element, options) {
// To bind and trigger jQuery events
this.events = $({});
// create triggers for all OpenLayers map events
var events = {};
$.each(this.olMap.EVENT_TYPES, function(i, evt) {
events[evt] = function() {
self.events.trigger(evt, arguments);
};
this.handlers = {
// Triggers the jQuery events, after the OpenLayers events
// happened without any further processing
simple: function(data) {
this.trigger(data.type);
}
};
// MapQuery doesn't bind all OpenLayers events automatically,
// but just the ones that make sense.
// Events that are left out intensionally are:
// - changebaselayer: MapQuery doesn't have the concept of base layers
// - mouseover, mouseout, mousemove: Handle those with jQuery on the
// DOM level
// Some events can be triggered by MapQuery without listening to the
// OpenLayers events. This only works for events that are triggered
// by functionality that MapQuery implements in some custom way, e.g.
// (pre)addlayer, (pre)removelayer, changelayer.
// TODO vmx 20120309: Proper docs for the events, here's some quickly
// written info:
// - generally spoken, the map events follow the OpeLayer events
// - preaddlayer, movestart, move, moveend, zoomend: no additional
// argument
// - addlayer, preremovelayer, removelayer: layer as additional argument
// - changelayer: layer and the property that changed as additional
// argument. Possible values for the property are: position (in
// the layer stack), opacity, visibility
// Currently this event is always fired, even if the property
// was only meant to be changed, but wasn't exctually changed.
// I.e. that the event is fired even if you call
// `layer.visible(true)` although the layer is already visible.
// I'm (vmx) not sure if we want to change that :)
this.olMap.events.on({
scope: this,
movestart: this.handlers.simple,
move: this.handlers.simple,
moveend: this.handlers.simple,
zoomend: this.handlers.simple
});
this.olMap.events.on(events);
// Add layers to the map
if (this.options.layers!==undefined) {
@ -129,7 +166,7 @@ _version added 0.1_
**options** an object of key-value pairs with options to create one or
more layers
>Returns: [layer] (array of MapQuery.Layer)
>Returns: [layer] (array of MapQuery.Layer) _or_ false
The `.layers()` method allows us to attach layers to a mapQuery object. It takes
@ -138,6 +175,10 @@ layer options objects. If an options object is given, it will return the
resulting layer(s). We can also use it to retrieve all layers currently attached
to the map.
When adding layers, those are returned. If the creation is cancled by returning
`false` in the `preaddlayer` event, this function returns `false` to
intentionally break the chain instead of hiding errors subtly).
var osm = map.layers({type:'osm'}); //add an osm layer to the map
var layers = map.layers(); //get all layers of the map
@ -156,7 +197,7 @@ to the map.
else {
return $.map(options, function(layer) {
return self._addLayer(layer);
});
}).reverse();
}
break;
default:
@ -182,27 +223,43 @@ to the map.
_addLayer: function(options) {
var id = this._createId();
var layer = new $.MapQuery.Layer(this, id, options);
// NOTE vmx 20120305: Not sure if this is a good idea, or if it would
// be better to include `options` with the preaddlayer event
if (this._triggerReturn('preaddlayer', [layer])===false) {
return false;
}
this.olMap.addLayer(layer.olLayer);
this.layersList[id] = layer;
if (layer.isVector) {
this.vectorLayers.push(id);
}
this._updateSelectFeatureControl(this.vectorLayers);
this.events.trigger('mqAddLayer',layer);
layer.trigger('addlayer');
return layer;
},
// Creates a new unique ID for a layer
_createId: function() {
return 'mapquery' + this.idCounter++;
return 'mapquery_' + this.idCounter++;
},
_removeLayer: function(id) {
var layer = this.layersList[id];
if (this._triggerReturn('preremovelayer', [layer])===false) {
return false;
}
// remove id from vectorlayer if it is there list
this.vectorLayers = $.grep(this.vectorLayers, function(elem) {
return elem != id;
});
this._updateSelectFeatureControl(this.vectorLayers);
this.events.trigger('mqRemoveLayer',id);
delete this.layersList[id];
this.olMap.removeLayer(layer.olLayer);
// XXX vmx: shouldn't the layer be destroyed() properly?
delete this.layersList[id];
layer.trigger('removelayer');
return this;
},
/**
@ -210,13 +267,13 @@ to the map.
_version added 0.1_
####**Description**: get/set the extent, zoom and position of the map
**position** the position as [x,y] in displayProjection (default EPSG:4326)
* **position** the position as [x,y] in displayProjection (default EPSG:4326)
to center the map at
**zoom** the zoomlevel as integer to zoom the map to
**box** an array with the lower left x, lower left y, upper right x,
* **zoom** the zoomlevel as integer to zoom the map to
* **box** an array with the lower left x, lower left y, upper right x,
upper right y to zoom the map to,
this will take precedent when conflicting with any of the above values
**projection** the projection the coordinates are in, default is
* **projection** the projection the coordinates are in, default is
the displayProjection
>Returns: {position: [x,y], zoom: z(int), box: [llx,lly,urx,ury]}
@ -239,7 +296,7 @@ extent from the map. The coordinates are returned in displayProjection.
*/
center: function (options) {
var position;
var mapProjection;
var mapProjection = new OpenLayers.Projection(this.projection);
// Determine source projection
var sourceProjection = null;
var zoom;
@ -249,7 +306,7 @@ extent from the map. The coordinates are returned in displayProjection.
'OpenLayers.Projection' ? options.projection :
new OpenLayers.Projection(options.projection);
} else {
var displayProjection = this.olMap.displayProjection;
var displayProjection = this.displayProjection;
if(!displayProjection) {
// source == target
sourceProjection = new OpenLayers.Projection('EPSG:4326');
@ -265,8 +322,6 @@ extent from the map. The coordinates are returned in displayProjection.
position = this.olMap.getCenter();
zoom = this.olMap.getZoom();
box = this.olMap.getExtent();
mapProjection = this.olMap.getProjectionObject();
if (!mapProjection.equals(sourceProjection)) {
position.transform(mapProjection, sourceProjection);
@ -282,9 +337,8 @@ extent from the map. The coordinates are returned in displayProjection.
// Zoom to the extent of the box
if (options.box!==undefined) {
mapProjection = this.olMap.getProjectionObject();
box = new OpenLayers.Bounds(
options.box[0], options.box[1],options.box[2], options.box[3]);
options.box[0], options.box[1],options.box[2], options.box[3]);
if (!mapProjection.equals(sourceProjection)) {
box.transform(sourceProjection,mapProjection);
}
@ -299,7 +353,6 @@ extent from the map. The coordinates are returned in displayProjection.
else {
position = new OpenLayers.LonLat(options.position[0],
options.position[1]);
mapProjection = this.olMap.getProjectionObject();
if (!mapProjection.equals(sourceProjection)) {
position.transform(sourceProjection, mapProjection);
}
@ -323,11 +376,89 @@ extent from the map. The coordinates are returned in displayProjection.
this.olMap.addControl(this.selectFeatureControl);
this.selectFeatureControl.activate();
},
bind: function() {
this.events.bind.apply(this.events, arguments);
// This function got a bit too clever. The reason is, that jQuery's
// bind() is overloaded with so many possible combinations of arguments.
// And, of course, MapQuery wants to support them all
// The essence of the function is to wrap the original callback into
// the correct scope
bind: function(types, data, fn) {
var self = this;
// A map of event/handle pairs, wrap each of them
if(arguments.length===1) {
var wrapped = {};
$.each(types, function(type, fn) {
wrapped[type] = function() {
return fn.apply(self, arguments);
};
});
this.events.bind.apply(this.events, [wrapped]);
}
else {
var args = [types];
// Only callback given, but no data (types, fn), hence
// `data` is the function
if(arguments.length===2) {
fn = data;
}
else {
if (!$.isFunction(fn)) {
throw('bind: you might have a typo in the function name');
}
// Callback and data given (types, data, fn), hence include
// the data in the argument list
args.push(data);
}
args.push(function() {
return fn.apply(self, arguments);
});
this.events.bind.apply(this.events, args);
}
//this.events.bind.call(this.events, types, function() {
// data.apply(self, arguments);
//});
//this.events.bind.call(this.events, types, function() {
// data.apply(self, arguments);
//});
//this.events.bind.apply(this.events, arguments);
//this.events.bind.call(this.events, types, $.proxy(data, self));
//this.events.bind.apply(this.events, arguments);//.bind(this);
//this.events.bind.apply(this.events, $.proxy(arguments));//.bind(this);
//this.events.bind.apply(this.events, $.proxy(arguments));//.bind(this);
//this.events.bind(types, data, fn);//.bind(this);
//this.events.bind.call(this.events, types, data, fn);//.bind(this);
return this;
},
one: function() {
this.events.one.apply(this.events, arguments);
/**
###*map*.`trigger(name [, parameters])`
_version added 0.2_
####**Description**: triggers an event on the map
* **name** the name of the event
* **parameters** additional parameters that will be passed on with the event
>Returns: map (MapQuery.Map)
To subscribe to the triggered events, you need to bind to the mapuuu.
map.bind('myEvent', function(evt) {
console.log('the values are: ' + evt.data[0] + ' and ' + evt.data[1])
});
map.trigger('myEvent', 'some', 'values');
*/
trigger: function() {
// There is no point in using trigger() insted of triggerHandler(), as
// we don't fire native events
this.events.triggerHandler.apply(this.events, arguments);
return this;
},
// Basically a trigger that returns the return value of the last listener
_triggerReturn: function() {
return this.events.triggerHandler.apply(this.events, arguments);
},
destroy: function() {
this.olMap.destroy();
@ -363,6 +494,32 @@ $.MapQuery.Layer = function(map, id, options) {
// to bind and trigger jQuery events
this.events = $({});
this.handlers = {
// Triggers the jQuery events, after the OpenLayers events
// happened without any further processing
simple: function(data) {
this.trigger(data.type);
},
// All OpenLayers events that are triggered by user interaction,
// like clicking somewhere or selecting a feature, need to be
// handled in a special way. Those OpenLayers events will then be
// triggered by MapQuery as well
// In case of the "featureselected" event, this means that the
// logic of handling the event is completely within the event
// handler. When ".select()" on a feature is called, it will just
// trigger the OpenLayers "featureselected" event, whose handler
// will then trigger the corresponding jQuery event.
includeFeature: function(data) {
var feature = new $.MapQuery.Feature(this, {olFeature:
data.feature});
this.trigger(data.type, [feature]);
},
prependLayer: function(data) {
this.trigger('layer' + data.type);
}
};
// create the actual layer based on the options
// Returns layer and final options for the layer (for later re-use,
// e.g. zoomToMaxExtent).
@ -371,17 +528,26 @@ $.MapQuery.Layer = function(map, id, options) {
this.olLayer = res.layer;
this.options = res.options;
// create triggers for all OpenLayers layer events
var events = {};
$.each(this.olLayer.EVENT_TYPES, function(i, evt) {
events[evt] = function() {
self.events.trigger(evt, arguments);
self.map.events.trigger(evt, arguments);
};
// Some good documentation for the events is needed. Here is a short
// description on how the current events compare to the OpenLayer
// events on the layer:
// - added, remove: not needed, there's addlayer and removelayer
// - visibilitychanged: not needed, there's the changelayer event
// - move, moveend: not needed as you get them from the map, not the layer
// - loadstart, loadend: renamed to layerloadstart, layerloadend
this.olLayer.events.on({
scope: this,
loadstart: this.handlers.prependLayer,
loadend: this.handlers.prependLayer,
featureselected: this.handlers.includeFeature,
featureunselected: this.handlers.includeFeature,
featureremoved: this.handlers.includeFeature
});
this.olLayer.events.on(events);
this.map.olMap.addLayer(this.olLayer);
// To be able to retreive the MapQuery layer, when we only have the
// OpenLayers layer available. For example on the layeradded event.
// NOTE vmx 2012-02-26: Any nicer solution is welcome
this.olLayer.mapQueryId = this.id;
};
$.MapQuery.Layer.prototype = {
@ -390,7 +556,7 @@ $.MapQuery.Layer.prototype = {
_version added 0.1_
####**Description**: move the layer down in the layer stack of the map
**delta** the amount of layers the layer has to move down in the layer
* **delta** the amount of layers the layer has to move down in the layer
stack (default 1)
>Returns layer (MapQuery.Layer)
@ -421,22 +587,21 @@ will put the layer at the bottom.
each: function () {},
/**
###*layer*.`remove()`
_version added 0.1_
_version added 0.2_
####**Description**: remove the layer from the map
>Returns: id (string)
>Returns: map (MapQuery.Map) or false
The `.remove()` method allows us to remove a layer from the map.
It returns an id to allow widgets to remove their references to the
destroyed layer.
It returns the `map` object if the layer was removed, or `false` if the
removal was prevented in the preremovelayer event.
var id = layer.remove(); //remove this layer
*/
remove: function() {
this.map.olMap.removeLayer(this.olLayer);
// remove references to this layer that are stored in the
// map object
return this.map._removeLayer(this.id);
@ -447,9 +612,9 @@ _version added 0.1_
####**Description**: get/set the `position` of the layer in the layer
stack of the map
**position** an integer setting the new position of the layer in the layer stack
* **position** an integer setting the new position of the layer in the layer stack
>Returns: position (integer)
>Returns: position (integer) _or_ layer (MapQuery.Layer)
The `.position()` method allows us to change the position of the layer in the
@ -467,7 +632,9 @@ return the current postion.
return this.map.olMap.getLayerIndex(this.olLayer)-1;
}
else {
return this.map.olMap.setLayerIndex(this.olLayer, pos+1);
this.map.olMap.setLayerIndex(this.olLayer, pos+1);
this.trigger('changelayer', ['position']);
return this;
}
},
/**
@ -475,7 +642,7 @@ return the current postion.
_version added 0.1_
####**Description**: move the layer up in the layer stack of the map
**delta** the amount of layers the layer has to move up in the layer
* **delta** the amount of layers the layer has to move up in the layer
stack (default 1)
>Returns: layer (MapQuery.Layer)
@ -503,7 +670,7 @@ given.
_version added 0.1_
####**Description**: get/set the `visible` state of the layer
**visible** a boolean setting the visibiliyu of the layer
* **visible** a boolean setting the visibility of the layer
>Returns: visible (boolean)
@ -522,6 +689,7 @@ If no visible is given, it will return the current visibility.
}
else {
this.olLayer.setVisibility(vis);
this.trigger('changelayer', ['visibility']);
return this;
}
},
@ -530,9 +698,9 @@ If no visible is given, it will return the current visibility.
_version added 0.1_
####**Description**: get/set the `opacity` of the layer
**position** a float [0-1] setting the opacity of the layer
* **position** a float [0-1] setting the opacity of the layer
>Returns: opacity (float)
>Returns: opacity (float) _or_ layer (MapQuery.Layer)
The `.opacity()` method allows us to change the opacity of the layer.
@ -544,24 +712,265 @@ If no opacity is given, it will return the current opacity.
*/
opacity: function(opac) {
if (opac===undefined) {
if (opac===undefined) {
// this.olLayer.opacity can be null if never
// set so return the visibility
// set so return the visibility
var value = this.olLayer.opacity ?
this.olLayer.opacity : this.olLayer.getVisibility();
return value;
}
else {
this.olLayer.setOpacity(opac);
this.trigger('changelayer', ['opacity']);
return this;
}
},
// every event gets the layer passed in
bind: function() {
this.events.bind.apply(this.events, arguments);
// Use the same bind function as for the map
this.map.bind.apply(this, arguments);
return this;
},
one: function() {
this.events.one.apply(this.events, arguments);
/**
###*layer*.`trigger(name [, parameters])`
_version added 0.2_
####**Description**: triggers an event on the layer and map
* **name** the name of the event
* **parameters** additional parameters that will be passed on with the event
>Returns: layer (MapQuery.Layer)
The events get triggered on the layer as well as on the map. To subscribe to
the triggered events, you can either bind to the layer or the map. If bound
to the map, the second argument in the bind will be the layer the event
came from
layer.bind('myEvent', function(evt) {
console.log('the values are: ' + evt.data[0] + ' and ' + evt.data[1])
});
map.bind('myEvent', function(evt, layer) {
console.log('the values are: ' + evt.data[0] + ' and ' + evt.data[1])
});
layer.trigger('myEvent', 'some', 'values');
*/
trigger: function() {
var args = Array.prototype.slice.call(arguments);
this.events.triggerHandler.apply(this.events, args);
this._addLayerToArgs(args);
this.map.events.triggerHandler.apply(this.map.events, args);
return this;
},
// Basically a trigger that returns the return value of the last listener
_triggerReturn: function() {
var args = Array.prototype.slice.call(arguments);
var ret = this.events.triggerHandler.apply(this.events, args);
if (ret !== undefined) {
return ret;
}
this._addLayerToArgs(args);
return this.events.triggerHandler.apply(this.map.events, args);
},
// Adds the current layer to the event arguments, so that it is included
// in the event on the map
_addLayerToArgs: function(args) {
// Add layer for the map event
if (args.length===1) {
args.push([this]);
}
else {
args[1].unshift(this);
}
},
/**
###*layer*.`features([options])`
_version added 0.2.0_
####**Description**: get/set the features of a (vector) layer
**options** an object of key-value pairs with options to create one or
more features
>Returns: [features] (array of MapQuery.Feature)
The `.features()` method allows us to attach features to a mapQuery layer
object. It takes an options object with feature options. To add multiple
features, create an array of feature options objects. If an options object
is given, it will return the resulting feature(s). We can also use it to
retrieve all features currently attached to the layer.
// add an (vector) json layer to the map
var jsonlayer = map.layers({type:'json'});
// add a feature to the layer
jsonlayer.features({geometry: {type: "Point", coordinates: [5.3, 7.4]}});
// get all features of a layer (sorted with first added feature at the beginning
var features = jsonlayer.features();
*/
features: function(options) {
var self = this;
switch(arguments.length) {
// return all features
case 0:
return this._allFeatures();
// add new feature(s)
case 1:
if (!$.isArray(options)) {
return this._addFeature(options);
}
else {
return $.map(options, function(feature) {
return self._addFeature(feature);
});
}
break;
default:
throw('wrong argument number');
}
},
_allFeatures: function() {
var layer = this;
return $.map(layer.olLayer.features, function(feature) {
return new $.MapQuery.Feature(layer, {olFeature: feature});
});
},
_addFeature: function(options) {
var feature = new $.MapQuery.Feature(this, options);
// NOTE vmx 2012-04-19: Not sure if this is a good idea, or if it would
// be better to include `options` with the preaddfeature event
if (this._triggerReturn('preaddfeature', [feature])===false) {
return false;
}
this.olLayer.addFeatures(feature.olFeature);
this.trigger('addfeature', [feature]);
return feature;
}
};
/**
#MapQuery.Feature
The MapQuery.Feature object. It is constructed with a feature options object
in the layer.`features([options])` function. The Feautre object is refered to
as _feature_ in the documentation.
TODO vmx 20110905: Support other geometry types than GeoJSON
options:
* geometry: A GeoJSON geometry
* properties: Properties for the feature
*/
// Not in the pulic API docs: You can pass in as options:
// * olFeature: This will wrap the olFeature in a MapQuery feature
$.MapQuery.Feature = function(layer, options) {
// The ID is the
this._id = layer.map._createId();
this.layer = layer;
// Feature already exists on the layer, it just needs to be wrapped
// to an MapQuery feature
if (options.olFeature) {
this.olFeature = options.olFeature;
}
else {
// XXX vmx 20110905: Different feature types might make sense:
// (Geo)JSON, KML, WKT
// vmx 2012-04-14: I changed my mind quite some time ago. We should onlu
// support GeoJSON and let the user easily transfrom their format
// (e.g. KML) to GeoJSON, before they add a feature to the layer
var GeoJSON = new OpenLayers.Format.GeoJSON();
var geometry = GeoJSON.parseGeometry(options.geometry);
geometry.transform(
new OpenLayers.Projection(this.layer.map.displaProjection),
new OpenLayers.Projection(this.layer.map.projection));
this.olFeature = new OpenLayers.Feature.Vector(geometry,
options.properties);
}
// Modify the features to be more practical
// e.g. copy properties that should be easily accessed from the
// outside, out of the olLayer and to the feature level
this.properties = $.extend(true, {}, this.olFeature.attributes);
this.geometry = $.parseJSON(
new OpenLayers.Format.GeoJSON().write(this.olFeature.geometry));
return this;
};
$.MapQuery.Feature.prototype = {
/**
###*feature*.`remove()`
_version added 0.2.0_
####**Description**: remove the feature from the layer
>Returns: layer (layer) or false
The `.remove()` method allows us to remove a feature from the layer.
It returns the `layer` object if the feature was removed, or `false` if the
removal was prevented in the preremovefeature event.
// add a feature to a layer
var feature = layer.features({geometry: {type: "Point", coordinates: [5.3, 7.4]}});
// remove the feature again
feature.remove();
*/
remove: function() {
if (this.layer._triggerReturn('preremovefeature', [this])===false) {
return false;
}
this.layer.olLayer.removeFeatures(this.olFeature);
// The `removefeature` event is triggered by an OpenLayes event handler
return this.layer;
},
/**
###*feature*.`select(exclusive)`
_version added 0.2.0_
####**Description**: select a feature
**exclusive** (boolean, default: true) True means that all other features get
deselectd
>Returns: layer (layer)
The `.select()` method allows us to select a feature from the layer.
A `featureselected` will be fired.
// add a feature to a layer
var feature = layer.features({geometry: {type: "Point", coordinates: [5.3, 7.4]}});
// select the feature again
feature.select();
*/
select: function(exclusive) {
if (exclusive===undefined || exclusive===true) {
this.layer.map.selectFeatureControl.unselectAll();
}
this.layer.map.selectFeatureControl.select(this.olFeature);
},
/**
###*feature*.`unselect()`
_version added 0.2.0_
####**Description**: unselect a feature
>Returns: layer (layer)
The `.unselect()` method allows us to unselect a feature from the layer.
A `featureunselected` will be fired.
// add a feature to a layer
var feature = layer.features({geometry: {type: "Point", coordinates: [5.3, 7.4]}});
// select the feature
feature.select();
// unselect the feature again
feature.unselect();
*/
unselect: function() {
this.layer.map.selectFeatureControl.unselect(this.olFeature);
}
};
@ -581,11 +990,11 @@ $.extend($.MapQuery.Layer, {
_version added 0.1_
####**Description**: create a Bing maps layer
**view** a string ['road','hybrid','satellite'] to define which Bing maps
* **view** a string ['road','hybrid','satellite'] to define which Bing maps
layer to use (default road)
**key** Bing Maps API key for your application. Get you own at
* **key** Bing Maps API key for your application. Get you own at
http://bingmapsportal.com/
**label** string with the name of the layer
* **label** string with the name of the layer
layers:[{
@ -629,9 +1038,9 @@ http://bingmapsportal.com/
_version added 0.1_
####**Description**: create a Google maps layer
**view** a string ['road','hybrid','satellite'] to define which Google maps
* **view** a string ['road','hybrid','satellite'] to define which Google maps
layer to use (default road)
**label** string with the name of the layer
* **label** string with the name of the layer
*Note* you need to include the google maps v3 API in your application by adding
@ -669,7 +1078,7 @@ layer to use (default road)
_version added 0.1_
####**Description**: create a vector layer
**label** string with the name of the layer
* **label** string with the name of the layer
layers:[{
@ -692,13 +1101,13 @@ _version added 0.1_
_version added 0.1_
####**Description**: create a JSON layer
**url** a string pointing to the location of the JSON data
**strategies** a string ['bbox','cluster','filter','fixed','paging','refresh','save']
* **url** a string pointing to the location of the JSON data
* **strategies** a string ['bbox','cluster','filter','fixed','paging','refresh','save']
stating which update strategy should be used (default fixed)
(see also http://dev.openlayers.org/apidocs/files/OpenLayers/Strategy-js.html)
**projection** a string with the projection of the JSON data (default EPSG:4326)
**styleMap** {object} the style to be used to render the JSON data
**label** string with the name of the layer
* **projection** a string with the projection of the JSON data (default EPSG:4326)
* **styleMap** {object} the style to be used to render the JSON data
* **label** string with the name of the layer
layers:[{
@ -710,8 +1119,8 @@ stating which update strategy should be used (default fixed)
*/
json: function(options) {
var o = $.extend(true, {}, $.fn.mapQuery.defaults.layer.all,
$.fn.mapQuery.defaults.layer.vector,
options);
$.fn.mapQuery.defaults.layer.vector,
options);
this.isVector = true;
var strategies = [];
for (var i in o.strategies) {
@ -742,26 +1151,31 @@ stating which update strategy should be used (default fixed)
}
}
var protocol;
// only use JSONP if we use http(s)
if (o.url.match(/^https?:\/\//)!==null &&
!$.MapQuery.util.sameOrigin(o.url)) {
protocol = 'Script';
}
else {
protocol = 'HTTP';
}
var params = {
protocol: new OpenLayers.Protocol[protocol]({
url: o.url,
format: new OpenLayers.Format.GeoJSON()
}),
strategies: strategies,
projection: o.projection || 'EPSG:4326',
styleMap: o.styleMap
};
if (o.url) {
// only use JSONP if we use http(s)
if (o.url.match(/^https?:\/\//)!==null &&
!$.MapQuery.util.sameOrigin(o.url)) {
protocol = 'Script';
}
else {
protocol = 'HTTP';
}
params.protocol = new OpenLayers.Protocol[protocol]({
url: o.url,
format: new OpenLayers.Format.GeoJSON()
});
};
var layer = new OpenLayers.Layer.Vector(o.label, params);
return {
layer: new OpenLayers.Layer.Vector(o.label, params),
layer: layer,
options: o
};
},
@ -771,10 +1185,10 @@ _version added 0.1_
####**Description**: create an OpenStreetMap layer
**label** string with the name of the layer
**url** A single URL (string) or an array of URLs to OSM-like server like
* **label** string with the name of the layer
* **url** A single URL (string) or an array of URLs to OSM-like server like
Cloudmade
**attribution** A string to put some attribution on the map
* **attribution** A string to put some attribution on the map
layers:[{
type: 'osm',
@ -801,15 +1215,51 @@ Cloudmade
};
},
/**
###*layer* `{type:tms}`
_version added 0.1_
####**Description**: create an OpenStreetMap layer
* **label** string with the name of the layer
* **url** A single URL (string) or an array of URLs to the TMS end point
* **layer** The identifier for the <TileMap> as advertised by the service.
For example, if the service advertises a <TileMap> with href=http://tms.osgeo.org/1.0.0/vmap0”,
the layer property would be set to vmap0.
* **format** The image format (default png)
layers:[{
type: 'tms',
url: 'http://tilecache.osgeo.org/wms-c/Basic.py/',
layer: 'basic'
}]
*/
tms: function(options) {
var o = $.extend(true, {}, $.fn.mapQuery.defaults.layer.all,
$.fn.mapQuery.defaults.layer.tms,
options);
var label = options.label || undefined;
var url = options.url || undefined;
var params = {
layername: o.layer,
type: o.format
};
return {
layer: new OpenLayers.Layer.TMS(label, url, params),
options: o
};
},
/**
###*layer* `{type:wms}`
_version added 0.1_
####**Description**: create a WMS layer
**url** a string pointing to the location of the WMS service
**layers** a string with the name of the WMS layer(s)
**format** a string with format of the WMS image (default image/jpeg)
**transparent** a boolean for requesting images with transparency
**label** string with the name of the layer
* **url** a string pointing to the location of the WMS service
* **layers** a string with the name of the WMS layer(s)
* **format** a string with format of the WMS image (default image/jpeg)
* **transparent** a boolean for requesting images with transparency
* **label** string with the name of the layer
* **wms_parameters** an hashtable of extra GetMap query string parameters and parameter values
layers:[{
@ -828,6 +1278,9 @@ _version added 0.1_
transparent: o.transparent,
format: o.format
};
if(typeof o.wms_parameters != "undefined"){
params = $.extend(params, o.wms_parameters);
}
return {
layer: new OpenLayers.Layer.WMS(o.label, o.url, params, o),
options: o
@ -839,11 +1292,11 @@ _version added 0.1_
_version added 0.1_
####**Description**: create a WMTS (tiling) layer
**url** a string pointing to the location of the WMTS service
**layer** a string with the name of the WMTS layer
**matrixSet** a string with one of the advertised matrix set identifiers
**style** a string with one of the advertised layer styles
**label** string with the name of the layer
* **url** a string pointing to the location of the WMTS service
* **layer** a string with the name of the WMTS layer
* **matrixSet** a string with one of the advertised matrix set identifiers
* **style** a string with one of the advertised layer styles
* **label** string with the name of the layer
layers:[{
@ -953,13 +1406,17 @@ $.fn.mapQuery.defaults = {
transitionEffect: 'resize',
sphericalMercator: true
},
tms: {
transitionEffect: 'resize',
format: 'png'
},
raster: {
// options for raster layers
transparent: true
},
vector: {
// options for vector layers
strategies: ['fixed']
strategies: ['bbox']
},
wmts: {
format: 'image/jpeg',

View File

@ -0,0 +1,87 @@
/* Copyright (c) 2011 by MapQuery Contributors (see AUTHORS for
* full list of contributors). Published under the MIT license.
* See https://github.com/mapquery/mapquery/blob/master/LICENSE for the
* full text of the license. */
/**
#jquery.mapquery.legend.js
A plugin on mapquery.core to add a legend to a layer. It will check if the layer
is within a valid extent and zoom range. And if not will return an error message.
*/
(function($, MQ) {
$.extend( $.fn.mapQuery.defaults.layer.all, {
legend: {
url: '',
msg: ''
}
});
//possible error messages to display in the legend
LEGEND_ERRORS= ['E_ZOOMOUT', 'E_ZOOMIN', 'E_OUTSIDEBOX'];
$.extend(MQ.Layer.prototype, {
/**
###**layer**.`legend([options])`
_version added 0.1_
####**Description**: get/set the legend of a layer
**options** url:url the url to the legend image
>Returns: {url:url, msg:'E\_ZOOMOUT' | 'E\_ZOOMIN' | 'E\_OUTSIDEBOX' | ''}
The `.legend()` function allows us to attach a legend image to a layer. It will
also check if the layer is not visible due to wrong extent or zoom level.
It will return an error message which can be used to notify the user.
var legend = layer.legend(); //get the current legend
//set the legend url to legendimage.png
layer.legend({url:'legendimage.png'})
*/
//get/set the legend object
legend: function(options) {
//get the legend object
var center = this.map.center();
if (arguments.length===0) {
this._checkZoom(center);
//if zoom = ok, check box
if(this.options.legend.msg==''){
this._checkBox(center);
}
return this.options.legend;
}
//set the legend url
if (options.url!==undefined) {
this.options.legend.url = options.url;
return this.options.legend;
}
},
//Check if the layer has a maximum box set and if the current box
//is outside these settings, set the legend.msg accordingly
_checkBox: function(center){
var maxExtent = this.options.maxExtent;
if(maxExtent!==undefined) {
var mapBounds = new OpenLayers.Bounds(
center.box[0],center.box[1],center.box[2],center.box[3]);
var layerBounds = new OpenLayers.Bounds(
maxExtent[0],maxExtent[1],maxExtent[2],maxExtent[3]);
var inside = layerBounds.containsBounds(mapBounds, true);
this.options.legend.msg = inside?'':LEGEND_ERRORS[2];
}
},
//Check if the layer has a minimum or maximum zoom set and if the
//current zoom is outside these settings, set the legend.msg accordingly
_checkZoom: function(center){
var zoom = center.zoom;
var maxZoom = this.options.maxZoom;
var minZoom = this.options.minZoom;
this.options.legend.msg=(
maxZoom!==undefined&&maxZoom<zoom)? LEGEND_ERRORS[0]:'';
this.options.legend.msg=(
minZoom!==undefined&&minZoom>zoom)? LEGEND_ERRORS[1]:'';
}
});
})(jQuery, $.MapQuery);

View File

@ -0,0 +1,310 @@
/* Copyright (c) 2011 by MapQuery Contributors (see AUTHORS for
* full list of contributors). Published under the MIT license.
* See https://github.com/mapquery/mapquery/blob/master/LICENSE for the
* full text of the license. */
/**
#jquery.mapquery.mqLayerManager.js
The file containing the mqLayerManager Widget
### *$('selector')*.`mqLayerManager([options])`
_version added 0.1_
####**Description**: create a widget to manage layers
+ **options**:
- **map**: the mapquery instance
- **title**: Title that will be displayed at the top of the
layer manager (default: Layer Manager)
>Returns: widget
>Requires: jquery.mapquery.legend.js
The mqLayerManager allows us to control the order, opacity and visibility
of layers. We can also remove layers. It also shows the legend of the layer if
available and the error messages provided by the legend plugin. It listens to
layerchange event for order, transparancy and opacity changes. It listens to
addlayer and removelayer events to keep track which layers are on the map.
$('#layermanager').mqLayerManager({map:'#map'});
*/
(function($) {
$.template('mqLayerManager',
'<div class="mq-layermanager ui-widget-content ">'+
'</div>');
$.template('mqLayerManagerElement',
'<div class="mq-layermanager-element ui-widget-content ui-corner-all" id="mq-layermanager-element-${id}">'+
'<div class="mq-layermanager-element-header ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">'+
'<span class="mq-layermanager-label ui-dialog-title">${label}</span>'+
'<a class="ui-dialog-titlebar-close ui-corner-all" href="#" role="button">'+
'<span class="ui-icon ui-icon-closethick">close</span></a></div>'+
'<div class="mq-layermanager-element-content">'+
'<div class="mq-layermanager-element-visibility">'+
'<input type="checkbox" class="mq-layermanager-element-vischeckbox" id="${id}-visibility" {{if visible}}checked="${visible}"{{/if}} />'+
'<div class="mq-layermanager-element-slider-container">'+
'<div class="mq-layermanager-element-slider"></div></div>'+
'</div>'+
'<div class="mq-layermanager-element-legend">'+
'{{if imgUrl}}'+
'<img src="${imgUrl}" style="opacity:${opacity}"/>'+
'{{/if}}'+
'{{if errMsg}}'+
'${errMsg}'+
'{{/if}}'+
'</div>'+
'</div>'+
'</div>');
$.widget("mapQuery.mqLayerManager", {
options: {
// The MapQuery instance
map: undefined,
// Title that will be displayed at the top of the popup
title: "Layer Manager"
},
_create: function() {
var map;
var zoom;
var numzoomlevels;
var self = this;
var element = this.element;
//get the mapquery object
map = $(this.options.map).data('mapQuery');
this.element.addClass('ui-widget ui-helper-clearfix ' +
'ui-corner-all');
var lmElement = $.tmpl('mqLayerManager').appendTo(element);
element.find('.ui-icon-closethick').button();
lmElement.sortable({
axis:'y',
handle: '.mq-layermanager-element-header',
update: function(event, ui) {
var layerNodes = ui.item.siblings().andSelf();
var num = layerNodes.length-1;
layerNodes.each(function(i) {
var layer = $(this).data('layer');
var pos = num-i;
self._position(layer, pos);
});
}
});
//these layers are already added to the map as such won't trigger
//and event, we call the draw function directly
$.each(map.layers().reverse(), function(){
self._layerAdded(lmElement, this);
});
element.delegate('.mq-layermanager-element-vischeckbox',
'change',function() {
var checkbox = $(this);
var element = checkbox.parents('.mq-layermanager-element');
var layer = element.data('layer');
var self = element.data('self');
self._visible(layer,checkbox.is(':checked'));
});
element.delegate('.ui-icon-closethick', 'click', function() {
var control = $(this).parents('.mq-layermanager-element');
self._remove(control.data('layer'));
});
//binding events
map.bind("addlayer",
{widget:self,control:lmElement},
self._onLayerAdd);
map.bind("removelayer",
{widget:self,control:lmElement},
self._onLayerRemove);
map.bind("changelayer",
{widget:self,map:map,control:lmElement},
self._onLayerChange);
map.bind("moveend",
{widget:self,map:map,control:lmElement},
self._onMoveEnd);
},
_destroy: function() {
this.element.removeClass(' ui-widget ui-helper-clearfix ' +
'ui-corner-all')
.empty();
},
//functions that actually change things on the map
//call these from within the widget to do stuff on the map
//their actions will trigger events on the map and in return
//will trigger the _layer* functions
_add: function(map,layer) {
map.layers(layer);
},
_remove: function(layer) {
layer.remove();
},
_position: function(layer, pos) {
layer.position(pos);
},
_visible: function(layer, vis) {
layer.visible(vis);
},
_opacity: function(layer,opac) {
layer.opacity(opac);
},
//functions that change the widget
_layerAdded: function(widget, layer) {
var self = this;
var error = layer.legend().msg;
var url;
switch(error){
case '':
url =layer.legend().url;
if(url==''){error='No legend for this layer';}
break;
case 'E_ZOOMOUT':
error = 'Please zoom out to see this layer';
break;
case 'E_ZOOMIN':
error = 'Please zoom in to see this layer';
break;
case 'E_OUTSIDEBOX':
error = 'This layer is outside the current view';
break;
}
var layerElement = $.tmpl('mqLayerManagerElement',{
id: layer.id,
label: layer.label,
position: layer.position(),
visible: layer.visible(),
imgUrl: url,
opacity: layer.visible()?layer.opacity():0,
errMsg: error
})
// save layer layer in the DOM, so we can easily
// hide/show/delete the layer with live events
.data('layer', layer)
.data('self',self)
.prependTo(widget);
$(".mq-layermanager-element-slider", layerElement).slider({
max: 100,
step: 1,
value: layer.visible()?layer.opacity()*100:0,
slide: function(event, ui) {
var layer = layerElement.data('layer');
var self = layerElement.data('self');
self._opacity(layer,ui.value/100);
},
//using the slide event to check for the checkbox often gives errors.
change: function(event, ui) {
var layer = layerElement.data('layer');
var self = layerElement.data('self');
if(ui.value>=0.01) {
if(!layer.visible()){layer.visible(true);}
}
if(ui.value<0.01) {
if(layer.visible()){layer.visible(false);}
}
}
});
},
_layerRemoved: function(widget, id) {
var control = $("#mq-layermanager-element-"+id);
control.fadeOut(function() {
$(this).remove();
});
},
_layerPosition: function(widget, layer) {
var layerNodes = widget.element.find('.mq-layermanager-element');
var num = layerNodes.length-1;
var tmpNodes = [];
tmpNodes.length = layerNodes.length;
layerNodes.each(function() {
var layer = $(this).data('layer');
var pos = num-layer.position();
tmpNodes[pos]= this;
});
for (i=0;i<tmpNodes.length;i++) {
layerNodes.parent().append(tmpNodes[i]);
}
},
_layerVisible: function(widget, layer) {
var layerElement =
widget.element.find('#mq-layermanager-element-'+layer.id);
var checkbox =
layerElement.find('.mq-layermanager-element-vischeckbox');
checkbox[0].checked = layer.visible();
//update the opacity slider as well
var slider = layerElement.find('.mq-layermanager-element-slider');
var value = layer.visible()?layer.opacity()*100: 0;
slider.slider('value',value);
//update legend image
layerElement.find('.mq-layermanager-element-legend img').css(
{visibility:layer.visible()?true:'hidden'});
},
_layerOpacity: function(widget, layer) {
var layerElement = widget.element.find(
'#mq-layermanager-element-'+layer.id);
var slider = layerElement.find(
'.mq-layermanager-element-slider');
slider.slider('value',layer.opacity()*100);
//update legend image
layerElement.find(
'.mq-layermanager-element-legend img').css(
{opacity:layer.opacity()});
},
_moveEnd: function (widget,lmElement,map) {
lmElement.empty();
$.each(map.layers().reverse(), function(){
widget._layerAdded(lmElement, this);
});
},
//functions bind to the map events
_onLayerAdd: function(evt, layer) {
evt.data.widget._layerAdded(evt.data.control,layer);
},
_onLayerRemove: function(evt, layer) {
evt.data.widget._layerRemoved(evt.data.control,layer.id);
},
_onLayerChange: function(evt, layer, property) {
switch(property) {
case 'opacity':
evt.data.widget._layerOpacity(evt.data.widget,layer);
break;
case 'position':
evt.data.widget._layerPosition(evt.data.widget,layer);
break;
case 'visibility':
evt.data.widget._layerVisible(evt.data.widget,layer);
break;
}
},
_onMoveEnd: function(evt) {
evt.data.widget._moveEnd(evt.data.widget,evt.data.control,evt.data.map);
}
});
})(jQuery);

View File

@ -44,8 +44,8 @@ $.widget("mapQuery.mqMousePosition", {
// The number of decimals for the coordinates
// default: 2
// TODO: JCB20110630 use dynamic precision based on the pixel
// resolution, no need to configure precision
// TODO: JCB20110630 use dynamic precision based on the pixel
// resolution, no need to configure precision
precision: 2,
// The label of the x-value
@ -57,51 +57,36 @@ $.widget("mapQuery.mqMousePosition", {
},
_create: function() {
var map;
var self = this;
var element = this.element;
var mousepos;
//get the mapquery object
map = $(this.options.map).data('mapQuery');
this.map = $(this.options.map).data('mapQuery');
map.bind("mousemove",
{widget:self,map:map},
self._onMouseMove);
$.tmpl('mqMousePosition',{
mouseposition:mousepos
}).appendTo(element);
this.map.element.bind('mousemove', {widget: this}, this._onMousemove);
$.tmpl('mqMousePosition', {}).appendTo(this.element);
},
_destroy: function() {
this.element.removeClass(' ui-widget ui-helper-clearfix ' +
this.element.removeClass('ui-widget ui-helper-clearfix ' +
'ui-corner-all')
.empty();
},
_mouseMoved: function(data, element, map) {
var x = data.layerX;
var y = data.layerY;
var mapProjection = map.options.projection;
var displayProjection = map.options.projection;
_onMousemove: function(evt) {
var self = evt.data.widget;
var x = evt.pageX;
var y = evt.pageY;
var mapProjection = new OpenLayers.Projection(self.map.projection);
var displayProjection = new OpenLayers.Projection(
self.map.displayProjection);
var pos = self.map.olMap.getLonLatFromLayerPx(
new OpenLayers.Pixel(x, y));
//if the coordinates should be displayed in something else,
//set them via the map displayProjection option
var pos = map.olMap.getLonLatFromLayerPx(new OpenLayers.Pixel(x,y));
if(map.options.displayProjection) {
displayProjection = map.options.displayProjection;
pos=pos.transform(
new OpenLayers.Projection(mapProjection),
new OpenLayers.Projection(displayProjection));
//set them via the map displayProjection option
if(!mapProjection.equals(self.map.displayProjection)) {
pos = pos.transform(mapProjection, displayProjection);
}
$("#id_diabook_ELPosX", element).val(
this.options.x+pos.lon.toFixed(this.options.precision));
$("#id_diabook_ELPosY", element).val(
this.options.y+pos.lat.toFixed(this.options.precision));
},
_onMouseMove: function(evt, data) {
evt.data.widget._mouseMoved(data,evt.data.control,evt.data.map);
$("#id_diabook_ELPosX", document.element).val(
self.options.x + pos.lon.toFixed(self.options.precision));
$("#id_diabook_ELPosY", document.element).val(
self.options.y + pos.lat.toFixed(self.options.precision));
}
});
})(jQuery);

View File

@ -202,7 +202,7 @@
// default styling
a: { textDecoration: 'none', color: '#3B5998' },
bird: { width: '50px', height: '20px', position: 'absolute', left: '-30px', top: '-20px', border: 'none' },
container: { overflow: 'hidden', backgroundColor: '', height: '600px' },
container: { overflow: 'hidden', backgroundColor: '', height: '600px', width: '170px' },
fail: { background: '#6cc5c3 url(http://cloud.github.com/downloads/malsup/twitter/failwhale.png) no-repeat 50% 50%', height: '100%', padding: '10px' },
frame: { border: '0px solid #C2CFF1', borderRadius: '0px', '-moz-border-radius': '0px', '-webkit-border-radius': '0px' },
tweet: { padding: '5px 10px', clear: 'left' },

View File

@ -136,7 +136,7 @@
</nav>
<div id="scrollup" style="position: fixed; bottom: 5px; right: 10px;z-index: 97;"><a id="down" onclick="scrolldown()" ><img id="scroll_top_bottom" src="view/theme/diabook/icons/scroll_bottom.png" style="display:cursor !important;" alt="back to top" title="Back to top"></a></div>
<div id="scrollup" style="position: fixed; bottom: 5px; right: 10px;z-index: 97;"><a id="down" onclick="scrolldown()" ><img id="scroll_top_bottom" src="view/theme/diabook/icons/scroll_bottom.png" style="display:cursor !important;" alt="back to top" title="Scroll to bottom"></a></div>
<div style="position: fixed; bottom: 3px; left: 25px;">$langselector</div>
<div style="position: fixed; bottom: 23px; left: 5px;"><a href="http://pad.toktan.org/p/diabook" target="blank" ><img src="view/theme/diabook/icons/bluebug.png" title="report bugs for the theme diabook"/></a></div>

View File

@ -0,0 +1,40 @@
<h3>$header</h3>
<div id="prvmail-wrapper" >
<form id="prvmail-form" action="message" method="post" >
$parent
<div id="prvmail-to-label">$to</div>
{{ if $showinputs }}
<input type="text" id="recip" style="background: none repeat scroll 0 0 white;border: 1px solid #CCC;border-radius: 5px 5px 5px 5px;height: 20px;margin: 0 0 5px;
vertical-align: middle;" name="messageto" value="$prefill" maxlength="255" size="64" tabindex="10" />
<input type="hidden" id="recip-complete" name="messageto" value="$preid">
{{ else }}
$select
{{ endif }}
<div id="prvmail-subject-label">$subject</div>
<input type="text" size="64" maxlength="255" id="prvmail-subject" name="subject" value="$subjtxt" $readonly tabindex="11" />
<div id="prvmail-message-label">$yourmessage</div>
<textarea rows="8" cols="72" class="prvmail-text" id="prvmail-text" name="body" tabindex="12">$text</textarea>
<div id="prvmail-submit-wrapper" >
<input type="submit" id="prvmail-submit" name="submit" value="Submit" tabindex="13" />
<div id="prvmail-upload-wrapper" >
<div id="prvmail-upload" class="icon border camera" title="$upload" ></div>
</div>
<div id="prvmail-link-wrapper" >
<div id="prvmail-link" class="icon border link" title="$insert" onclick="jotGetLink();" ></div>
</div>
<div id="prvmail-rotator-wrapper" >
<img id="prvmail-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
</div>
</div>
<div id="prvmail-end"></div>
</form>
</div>

View File

@ -610,9 +610,7 @@ header #banner #logo-img {
margin-top: 3px;
}
header #banner #logo-text {
font-size: 20px;
position: absolute;
top: 10%;
font-size: 20px!important;position: relative!important;top: -4px!important;
}
/* messages */
#message-new {

View File

@ -611,9 +611,7 @@ header #banner #logo-img {
margin-top: 3px;
}
header #banner #logo-text {
font-size: 20px;
position: absolute;
top: 10%;
font-size: 20px!important;position: relative!important;top: -4px!important;
}
/* messages */
#message-new {

View File

@ -3,7 +3,7 @@
/*
* Name: Diabook
* Description: Diabook: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
* Version: (Version: 1.026)
* Version: (Version: 1.027)
* Author:
*/
@ -13,12 +13,12 @@ $a = get_app();
function diabook_init(&$a) {
//print diabook-version for debugging
$diabook_version = "Diabook (Version: 1.026)";
$a->page['htmlhead'] .= sprintf('<META NAME="theme" CONTENT="%s"/>', $diabook_version);
$diabook_version = "Diabook (Version: 1.027)";
$a->page['htmlhead'] .= sprintf('<META NAME=generator CONTENT="%s"/>', $diabook_version);
//change css on network and profilepages
//init css on network and profilepages
$cssFile = null;
//get statuses of boxes at right-hand-column
$close_pages = false;
$site_close_pages = get_config("diabook", "close_pages" );
if (local_user()) {$close_pages = get_pconfig(local_user(), "diabook", "close_pages");}
@ -79,7 +79,7 @@ if (local_user()) {$close_mapquery = get_pconfig(local_user(), "diabook", "close
if ($close_mapquery===false) $close_mapquery=$site_close_mapquery;
if ($close_mapquery===false) $close_mapquery="1";
//get resolution (wide/normal)
$resolution=false;
$resolution = get_pconfig(local_user(), "diabook", "resolution");
if ($resolution===false) $resolution="normal";
@ -90,8 +90,7 @@ if ($resolution=="wide") {
} else {
$a->page['htmlhead'] .= '<meta name="viewport" content="width=980" />';
}
//get colour-scheme
$color = false;
$site_color = get_config("diabook", "color" );
if (local_user()) {$color = get_pconfig(local_user(), "diabook", "color");}
@ -107,7 +106,7 @@ if ($color=="green") $color_path = "/diabook-green/";
if ($color=="dark") $color_path = "/diabook-dark/";
//profile_side at networkpages
//build personal menue at lefthand-col (id="profile_side") and boxes at right-hand-col at networkpages
if ($a->argv[0] === "network" && local_user()){
// USER MENU
@ -139,6 +138,7 @@ if ($color=="dark") $color_path = "/diabook-dark/";
}
$ccCookie = $close_pages + $close_mapquery + $close_profiles + $close_helpers + $close_services + $close_friends + $close_twitter + $close_lastusers + $close_lastphotos + $close_lastlikes;
//if all boxes closed, dont build right-hand-col and dont use special css
if($ccCookie != "10") {
// COMMUNITY
diabook_community_info();
@ -151,7 +151,7 @@ if ($color=="dark") $color_path = "/diabook-dark/";
//right_aside at profile pages
//build boxes at right_aside at profile pages
if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname']){
if($ccCookie != "10") {
// COMMUNITY
@ -164,46 +164,45 @@ if ($color=="dark") $color_path = "/diabook-dark/";
}
}
//js scripts
//write js-scripts to the head-section:
//load jquery.cookie.js
$cookieJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.cookie.js";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s"></script>', $cookieJS);
$a->page['htmlhead'] .= sprintf('<script type="text/javascript" src="%s"></script>', $cookieJS);
//load jquery.ae.image.resize.js
$imageresizeJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.ae.image.resize.js";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $imageresizeJS);
$imageresizeJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.ae.image.resize.min.js";
$a->page['htmlhead'] .= sprintf('<script type="text/javascript" src="%s" ></script>', $imageresizeJS);
//load jquery.ui.js
if($ccCookie != "10") {
$jqueryuiJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery-ui-1.8.20.custom.min.js";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $jqueryuiJS);
$a->page['htmlhead'] .= sprintf('<script type="text/javascript" src="%s" ></script>', $jqueryuiJS);
$jqueryuicssJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/jquery-ui-1.8.20.custom.css";
$a->page['htmlhead'] .= sprintf('<link rel="stylesheet" type="text/css" href="%s" />', $jqueryuicssJS);
}
//load jquery.twitter.search.js
if($close_twitter != "1") {
$twitterJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.twitter.search.js";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $twitterJS);
$a->page['htmlhead'] .= sprintf('<script type="text/javascript" src="%s" ></script>', $twitterJS);
}
//load jquery.mapquery.js
if($close_mapquery != "1") {
$mqtmplJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.tmpl.js";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $mqtmplJS);
$a->page['htmlhead'] .= sprintf('<script type="text/javascript" src="%s" ></script>', $mqtmplJS);
$mapqueryJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.mapquery.core.js";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $mapqueryJS);
$a->page['htmlhead'] .= sprintf('<script type="text/javascript" src="%s" ></script>', $mapqueryJS);
$openlayersJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/OpenLayers.js";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $openlayersJS);
$a->page['htmlhead'] .= sprintf('<script type="text/javascript" src="%s" ></script>', $openlayersJS);
$mqmouseposJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.mapquery.mqMousePosition.js";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $mqmouseposJS);
$a->page['htmlhead'] .= sprintf('<script type="text/javascript" src="%s" ></script>', $mqmouseposJS);
$mousewheelJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.mousewheel.js";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $mousewheelJS);
$a->page['htmlhead'] .= sprintf('<script type="text/javascript" src="%s" ></script>', $mousewheelJS);
$mqlegendJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.mapquery.legend.js";
$a->page['htmlhead'] .= sprintf('<script type="text/javascript" src="%s" ></script>', $mqlegendJS);
$mqlayermanagerJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.mapquery.mqLayerManager.js";
$a->page['htmlhead'] .= sprintf('<script type="text/javascript" src="%s" ></script>', $mqlayermanagerJS);
}
$a->page['htmlhead'] .= '
<script>
$(function() {
$("a.lightbox").fancybox(); // Select all links with lightbox class
$("a#twittersettings-link").fancybox({onClosed: function() { $("#twittersettings").attr("style","display: none;");}} );
@ -216,8 +215,8 @@ if ($color=="dark") $color_path = "/diabook-dark/";
$("div#footerbox").attr("style", "border-top: 1px solid #D2D2D2; width: 70%;right: 15%;position: absolute;top:"+footer_top+"px;");
});
</script>';
//check if mapquerybox is active and print
if($close_mapquery != "1") {
$ELZoom=false;
$ELPosX=false;
@ -237,7 +236,7 @@ if ($color=="dark") $color_path = "/diabook-dark/";
$a->page['htmlhead'] .= '
<script>
$(document).ready(function() {
$(function() {
$("#map").mapQuery({
layers:[{ //add layers to your map; you need to define at least one to be able to see anything on the map
type:"osm" //add a layer of the type osm (OpenStreetMap)
@ -248,9 +247,16 @@ if ($color=="dark") $color_path = "/diabook-dark/";
});
function open_mapcontrol() {
$("div#mapcontrol").attr("style","display: block;width:900px;height:600px;");
$("#map2").mapQuery({layers:[{type:"osm"}],
center:({zoom:'.$ELZoom.',position:['.$ELPosX.','.$ELPosY.']})});
$("div#mapcontrol").attr("style","display: block;width:900px;height:900px;");
$("#map2").mapQuery({
layers:[{type:"osm", label:"OpenStreetMap" },
{type:"wms", label:"Population density 2010", legend:{url:"http://mapserver.edugis.nl/cgi-bin/mapserv?map=maps/edugis/cache/population.map&version=1.1.1&service=WMS&request=GetLegendGraphic&layer=Bevolkingsdichtheid_2010&format=image/png"}, url:"http://t1.edugis.nl/tiles/tilecache.py?map=maps/edugis/cache/population.map",
layers:"Bevolkingsdichtheid_2010" },
{type:"wms",
label:"OpenLayers WMS",
url:"http://labs.metacarta.com/wms/vmap0",
layers:"basic" }],
center:({zoom:'.$ELZoom.',position:['.$ELPosX.','.$ELPosY.']})});
$("#mouseposition").mqMousePosition({
map: "#map2",
@ -259,13 +265,18 @@ if ($color=="dark") $color_path = "/diabook-dark/";
precision:4
});
$("#layermanager").mqLayerManager({map:"#map2"});
$( "div#layermanager" ).accordion({header: ".mq-layermanager-element-header"});
$(".mq-layermanager-element-content").attr("style", "");
map = $("#map2").mapQuery().data("mapQuery");
textarea = document.getElementById("id_diabook_ELZoom");
textarea.value = "'.$ELZoom.'";
$("#map2").bind("mousewheel", function(event, delta) {
if (delta > 0 || delta < 0){
textarea.value = map.center().zoom; }
if (delta > 0 && textarea.value < 18){
textarea.value = textarea.value - delta*-1; }
if (delta < 0 && textarea.value > "0"){
textarea.value = textarea.value - delta*-1; }
});
};
</script>';
@ -293,20 +304,19 @@ if ($color=="dark") $color_path = "/diabook-dark/";
};
</script>';}
//check if community_home-plugin is activated and change css
//check if community_home-plugin is activated and change css.. we need this, that the submit-wrapper doesn't overlay the login-panel if communityhome-plugin is active
$nametocheck = "communityhome";
$r = q("select id from addon where name = '%s' and installed = 1", dbesc($nametocheck));
if(count($r) == "1") {
if(count($r) == "1" && $a->argv[0] === "home" ) {
$a->page['htmlhead'] .= '
<script>
$(document).ready(function() {
$(function() {
$("div#login-submit-wrapper").attr("style","padding-top: 120px;");
});
</script>';
}
//comment-edit-wrapper on photo_view
//comment-edit-wrapper on photo_view... we need this to workaround a global bug in photoview, where the comment-box is between the last comment the the comment before the last
if ($a->argv[0].$a->argv[2] === "photos"."image"){
$a->page['htmlhead'] .= '
<script>
@ -315,7 +325,7 @@ if ($color=="dark") $color_path = "/diabook-dark/";
});
</script>';
}
//restore right hand col at settingspage
//restore (only) the order right hand col at settingspage
if($a->argv[0] === "settings" && local_user()) {
$a->page['htmlhead'] .= '
<script>
@ -389,11 +399,6 @@ if ($color=="dark") $color_path = "/diabook-dark/";
};}
);
function open_boxsettings() {
$("div#boxsettings").attr("style","display: block;height:500px;width:450px;");
$("label").attr("style","width: 350px;");
};
</script>';}
}
@ -401,7 +406,7 @@ if ($color=="dark") $color_path = "/diabook-dark/";
// custom css
if (!is_null($cssFile)) $a->page['htmlhead'] .= sprintf('<link rel="stylesheet" type="text/css" href="%s" />', $cssFile);
//footer
$tpl = get_markup_template('footer.tpl');
$a->page['footer'] .= replace_macros($tpl, array());
@ -413,6 +418,68 @@ if ($color=="dark") $color_path = "/diabook-dark/";
function diabook_community_info() {
$a = get_app();
$close_pages = false;
$site_close_pages = get_config("diabook", "close_pages" );
if (local_user()) {$close_pages = get_pconfig(local_user(), "diabook", "close_pages");}
if ($close_pages===false) $close_pages=$site_close_pages;
if ($close_pages===false) $close_pages="1";
$close_profiles = false;
$site_close_profiles = get_config("diabook", "close_profiles" );
if (local_user()) {$close_profiles = get_pconfig(local_user(), "diabook", "close_profiles");}
if ($close_profiles===false) $close_profiles=$site_close_profiles;
if ($close_profiles===false) $close_profiles="0";
$close_helpers = false;
$site_close_helpers = get_config("diabook", "close_helpers" );
if (local_user()) {$close_helpers = get_pconfig(local_user(), "diabook", "close_helpers");}
if ($close_helpers===false) $close_helpers=$site_close_helpers;
if ($close_helpers===false) $close_helpers="0";
$close_services = false;
$site_close_services = get_config("diabook", "close_services" );
if (local_user()) {$close_services = get_pconfig(local_user(), "diabook", "close_services");}
if ($close_services===false) $close_services=$site_close_services;
if ($close_services===false) $close_services="0";
$close_friends = false;
$site_close_friends = get_config("diabook", "close_friends" );
if (local_user()) {$close_friends = get_pconfig(local_user(), "diabook", "close_friends");}
if ($close_friends===false) $close_friends=$site_close_friends;
if ($close_friends===false) $close_friends="0";
$close_lastusers = false;
$site_close_lastusers = get_config("diabook", "close_lastusers" );
if (local_user()) {$close_lastusers = get_pconfig(local_user(), "diabook", "close_lastusers");}
if ($close_lastusers===false) $close_lastusers=$site_close_lastusers;
if ($close_lastusers===false) $close_lastusers="0";
$close_lastphotos = false;
$site_close_lastphotos = get_config("diabook", "close_lastphotos" );
if (local_user()) {$close_lastphotos = get_pconfig(local_user(), "diabook", "close_lastphotos");}
if ($close_lastphotos===false) $close_lastphotos=$site_close_lastphotos;
if ($close_lastphotos===false) $close_lastphotos="0";
$close_lastlikes = false;
$site_close_lastlikes = get_config("diabook", "close_lastlikes" );
if (local_user()) {$close_lastlikes = get_pconfig(local_user(), "diabook", "close_lastlikes");}
if ($close_lastlikes===false) $close_lastlikes=$site_close_lastlikes;
if ($close_lastlikes===false) $close_lastlikes="0";
$close_twitter = false;
$site_close_twitter = get_config("diabook", "close_twitter" );
if (local_user()) {$close_twitter = get_pconfig(local_user(), "diabook", "close_twitter");}
if ($close_twitter===false) $close_twitter=$site_close_twitter;
if ($close_twitter===false) $close_twitter="1";
$close_mapquery = false;
$site_close_mapquery = get_config("diabook", "close_mapquery" );
if (local_user()) {$close_mapquery = get_pconfig(local_user(), "diabook", "close_mapquery");}
if ($close_mapquery===false) $close_mapquery=$site_close_mapquery;
if ($close_mapquery===false) $close_mapquery="1";
// comunity_profiles
if($close_profiles != "1") {
$aside['$comunity_profiles_title'] = t('Community Profiles');
@ -509,7 +576,7 @@ if ($color=="dark") $color_path = "/diabook-dark/";
}}
// last 12 photos
if($close_photos != "1") {
if($close_lastphotos != "1") {
$aside['$photos_title'] = t('Last photos');
$aside['$photos_items'] = array();
$r = q("SELECT `photo`.`id`, `photo`.`resource-id`, `photo`.`scale`, `photo`.`desc`, `user`.`nickname`, `user`.`username` FROM
@ -568,7 +635,7 @@ if ($color=="dark") $color_path = "/diabook-dark/";
if($close_pages != "1") {
if(local_user()) {
$page = '
<h3 style="margin-top:0px;">'.t("Community Pages").'<a id="closeicon" href="#boxsettings" onClick="open_boxsettings(); return false;" style="text-decoration:none;" class="icon close_box" title="close"></a></h3>
<h3 style="margin-top:0px;">'.t("Community Pages").'<a id="closeicon" href="#boxsettings" onClick="open_boxsettings(); return false;" style="text-decoration:none;" class="icon close_box" title="'.t("Settings").'"></a></h3>
<div id=""><ul style="margin-left: 7px;margin-top: 0px;padding-left: 0px;padding-top: 0px;">';
$pagelist = array();
@ -608,9 +675,9 @@ if ($color=="dark") $color_path = "/diabook-dark/";
$ELZoom = get_pconfig(local_user(), 'diabook', 'ELZoom' );
$ELPosX = get_pconfig(local_user(), 'diabook', 'ELPosX' );
$ELPosY = get_pconfig(local_user(), 'diabook', 'ELPosY' );
$aside['$ELZoom'] = array('diabook_ELZoom', t('Set zoomfactor for Earth Layer'), $ELZoom, '', $ELZoom);
$aside['$ELPosX'] = array('diabook_ELPosX', t('Set longitude (X) for Earth Layer'), $ELPosX, '', $ELPosX);
$aside['$ELPosY'] = array('diabook_ELPosY', t('Set latitude (Y) for Earth Layer'), $ELPosY, '', $ELPosY);
$aside['$ELZoom'] = array('diabook_ELZoom', t('Set zoomfactor for Earth Layers'), $ELZoom, '', $ELZoom);
$aside['$ELPosX'] = array('diabook_ELPosX', t('Set longitude (X) for Earth Layers'), $ELPosX, '', $ELPosX);
$aside['$ELPosY'] = array('diabook_ELPosY', t('Set latitude (Y) for Earth Layers'), $ELPosY, '', $ELPosY);
if (isset($_POST['diabook-settings-map-sub']) && $_POST['diabook-settings-map-sub']!=''){
set_pconfig(local_user(), 'diabook', 'ELZoom', $_POST['diabook_ELZoom']);
set_pconfig(local_user(), 'diabook', 'ELPosX', $_POST['diabook_ELPosX']);
@ -660,26 +727,28 @@ if ($color=="dark") $color_path = "/diabook-dark/";
$close_lastusers = get_pconfig(local_user(), 'diabook', 'close_lastusers' );
$close_lastphotos = get_pconfig(local_user(), 'diabook', 'close_lastphotos' );
$close_lastlikes = get_pconfig(local_user(), 'diabook', 'close_lastlikes' );
$close_pagesC = array('1'=>'hide', '0'=>'show',);
$close_mapqueryC = array('1'=>'hide', '0'=>'show',);
$close_profilesC = array('0'=>'show', '1'=>'hide',);
$close_helpersC = array('0'=>'show', '1'=>'hide',);
$close_servicesC = array('0'=>'show', '1'=>'hide',);
$close_friendsC = array('0'=>'show', '1'=>'hide',);
$close_twitterC = array('1'=>'hide', '0'=>'show',);
$close_lastusersC = array('0'=>'show', '1'=>'hide',);
$close_lastphotosC = array('0'=>'show','1'=>'hide',);
$close_lastlikesC = array('0'=>'show', '1'=>'hide',);
$aside['$close_pages'] = array('diabook_close_pages', t('Show "Cummunity Pages" at right-hand coloumn?'), $close_pages, '', $close_pagesC);
$aside['$close_mapquery'] = array('diabook_close_mapquery', t('Show "Earth Layers" at right-hand coloumn?'), $close_mapquery, '', $close_mapqueryC);
$aside['$close_profiles'] = array('diabook_close_profiles', t('Show "Cummunity Profiles" at right-hand coloumn?'), $close_profiles, '', $close_profilesC);
$aside['$close_helpers'] = array('diabook_close_helpers', t('Show "Help or @NewHere" at right-hand coloumn?'), $close_helpers, '', $close_helpersC);
$aside['$close_services'] = array('diabook_close_services', t('Show "Connect Services" at right-hand coloumn?'), $close_services, '', $close_servicesC);
$aside['$close_friends'] = array('diabook_close_friends', t('Show "Find Friends" at right-hand coloumn?'), $close_friends, '', $close_friendsC);
$aside['$close_twitter'] = array('diabook_close_twitter', t('Show "Last Tweets" at right-hand coloumn?'), $close_twitter, '', $close_twitterC);
$aside['$close_lastusers'] = array('diabook_close_lastusers', t('Show "Last Users" at right-hand coloumn?'), $close_lastusers, '', $close_lastusersC);
$aside['$close_lastphotos'] = array('diabook_close_lastphotos', t('Show "Last Photos" at right-hand coloumn?'), $close_lastphotos, '', $close_lastphotosC);
$aside['$close_lastlikes'] = array('diabook_close_lastlikes', t('Show "Last Likes" at right-hand coloumn?'), $close_lastlikes, '', $close_lastlikesC);
$close_pagesC = array('1'=>t("don't show"), '0'=>t("show"),);
$close_mapqueryC = array('1'=>t("don't show"), '0'=>t("show"),);
$close_profilesC = array('1'=>t("don't show"), '0'=>t("show"),);
$close_helpersC = array('1'=>t("don't show"), '0'=>t("show"),);
$close_servicesC = array('1'=>t("don't show"), '0'=>t("show"),);
$close_friendsC = array('1'=>t("don't show"), '0'=>t("show"),);
$close_twitterC = array('1'=>t("don't show"), '0'=>t("show"),);
$close_lastusersC = array('1'=>t("don't show"), '0'=>t("show"),);
$close_lastphotosC = array('1'=>t("don't show"), '0'=>t("show"),);
$close_lastlikesC = array('1'=>t("don't show"), '0'=>t("show"),);
$boxsettings['title'] = Array("", t('Show/hide boxes at right-hand column:'), "", "");
$aside['$boxsettings'] = $boxsettings;
$aside['$close_pages'] = array('diabook_close_pages', t('Community Pages'), $close_pages, '', $close_pagesC);
$aside['$close_mapquery'] = array('diabook_close_mapquery', t('Earth Layers'), $close_mapquery, '', $close_mapqueryC);
$aside['$close_profiles'] = array('diabook_close_profiles', t('Community Profiles'), $close_profiles, '', $close_profilesC);
$aside['$close_helpers'] = array('diabook_close_helpers', t('Help or @NewHere ?'), $close_helpers, '', $close_helpersC);
$aside['$close_services'] = array('diabook_close_services', t('Connect Services'), $close_services, '', $close_servicesC);
$aside['$close_friends'] = array('diabook_close_friends', t('Find Friends'), $close_friends, '', $close_friendsC);
$aside['$close_twitter'] = array('diabook_close_twitter', t('Last Tweets'), $close_twitter, '', $close_twitterC);
$aside['$close_lastusers'] = array('diabook_close_lastusers', t('Last users'), $close_lastusers, '', $close_lastusersC);
$aside['$close_lastphotos'] = array('diabook_close_lastphotos', t('Last photos'), $close_lastphotos, '', $close_lastphotosC);
$aside['$close_lastlikes'] = array('diabook_close_lastlikes', t('Last likes'), $close_lastlikes, '', $close_lastlikesC);
$aside['$sub'] = t('Submit');
$baseurl = $a->get_baseurl($ssl_state);
$aside['$baseurl'] = $baseurl;
@ -694,7 +763,6 @@ if ($color=="dark") $color_path = "/diabook-dark/";
set_pconfig(local_user(), 'diabook', 'close_lastusers', $_POST['diabook_close_lastusers']);
set_pconfig(local_user(), 'diabook', 'close_lastphotos', $_POST['diabook_close_lastphotos']);
set_pconfig(local_user(), 'diabook', 'close_lastlikes', $_POST['diabook_close_lastlikes']);
header("Location: network");
}
}
$close = t('Settings');

View File

@ -6,7 +6,22 @@
{{inc field_select.tpl with $field=$resolution}}{{endinc}}
<div class="settings-submit-wrapper">
<input type="submit" value="$submit" class="settings-submit" name="diabook-settings-submit" />
</div>
<br>
<h3>Show/hide boxes at right-hand column</h3>
{{inc field_select.tpl with $field=$close_pages}}{{endinc}}
{{inc field_select.tpl with $field=$close_profiles}}{{endinc}}
{{inc field_select.tpl with $field=$close_helpers}}{{endinc}}
{{inc field_select.tpl with $field=$close_services}}{{endinc}}
{{inc field_select.tpl with $field=$close_friends}}{{endinc}}
{{inc field_select.tpl with $field=$close_lastusers}}{{endinc}}
{{inc field_select.tpl with $field=$close_lastphotos}}{{endinc}}
{{inc field_select.tpl with $field=$close_lastlikes}}{{endinc}}
{{inc field_select.tpl with $field=$close_twitter}}{{endinc}}
{{inc field_input.tpl with $field=$TSearchTerm}}{{endinc}}
{{inc field_select.tpl with $field=$close_mapquery}}{{endinc}}
{{inc field_input.tpl with $field=$ELPosX}}{{endinc}}
@ -18,22 +33,9 @@
<input type="submit" value="$submit" class="settings-submit" name="diabook-settings-submit" />
</div>
{{inc field_select.tpl with $field=$close_pages}}{{endinc}}
{{inc field_select.tpl with $field=$close_profiles}}{{endinc}}
{{inc field_select.tpl with $field=$close_helpers}}{{endinc}}
{{inc field_select.tpl with $field=$close_services}}{{endinc}}
{{inc field_select.tpl with $field=$close_friends}}{{endinc}}
{{inc field_select.tpl with $field=$close_lastusers}}{{endinc}}
{{inc field_select.tpl with $field=$close_lastphotos}}{{endinc}}
{{inc field_select.tpl with $field=$close_lastlikes}}{{endinc}}
{{inc field_select.tpl with $field=$close_twitter}}{{endinc}}
{{inc field_select.tpl with $field=$close_mapquery}}{{endinc}}
<div class="settings-submit-wrapper">
<input type="submit" value="$submit" class="settings-submit" name="diabook-settings-submit" />
</div>
<br>
<div class="field select">
<a onClick="restore_boxes()" title="Restore order at right-hand column" style="cursor: pointer;">Restore order at right-hand column</a>
<a onClick="restore_boxes()" title="Restore boxorder at right-hand column" style="cursor: pointer;">Restore boxorder at right-hand column</a>
</div>

View File

@ -23,7 +23,6 @@
@med_bg_colour: #4e4f4e;
@menu_bg_colour: #555753;
//* font colour, aka color: */
@lt_main_colour: #ffff99;
@main_colour: #eeeecc;
@ -48,6 +47,7 @@
@orange: #f8911b;
@lt_orange: #fcaf3e;
@shadow_colour: darken(@main_alt_colour, 86.5%);
@lt_shadow_colour: #888888;
@friendica_blue: #3465a4;
@border2: #babdb6;
@group_show: #9ade00;
@ -66,6 +66,9 @@
//@hover_colour: #729fcf;
@hover_colour: @dk_link_colour;
// other colours
@med_border_colour: #c8bebe;
//* box shadows */
@menu_shadow: 5px 0 10px 0 @shadow_colour;
@main_shadow: 3px 3px 3px 10px 0 @shadow_colour;
@ -96,7 +99,7 @@
//*/
//* text-shadow */
.text_shadow (@h: 1px, @v: 1px, @c: #111) {
.text_shadow (@h: 1px, @v: 1px, @c: @shadow_colour) {
-moz-text-shadow: @h @v @c;
-o-text-shadow: @h @v @c;
-webkit-text-shadow: @h @v @c;
@ -104,7 +107,7 @@
text-shadow: @h @v @c;
}
//* transitions */
.transition (@type: all, @dur: 0.5s, @effect: ease-in-out) {
.transition (@type: all, @dur: 0.75s, @effect: ease-in-out) {
-webkit-transition: @arguments;
-moz-transition: @arguments;
-o-transition: @arguments;
@ -116,7 +119,9 @@
.borders (@size: 1px, @style: solid, @colour: @main_colour) {
border: @size @style @colour;
}
.med_borders (@sz: 2px, @st: solid, @c: @med_border_colour) {
border: @sz @st @c;
}
//* rounded box corners */
.rounded_corners (@r: 5px) {
-o-border-radius: @r;
@ -145,6 +150,12 @@
line-height: 1.1em;
font-family: sans-serif;
}
.font_size_adjust () {
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
-o-text-size-adjust: 100%;
font-size-adjust: 100%;
}
//* reset ul, ol */
.list_reset () {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -11,13 +11,14 @@ q{quotes:"" "";}
article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
audio,canvas,video,time{display:inline-block;*display:inline;*zoom:1;}
audio:not([controls]),[hidden]{display:none;}
html{font-size:100%;overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
html{font-size:100%;overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-o-text-size-adjust:100%;font-size-adjust:100%;}
body{margin:0;padding:0;font-size:14pt;line-height:1.1em;font-family:sans-serif;color:#eeeecc;background-color:#2e2f2e;}
button,input,select,textarea{color:#eeeecc;background-color:#2e2f2e;}
select{border:1px dotted #555555;padding:1px;margin:3px;color:#eeeecc;background:#2e2f2e;max-width:85%;min-width:85px;}
option{padding:1px;color:#eeeecc;background:#2e2f2e;}option[selected="selected"]{color:#2e2f2e;background:#eeeecc;}
tr:nth-child(even){background-color:#474947;}
:focus{outline:0;}
:focus{outline:none;}
a:focus{outline:invert, dashed, thin;}
[disabled="disabled"]{background:#4e4f4e;color:#ddddbb;}
ins,mark{background-color:#2e302e;color:#474947;}
ins{text-decoration:none;}
@ -25,6 +26,9 @@ mark{font-style:italic;font-weight:bold;}
pre,code,kbd,samp,.wall-item-body code{font-family:monospace, monospace;_font-family:monospace;font-size:1em;}
pre,.wall-item-body code{white-space:pre-wrap;white-space:pre;word-wrap:none;}
q{quotes:none;}q:before,q:after{content:"";content:none;}
em{font-style:italic;}
strong{font-weight:bold;}
strike{text-decoration:line-through;}
small{font-size:85%;}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}
sub{bottom:-0.25em;}
@ -33,22 +37,34 @@ img{border:0 none;}
a{color:#88a9d2;text-decoration:none;margin-bottom:1px;}a:hover{color:#638ec4;border-bottom:1px dotted #638ec4;}
a:hover img{text-decoration:none;}
blockquote{background:#444444;color:#eeeecc;text-indent:5px;padding:5px;border:1px solid #9a9a9a;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
label{width:38%;display:inline-block;font-size:0.95em;margin:0 10px 1em 0;border:1px solid #2e2f2e;padding:5px;background:#eeeecc;color:#111111;-moz-box-shadow:3px 3px 5px 0px #111111;-o-box-shadow:3px 3px 5px 0px #111111;-webkit-box-shadow:3px 3px 5px 0px #111111;-ms-box-shadow:3px 3px 5px 0px #111111;box-shadow:3px 3px 5px 0px #111111;}
label{width:38%;display:inline-block;font-size:small;margin:0 10px 1em 0;border:1px solid #2e2f2e;padding:5px;background:#eeeecc;color:#111111;-moz-box-shadow:3px 3px 5px 0px #111111;-o-box-shadow:3px 3px 5px 0px #111111;-webkit-box-shadow:3px 3px 5px 0px #111111;-ms-box-shadow:3px 3px 5px 0px #111111;box-shadow:3px 3px 5px 0px #111111;}
input{width:250px;height:25px;border:1px solid #999999;}input[type="checkbox"],input[type="radio"]{margin:0;width:15px;height:15px;}
input[type="submit"],input[type="button"]{background-color:#eeeeee;border:2px outset #b1b1b1;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 3px 4px 0 #111111;-o-box-shadow:1px 3px 4px 0 #111111;-webkit-box-shadow:1px 3px 4px 0 #111111;-ms-box-shadow:1px 3px 4px 0 #111111;box-shadow:1px 3px 4px 0 #111111;color:#2e302e;cursor:pointer;font-weight:bold;width:auto;-moz-text-shadow:1px 1px #111111;-o-text-shadow:1px 1px #111111;-webkit-text-shadow:1px 1px #111111;-ms-text-shadow:1px 1px #111111;text-shadow:1px 1px #111111;}
input[type="submit"]:active,input[type="button"]:active{-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;}
h1,h2,h3,h4,h5,h6{margin:10px 0px;font-weight:bold;border-bottom:1px solid #638ec4;}
.required{display:inline;color:#ff0;font-size:16px;font-weight:bold;margin:3px;}
h1{font-size:x-large;}
h2{font-size:large;}
h3{font-size:medium;}
h4{font-size:small;}
h5{font-size:x-small;}
h6{font-size:xx-small;}
.required{display:inline;color:red;font-size:16px;font-weight:bold;margin:3px;}
.fakelink,.lockview{color:#88a9d2;cursor:pointer;}
.fakelink:hover{color:#638ec4;}
.smalltext{font-size:0.7em;}
#panel{position:absolute;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;border:1px solid #eeeeee;background-color:#2e302e;color:#eeeecc;padding:1em;}
.pager{margin-top:60px;display:block;clear:both;text-align:center;font-size:small;font-weight:bold;}.pager span{padding:4px;margin:4px;}
.pager_current{background-color:#88a9d2;color:#2e2f2e;}
.action{margin:5px 0;}
.tool{margin:5px 0;list-style:none;}
#articlemain{width:100%;height:100%;margin:0 auto;}
[class$="-desc"],[id$="-desc"]{color:#2e2f2e;background:#eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:3px 3px 5px 0px #111111;-o-box-shadow:3px 3px 5px 0px #111111;-webkit-box-shadow:3px 3px 5px 0px #111111;-ms-box-shadow:3px 3px 5px 0px #111111;box-shadow:3px 3px 5px 0px #111111;margin:3px 10px 7px 0;padding:6px 7px;font-weight:bold;font-size:smaller;}
.button,#profile-listing-desc{width:25%;height:auto;background:#555753;color:#eeeecc;border:2px outset #222321;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;padding:5px;font-size:smaller;cursor:pointer;}.button.active,#profile-listing-desc.active{-moz-box-shadow:4px 4px 7px 0px #111111;-o-box-shadow:4px 4px 7px 0px #111111;-webkit-box-shadow:4px 4px 7px 0px #111111;-ms-box-shadow:4px 4px 7px 0px #111111;box-shadow:4px 4px 7px 0px #111111;}
.button a,#profile-listing-desc a{color:#eeeecc;font-size:smaller;font-weight:bold;}
[class$="-desc"],[id$="-desc"]{color:#2e2f2e;border:1px outset #eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;margin:3px 10px 7px 0;padding:5px;font-weight:bold;font-size:smaller;}
#item-delete-selected-desc{float:left;margin-right:5px;}#item-delete-selected-desc:hover{text-decoration:underline;}
.intro-approve-as-friend-desc{margin-top:10px;}
.intro-desc{margin-bottom:20px;font-weight:bold;}
#group-edit-desc{margin:10px 0px;}
#settings-nickname-desc{background:#eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;border:1px solid #eeeecc;padding:5px;color:#2e2f2e;}
.contactname,.contact-name{font-weight:bold;font-size:smaller;}
.contact-details{font-style:italic;font-size:smaller;}
#asidemain .field{overflow:hidden;width:200px;}
#login-extra-links{overflow:auto !important;padding-top:60px !important;width:100% !important;}#login-extra-links a{margin-right:20px;}
#login_standard{display:block !important;float:none !important;height:100% !important;position:relative !important;width:100% !important;}#login_standard .field label{width:200px !important;}
@ -60,7 +76,7 @@ h1,h2,h3,h4,h5,h6{margin:10px 0px;font-weight:bold;border-bottom:1px solid #638e
#login_openid label{width:180px !important;}
nav{height:60px;background-color:#1d1f1d;color:#eeeeee;position:relative;padding:20px 20px 10px 95px;}nav a{text-decoration:none;color:#eeeeee;border:0px;}nav a:hover{text-decoration:none;color:#eeeeee;border:0px;}
nav #banner{display:block;position:absolute;left:51px;top:25px;}nav #banner #logo-text a{font-size:40px;font-weight:bold;margin-left:3px;}
ul#user-menu-popup{display:none;position:absolute;background-color:#555753;width:100%;padding:10px 0px;margin:0px;top:20px;left:0;font-size:small;line-height:1;-o-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-ms-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-moz-box-shadow:5px 5px 10px 0px #111111;-o-box-shadow:5px 5px 10px 0px #111111;-webkit-box-shadow:5px 5px 10px 0px #111111;-ms-box-shadow:5px 5px 10px 0px #111111;box-shadow:5px 5px 10px 0px #111111;z-index:10000;}ul#user-menu-popup li{display:block;}ul#user-menu-popup li a{display:block;padding:5px;}ul#user-menu-popup li a:hover{color:#eeeecc;background-color:#2e302e;}
ul#user-menu-popup{display:none;position:absolute;background-color:#555753;width:100%;padding:10px 0px;margin:0px;top:20px;left:0;font-size:small;line-height:1;-o-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-ms-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-moz-box-shadow:5px 5px 10px 0px #111111;-o-box-shadow:5px 5px 10px 0px #111111;-webkit-box-shadow:5px 5px 10px 0px #111111;-ms-box-shadow:5px 5px 10px 0px #111111;box-shadow:5px 5px 10px 0px #111111;z-index:10000;}ul#user-menu-popup li{display:block;}ul#user-menu-popup li a{display:block;padding:5px;color:#eeeeee;background-color:#555753;}ul#user-menu-popup li a:hover{color:#2e2f2e;background-color:#eeeeee;}
ul#user-menu-popup li a.nav-sep{border-top:1px solid #2e302e;}
nav .nav-link{display:inline-block;width:22px;height:22px;overflow:hidden;margin:0px 5px 5px;text-indent:50px;background:transparent url(dark/icons.png) 0 0 no-repeat;}
#nav-apps-link{background-position:0 -66px;}#nav-apps-link:hover{background-position:-22px -66px;}
@ -78,8 +94,7 @@ nav .nav-link{display:inline-block;width:22px;height:22px;overflow:hidden;margin
#jot-title,#profile-link,#profile-title,#profile-attach-wrapper,#profile-audio,#profile-link,#profile-location,#profile-nolocation,#profile-title,#profile-upload-wrapper,#profile-video,#profile-jot-submit,#wall-image-upload,#wall-file-upload,#wall-image-upload-div,#wall-file-upload-div,.icon,.hover,.focus,.pointer{cursor:pointer;}
div.jGrowl div.notice{background:#3320bc url("../../../images/icons/48/notice.png") no-repeat 5px center;color:white;padding-left:58px;margin-top:50px;}
div.jGrowl div.info{background:#1353b1 url("../../../images/icons/48/info.png") no-repeat 5px center;color:white;padding-left:58px;margin-top:50px;}
#nav-notifications-menu{margin:30px 0 0 -20px;width:275px;max-height:300px;overflow-y:auto;font-size:9pt;}#nav-notifications-menu .contactname{font-weight:bold;font-size:0.9em;}
#nav-notifications-menu img{float:left;margin-right:5px;}
#nav-notifications-menu{margin:30px 0 0 -20px;width:275px;max-height:300px;overflow-y:auto;font-size:9pt;}#nav-notifications-menu img{float:left;margin-right:5px;}
#nav-notifications-menu .notif-when{font-size:0.8em;display:block;}
#nav-notifications-menu li{word-wrap:normal;border-bottom:1px solid black;}#nav-notifications-menu li:hover{color:black;}
#nav-notifications-menu a:hover{color:black;text-decoration:underline;}
@ -90,11 +105,13 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
#nav-buttons{clear:both;list-style:none;padding:0px;margin:0px;height:25px;}#nav-buttons>li{padding:0;display:inline-block;margin:0px -4px 0px 0px;}
.floaterflip{display:block;position:fixed;z-index:110;top:56px;right:19px;width:22px;height:22px;overflow:hidden;margin:0px;background:transparent url(dark/icons.png) -190px -60px no-repeat;}
.search-box{display:inline-block;margin:5px;position:fixed;right:0px;bottom:0px;z-index:100;background:#1d1f1d;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
#search-text{border:1px solid #eeeecc;background:#2e2f2e;color:#eeeecc;font-size:8pt;margin:8px;width:10em;height:14px;}
#search-text,#mini-search-text{background:#2e2f2e;color:#eeeecc;margin:8px;}
#search-text{border:1px solid #eeeecc;}
#mini-search-text{font-size:8pt;height:14px;width:10em;}
#scrollup{position:fixed;right:5px;bottom:40px;z-index:100;}#scrollup a:hover{text-decoration:none;border:0;}
#user-menu{-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;display:block;width:75%;margin:3px 0 0 0;position:relative;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;background-color:#555753;background-image:url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAIAAwDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMH/8QAIhAAAQMEAgIDAAAAAAAAAAAAAQIDBAAFBhESIQdBMVFh/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgP/xAAXEQEBAQEAAAAAAAAAAAAAAAABAAIR/9oADAMBAAIRAxEAPwCXiHO8dbsEi35BEhIehNlbUhxhBU82O+G9bKgToD2D+VlmZX9OWZBJuAiMxGlni0w0gJCED4HXv7pSi6eFML//2Q==");background-position:98% center;background-repeat:no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;}
#user-menu{-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;display:block;width:75%;margin:3px 0 0 0;position:relative;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;background-color:#555753;background-image:url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAIAAwDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMH/8QAIhAAAQMEAgIDAAAAAAAAAAAAAQIDBAAFBhESIQdBMVFh/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgP/xAAXEQEBAQEAAAAAAAAAAAAAAAABAAIR/9oADAMBAAIRAxEAPwCXiHO8dbsEi35BEhIehNlbUhxhBU82O+G9bKgToD2D+VlmZX9OWZBJuAiMxGlni0w0gJCED4HXv7pSi6eFML//2Q==");background-position:98% center;background-repeat:no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;outline:0 none;}
#user-menu-label{font-size:small;padding:3px 20px 9px 5px;height:10px;}
.nav-ajax-update,.nav-ajax-left{width:30px;height:19px;background:transparent url(dark/notifications.png) 0 0 no-repeat;color:#222;font-weight:bold;font-size:0.8em;padding-top:0.2em;text-align:center;float:left;margin:0 -1px 0 3px;display:block;visibility:hidden;}
.nav-ajax-update,.nav-ajax-left{width:30px;height:19px;background:transparent url(dark/notifications.png) 0 0 no-repeat;color:#111111;font-weight:bold;font-size:0.8em;padding-top:0.2em;text-align:center;float:left;margin:0 -1px 0 3px;display:block;visibility:hidden;}
.nav-ajax-update.show,.nav-ajax-left.show{visibility:visible;}
#net-update{background-position:0px 0px;}
#mail-update{background-position:-30px 0;}
@ -103,17 +120,18 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
#intro-update{background-position:-120px 0px;}
#lang-select-icon{cursor:pointer;position:fixed;left:28px;bottom:6px;z-index:10;}
#language-selector{position:fixed;bottom:2px;left:52px;z-index:10;}
.menu-popup{position:absolute;display:none;width:11em;background:white;color:#2e2f2e;margin:0px;padding:0px;border:3px solid #2e3436;z-index:100000;-moz-box-shadow:5px 5px 5px 0px #111111;-o-box-shadow:5px 5px 5px 0px #111111;-webkit-box-shadow:5px 5px 5px 0px #111111;-ms-box-shadow:5px 5px 5px 0px #111111;box-shadow:5px 5px 5px 0px #111111;}.menu-popup a{display:block;color:#2e2f2e;padding:5px 10px;text-decoration:none;}.menu-popup a:hover{background-color:#b9c1c3;}
.menu-popup{position:absolute;display:none;width:11em;background:white;color:#2e2f2e;margin:0px;padding:0px;border:3px solid #88a9d2;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;z-index:100000;-moz-box-shadow:5px 5px 5px 0px #111111;-o-box-shadow:5px 5px 5px 0px #111111;-webkit-box-shadow:5px 5px 5px 0px #111111;-ms-box-shadow:5px 5px 5px 0px #111111;box-shadow:5px 5px 5px 0px #111111;}.menu-popup a{display:block;color:#2e2f2e;padding:5px 10px;text-decoration:none;}.menu-popup a:hover{color:#eeeecc;background-color:#88a9d2;}
.menu-popup .menu-sep{border-top:1px solid #4e4f4e;}
.menu-popup li{float:none;overflow:auto;height:auto;display:block;}.menu-popup li img{float:left;width:16px;height:16px;padding-right:5px;}
.menu-popup .empty{padding:5px;text-align:center;color:#9ea8ac;}
.notif-item{font-size:small;}.notif-item a{vertical-align:middle;}
.notif-image{width:32px;height:32px;padding:7px 7px 0px 0px;}
.notify-seen{background:#bbbbbb;}
.notify-seen{background:#ddddbb;color:#eeeecc;}
.notify-unseen{color:#eeeecc;}
#sysmsg_info{position:fixed;bottom:0;-moz-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-o-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-webkit-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-ms-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;}
#sysmsg{position:fixed;bottom:0;-moz-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-o-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-webkit-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-ms-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;}
#sysmsg_info br,#sysmsg br{display:block;margin:2px 0px;border-top:1px solid #eeeecc;}
#asidemain{float:left;font-size:0.75em;margin:20px 0 20px 35px;width:25%;display:inline;}
#asidemain{float:left;font-size:small;margin:20px 0 20px 35px;width:25%;display:inline;}
#asideright,#asideleft{display:none;}
.vcard .fn{font-size:1.5em;font-weight:bold;border-bottom:1px solid #638ec4;padding-bottom:3px;}
.vcard #profile-photo-wrapper{margin:20px;}.vcard #profile-photo-wrapper img{-moz-box-shadow:3px 3px 10px 0 #111111;-o-box-shadow:3px 3px 10px 0 #111111;-webkit-box-shadow:3px 3px 10px 0 #111111;-ms-box-shadow:3px 3px 10px 0 #111111;box-shadow:3px 3px 10px 0 #111111;}
@ -150,11 +168,11 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
#profile-jot-net{margin:5px 0;}
#jot-preview-link{margin:0 0 0 10px;border:0;text-decoration:none;float:right;}
.icon-text-preview{margin:0 0 -18px 0;display:block;width:20px;height:20px;background:url(dark/icons.png) no-repeat -128px -40px;border:0;text-decoration:none;float:right;cursor:pointer;}
#profile-jot-perms{float:right;background-color:#555753;width:22px;height:22px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;overflow:hidden;border:0px;margin:0 10px 0 10px;}
#profile-jot-perms{float:right;color:#555753;width:20px;height:20px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:3px 3px 5px 0 #111111;-o-box-shadow:3px 3px 5px 0 #111111;-webkit-box-shadow:3px 3px 5px 0 #111111;-ms-box-shadow:3px 3px 5px 0 #111111;box-shadow:3px 3px 5px 0 #111111;border:2px outset #555753;overflow:hidden;margin:0 10px 0 10px;}
#profile-jot-plugin-wrapper{width:1px;margin:10px 0 0 0;float:right;}
#profile-jot-submit-wrapper{float:right;width:100%;margin:10px 0 0 0;padding:0;}
#profile-jot-submit{height:auto;background-color:#555753;color:#eeeeee;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;border:2px outset #2e3436;margin:0;float:right;-moz-text-shadow:1px 1px #111111;-o-text-shadow:1px 1px #111111;-webkit-text-shadow:1px 1px #111111;-ms-text-shadow:1px 1px #111111;text-shadow:1px 1px #111111;width:auto;}#profile-jot-submit:active{-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;}
#jot-perms-icon{width:20px;height:22px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;overflow:hidden;}
#jot-perms-icon{width:22px;height:22px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;overflow:hidden;background:#555753 url("dark/icons.png") -88px -40px;}
#group_allow_wrapper,#group_deny_wrapper,#acl-permit-outer-wrapper,#contact_allow_wrapper,#contact_deny_wrapper,#acl-deny-outer-wrapper{width:47%;}
#group_allow_wrapper,#group_deny_wrapper,#acl-permit-outer-wrapper{float:left;}
#contact_allow_wrapper,#contact_deny_wrapper,#acl-deny-outer-wrapper{float:right;}
@ -162,18 +180,18 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
#jot-public{background-color:#555555;color:#ff0000;padding:5px;float:left;}
#acl-deny-text{background-color:#555555;color:#eeeecc;padding:5px;float:left;}
#jot-title-desc{color:#cdcdcd;}
#profile-jot-desc{color:#ff2000;margin:5px 0;}
#profile-jot-desc{background:#2e2f2e;border:1px solid #eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;color:#ff2000;margin:5px 0;}
#jot-title-wrapper{margin-bottom:5px;}
#jot-title-display{font-weight:bold;}
.jothidden{display:none;}
#jot-preview-content{background-color:#2e302e;color:#eeeecc;border:1px solid #eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:5px 0 10px 0px #111111;-o-box-shadow:5px 0 10px 0px #111111;-webkit-box-shadow:5px 0 10px 0px #111111;-ms-box-shadow:5px 0 10px 0px #111111;box-shadow:5px 0 10px 0px #111111;padding:3px 3px 6px 10px;}#jot-preview-content .wall-item-outside-wrapper{border:0;-o-border-radius:0px 0px 0px 0px;-webkit-border-radius:0px 0px 0px 0px;-moz-border-radius:0px 0px 0px 0px;-ms-border-radius:0px 0px 0px 0px;border-radius:0px 0px 0px 0px;-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;}
#jot-preview-content{background-color:#2e3436;color:#eeeecc;border:1px solid #2e2f2e;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:5px 0 10px 0px #111111;-o-box-shadow:5px 0 10px 0px #111111;-webkit-box-shadow:5px 0 10px 0px #111111;-ms-box-shadow:5px 0 10px 0px #111111;box-shadow:5px 0 10px 0px #111111;padding:3px 3px 6px 10px;}#jot-preview-content .wall-item-outside-wrapper{border:0;-o-border-radius:0px 0px 0px 0px;-webkit-border-radius:0px 0px 0px 0px;-moz-border-radius:0px 0px 0px 0px;-ms-border-radius:0px 0px 0px 0px;border-radius:0px 0px 0px 0px;-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;}
#sectionmain{margin:20px;font-size:0.8em;min-width:475px;width:67%;float:left;display:inline;}
.tabs{margin:0px;padding:0px;list-style:none;list-style-position:inside;margin:10px 0;}.tabs li{display:inline;font-size:smaller;font-weight:bold;}
.tab{border:1px solid #88a9d2;padding:4px;}.tab:hover,.tab.active:hover,.tab:active{background:#88a9d2;color:#2e2f2e;}
.tab.active{background:#eeeecc;color:#2e2f2e;}.tab.active a{color:#2e2f2e;}
.tabs{margin:0px;padding:0px;list-style:none;list-style-position:inside;margin:10px 0;}.tabs li{display:inline;font-size:smaller;}
.tab{border:1px solid #638ec4;padding:4px;}.tab:hover,.tab:active{background:#2e3436;color:#eeeecc;border:1px solid #638ec4;}
.tab.active{background:#eeeecc;color:#2e2f2e;border:1px solid #638ec4;}.tab.active:hover{background:#2e3436;color:#eeeecc;border:1px solid #638ec4;}
.tab.active a{color:#2e2f2e;text-decoration:none;}
.tab a{border:0;text-decoration:none;}
.wall-item-outside-wrapper{border:1px solid #aaaaaa;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;}.wall-item-outside-wrapper.comment{margin-top:5px;}
.wall-item-outside-wrapper-end{clear:both;}
.wall-item-outside-wrapper{border:1px solid #a9a9a9;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:6px 1px 10px -2px #111111;-o-box-shadow:6px 1px 10px -2px #111111;-webkit-box-shadow:6px 1px 10px -2px #111111;-ms-box-shadow:6px 1px 10px -2px #111111;box-shadow:6px 1px 10px -2px #111111;}.wall-item-outside-wrapper.comment{margin-top:5px;}
.wall-item-content-wrapper{position:relative;padding:0.75em;width:auto;}
.wall-item-outside-wrapper .wall-item-comment-wrapper{}
.shiny{background:#2e3436;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
@ -183,33 +201,32 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
[id^="tread-wrapper"],[class^="tread-wrapper"]{margin:1.2em 0 0 0;padding:0px;}
.wall-item-photo-menu{display:none;}
.wall-item-photo-menu-button{display:none;text-indent:-99999px;background:#555753 url(dark/menu-user-pin.jpg) no-repeat 75px center;position:absolute;overflow:hidden;width:90px;height:20px;top:85px;left:0;-o-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-ms-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;}
.wall-item-info{float:left;width:110px;}
.wall-item-info{float:left;width:8em;}
.wall-item-photo-wrapper{width:80px;height:80px;position:relative;padding:5px;background-color:#555753;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
[class^="wall-item-tools"] *{}[class^="wall-item-tools"] *>*{}
.wall-item-tools{float:right;opacity:0.4;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}.wall-item-tools:hover{opacity:1;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}
.wall-item-tools{float:right;opacity:0.4;-webkit-transition:all 0.75s ease-in-out;-moz-transition:all 0.75s ease-in-out;-o-transition:all 0.75s ease-in-out;-ms-transition:all 0.75s ease-in-out;transition:all 0.75s ease-in-out;}.wall-item-tools:hover{opacity:1;-webkit-transition:all 0.75s ease-in-out;-moz-transition:all 0.75s ease-in-out;-o-transition:all 0.75s ease-in-out;-ms-transition:all 0.75s ease-in-out;transition:all 0.75s ease-in-out;}
.wall-item-subtools1{width:30px;height:30px;list-style:none outside none;margin:18px 0 30px -20px;padding:0;}
.wall-item-subtools2{width:25px;height:25px;list-style:none outside none;margin:-78px 0 0 5px;padding:0;}
.wall-item-title{font-size:1.2em;font-weight:bold;margin-bottom:1.4em;}
.wall-item-body{margin:15px 10px 10px 0px;text-align:left;overflow-x:auto;}
.wall-item-lock-wrapper{float:right;width:22px;height:22px;margin:0 -5px 0 0;opacity:1;}
.wall-item-dislike,.wall-item-like{clear:left;font-size:0.8em;color:#888b85;margin:5px 0 5px 10.2em;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;opacity:0.5;}.wall-item-dislike:hover,.wall-item-like:hover{opacity:1;}
.wall-item-author,.wall-item-actions-author{clear:left;float:left;font-size:0.8em;color:#888b85;margin:1em auto 0 0.2em;}
.wall-item-ago{display:inline;padding-left:10px;}
.wall-item-wrapper-end{clear:both;}
.wall-item-dislike,.wall-item-like{clear:left;font-size:0.8em;color:#888b85;margin:5px 0 5px 10.2em;-webkit-transition:all 0.75s ease-in-out;-moz-transition:all 0.75s ease-in-out;-o-transition:all 0.75s ease-in-out;-ms-transition:all 0.75s ease-in-out;transition:all 0.75s ease-in-out;opacity:0.5;}.wall-item-dislike:hover,.wall-item-like:hover{opacity:1;}
.wall-item-author,.wall-item-actions-author,.wall-item-ago{clear:left;float:left;color:#eeeecc;line-height:1;display:inline-block;font-size:0.75em;margin:0.5em auto 0;}
.wall-item-author,.wall-item-actions-author{margin:0.5em auto 0;font-size:0.75em;font-weight:bold;}
.wall-item-location{margin-top:15px;width:100px;overflow:hidden;-moz-text-overflow:ellipsis;-ms-text-verflow:ellipsis;-o-text-overflow:ellipsis;-webkit-text-overflow:ellipsis;text-overflow:ellipsis;}.wall-item-location .icon{float:left;}
.wall-item-location>a,.wall-item-location .smalltext{margin-left:25px;font-size:0.7em;display:block;}
.wall-item-location>br{display:none;}
.wallwall .wwto{left:5px;margin:0;position:absolute;top:75px;z-index:10001;width:30px;height:30px;}.wallwall .wwto img{width:30px !important;height:30px !important;}
.wallwall .wall-item-photo-end{clear:both;}
.wall-item-arrowphoto-wrapper{position:absolute;left:35px;top:80px;z-index:10002;}
.wall-item-photo-menu{min-width:92px;border:2px solid #ffffff;border-top:0px;background:#555753;position:absolute;left:-2px;top:101px;display:none;z-index:10003;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}.wall-item-photo-menu li a{white-space:nowrap;display:block;padding:5px 2px;color:#eeeeee;}.wall-item-photo-menu li a:hover{color:#555753;background:#eeeeee;}
.wall-item-photo-menu{min-width:92px;font-size:0.75em;border:2px solid #555753;border-top:0px;background:#555753;position:absolute;left:-2px;top:101px;display:none;z-index:10003;-o-border-radius:0 5px 5px 5px;-webkit-border-radius:0 5px 5px 5px;-moz-border-radius:0 5px 5px 5px;-ms-border-radius:0 5px 5px 5px;border-radius:0 5px 5px 5px;}.wall-item-photo-menu li a{white-space:nowrap;display:block;padding:5px 6px;color:#eeeeee;}.wall-item-photo-menu li a:hover{color:#555753;background:#eeeeee;}
#item-delete-selected{overflow:auto;width:100%;}
#connect-services-header,#connect-services,#extra-help-header,#extra-help,#postit-header,#postit{margin:5px 0 0 0;}
.ccollapse-wrapper{font-size:0.9em;margin-left:5em;}
.hide-comments-outer{font-size:small;}
.wall-item-outside-wrapper.comment{margin-left:5em;}.wall-item-outside-wrapper.comment .wall-item-photo{width:40px !important;height:40px !important;}
.wall-item-outside-wrapper.comment .wall-item-photo-wrapper{width:40px;height:40px;}
.wall-item-outside-wrapper.comment .wall-item-photo-menu-button{width:50px;top:45px;background-position:35px center;}
.wall-item-outside-wrapper.comment .wall-item-info{width:60px;}
.wall-item-outside-wrapper.comment .wall-item-body{margin-left:10px;}
.wall-item-outside-wrapper.comment .wall-item-author{margin-left:0.2em;}
.wall-item-outside-wrapper.comment .wall-item-photo-menu{min-width:50px;top:60px;}
@ -220,11 +237,11 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
.comment-edit-photo-link,.comment-edit-photo{margin-left:10px;}
.my-comment-photo{width:40px;height:40px;padding:5px;}
[class^="comment-edit-text"]{margin:5px 0 10px 20px;width:94%;}
.comment-edit-text-empty{height:20px;border:2px #c8bebe solid;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;color:#c8bebe;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}.comment-edit-text-empty:hover{color:#999999;}
.comment-edit-text-full{height:10em;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}
.comment-edit-text-empty{height:20px;border:2px solid #c8bebe;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;color:#c8bebe;-webkit-transition:all 0.75s ease-in-out;-moz-transition:all 0.75s ease-in-out;-o-transition:all 0.75s ease-in-out;-ms-transition:all 0.75s ease-in-out;transition:all 0.75s ease-in-out;}.comment-edit-text-empty:hover{color:#999999;}
.comment-edit-text-full{height:10em;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-webkit-transition:all 0.75s ease-in-out;-moz-transition:all 0.75s ease-in-out;-o-transition:all 0.75s ease-in-out;-ms-transition:all 0.75s ease-in-out;transition:all 0.75s ease-in-out;}
.comment-edit-submit-wrapper{width:90%;margin:5px 5px 10px 50px;text-align:right;}
.comment-edit-submit{height:22px;background-color:#555753;color:#eeeeee;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;border:0;}
.wall-item-body code{background-color:#444444;border-bottom:1px dashed #cccccc;border-left:5px solid #cccccc;border-top:1px dashed #cccccc;display:block;overflow-x:auto;padding:5px 0 15px 10px;width:95%;}.wall-item-body code a{color:#adc4e0;}
.wall-item-body code{background-color:#444444;border-bottom:1px dashed #cccccc;border-left:5px solid #cccccc;border-top:1px dashed #cccccc;color:#eeeecc;display:block;overflow-x:auto;padding:5px 0 15px 10px;width:95%;}.wall-item-body code a{color:#adc4e0;}
div[id$="text"]{font-weight:bold;border-bottom:1px solid #cccccc;}
div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:left;}
.profile-match-wrapper{float:left;margin:0 5px 40px 0;width:120px;height:120px;padding:3px;position:relative;}
@ -236,7 +253,7 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
#advanced-profile-with{margin-left:200px;}
.photos{height:auto;overflow:auto;}
#photo-top-links{margin-bottom:30px;}
.photo-album-image-wrapper,.photo-top-image-wrapper{float:left;-moz-box-shadow:5px 5px 5px 0px #111111;-o-box-shadow:5px 5px 5px 0px #111111;-webkit-box-shadow:5px 5px 5px 0px #111111;-ms-box-shadow:5px 5px 5px 0px #111111;box-shadow:5px 5px 5px 0px #111111;background-color:#222222;color:#2e2f2e;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;padding-bottom:30px;position:relative;margin:0 10px 10px 0;}
.photo-album-image-wrapper,.photo-top-image-wrapper{float:left;-moz-box-shadow:3px 3px 10px 0 #111111;-o-box-shadow:3px 3px 10px 0 #111111;-webkit-box-shadow:3px 3px 10px 0 #111111;-ms-box-shadow:3px 3px 10px 0 #111111;box-shadow:3px 3px 10px 0 #111111;background-color:#222222;color:#2e2f2e;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;padding-bottom:30px;position:relative;margin:0 10px 10px 0;}
#photo-photo{max-width:100%;}#photo-photo img{max-width:100%;}
.photo-top-image-wrapper a:hover,#photo-photo a:hover,.photo-album-image-wrapper a:hover{border-bottom:0;}
.photo-top-photo,.photo-album-photo{-o-border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-ms-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}
@ -279,11 +296,12 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
.mail-conv-subject{clear:right;font-weight:bold;font-size:1.2em;}
.mail-conv-body{clear:both;}
.mail-conv-delete-wrapper{margin-top:5px;}
.view-contact-wrapper,.contact-entry-wrapper{float:left;margin:0 5px 40px 0;width:120px;height:120px;padding:3px;position:relative;}
.view-contact-wrapper,.contact-entry-wrapper{float:left;margin:0 5px 40px 0;width:120px;height:135px;padding:3px;position:relative;}
.contact-direction-wrapper{position:absolute;top:20px;}
.contact-edit-links{position:absolute;top:60px;}
.contact-entry-photo{margin-left:20px;}
.contact-entry-name{width:120px;font-weight:bold;}
.contact-entry-name{width:120px;font-weight:bold;font-size:small;}
.contact-entry-details{font-size:x-small;}
.contact-entry-photo{position:relative;}
.contact-entry-edit-links .icon{border:1px solid #babdb6;-o-border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;background-color:white;}
#contact-entry-url,[id^="contact-entry-url"],#contact-entry-network,[id^="contact-entry-network"]{font-size:smaller;}
@ -304,7 +322,6 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
.contact-photo-menu-button{position:absolute;background:url("dark/photo-menu.jpg") top left no-repeat transparent;margin:0px;padding:0px;width:16px;height:16px;top:64px;left:0px;overflow:hidden;text-indent:40px;display:none;}
.contact-photo-menu{width:auto;border:2px solid #444444;background:#2e2f2e;color:#eeeecc;position:absolute;left:0px;top:90px;display:none;z-index:10000;}.contact-photo-menu li a{display:block;padding:2px;}.contact-photo-menu li a:hover{color:white;background:#3465A4;text-decoration:none;}
#id_openid_url{background:url(dark/login-bg.gif) no-repeat;background-position:0 50%;padding-left:18px;}
#settings-nickname-desc{background-color:#eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;padding:5px;color:#111111;}
#settings-default-perms{margin-bottom:20px;}
#register-form div,#profile-edit-form div{clear:both;}
.settings-block label{clear:left;}
@ -312,7 +329,7 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
#register-form label,#profile-edit-form label{width:300px;float:left;}
#register-form span,#profile-edit-form span{color:#555753;display:block;margin-bottom:20px;}
#profile-edit-marital-label span{margin:-4px;}
.settings-submit-wrapper,.profile-edit-submit-wrapper{margin:0 0 30px -3px;}
.settings-submit-wrapper,.profile-edit-submit-wrapper{margin:0 0 30px;}
.profile-edit-side-div{display:none;}
#profiles-menu-trigger{margin:0px 0px 0px 25px;}
.profile-listing{float:left;margin:20px 20px 0px 0px;}
@ -325,7 +342,6 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
#theme-preview img{margin:10px 10px 10px 288px;}
.group-delete-wrapper{margin:-31px 50px 0 0;float:right;}
#group-edit-submit-wrapper{margin:0 0 10px 0;display:inline;}
#group-edit-desc{margin:10px 0px;}
#group-members,#prof-members{height:200px;overflow:auto;border:1px solid #555753;-o-border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-ms-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}
#group-all-contacts,#prof-all-contacts{height:200px;overflow:auto;border:1px solid #555753;-o-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-ms-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;}
#group-members h3,#group-all-contacts h3,#prof-members h3,#prof-all-contacts h3{color:#eeeeee;background-color:#555753;margin:0;padding:5px;}
@ -334,18 +350,16 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
#crop-image-form{clear:both;}
.intro-wrapper{margin-top:20px;}
.intro-fullname{font-size:1.1em;font-weight:bold;}
.intro-desc{margin-bottom:20px;font-weight:bold;}
.intro-note{padding:10px;}
.intro-end{padding:30px;}
.intro-form{float:left;}
.intro-approve-form,.intro-approve-as-friend-end{clear:both;}
.intro-approve-form{clear:both;}
.intro-submit-approve,.intro-submit-ignore{margin-right:20px;}
.intro-submit-approve{margin-top:15px;}
.intro-approve-as-friend-label,.intro-approve-as-fan-label,.intro-approve-as-friend,.intro-approve-as-fan{float:left;}
.intro-form-end{clear:both;margin-bottom:10px;}
.intro-approve-as-friend-desc{margin-top:10px;}
.intro-approve-as-end{clear:both;margin-bottom:10px;}
.intro-end,.clear{clear:both;}
.clear{clear:both;}
.eventcal{float:left;font-size:20px;}
.event{background:#2e2f2e;}
.vevent{border:1px solid #cccccc;}.vevent .event-description,.vevent .event-location,.vevent .event-start{margin-left:10px;margin-right:10px;}
@ -372,17 +386,16 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
#item-delete-selected{margin-top:30px;}
.delete-checked{position:absolute;left:35px;margin-top:20px;}
#item-delete-selected-icon{float:left;margin-right:5px;}
#item-delete-selected-desc{float:left;margin-right:5px;}#item-delete-selected-desc:hover{text-decoration:underline;}
.fc-state-highlight{background:#eeeecc;color:#2e2f2e;}
.directory-item{float:left;margin:0 5px 4px 0;padding:3px;width:180px;height:250px;position:relative;}
#group-sidebar{margin-bottom:10px;}
.group-selected,.nets-selected,.fileas-selected{padding:3px;color:#2e2f2e;background:#eeeecc;font-weight:bold;}
.group-selected:hover,.nets-selected:hover,.fileas-selected:hover{color:#88a9d2;background:#2e2f2e;}
.group-selected,.nets-selected,.fileas-selected{padding:3px;color:#2e2f2e;background:#eeeecc;border:1px solid #88a9d2;}
.group-selected:hover,.nets-selected:hover,.fileas-selected:hover{padding:3px;color:#88a9d2;background:#2e2f2e;border:1px solid #88a9d2;}
.groupsideedit{margin-right:10px;}
#sidebar-group-ul{padding-left:0;}
#sidebar-group-list{margin:0 0 5px 0;}#sidebar-group-list li{margin-top:10px;}
#sidebar-group-list .icon{display:inline-block;width:12px;height:12px;}
.sidebar-group-element{padding:3px;}.sidebar-group-element:hover{color:#2e2f2e;background:#88a9d2;font-weight:bold;padding:3px;}
.sidebar-group-element{padding:3px;}.sidebar-group-element:hover{color:#2e2f2e;background:#2e3436;border:1px solid #638ec4;padding:3px;}
#sidebar-new-group{margin:auto;display:inline-block;color:#eeeeee;text-decoration:none;text-align:center;}
#peoplefind-sidebar form{margin-bottom:10px;}
#sidebar-new-group:hover{}
@ -394,7 +407,7 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
#pending-update{float:right;color:white;font-weight:bold;background-color:red;padding:0 0.3em;}
.admin.linklist{border:0;padding:0;}
.admin.link{margin:0px;padding:0px;list-style:none;list-style-position:inside;}
#adminpage{color:#eeeecc;background:#2e2f2e;margin:5px;padding:10px;}#adminpage dl{clear:left;margin-bottom:2px;padding-bottom:2px;border-bottom:1px solid #111111;}
#adminpage{color:#eeeecc;background:#2e2f2e;margin:5px;padding:10px;font-size:smaller;}#adminpage dl{clear:left;margin-bottom:2px;padding-bottom:2px;border-bottom:1px solid #111111;}
#adminpage dt{width:250px;float:left;font-weight:bold;}
#adminpage dd{margin-left:250px;}
#adminpage h3{border-bottom:1px solid #cccccc;}
@ -402,24 +415,28 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
#adminpage #pluginslist{margin:0;padding:0;}
#adminpage .plugin{display:block;border:1px solid #888888;padding:1em;margin-bottom:5px;clear:left;}
#adminpage .toggleplugin{float:left;margin-right:1em;}
#adminpage table{width:100%;border-bottom:1px solid #111111;margin:5px 0;}#adminpage table th{text-align:left;}
#adminpage table{width:100%;border-bottom:1px solid #111111;margin:5px 0;}#adminpage table th{font-weight:bold;text-align:left;}
#adminpage table td{padding:5px;vertical-align:middle;}
#adminpage table#users{padding:5px;}#adminpage table#users img{width:16px;height:16px;}
#adminpage table#users a{color:#eeeecc;text-decoration:underline;}
#adminpage td .icon{float:left;}
#adminpage table#users img{width:16px;height:16px;}
#adminpage .selectall{text-align:right;}
#adminpage #users a{color:#eeeecc;text-decoration:underline;}
#users .name{color:#eeeecc;}
.field{overflow:auto;}.field label{width:38%;display:inline-block;margin:0 10px 1em 0;border:1px #2e2f2e solid;padding:5px;background:#eeeecc;color:#111;}
#users .tools{padding:5px 0;vertical-align:middle;}
.field{overflow:auto;}
.field .onoff{float:right;margin:0 330px 0 auto;width:80px;}.field .onoff a{display:block;border:1px solid #666666;padding:3px 6px 4px 10px;height:16px;text-decoration:none;}
.field .onoff .on,.field .onoff .off{background-image:url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAUACIDASIAAhEBAxEB/8QAGgABAQACAwAAAAAAAAAAAAAAAAQDBQEGCf/EACgQAAIBAwIFAwUAAAAAAAAAAAECAAMEERIUBRMxUpEhIoEjM1Nxkv/EABcBAAMBAAAAAAAAAAAAAAAAAAABAgT/xAAaEQEAAgMBAAAAAAAAAAAAAAAAAQIRMVES/9oADAMBAAIRAxEAPwD1ERKFNFVaNNVUYACgACcNVt1dEKUwzZwNI9cSDczDVdnuKDjomrPyJOQ2SXNq/L0rTPMzp9vXHWZfo/jT+RNFQV6e2yPt6s/Ms3EWQofhnDqjszWFqzMcljRUknxEn3ES/dup8xxPZ0hXtKFViQzorEDpkiZtqvc3mIkzs40bVe5vMbVe5vMREbrN3xy4t7utSVaZVHZQSDnAP7iIm+K1xpkm09f/2Q==');background-repeat:no-repeat;}
.field .onoff .on{background-position:42px 1px;background-color:#999999;color:#111111;text-align:left;}
.field .onoff .off{background-position:2px 1px;background-color:#cccccc;color:#333333;text-align:right;}
.hidden{display:none !important;}
.field textarea{width:80%;height:100px;}
.field_help{display:block;margin-left:297px;color:#b1b1b1;}
.field_help{display:block;margin-left:297px;color:#b1b1b1;font-size:small;}
.field.radio .field_help{margin-left:297px;}
.popup{width:100%;height:100%;top:0px;left:0px;position:absolute;display:none;}.popup .background{background-color:#111111;opacity:0.5;width:100%;height:100%;position:absolute;top:0px;left:0px;}
.popup .panel{top:25%;left:25%;width:50%;height:50%;padding:1em;position:absolute;border:4px solid #000000;background-color:white;}
#panel{z-index:100;}
#panel{position:absolute;font-size:small;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;border:1px solid #eeeeee;background-color:#2e302e;color:#eeeecc;padding:1em;z-index:100;}
.pager{margin-top:60px;display:block;clear:both;text-align:center;font-size:small;font-weight:bold;}.pager span{padding:4px;margin:4px;}
.pager_current{background-color:#88a9d2;color:#2e2f2e;}
.grey,.gray{color:gray;}
.orange{color:orange;}
.red{color:red;}
@ -430,8 +447,8 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
.oauthapp{height:auto;overflow:auto;border-bottom:2px solid #cccccc;padding-bottom:1em;margin-bottom:1em;}.oauthapp img{float:left;width:48px;height:48px;margin:10px;}.oauthapp img.noicon{background-image:url("../../../images/icons/48/plugin.png");background-position:center center;background-repeat:no-repeat;}
.oauthapp a{float:left;}
.iconspacer{display:block;width:16px;height:16px;}
.icon{display:block;width:20px;height:20px;background:url(dark/icons.png) no-repeat;border:0;text-decoration:none;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}.icon:hover{border:0;text-decoration:none;}
.editicon{display:inline-block;width:21px;height:21px;background:url(dark/editicons.png) no-repeat;border:0;text-decoration:none;}
.icon{display:block;width:20px;height:20px;background:transparent url("dark/icons.png") no-repeat;border:0;text-decoration:none;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}.icon:hover{border:0;text-decoration:none;}
.editicon{display:inline-block;width:21px;height:21px;background:url("dark/editicons.png") no-repeat;border:0;text-decoration:none;}
.shadow{-moz-box-shadow:2px 2px 5px 2px #111111;-o-box-shadow:2px 2px 5px 2px #111111;-webkit-box-shadow:2px 2px 5px 2px #111111;-ms-box-shadow:2px 2px 5px 2px #111111;box-shadow:2px 2px 5px 2px #111111;}.shadow:active,.shadow:focus,.shadow:hover{-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;}
.editicon:hover{border:0;}
.boldbb{background-position:0px 0px;}.boldbb:hover{background-position:-22px 0px;}
@ -475,7 +492,7 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
.lock{background-position:-70px -40px;}
.unlock{background-position:-88px -40px;}
.video{background-position:-110px -40px;}
.attach{background-position:-190px -40px;}
.attach{background-position:-191px -40px;}
.language{background-position:-210px -40px;}
.starred{background-position:-130px -60px;}
.unstarred{background-position:-150px -60px;}
@ -485,7 +502,7 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
.prev{background-position:-90px -60px;}
.next{background-position:-110px -60px;}
.icon.dim{opacity:0.3;}
#pause{position:fixed;bottom:40px;right:30px;}
#pause{position:fixed;bottom:40px;right:30px;z-index:10;}
.border{border:1px solid #babdb6;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}.border:hover{border:1px solid #babdb6;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
.attachtype{display:block;width:20px;height:23px;background-image:url(../../../images/content-types.png);}
.type-video{background-position:0px 0px;}
@ -495,9 +512,9 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
.type-unkn{background-position:-80px 0;}
.cc-license{margin-top:100px;font-size:0.7em;}
footer{display:block;clear:both;}
#profile-jot-text{height:20px;color:#eeeecc;border:1px solid #eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;width:99.5%;}
#profile-jot-text{height:20px;color:#eeeecc;background:#2e2f2e;border:1px solid #eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;width:99.5%;}
#photo-edit-perms-select,#photos-upload-permissions-wrapper,#profile-jot-acl-wrapper{display:block !important;background:#2e2f2e;color:#eeeecc;}
#profile-jot-acl-wrapper{margin:0 10px;border:1px solid #555753;border-top:0;}
#profile-jot-acl-wrapper{margin:0 10px;border:1px solid #555753;border-top:0;font-size:small;}
#acl-wrapper{width:660px;margin:0 auto;}
#acl-search{float:right;background:#ffffff url("../../../images/search_18.png") no-repeat right center;padding-right:20px;margin:6px;color:#111111;}
#acl-showall{float:left;display:block;width:auto;height:18px;background:#eeeecc url("../../../images/show_all_off.png") 8px 8px no-repeat;padding:7px 10px 7px 30px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;color:#999999;margin:5px 0;}#acl-showall.selected{color:black;background:#ff9900 url(../../../images/show_all_on.png) 8px 8px no-repeat;}

File diff suppressed because it is too large Load Diff

View File

@ -1,48 +1,104 @@
//*
//* _base.less
//*
//*
// _base.less
//
// the base file for dispy's light "sub-theme".
//
// Notes:
// this is used to define mixins (think of them as functions)
// and variables. the mixins are the ".foo () {}" things, vars are
// like "@bar".
//
// (BTW, this will make it a LOT easier to maintain.)
//
// Dev. Note: the // style comments don't show up at all when
// you "compile" the css (with `lessc`), but css (/**/) comments
// do. i use them to our advantage :).
// import our reset styles first
@import "../css/reset";
//* backgrounds */
@dk_bg_colour: #1d1f1d;
@bg_colour: #2e2f2e;
@dk_bg_colour: #2e3436;
@bg_colour: #eeeeec;
@bg_alt_colour: #2e302e;
@med_bg_colour: #4e4f4f;
@med_bg_colour: #4e4f4e;
@menu_bg_colour: #555753;
//* font colour, aka color: */
@lt_main_colour: #ffff99;
@main_colour: #eeeecc;
@main_alt_colour: #eeeeee;
@disabled_colour: #ddddbb;
@shiny_colour: #2e3436;
@main_colour: #111;
@main_alt_colour: #999999;
// darken(@main_alt_colour, 6.5%) > #888888
// //#9eabb0
// darken(@main_alt_colour, 10%) > #777777
// darken(@main_alt_colour, 20%) > #666666
// darken(@main_alt_colour, 26.8%) > #555555
// darken(@main_alt_colour, 33.5%) > #444444
// darken(@main_alt_colour, 40%) > #333333
//
// lighten(@main_alt_colour, 26.5%) > #dddddd
// lighten(@main_alt_colour, 20%) > #cccccc
// lighten(@main_alt_colour, 13.5%) > #bbbbbb
// lighten(@main_alt_colour, 6.5%) > #aaaaaa
// lighten(@main_alt_colour, 30%)
@disabled_colour: #dddddd;
@shiny_colour: #f2f2c3;
@red_orange: #ff2000;
@orange: #f8911b;
@lt_orange: #fcaf3e;
@shadow_colour: @main_colour;
@lt_shadow_colour: #888888;
@friendica_blue: #3465a4;
@border2: #babdb6;
@group_show: #9ade00;
@group_hide: #ff4141;
@notice: #511919;
@info: #364e59;
@alert: #ff0000;
@lt_main_colour: lighten(@bg_colour, 10%);
@dk_main_colour: darken(@bg_colour, 10%);
//* links */
@link_colour: #88a9d2;
@link_colour: #3465a4;
@dk_link_colour: darken(@link_colour, 10%);
@lt_link_colour: lighten(@link_colour, 10%);
//@hover_colour: #729fcf;
@hover_colour: darken(@link_colour, 10%);
@hover_colour: @dk_link_colour;
// other colours
@med_border_colour: #babdd6;
//* box shadows */
@menu_shadow: 5px 0 10px 0 #111;
@main_shadow: 3px 3px 3px 10px 0 #111;
@menu_shadow: 5px 0 10px 0 @shadow_colour;
@main_shadow: 3px 3px 3px 10px 0 @shadow_colour;
// default here is @main_shadow
.box_shadow(@h: 5px, @v: 5px, @blur: 5px, @spread: 0px, @colour: #111) {
// default here was @main_shadow
.box_shadow(@h: 5px, @v: 5px, @blur: 5px, @spread: 0px, @colour: @shadow_colour) {
-moz-box-shadow: @h @v @blur @spread @colour;
-o-box-shadow: @h @v @blur @spread @colour;
-webkit-box-shadow: @h @v @blur @spread @colour;
-ms-box-shadow: @h @v @blur @spread @colour;
box-shadow: @h @v @blur @spread @colour;
}
//* http://css-tricks.com/snippets/css/css-box-shadow/
//* box-shadow:
//* 1. The horizontal offset of the shadow, positive means
//* the shadow will be on the right of the box, a negative
//* offset will put the shadow on the left of the box.
//* 2. The vertical offset of the shadow, a negative one
//* means the box-shadow will be above the box, a
//* positive one means the shadow will be below the box.
//* 3. The blur radius (optional), if set to 0 the shadow
//* will be sharp, the higher the number, the more blurred
//* it will be.
//* 4. The spread radius (optional), positive values increase
//* the size of the shadow, negative values decrease the size.
//* Default is 0 (the shadow is same size as blur).
//* 5. Colo[u]r
//*/
//* text-shadow */
.text_shadow (@h: 1px, @v: 1px, @c: #111) {
.text_shadow (@h: 1px, @v: 1px, @c: @shadow_colour) {
-moz-text-shadow: @h @v @c;
-o-text-shadow: @h @v @c;
-webkit-text-shadow: @h @v @c;
@ -50,7 +106,7 @@
text-shadow: @h @v @c;
}
//* transitions */
.transition (@type: all, @dur: 0.5s, @effect: ease-in-out) {
.transition (@type: all, @dur: 0.75s, @effect: ease-in-out) {
-webkit-transition: @arguments;
-moz-transition: @arguments;
-o-transition: @arguments;
@ -62,7 +118,9 @@
.borders (@size: 1px, @style: solid, @colour: @main_colour) {
border: @size @style @colour;
}
.med_borders (@sz: 2px, @st: solid, @c: @med_border_colour) {
border: @sz @st @c;
}
//* rounded box corners */
.rounded_corners (@r: 5px) {
-o-border-radius: @r;
@ -71,19 +129,32 @@
-ms-border-radius: @r;
border-radius: @r;
}
.text_overflow (@t: ellipsis) {
-moz-text-overflow: @t;
-ms-text-verflow: @t;
-o-text-overflow: @t;
-webkit-text-overflow: @t;
text-overflow: @t;
}
//* pre wrap */
.wrap () {
white-space: pre-wrap;
white-space: pre;
word-wrap: break-word;
word-wrap: none;
}
//* font size sizing */
.default_font_size () {
font-size: 16px;
.default_font () {
font-size: 14pt;
line-height: 1.1em;
font-family: sans-serif;
}
.font_size_adjust () {
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
-o-text-size-adjust: 100%;
font-size-adjust: 100%;
}
//* reset ul, ol */
.list_reset () {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -1,37 +1,70 @@
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}
body{line-height:1;}
ul,ol{margin:0px;padding:0px;list-style:none;list-style-position:inside;}
blockquote,q{quotes:none;}
blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;}
table{border-collapse:collapse;border-spacing:0;}
address{font-style:normal;}
a img,:link img,:visited img{border:none;}
q{quotes:"" "";}
article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
audio,canvas,video,time{display:inline-block;*display:inline;*zoom:1;}
audio:not([controls]),[hidden]{display:none;}
html{font-size:100%;overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
body{margin:0;font-size:16px;line-height:1.1em;font-family:sans-serif;color:#111;background-color:#eee;}
button,input,select,textarea{font-family:sans-serif;color:#222;background-color:#eee;}
select{border:1px #555 dotted;padding:3px;margin:3px;color:#222;background:#eee;}
option{padding:3px;color:#222;background:#eee;}option[selected="selected"]{color:#111;background:#cca;}
ul,ol{padding:0;}
:focus{outline:0;}
[disabled="disabled"]{background:#ddd;color:#333;}
ins{background-color:#ff9;color:#000;text-decoration:none;}
mark{background-color:#ff9;color:#000;font-style:italic;font-weight:bold;}
html{font-size:100%;overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-o-text-size-adjust:100%;font-size-adjust:100%;}
body{margin:0;padding:0;font-size:14pt;line-height:1.1em;font-family:sans-serif;color:#111111;background-color:#eeeeec;}
button,input,select,textarea{color:#111111;background-color:#eeeeec;}
select{border:1px dotted #555555;padding:1px;margin:3px;color:#111111;background:#eeeeec;max-width:85%;min-width:85px;}
option{padding:1px;color:#111111;background:#eeeeec;}option[selected="selected"]{color:#eeeeec;background:#2e3436;}
tr:nth-child(even){background-color:#d6d6d1;}
:focus{outline:none;}
a:focus{outline:invert, dashed, thin;}
[disabled="disabled"]{background:#2e3436;color:#dddddd;}
ins,mark{background-color:#eeeeec;color:#111111;}
ins{text-decoration:none;}
mark{font-style:italic;font-weight:bold;}
pre,code,kbd,samp,.wall-item-body code{font-family:monospace, monospace;_font-family:monospace;font-size:1em;}
pre,.wall-item-body code{white-space:pre;white-space:pre-wrap;word-wrap:break-word;}
pre,.wall-item-body code{white-space:pre-wrap;white-space:pre;word-wrap:none;}
q{quotes:none;}q:before,q:after{content:"";content:none;}
em{font-style:italic;}
strong{font-weight:bold;}
strike{text-decoration:line-through;}
small{font-size:85%;}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}
sub{bottom:-0.25em;}
sup{top:-0.5em;}
img{border:0 none;}
a{color:#3465a4;text-decoration:none;margin-bottom:1px;}a:hover img{text-decoration:none;}
blockquote{background:#eee;color:#111;text-indent:5px;padding:5px;border:1px #aaa solid;border-radius:5px;}
a:hover{color:#729fcf;border-bottom:1px dotted #729fcf;}
.required{display:inline;color:#f00;font-size:16px;font-weight:bold;margin:3px;}
a{color:#3465a4;text-decoration:none;margin-bottom:1px;}a:hover{color:#284d7d;border-bottom:1px dotted #284d7d;}
a:hover img{text-decoration:none;}
blockquote{background:#aaaaaa;color:#111111;text-indent:5px;padding:5px;border:1px solid #111111;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
label{width:38%;display:inline-block;font-size:small;margin:0 10px 1em 0;border:1px solid #eeeeec;padding:5px;background:#cccccc;color:#111111;-moz-box-shadow:3px 3px 5px 0px #111111;-o-box-shadow:3px 3px 5px 0px #111111;-webkit-box-shadow:3px 3px 5px 0px #111111;-ms-box-shadow:3px 3px 5px 0px #111111;box-shadow:3px 3px 5px 0px #111111;}
input{width:250px;height:25px;border:1px solid #444444;}input[type="checkbox"],input[type="radio"]{margin:0;width:15px;height:15px;}
input[type="submit"],input[type="button"]{background-color:#555753;border:2px outset #444444;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 3px 4px 0 #111111;-o-box-shadow:1px 3px 4px 0 #111111;-webkit-box-shadow:1px 3px 4px 0 #111111;-ms-box-shadow:1px 3px 4px 0 #111111;box-shadow:1px 3px 4px 0 #111111;color:#eeeeec;cursor:pointer;font-weight:bold;width:auto;-moz-text-shadow:1px 1px #111111;-o-text-shadow:1px 1px #111111;-webkit-text-shadow:1px 1px #111111;-ms-text-shadow:1px 1px #111111;text-shadow:1px 1px #111111;}
input[type="submit"]:active,input[type="button"]:active{-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;}
h1,h2,h3,h4,h5,h6{margin:10px 0px;font-weight:bold;border-bottom:1px solid #284d7d;}
h1{font-size:x-large;}
h2{font-size:large;}
h3{font-size:medium;}
h4{font-size:small;}
h5{font-size:x-small;}
h6{font-size:xx-small;}
.required{display:inline;color:red;font-size:16px;font-weight:bold;margin:3px;}
.fakelink,.lockview{color:#3465a4;cursor:pointer;}
.fakelink:hover{color:#729fcf;}
.fakelink:hover{color:#284d7d;}
.smalltext{font-size:0.7em;}
#panel{position:absolute;font-size:0.8em;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:1px solid #fff;background-color:#2e3436;color:#eeeeec;padding:1em;}
.pager{margin-top:60px;display:block;clear:both;text-align:center;}.pager span{padding:4px;margin:4px;}
.pager_current{background-color:#729fcf;color:#fff;}
.action{margin:5px 0;}
.tool{margin:5px 0;list-style:none;}
#articlemain{width:100%;height:100%;margin:0 auto;}
.button,#profile-listing-desc{width:25%;height:auto;background:#555753;color:#eeeeec;border:2px outset #222321;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;padding:5px;font-size:smaller;cursor:pointer;}.button.active,#profile-listing-desc.active{-moz-box-shadow:4px 4px 7px 0px #111111;-o-box-shadow:4px 4px 7px 0px #111111;-webkit-box-shadow:4px 4px 7px 0px #111111;-ms-box-shadow:4px 4px 7px 0px #111111;box-shadow:4px 4px 7px 0px #111111;}
.button a,#profile-listing-desc a{color:#eeeeec;font-size:smaller;font-weight:bold;}
[class$="-desc"],[id$="-desc"]{color:#eeeeec;border:1px outset #eeeeec;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;margin:3px 10px 7px 0;padding:5px;font-weight:bold;font-size:smaller;}
#item-delete-selected-desc{float:left;margin-right:5px;}#item-delete-selected-desc:hover{text-decoration:underline;}
.intro-approve-as-friend-desc{margin-top:10px;}
.intro-desc{margin-bottom:20px;font-weight:bold;}
#group-edit-desc{margin:10px 0px;}
#settings-nickname-desc{background:#2e3436;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;border:1px solid #111111;padding:5px;color:#eeeeec;}
.contactname,.contact-name{font-weight:bold;font-size:smaller;}
.contact-details{font-style:italic;font-size:smaller;}
#asidemain .field{overflow:hidden;width:200px;}
#login-extra-links{overflow:auto !important;padding-top:60px !important;width:100% !important;}#login-extra-links a{margin-right:20px;}
#login_standard{display:block !important;float:none !important;height:100% !important;position:relative !important;width:100% !important;}#login_standard .field label{width:200px !important;}
@ -43,8 +76,8 @@ a:hover{color:#729fcf;border-bottom:1px dotted #729fcf;}
#login_openid label{width:180px !important;}
nav{height:60px;background-color:#2e3436;color:#eeeeec;position:relative;padding:20px 20px 10px 95px;}nav a{text-decoration:none;color:#eeeeec;border:0px;}nav a:hover{text-decoration:none;color:#eeeeec;border:0px;}
nav #banner{display:block;position:absolute;left:51px;top:25px;}nav #banner #logo-text a{font-size:40px;font-weight:bold;margin-left:3px;}
ul#user-menu-popup{display:none;position:absolute;background-color:#555753;width:100%;padding:10px 0px;margin:0px;top:20px;left:0;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;box-shadow:5px 10px 10px 0 #111;z-index:10000;}ul#user-menu-popup li{display:block;}ul#user-menu-popup li a{display:block;padding:5px;}ul#user-menu-popup li a:hover{color:#2e3436;background-color:#eeeeec;}
ul#user-menu-popup li a.nav-sep{border-top:1px solid #eeeeec;}
ul#user-menu-popup{display:none;position:absolute;background-color:#555753;width:100%;padding:10px 0px;margin:0px;top:20px;left:0;font-size:small;line-height:1;-o-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-ms-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-moz-box-shadow:5px 5px 10px 0px #111111;-o-box-shadow:5px 5px 10px 0px #111111;-webkit-box-shadow:5px 5px 10px 0px #111111;-ms-box-shadow:5px 5px 10px 0px #111111;box-shadow:5px 5px 10px 0px #111111;z-index:10000;}ul#user-menu-popup li{display:block;}ul#user-menu-popup li a{display:block;padding:5px;color:#eeeeec;background-color:#555753;}ul#user-menu-popup li a:hover{color:#eeeeec;background-color:#111111;}
ul#user-menu-popup li a.nav-sep{border-top:1px solid #2e302e;}
nav .nav-link{display:inline-block;width:22px;height:22px;overflow:hidden;margin:0px 5px 5px;text-indent:50px;background:transparent url(light/icons.png) 0 0 no-repeat;}
#nav-apps-link{background-position:0 -66px;}#nav-apps-link:hover{background-position:-22px -66px;}
#nav-community-link,#nav-contacts-link{background-position:0 -22px;}#nav-community-link:hover,#nav-contacts-link:hover{background-position:-22px -22px;}
@ -58,26 +91,27 @@ nav .nav-link{display:inline-block;width:22px;height:22px;overflow:hidden;margin
#nav-notify-link:hover{background-position:-66px -110px;}
#nav-network-link{background-position:0px -177px;}#nav-network-link:hover{background-position:-22px -177px;}
#nav-search-link{background-position:0 -44px;}#nav-search-link:hover{background-position:-22px -44px;}
#profile-link,#profile-title,#wall-image-upload,#wall-file-upload,#profile-attach-wrapper,#profile-audio,#profile-link,#profile-location,#profile-nolocation,#profile-title,#jot-title,#profile-upload-wrapper,#profile-video,#profile-jot-submit,#wall-image-upload-div,#wall-file-upload-div,.icon,.hover,.focus,.pointer{cursor:pointer;}
div.jGrowl div.notice{background:#511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;color:#ffffff;padding-left:58px;}
div.jGrowl div.info{background:#364e59 url("../../../images/icons/48/info.png") no-repeat 5px center;color:#ffffff;padding-left:58px;}
#nav-notifications-menu{margin:30px 0 0 -20px;width:275px;max-height:300px;overflow-y:auto;font-size:9pt;}#nav-notifications-menu .contactname{font-weight:bold;font-size:0.9em;}
#nav-notifications-menu img{float:left;margin-right:5px;}
#jot-title,#profile-link,#profile-title,#profile-attach-wrapper,#profile-audio,#profile-link,#profile-location,#profile-nolocation,#profile-title,#profile-upload-wrapper,#profile-video,#profile-jot-submit,#wall-image-upload,#wall-file-upload,#wall-image-upload-div,#wall-file-upload-div,.icon,.hover,.focus,.pointer{cursor:pointer;}
div.jGrowl div.notice{background:#511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;color:white;padding-left:58px;margin-top:50px;}
div.jGrowl div.info{background:#364e59 url("../../../images/icons/48/info.png") no-repeat 5px center;color:white;padding-left:58px;margin-top:50px;}
#nav-notifications-menu{margin:30px 0 0 -20px;width:275px;max-height:300px;overflow-y:auto;font-size:9pt;}#nav-notifications-menu img{float:left;margin-right:5px;}
#nav-notifications-menu .notif-when{font-size:0.8em;display:block;}
#nav-notifications-menu li{word-wrap:normal;border-bottom:1px solid #000;}#nav-notifications-menu li:hover{color:black;}
#nav-notifications-menu li{word-wrap:normal;border-bottom:1px solid black;}#nav-notifications-menu li:hover{color:black;}
#nav-notifications-menu a:hover{color:black;text-decoration:underline;}
nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkmenu.selected .icon.s22.notify{background-image:url("../../../images/icons/22/notify_on.png");}
nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkmenu.selected .icon.s22.notify{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAQAAABuvaSwAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAUJcAAFCXAZtv64UAAAHuSURBVCjPbZPbTlNBFIYHLixXRIhEQGNRMUopJAJyAyZ4Z2l8B+XwEBqKtjwOp8oDIAJKIJFUjdFIQCUYrRytdyb0459ht8wG9rrYs9b618y/TsYEH4ZK4qRYYIdDybZOI7TKakIfVhrJ8J2i5IBNyV93/kaaBuv3oV3MgwCTPKGHPkkPA0xRUMBrOgN4AP0o6BseEpF2m3es0qJTFQneyvMhgDsC9tZprnEcGuOPeMcDLUpW3jlLxlDBmJTFY6gLvsVv8tyh9G7U3Z6mwtCuJAoiECSh/w1+8otmTjLqF2KDNsNzRY1bruV0o6rFFtc9S5USh5RRWvAYv4xX9dYPS8ur1oBQC4Y99m2uHriRNda5ErLdU1l3jCI2xdJ3XOYLX6kP2W6K2OF54Et84jN154F31d6ukKOG92pSbcjWLRrbRhVGLTZeOtXqX46LoQSHhJo3jOo3ESrdBQbljIRKNyXUiKHNNSXhTdbZiUzyT/WJ23Zn3BBFy+2u4ZHc1eV2N7EkxAvbbqMRmZOSlbE0g/uajRgl6Iy8r1wpnaFTQ4ji+8XOEsuxYmdDWpJleXJ0+BPdoduL4p5Vavd5IOllmJfiWmSWu6d3pV4jteFWqaAGbLkdKSqtUXXUnN3DSvF8phfy/JfkxfOp9sVb2COz+hY/T0qkwwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMS0wOS0xNlQwOTozOTowMCswMjowMC9Oi90AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTEtMDktMTZUMDk6Mzk6MDArMDI6MDBeEzNhAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==");}
.show{display:block;}
#notifications{height:20px;width:170px;position:absolute;top:-19px;left:4px;}
#nav-floater{position:fixed;top:20px;right:1%;padding:5px;background:#2e3436;color:transparent;border-radius:5px;z-index:100;width:300px;height:60px;}
#notifications{width:170px;height:20px;font-size:small;top:-19px;left:4px;position:absolute;}
#nav-floater{position:fixed;top:20px;right:1%;padding:5px;background:#2e3436;color:transparent;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;z-index:100;width:300px;height:60px;}
#nav-buttons{clear:both;list-style:none;padding:0px;margin:0px;height:25px;}#nav-buttons>li{padding:0;display:inline-block;margin:0px -4px 0px 0px;}
.floaterflip{display:block;position:fixed;z-index:110;top:56px;right:19px;width:22px;height:22px;overflow:hidden;margin:0px;background:transparent url(light/icons.png) -190px -60px no-repeat;}
.search-box{display:inline-block;margin:5px;position:fixed;right:0px;bottom:0px;z-index:100;background:#1d1f1d;border-radius:5px;}
#search-text{border:1px #eec solid;background:#2e3436;color:#eec;font-size:8pt;margin:8px;width:10em;height:14px;}
.search-box{display:inline-block;margin:5px;position:fixed;right:0px;bottom:0px;z-index:100;background:#2e3436;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
#search-text,#mini-search-text{background:white;color:#111111;margin:8px;}
#search-text{border:1px solid #999999;}
#mini-search-text{font-size:8pt;height:14px;width:10em;}
#scrollup{position:fixed;right:5px;bottom:40px;z-index:100;}#scrollup a:hover{text-decoration:none;border:0;}
#user-menu{box-shadow:5px 0 10px 0 #111;display:block;width:75%;margin:3px 0 0 0;position:relative;background-color:#555753;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;background:#555753 url("light/menu-user-pin.jpg") 98% center no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;}
#user-menu-label{font-size:12px;padding:3px 20px 9px 5px;height:10px;}
.nav-ajax-update,.nav-ajax-left{width:30px;height:19px;background:transparent url(light/notifications.png) 0 0 no-repeat;color:#222;font-weight:bold;font-size:0.8em;padding-top:0.2em;text-align:center;float:left;margin:0 -1px 0 3px;display:block;visibility:hidden;}
#user-menu{-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;display:block;width:75%;margin:3px 0 0 0;position:relative;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;background-color:#555753;background-image:url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAIAAwDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMH/8QAIhAAAQMEAgIDAAAAAAAAAAAAAQIDBAAFBhESIQdBMVFh/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgP/xAAXEQEBAQEAAAAAAAAAAAAAAAABAAIR/9oADAMBAAIRAxEAPwCXiHO8dbsEi35BEhIehNlbUhxhBU82O+G9bKgToD2D+VlmZX9OWZBJuAiMxGlni0w0gJCED4HXv7pSi6eFML//2Q==");background-position:98% center;background-repeat:no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;outline:0 none;}
#user-menu-label{font-size:small;padding:3px 20px 9px 5px;height:10px;}
.nav-ajax-update,.nav-ajax-left{width:30px;height:19px;background:transparent url(light/notifications.png) 0 0 no-repeat;color:#111111;font-weight:bold;font-size:0.8em;padding-top:0.2em;text-align:center;float:left;margin:0 -1px 0 3px;display:block;visibility:hidden;}
.nav-ajax-update.show,.nav-ajax-left.show{visibility:visible;}
#net-update{background-position:0px 0px;}
#mail-update{background-position:-30px 0;}
@ -86,133 +120,129 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
#intro-update{background-position:-120px 0px;}
#lang-select-icon{cursor:pointer;position:fixed;left:28px;bottom:6px;z-index:10;}
#language-selector{position:fixed;bottom:2px;left:52px;z-index:10;}
.menu-popup{position:absolute;display:none;width:11em;background:#ffffff;color:#2d2d2d;margin:0px;padding:0px;list-style:none;border:3px solid #364e59;z-index:100000;-webkit-box-shadow:3px 3px 10px 0 rgba(0, 0, 0, 0.7);-moz-box-shadow:3px 3px 10px 0 rgba(0, 0, 0, 0.7);box-shadow:3px 3px 10px 0 rgba(0, 0, 0, 0.7);}.menu-popup a{display:block;color:#2d2d2d;padding:5px 10px;text-decoration:none;}.menu-popup a:hover{background-color:#bdcdd4;}
.menu-popup .menu-sep{border-top:1px solid #9eabb0;}
.menu-popup{position:absolute;display:none;width:11em;background:white;color:#111111;margin:0px;padding:0px;border:3px solid #3465a4;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;z-index:100000;-moz-box-shadow:5px 5px 5px 0px #111111;-o-box-shadow:5px 5px 5px 0px #111111;-webkit-box-shadow:5px 5px 5px 0px #111111;-ms-box-shadow:5px 5px 5px 0px #111111;box-shadow:5px 5px 5px 0px #111111;}.menu-popup a{display:block;color:#111111;padding:5px 10px;text-decoration:none;}.menu-popup a:hover{color:#eeeeec;background-color:#3465a4;}
.menu-popup .menu-sep{border-top:1px solid #4e4f4e;}
.menu-popup li{float:none;overflow:auto;height:auto;display:block;}.menu-popup li img{float:left;width:16px;height:16px;padding-right:5px;}
.menu-popup .empty{padding:5px;text-align:center;color:#9eabb0;}
.menu-popup .empty{padding:5px;text-align:center;color:#ffffff;}
.notif-item{font-size:small;}.notif-item a{vertical-align:middle;}
.notif-image{width:32px;height:32px;padding:7px 7px 0px 0px;}
.notify-seen{background:#ddd;}
#sysmsg_info{position:fixed;bottom:0;-moz-box-shadow:3px 3px 3px 10px 0 #000;-webkit-box-shadow:3px 3px 10px 0 #000;box-shadow:3px 3px 10px 0 #000;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;}
#sysmsg{position:fixed;bottom:0;-moz-box-shadow:3px 3px 10px 0 #000;-webkit-box-shadow:3px 3px 10px 0 #000;box-shadow:3px 3px 10px 0 #000;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;}
#sysmsg_info br,#sysmsg br{display:block;margin:2px 0px;border-top:1px solid #ccccce;}
#asidemain{float:left;font-size:smaller;margin:20px 0 20px 35px;width:25%;display:inline;}
.notify-seen{background:#dddddd;color:#111111;}
.notify-unseen{color:#111111;}
#sysmsg_info{position:fixed;bottom:0;-moz-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-o-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-webkit-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-ms-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;}
#sysmsg{position:fixed;bottom:0;-moz-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-o-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-webkit-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-ms-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;}
#sysmsg_info br,#sysmsg br{display:block;margin:2px 0px;border-top:1px solid #eeeeec;}
#asidemain{float:left;font-size:small;margin:20px 0 20px 35px;width:25%;display:inline;}
#asideright,#asideleft{display:none;}
.vcard .fn{font-size:1.7em;font-weight:bold;border-bottom:1px solid #729fcf;padding-bottom:3px;}
.vcard #profile-photo-wrapper{margin:20px;}.vcard #profile-photo-wrapper img{box-shadow:3px 3px 10px 0 #000;}
.vcard .fn{font-size:1.5em;font-weight:bold;border-bottom:1px solid #284d7d;padding-bottom:3px;}
.vcard #profile-photo-wrapper{margin:20px;}.vcard #profile-photo-wrapper img{-moz-box-shadow:3px 3px 10px 0 #111111;-o-box-shadow:3px 3px 10px 0 #111111;-webkit-box-shadow:3px 3px 10px 0 #111111;-ms-box-shadow:3px 3px 10px 0 #111111;box-shadow:3px 3px 10px 0 #111111;}
#asidemain h4{font-size:1.2em;}
#asidemain #viewcontacts{text-align:right;}
#asidemain #contact-block{width:99%;}#asidemain #contact-block .contact-block-content{width:99%;}#asidemain #contact-block .contact-block-content .contact-block-div{float:left;margin:0 5px 5px 0;width:50px;height:50px;padding:3px;position:relative;}
.aprofile dt{background:transparent;color:#666666;font-weight:bold;box-shadow:1px 1px 5px 0 #000;margin:15px 0 5px;padding-left:5px;}
.aprofile dt{background:transparent;color:#666666;font-weight:bold;-moz-box-shadow:3px 3px 5px 0px #111111;-o-box-shadow:3px 3px 5px 0px #111111;-webkit-box-shadow:3px 3px 5px 0px #111111;-ms-box-shadow:3px 3px 5px 0px #111111;box-shadow:3px 3px 5px 0px #111111;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;margin:15px 0 5px;padding-left:5px;}
#profile-extra-links ul{margin-left:0px;padding-left:0px;list-style:none;}
#dfrn-request-link{background:#3465a4 url(light/connect.png) no-repeat 95% center;border-radius:5px 5px 5px 5px;color:#fff;display:block;font-size:1.2em;padding:0.2em 0.5em;}
#wallmessage-link{color:#eee;display:block;font-size:1.2em;padding:0.2em 0.5em;}
.ttright{margin:0px 0px 0px 0px;}
#dfrn-request-link{-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;color:#111111;display:block;font-size:1.2em;padding:0.2em 0.5em;background-color:#3465a4;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAYAAAAmL5yKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAE4SURBVCiRpZKxLgRRFIa//64dKruZFRIlolBviFKiVHsHrRaFikTCC+hEQtRegMQDqDUKJOPOvauSMJmjYEU2M0viT071/+fLOTlHZkadQgjLkh1LPEoj661WKw5mXG034JxtAgtmrJoVK5WZYYCy1AVQSOYbjeSqMmRmQ8v755Ne77lb5w+d4HMNJopCT7X+bwDQZKfTyf4BIAHeawHe+/kQ/FGM+QagvpFl2VSM/tyMmV7PV14AYMQ5nUp0AULIp0HXzpVvSdLYMmNVAjNdAuNAUQHgxy/ZvEQTSMw0A33DxkIIi2ma3gwC9PKSzRWF2wbdpml62DfyPF9yjlNgAnQGLJjZnXON3Xa7ff8NGPbKQPNrbAOI0a9J2ilLEzAL7P0GqJJizF+BUeDhL2cclJnZPvAg6eADf+imKjSMX1wAAAAASUVORK5CYII=");background-repeat:no-repeat;background-position:95% center;}
#wallmessage-link{color:#eeeeec;display:block;font-size:1.2em;padding:0.2em 0.5em;}
.ttright{margin:0px;}
.contact-block-div{width:50px;height:50px;float:left;}
.contact-block-textdiv{width:150px;height:34px;float:left;}
#contact-block-end{clear:both;}
#jot{margin:10px 0 20px 0px;width:100%;}#jot #jot-tools{margin:0px;padding:0px;height:35px;overflow:none;width:100%;}#jot #jot-tools span{float:left;margin:10px 20px 2px 0px;}#jot #jot-tools span a{display:block;}
#jot{margin:10px 0 20px 0px;width:100%;}#jot #jot-tools{margin:0px;padding:0px;width:100%;height:35px;overflow:none;}#jot #jot-tools span{float:left;margin:10px 20px 2px 0px;}#jot #jot-tools span a{display:block;}
#jot #jot-tools .perms{float:right;width:40px;}
#jot #jot-tools li.loading{float:right;background-color:#ffffff;width:20px;vertical-align:center;text-align:center;border-top:2px solid #9eabb0;height:38px;}#jot #jot-tools li.loading img{margin-top:10px;}
#jot #jot-title{border:1px solid #ccc;margin:0 0 5px;height:20px;width:90%;font-weight:bold;border-radius:5px;vertical-align:middle;}
#jot-category{margin:5px 0;border-radius:5px;border:1px #ccc solid;color:#666;font-size:smaller;}#jot-category:focus{color:#111;}
#jot #character-counter{width:6%;float:right;text-align:right;height:15px;line-height:20px;padding:2px 20px 5px 0;}
#profile-jot-text_parent{box-shadow:5px 0 10px 0 #111;}
#profile-jot-text_tbl{margin-bottom:10px;background:#777;}
#jot #jot-tools li.loading{float:right;background-color:white;width:20px;height:38px;vertical-align:center;text-align:center;border-top:2px solid #9eabb0;}#jot #jot-tools li.loading img{margin-top:10px;}
#jot #jot-title{border:1px solid #cccccc;margin:0 0 5px;width:90%;height:20px;font-weight:bold;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;vertical-align:middle;}
#jot-category{margin:5px 0;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;border:1px solid #cccccc;color:#666666;font-size:smaller;}#jot-category:focus{color:#111111;}
#jot #character-counter{width:6%;height:15px;float:right;text-align:right;line-height:20px;padding:2px 20px 5px 0;}
#profile-jot-text_parent{-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;}
#profile-jot-text_tbl{margin-bottom:10px;background:#808080;}
#profile-jot-text_ifr{width:99.900002% !important;}
#profile-jot-text_toolbargroup,.mceCenter tr{background:#777;}
[id$="jot-text_ifr"]{width:99.900002% !important;color:#2e2f2e;background:#eec;}[id$="jot-text_ifr"] .mceContentBody{color:#2e2f2e;background:#eec;}
.defaultSkin tr.mceFirst{background:#777;}
.defaultSkin td.mceFirst,.defaultSkin td.mceLast{background-color:#eec;}
.defaultSkin span.mceIcon,.defaultSkin img.mceIcon,.defaultSkin .mceButtonDisabled .mceIcon{background-color:#eec;}
#profile-jot-text_toolbargroup,.mceCenter tr{background:#808080;}
[id$="jot-text_ifr"]{width:99.900002% !important;color:#111111;background:#eeeeec;}[id$="jot-text_ifr"] .mceContentBody{color:#111111;background:#eeeeec;}
.defaultSkin tr.mceFirst{background:#808080;}
.defaultSkin td.mceFirst,.defaultSkin td.mceLast{background-color:#eeeeec;}
.defaultSkin span.mceIcon,.defaultSkin img.mceIcon,.defaultSkin .mceButtonDisabled .mceIcon{background-color:#eeeeec;}
#profile-attach-wrapper,#profile-audio-wrapper,#profile-link-wrapper,#profile-location-wrapper,#profile-nolocation-wrapper,#profile-title-wrapper,#profile-upload-wrapper,#profile-video-wrapper{float:left;margin:0 20px 0 0;}
#profile-rotator-wrapper{float:right;}
#profile-jot-tools-end,#profile-jot-banner-end{clear:both;}
#profile-jot-email-wrapper{margin:10px 10% 0;border:1px solid #555753;border-bottom:0;}
#profile-jot-email-label{background-color:#555753;color:#ccccce;padding:5px;}
#profile-jot-email-label{background-color:#555753;color:#eeeeec;padding:5px;}
#profile-jot-email{width:90%;margin:5px;}
#profile-jot-networks{margin:0 10%;border:1px solid #555753;border-top:0;border-bottom:0;padding:5px;}
#profile-jot-net{margin:5px 0;}
#jot-preview-link{margin:0 0 0 10px;border:0;text-decoration:none;float:right;}
.icon-text-preview{margin:0 0 -18px 0;display:block;width:20px;height:20px;background:url(light/icons.png) no-repeat -128px -40px;border:0;text-decoration:none;float:right;cursor:pointer;}
#profile-jot-perms{float:right;background-color:#555753;height:22px;width:20px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;overflow:hidden;border:0px;margin:0 10px 0 10px;}
#profile-jot-perms{float:right;color:#555753;width:20px;height:20px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:3px 3px 5px 0 #111111;-o-box-shadow:3px 3px 5px 0 #111111;-webkit-box-shadow:3px 3px 5px 0 #111111;-ms-box-shadow:3px 3px 5px 0 #111111;box-shadow:3px 3px 5px 0 #111111;border:2px outset #555753;overflow:hidden;margin:0 10px 0 10px;}
#profile-jot-plugin-wrapper{width:1px;margin:10px 0 0 0;float:right;}
#profile-jot-submit-wrapper{float:right;width:100%;list-style:none;margin:10px 0 0 0;padding:0;}
#profile-jot-submit{height:auto;background-color:#555753;color:#eeeeec;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:2px outset #222420;margin:0;float:right;text-shadow:1px 1px #111;width:auto;}#profile-jot-submit:active{box-shadow:0 0 0 0;}
#jot-perms-icon{height:22px;width:20px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;overflow:hidden;border:0;}
#profile-jot-acl-wrapper{margin:0 10px;border:1px solid #555753;border-top:0;display:block !important;}
#group_allow_wrapper,#group_deny_wrapper,#acl-permit-outer-wrapper{width:47%;float:left;}
#contact_allow_wrapper,#contact_deny_wrapper,#acl-deny-outer-wrapper{width:47%;float:right;}
#acl-permit-text{background-color:#555753;color:#ccccce;padding:5px;float:left;}
#profile-jot-submit-wrapper{float:right;width:100%;margin:10px 0 0 0;padding:0;}
#profile-jot-submit{height:auto;background-color:#555753;color:#eeeeec;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;border:2px outset #555753;margin:0;float:right;-moz-text-shadow:1px 1px #111111;-o-text-shadow:1px 1px #111111;-webkit-text-shadow:1px 1px #111111;-ms-text-shadow:1px 1px #111111;text-shadow:1px 1px #111111;width:auto;}#profile-jot-submit:active{-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;}
#jot-perms-icon{width:22px;height:22px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;overflow:hidden;background:#555753 url("dark/icons.png") -88px -40px;}
#group_allow_wrapper,#group_deny_wrapper,#acl-permit-outer-wrapper,#contact_allow_wrapper,#contact_deny_wrapper,#acl-deny-outer-wrapper{width:47%;}
#group_allow_wrapper,#group_deny_wrapper,#acl-permit-outer-wrapper{float:left;}
#contact_allow_wrapper,#contact_deny_wrapper,#acl-deny-outer-wrapper{float:right;}
#acl-permit-text{background-color:#555753;color:#111111;padding:5px;float:left;}
#jot-public{background-color:#555753;color:#ff0000;padding:5px;float:left;}
#acl-deny-text{background-color:#555753;color:#ccccce;padding:5px;float:left;}
#acl-permit-text-end,#acl-deny-text-end{clear:both;}
#jot-title-desc{color:#ccc;}
#profile-jot-desc{color:#a00;margin:5px 0;}
#acl-deny-text{background-color:#555753;color:#eeeeec;padding:5px;float:left;}
#jot-title-desc{color:#cccccc;}
#profile-jot-desc{background:#eeeeec;border:1px solid #111111;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;color:#ff2000;margin:5px 0;}
#jot-title-wrapper{margin-bottom:5px;}
#jot-title-display{font-weight:bold;}
.jothidden{display:none;}
#jot-preview-content{background-color:#ffffe0;color:#111;border:1px #aa0 solid;border-radius:5px;padding:3px 3px 6px 10px;}#jot-preview-content .wall-item-outside-wrapper{border:0;border-radius:0px;}
#jot-preview-content{background-color:#f2f2c3;color:#111111;border:1px solid #111111;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:5px 0 10px 0px #111111;-o-box-shadow:5px 0 10px 0px #111111;-webkit-box-shadow:5px 0 10px 0px #111111;-ms-box-shadow:5px 0 10px 0px #111111;box-shadow:5px 0 10px 0px #111111;padding:3px 3px 6px 10px;}#jot-preview-content .wall-item-outside-wrapper{border:0;-o-border-radius:0px 0px 0px 0px;-webkit-border-radius:0px 0px 0px 0px;-moz-border-radius:0px 0px 0px 0px;-ms-border-radius:0px 0px 0px 0px;border-radius:0px 0px 0px 0px;-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;}
#sectionmain{margin:20px;font-size:0.8em;min-width:475px;width:67%;float:left;display:inline;}
.tabs{list-style:none;margin:10px 0;padding:0;}.tabs li{display:inline;font-size:smaller;font-weight:bold;}
.tab{border:1px solid #729fcf;padding:4px;}.tab:hover,.tab.active:hover,.tab:active{background:#729fcf;color:#eeeeec;}
.tab.active{background:#729fcf;color:#eeeeec;}.tab.active a{color:#729fcf;}
.tabs{margin:0px;padding:0px;list-style:none;list-style-position:inside;margin:10px 0;}.tabs li{display:inline;font-size:smaller;}
.tab{border:1px solid #284d7d;padding:4px;}.tab:hover,.tab:active{background:#f2f2c3;color:#111111;border:1px solid #284d7d;}
.tab.active{background:#2e3436;color:#eeeeec;border:1px solid #284d7d;}.tab.active:hover{background:#f2f2c3;color:#111111;border:1px solid #284d7d;}
.tab.active a{color:#eeeeec;text-decoration:none;}
.tab a{border:0;text-decoration:none;}
.wall-item-outside-wrapper{border:1px solid #aaa;border-radius:5px;box-shadow:5px 0 10px 0 #888;}.wall-item-outside-wrapper.comment{margin-top:5px;}
.wall-item-outside-wrapper-end{clear:both;}
.wall-item-content-wrapper{position:relative;padding:10px;width:auto;}
.wall-item-outside-wrapper{border:1px solid #545454;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:6px 1px 10px -2px #111111;-o-box-shadow:6px 1px 10px -2px #111111;-webkit-box-shadow:6px 1px 10px -2px #111111;-ms-box-shadow:6px 1px 10px -2px #111111;box-shadow:6px 1px 10px -2px #111111;}.wall-item-outside-wrapper.comment{margin-top:5px;}
.wall-item-content-wrapper{position:relative;padding:0.75em;width:auto;}
.wall-item-outside-wrapper .wall-item-comment-wrapper{}
.shiny{background:#efefdf;border-radius:5px;}
.wall-outside-wrapper .shiny{border-radius:5px;}
.shiny{background:#f2f2c3;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
.wall-outside-wrapper .shiny{-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
.heart{color:red;}
.wall-item-content{overflow-x:auto;margin:0px 15px 0px 5px;}
[id^="tread-wrapper"],[class^="tread-wrapper"]{margin:15px 0 0 0;padding:0px;}
.wall-item-content{overflow-x:auto;margin:0px 4em 1em 5px;}
[id^="tread-wrapper"],[class^="tread-wrapper"]{margin:1.2em 0 0 0;padding:0px;}
.wall-item-photo-menu{display:none;}
.wall-item-photo-menu-button{display:none;text-indent:-99999px;background:#555753 url(light/menu-user-pin.jpg) no-repeat 75px center;position:absolute;overflow:hidden;height:20px;width:90px;top:85px;left:0;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;}
.wall-item-info{float:left;width:110px;}
.wall-item-photo-wrapper{width:80px;height:80px;position:relative;padding:5px;background-color:#555753;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
.wall-item-photo-menu-button{display:none;text-indent:-99999px;background:#555753 url(light/menu-user-pin.jpg) no-repeat 75px center;position:absolute;overflow:hidden;width:90px;height:20px;top:85px;left:0;-o-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-ms-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;}
.wall-item-info{float:left;width:8em;}
.wall-item-photo-wrapper{width:80px;height:80px;position:relative;padding:5px;background-color:#555753;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
[class^="wall-item-tools"] *{}[class^="wall-item-tools"] *>*{}
.wall-item-tools{float:right;opacity:0.4;-webkit-transition:all 1s ease-in-out;-moz-transition:all 1s ease-in-out;-o-transition:all 1s ease-in-out;-ms-transition:all 1s ease-in-out;transition:all 1s ease-in-out;}.wall-item-tools:hover{opacity:1;-webkit-transition:all 1s ease-in-out;-moz-transition:all 1s ease-in-out;-o-transition:all 1s ease-in-out;-ms-transition:all 1s ease-in-out;transition:all 1s ease-in-out;}
.wall-item-subtools1{height:30px;list-style:none outside none;margin:20px 0 30px -20px;padding:0;width:30px;}
.wall-item-subtools2{height:25px;list-style:none outside none;margin:-75px 0 0 5px;padding:0;width:25px;}
.wall-item-title{font-size:1.2em;font-weight:bold;margin-bottom:1em;}
.wall-item-body{margin:20px 20px 10px 0px;text-align:left;overflow-x:auto;}
.wall-item-lock-wrapper{float:right;height:22px;margin:0 -5px 0 0;width:22px;opacity:1;}
.wall-item-dislike,.wall-item-like{clear:left;font-size:0.8em;color:#878883;margin:5px 0 5px 120px;}
.wall-item-author,.wall-item-actions-author{clear:left;font-size:0.8em;color:#878883;margin:20px 20px 0 110px;}
.wall-item-ago{display:inline;padding-left:10px;}
.wall-item-wrapper-end{clear:both;}
.wall-item-location{margin-top:15px;width:100px;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;}.wall-item-location .icon{float:left;}
.wall-item-tools{float:right;opacity:0.4;-webkit-transition:all 0.75s ease-in-out;-moz-transition:all 0.75s ease-in-out;-o-transition:all 0.75s ease-in-out;-ms-transition:all 0.75s ease-in-out;transition:all 0.75s ease-in-out;}.wall-item-tools:hover{opacity:1;-webkit-transition:all 0.75s ease-in-out;-moz-transition:all 0.75s ease-in-out;-o-transition:all 0.75s ease-in-out;-ms-transition:all 0.75s ease-in-out;transition:all 0.75s ease-in-out;}
.wall-item-subtools1{width:30px;height:30px;list-style:none outside none;margin:18px 0 30px -20px;padding:0;}
.wall-item-subtools2{width:25px;height:25px;list-style:none outside none;margin:-78px 0 0 5px;padding:0;}
.wall-item-title{font-size:1.2em;font-weight:bold;margin-bottom:1.4em;}
.wall-item-body{margin:15px 10px 10px 0px;text-align:left;overflow-x:auto;}
.wall-item-lock-wrapper{float:right;width:22px;height:22px;margin:0 -5px 0 0;opacity:1;}
.wall-item-dislike,.wall-item-like{clear:left;font-size:0.8em;color:#888b85;margin:5px 0 5px 10.2em;-webkit-transition:all 0.75s ease-in-out;-moz-transition:all 0.75s ease-in-out;-o-transition:all 0.75s ease-in-out;-ms-transition:all 0.75s ease-in-out;transition:all 0.75s ease-in-out;opacity:0.5;}.wall-item-dislike:hover,.wall-item-like:hover{opacity:1;}
.wall-item-author,.wall-item-actions-author,.wall-item-ago{clear:left;float:left;color:#eeeeec;line-height:1;display:inline-block;font-size:0.75em;margin:0.5em auto 0;}
.wall-item-author,.wall-item-actions-author{margin:0.5em auto 0;font-size:0.75em;font-weight:bold;}
.wall-item-location{margin-top:15px;width:100px;overflow:hidden;-moz-text-overflow:ellipsis;-ms-text-verflow:ellipsis;-o-text-overflow:ellipsis;-webkit-text-overflow:ellipsis;text-overflow:ellipsis;}.wall-item-location .icon{float:left;}
.wall-item-location>a,.wall-item-location .smalltext{margin-left:25px;font-size:0.7em;display:block;}
.wall-item-location>br{display:none;}
.wallwall .wwto{left:5px;margin:0;position:absolute;top:75px;width:30px;z-index:10001;width:30px;height:30px;}.wallwall .wwto img{width:30px !important;height:30px !important;}
.wallwall .wwto{left:5px;margin:0;position:absolute;top:75px;z-index:10001;width:30px;height:30px;}.wallwall .wwto img{width:30px !important;height:30px !important;}
.wallwall .wall-item-photo-end{clear:both;}
.wall-item-arrowphoto-wrapper{position:absolute;left:35px;top:80px;z-index:10002;}
.wall-item-photo-menu{min-width:92px;border:2px solid #FFFFFF;border-top:0px;background:#555753;position:absolute;left:-2px;top:101px;display:none;z-index:10003;-webkit-border-radius:0px 5px 5px 5px;-moz-border-radius:0px 5px 5px 5px;border-radius:0px 5px 5px 5px;}.wall-item-photo-menu ul{margin:0px;padding:0px;list-style:none;}
.wall-item-photo-menu li a{white-space:nowrap;display:block;padding:5px 2px;color:#eeeeec;}.wall-item-photo-menu li a:hover{color:#555753;background:#eeeeec;}
.wall-item-photo-menu{min-width:92px;font-size:0.75em;border:2px solid #555753;border-top:0px;background:#555753;position:absolute;left:-2px;top:101px;display:none;z-index:10003;-o-border-radius:0 5px 5px 5px;-webkit-border-radius:0 5px 5px 5px;-moz-border-radius:0 5px 5px 5px;-ms-border-radius:0 5px 5px 5px;border-radius:0 5px 5px 5px;}.wall-item-photo-menu li a{white-space:nowrap;display:block;padding:5px 6px;color:#eeeeec;}.wall-item-photo-menu li a:hover{color:#555753;background:#eeeeec;}
#item-delete-selected{overflow:auto;width:100%;}
#connect-services-header,#connect-services,#extra-help-header,#extra-help,#postit-header,#postit{margin:5px 0 0 0;}
.ccollapse-wrapper{font-size:0.9em;margin-left:80px;}
.wall-item-outside-wrapper.comment{margin-left:80px;}.wall-item-outside-wrapper.comment .wall-item-photo{width:40px!important;height:40px!important;}
.ccollapse-wrapper{font-size:0.9em;margin-left:5em;}
.hide-comments-outer{font-size:small;}
.wall-item-outside-wrapper.comment{margin-left:5em;}.wall-item-outside-wrapper.comment .wall-item-photo{width:40px !important;height:40px !important;}
.wall-item-outside-wrapper.comment .wall-item-photo-wrapper{width:40px;height:40px;}
.wall-item-outside-wrapper.comment .wall-item-photo-menu-button{width:50px;top:45px;background-position:35px center;}
.wall-item-outside-wrapper.comment .wall-item-info{width:60px;}
.wall-item-outside-wrapper.comment .wall-item-body{margin-left:10px;}
.wall-item-outside-wrapper.comment .wall-item-author{margin-left:50px;}
.wall-item-outside-wrapper.comment .wall-item-author{margin-left:0.2em;}
.wall-item-outside-wrapper.comment .wall-item-photo-menu{min-width:50px;top:60px;}
.comment-wwedit-wrapper{}
.comment-edit-wrapper{border-top:1px #aaa solid;}
[class^="comment-edit-bb"]{list-style:none;display:none;margin:-40px 0 5px 60px;width:75%;}[class^="comment-edit-bb"]>li{display:inline-block;margin:0 10px 0 0;visibility:none;}
[class^="comment-edit-bb"]{margin:0px;padding:0px;list-style:none;list-style-position:inside;display:none;margin:-40px 0 5px 60px;width:75%;}[class^="comment-edit-bb"]>li{display:inline-block;margin:0 10px 0 0;visibility:none;}
.comment-wwedit-wrapper img,.comment-edit-wrapper img{width:20px;height:20px;}
.comment-edit-photo-link,.comment-edit-photo{margin-left:10px;}
.my-comment-photo{width:40px;height:40px;padding:5px;}
[class^="comment-edit-text"]{margin:5px 0 10px 20px;width:84.5%;}
.comment-edit-text-empty{height:20px;border:2px #babdd6 solid;border-radius:5px;color:#babdb6;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}.comment-edit-text-empty:hover{color:#999999;}
.comment-edit-text-full{height:10em;border-radius:5px;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}
[class^="comment-edit-text"]{margin:5px 0 10px 20px;width:94%;}
.comment-edit-text-empty{height:20px;border:2px solid #babdd6;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;color:#babdd6;-webkit-transition:all 0.75s ease-in-out;-moz-transition:all 0.75s ease-in-out;-o-transition:all 0.75s ease-in-out;-ms-transition:all 0.75s ease-in-out;transition:all 0.75s ease-in-out;}.comment-edit-text-empty:hover{color:#444444;}
.comment-edit-text-full{height:10em;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-webkit-transition:all 0.75s ease-in-out;-moz-transition:all 0.75s ease-in-out;-o-transition:all 0.75s ease-in-out;-ms-transition:all 0.75s ease-in-out;transition:all 0.75s ease-in-out;}
.comment-edit-submit-wrapper{width:90%;margin:5px 5px 10px 50px;text-align:right;}
.comment-edit-submit{height:22px;background-color:#555753;color:#eeeeec;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:0;}
.wall-item-body code{display:block;padding:0 0 10px 5px;border-color:#ccc;border-style:solid;border-width:1px 1px 1px 10px;background:#eee;color:#444;width:95%;}
div[id$="text"]{font-weight:bold;border-bottom:1px solid #ccc;}
.comment-edit-submit{height:22px;background-color:#555753;color:#eeeeec;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;border:0;}
.wall-item-body code{background-color:#dddddd;border-bottom:1px dashed #888888;border-left:5px solid #888888;border-top:1px dashed #888888;color:#191919;display:block;overflow-x:auto;padding:5px 0 15px 10px;width:95%;}.wall-item-body code a{color:#477ec4;}
div[id$="text"]{font-weight:bold;border-bottom:1px solid #eeeeec;}
div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:left;}
.profile-match-wrapper{float:left;margin:0 5px 40px 0;width:120px;height:120px;padding:3px;position:relative;}
.icon.drophide.profile-match-ignore{margin:0 6px 0 -3px;}
@ -223,21 +253,17 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
#advanced-profile-with{margin-left:200px;}
.photos{height:auto;overflow:auto;}
#photo-top-links{margin-bottom:30px;}
.photo-album-image-wrapper,.photo-top-image-wrapper{float:left;-moz-box-shadow:3px 3px 10px 0 #000;-webkit-box-shadow:3px 3px 10px 0 #000;box-shadow:3px 3px 10px 0 #000;background-color:#eee;color:#111;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;padding-bottom:30px;position:relative;margin:0 10px 10px 0;}
.photo-album-image-wrapper,.photo-top-image-wrapper{float:left;-moz-box-shadow:3px 3px 10px 0 #111111;-o-box-shadow:3px 3px 10px 0 #111111;-webkit-box-shadow:3px 3px 10px 0 #111111;-ms-box-shadow:3px 3px 10px 0 #111111;box-shadow:3px 3px 10px 0 #111111;background-color:#eeeeec;color:#111111;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;padding-bottom:30px;position:relative;margin:0 10px 10px 0;}
#photo-photo{max-width:100%;}#photo-photo img{max-width:100%;}
.photo-top-image-wrapper a:hover,#photo-photo a:hover,.photo-album-image-wrapper a:hover{border-bottom:0;}
.photo-top-photo,.photo-album-photo{-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}
.photo-top-album-name{position:absolute;bottom:0;padding:0 5px;}
.caption{position:absolute;bottom:0;margin:0 5px;}
#photo-photo{position:relative;float:left;}
#photo-prev-link,#photo-next-link{position:absolute;width:30%;height:100%;background-color:rgba(255, 255, 255, 0.5);opacity:0;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;background-position:center center;background-repeat:no-repeat;}
#photo-prev-link{background-image:url(light/prev.png);height:350px;left:1%;top:215px;width:50px;z-index:10;}
#photo-next-link{background-image:url(light/next.png);height:350px;right:45%;top:215px;width:50px;}
#photo-prev-link a,#photo-next-link a{display:block;width:100%;height:100%;overflow:hidden;text-indent:-900000px;}
#photo-prev-link:hover{opacity:1;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}
#photo-next-link:hover{opacity:1;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}
#photo-next-link .icon{display:none;}
#photo-prev-link .icon{display:none;}
.photo-top-photo,.photo-album-photo{-o-border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-ms-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}
.photo-top-album-name,.caption{position:absolute;bottom:0;padding:0 5px;}
#photo-photo{position:relative;margin:5px 45%;}
#photo-prev-link,#photo-next-link{position:absolute;width:50px;height:150px;background:#ffffff center center no-repeat;opacity:0;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;z-index:10;top:175px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}#photo-prev-link:hover,#photo-next-link:hover{opacity:0.6;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}
#photo-prev-link .icon,#photo-next-link .icon{display:none;}
#photo-prev-link{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAnCAMAAADTjiM/AAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAALpQTFRF////AAAAQEBAZmZmVVVVSUlJTU1NXV1dVVVVTk5OW1tbWlpaWFhPWFhQU1pTVVVVVlZSVVlRVlZTVFdUVFdUVVdTVFZSVldUVldSVldSVldTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVZUVVdTVVdTVVhSVVdTVVdTVVhSVVdTVVdTVVhSVVdTVVdTVVdTVVdTVVdTVVdTVVhTVVdTVVdTVVdTVVdT3XYY/AAAAD10Uk5TAAEEBQYHCgsMDQ4RHSAlP0FFR1hee3+JnqSqq6ytrq+wsbKztLW2t7y9vr/AwcLDxMXGx8jU1dng7O/3+TmOwVsAAADASURBVCjPddPXEoIwEAXQINh7Q8WKYu+95v9/S0dxZxNy83hgMpvdu0Jox642r25GVxGfys+5540sZV3jyY/lWeVxyDLg7AR/lhXOI+KZZeRFgvGQeMnY9olXScYD4jXnPvHGzNsU4x7xjnGsa+YO8T7NnukRHzgXiY/KNKiUkzqkZ8ivnDoKD/xfBvdbbXM9sH70Xtgf2E/YfzgvOF+YB5gf5cPcAfmsgTy3QP5vYF8akf36XvXIRhZPlPyLWxBvNENWsZXDKukAAAAASUVORK5CYII=");left:22%;}
#photo-next-link{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAnCAMAAADTjiM/AAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAKVQTFRF////gICAQEBAZmZmVVVVSUlJYGBgVVVVTU1NXV1dVVVVWVlZU1hTVlZSVlZTVlZTVVlRVVhSVFdUVlhTVVdTVFZTVVdTVldTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVZUVVdTVVdTVVhSVVdTVVdTVVdTVVdTVVdTVVdTVVdTVVdTVVdT8E3YQQAAADZ0Uk5TAAIEBQYHCAkKCwwUN0FER0hOW2uNjqWqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCxcjT3PP3B0dhfwAAANlJREFUKM910+cSgjAQRtEIomAXu4iIYge7ef9Hs+ZzN4b9eW4mk1kGIaqdU9wQf2Nf5XPSiu4d+Z6jp/n54/KghZ40h5ZymbFQGCCkLg3WKC+MEfYs2AHCrszCBGHLQ5gXpggbFooRwrrEwgxhxUOcE5w5wtJiYYHQZjt0EuUhX3r19vU7Y++ozgeMD7i/buYhYTcDj8gz3RQ8prwHB/aPyzvwhPLWzBtwSLi0Bk8pr8BR0cgzwiIycw0cUxZ9xXOH7VZ9vAVn4X840Vh4F9Pp1w/gZ92mpesDuLpM+1blc68AAAAASUVORK5CYII=");left:44%;}
#photo-prev-link a,#photo-next-link a{display:block;width:100%;height:100%;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;overflow:hidden;text-indent:-900000px;}
#photos-upload-spacer,#photos-upload-new-wrapper,#photos-upload-exist-wrapper{margin-bottom:1em;}
#photos-upload-existing-album-text,#photos-upload-newalbum-div{background-color:#555753;color:#eeeeec;padding:1px;}
#photos-upload-album-select,#photos-upload-newalbum{width:99%;}
@ -246,12 +272,11 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
#photo-edit-link-wrap{margin-bottom:15px;}
#photo-edit-caption,#photo-edit-newtag{width:100%;}
#photo-like-div{margin-bottom:25px;}
#photo-edit-caption-end,#photo-edit-tags-end,#photo-edit-albumname-end{clear:both;}
#photo-edit-delete-button{margin-left:200px;}
#photo-edit-end{margin-bottom:35px;}
#photo-caption{font-size:110%;font-weight:bold;margin-top:15px;margin-bottom:15px;}
.prvmail-text{width:100%;}
#prvmail-subject{width:100%;color:#eec;background:#444;}
#prvmail-subject{width:100%;color:#eeeeec;background:#111111;}
#prvmail-submit-wrapper{margin-top:10px;}
#prvmail-submit{float:right;margin-top:0;}
#prvmail-submit-wrapper div{margin-right:5px;float:left;}
@ -263,7 +288,7 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
.mail-list-sender-name,.mail-list-date{font-style:italic;}
.mail-list-subject{font-size:1.2em;}
.mail-list-delete-wrapper{float:right;}
.mail-list-outside-wrapper-end{clear:both;border-bottom:1px #eec dotted;}
.mail-list-outside-wrapper-end{clear:both;border-bottom:1px #111111 dotted;}
.mail-conv-sender{float:left;margin:0px 5px 5px 0px;}
.mail-conv-sender-photo{width:32px;height:32px;}
.mail-conv-sender-name{float:left;}
@ -271,85 +296,82 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
.mail-conv-subject{clear:right;font-weight:bold;font-size:1.2em;}
.mail-conv-body{clear:both;}
.mail-conv-delete-wrapper{margin-top:5px;}
.view-contact-wrapper,.contact-entry-wrapper{float:left;margin:0 5px 40px 0;width:120px;height:120px;padding:3px;position:relative;}
.view-contact-wrapper,.contact-entry-wrapper{float:left;margin:0 5px 40px 0;width:120px;height:135px;padding:3px;position:relative;}
.contact-direction-wrapper{position:absolute;top:20px;}
.contact-edit-links{position:absolute;top:60px;}
.contact-entry-photo{margin-left:20px;}
.contact-entry-name{width:120px;font-weight:bold;}
.contact-entry-name{width:120px;font-weight:bold;font-size:small;}
.contact-entry-details{font-size:x-small;}
.contact-entry-photo{position:relative;}
.contact-entry-edit-links .icon{border:1px solid #babdb6;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#fff;}
#contact-entry-url,[id^="contact-entry-url"]{font-size:smaller;}
#contact-entry-network,[id^="contact-entry-network"]{font-size:smaller;font-style:italic;}
.contact-entry-edit-links .icon{border:1px solid #babdb6;-o-border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;background-color:white;}
#contact-entry-url,[id^="contact-entry-url"],#contact-entry-network,[id^="contact-entry-network"]{font-size:smaller;}
#contact-entry-network,[id^="contact-entry-network"]{font-style:italic;}
#contact-edit-banner-name{font-size:1.5em;}
#contact-edit-photo-wrapper{position:relative;float:left;padding:20px;}
#contact-edit-direction-icon{position:absolute;top:60px;left:0;}
#contact-edit-nav-wrapper{margin-left:0px;}
#contact-edit-links{margin-top:23px;}#contact-edit-links ul{list-style-type:none;}
#contact-edit-links{margin-top:23px;}
#contact-drop-links{margin-left:5px;}
#contact-edit-nav-wrapper .icon{border:1px solid #babdb6;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
#contact-edit-nav-wrapper .icon{border:1px solid #babdb6;-o-border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;}
#contact-edit-poll-wrapper{margin-left:0px;}
#contact-edit-last-update-text{margin-bottom:15px;}
#contact-edit-last-updated{font-weight:bold;}
#contact-edit-poll-text{display:inline;}
#contact-edit-info_tbl,#contact-edit-info_parent,.mceLayout{width:100%;}
#contact-edit-end{clear:both;margin-bottom:65px;}
.contact-photo-menu-button{position:absolute;background-image:url("light/photo-menu.jpg");background-position:top left;background-repeat:no-repeat;margin:0px;padding:0px;width:16px;height:16px;top:64px;left:0px;overflow:hidden;text-indent:40px;display:none;}
.contact-photo-menu{width:auto;border:2px solid #444;background:#eee;color:#111;position:absolute;left:0px;top:90px;display:none;z-index:10000;}.contact-photo-menu ul{margin:0px;padding:0px;list-style:none;}
.contact-photo-menu li a{display:block;padding:2px;}.contact-photo-menu li a:hover{color:#fff;background:#3465A4;text-decoration:none;}
.contact-photo-menu-button{position:absolute;background:url("light/photo-menu.jpg") top left no-repeat transparent;margin:0px;padding:0px;width:16px;height:16px;top:64px;left:0px;overflow:hidden;text-indent:40px;display:none;}
.contact-photo-menu{width:auto;border:2px solid #444444;background:#eeeeec;color:#111111;position:absolute;left:0px;top:90px;display:none;z-index:10000;}.contact-photo-menu li a{display:block;padding:2px;}.contact-photo-menu li a:hover{color:white;background:#3465A4;text-decoration:none;}
#id_openid_url{background:url(light/login-bg.gif) no-repeat;background-position:0 50%;padding-left:18px;}
#settings-nickname-desc{background-color:#eee;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;padding:5px;color:#111;}
#settings-default-perms{margin-bottom:20px;}
#register-form div,#profile-edit-form div{clear:both;}
.settings-block label{clear:left;}
.settings-block input{margin:10px 5px;}
#register-form label,#profile-edit-form label{width:300px;float:left;}
#register-form span,#profile-edit-form span{color:#555753;display:block;margin-bottom:20px;}
#profile-edit-marital-label span{margin:-4px;}
.settings-submit-wrapper,.profile-edit-submit-wrapper{margin:0 0 30px -3px;}
.settings-submit-wrapper,.profile-edit-submit-wrapper{margin:0 0 30px;}
.profile-edit-side-div{display:none;}
#profiles-menu-trigger{margin:0px 0px 0px 25px;}
.profile-listing{float:left;margin:20px 20px 0px 0px;}
.icon-profile-edit{background:url("light/icons.png") -150px 0px no-repeat;border:0;cursor:pointer;display:block;float:right;width:20px;height:20px;margin:0 0 -18px;position:absolute;text-decoration:none;top:113px;right:260px;}
#profile-edit-links ul{margin:20px 0;padding:0;list-style:none;}
.icon-profile-edit{background:url("light/icons.png") -150px 0px no-repeat;border:0;cursor:pointer;display:block;width:20px;height:20px;margin:0 0 -18px;text-decoration:none;top:113px;right:260px;}
#profile-edit-links ul{margin:0px;padding:0px;list-style:none;list-style-position:inside;margin:20px 0;}
.marital{margin-top:5px;}
#register-sitename{display:inline;font-weight:bold;}
#advanced-expire-popup{background:#2e2f2e;color:#eec;}
#advanced-expire-popup{background:#111111;color:#eeeeec;}
#id_ssl_policy{width:374px;}
#theme-preview img{margin:10px 10px 10px 288px;}
.group-delete-wrapper{margin:-31px 50px 0 0;float:right;}
#group-edit-submit-wrapper{margin:0 0 10px 0;display:inline;}
#group-edit-desc{margin:10px 0px;}
#group-members,#prof-members{height:200px;overflow:auto;border:1px solid #555753;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}
#group-all-contacts,#prof-all-contacts{height:200px;overflow:auto;border:1px solid #555753;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;}
#group-members,#prof-members{height:200px;overflow:auto;border:1px solid #555753;-o-border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-ms-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}
#group-all-contacts,#prof-all-contacts{height:200px;overflow:auto;border:1px solid #555753;-o-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-ms-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;}
#group-members h3,#group-all-contacts h3,#prof-members h3,#prof-all-contacts h3{color:#eeeeec;background-color:#555753;margin:0;padding:5px;}
#group-separator,#prof-separator{display:none;}
#cropimage-wrapper{float:left;}
#crop-image-form{clear:both;}
.intro-wrapper{margin-top:20px;}
.intro-fullname{font-size:1.1em;font-weight:bold;}
.intro-desc{margin-bottom:20px;font-weight:bold;}
.intro-note{padding:10px;}
.intro-end{padding:30px;}
.intro-form{float:left;}
.intro-approve-form,.intro-approve-as-friend-end{clear:both;}
.intro-approve-form{clear:both;}
.intro-submit-approve,.intro-submit-ignore{margin-right:20px;}
.intro-submit-approve{margin-top:15px;}
.intro-approve-as-friend-label,.intro-approve-as-fan-label,.intro-approve-as-friend,.intro-approve-as-fan{float:left;}
.intro-form-end{clear:both;margin-bottom:10px;}
.intro-approve-as-friend-desc{margin-top:10px;}
.intro-approve-as-end{clear:both;margin-bottom:10px;}
.intro-end,.clear{clear:both;}
.clear{clear:both;}
.eventcal{float:left;font-size:20px;}
.event{background:#2e2f2e;}
.vevent{border:1px solid #ccc;}.vevent .event-description,.vevent .event-location,.vevent .event-start{margin-left:10px;margin-right:10px;}
.event{background:#eeeeec;}
.vevent{border:1px solid #eeeeec;}.vevent .event-description,.vevent .event-location,.vevent .event-start{margin-left:10px;margin-right:10px;}
#new-event-link{margin-bottom:10px;}
.edit-event-link,.plink-event-link{}
.event-description:before{content:url('../../../images/calendar.png');margin-right:15px;}
.event-start,.event-end{margin-left:10px;width:330px;font-size:smaller;}
.event-start .dtstart,.event-end .dtend{float:right;}
.event-list-date{margin-bottom:10px;}
.prevcal,.nextcal{float:left;margin-left:32px;margin-right:32px;margin-top:64px;}
.event-calendar-end{clear:both;}
.prevcal,.nextcal{float:left;margin:64px 32px auto 32px;}
.calendar{font-family:monospace;}
.today{font-weight:bold;color:#FF0000;}
.today{font-weight:bold;color:red;}
#event-start-text,#event-finish-text{margin-top:10px;margin-bottom:5px;}
#event-nofinish-checkbox,#event-nofinish-text,#event-adjust-checkbox,#event-adjust-text,#event-share-checkbox{float:left;}
#event-datetime-break{margin-bottom:10px;}
@ -363,74 +385,71 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
.checkeditem{opacity:1;}
#item-delete-selected{margin-top:30px;}
.delete-checked{position:absolute;left:35px;margin-top:20px;}
#item-delete-selected-end{clear:both;}
#item-delete-selected-icon{float:left;margin-right:5px;}
#item-delete-selected-desc{float:left;margin-right:5px;}#item-delete-selected-desc:hover{text-decoration:underline;}
.fc-state-highlight{background:#eec;color:#2e2f2e;}
.fc-state-highlight{background:#eeeeec;color:#111111;}
.directory-item{float:left;margin:0 5px 4px 0;padding:3px;width:180px;height:250px;position:relative;}
#group-sidebar{margin-bottom:10px;}
.group-selected,.nets-selected,.fileas-selected{padding:3px;color:#111;background:#f8f8f8;font-weight:bold;}
.group-selected:hover,.nets-selected:hover,.fileas-selected:hover{color:#111;}
.group-selected,.nets-selected,.fileas-selected{padding:3px;color:#eeeeec;background:#2e3436;border:1px solid #3465a4;}
.group-selected:hover,.nets-selected:hover,.fileas-selected:hover{padding:3px;color:#3465a4;background:#eeeeec;border:1px solid #3465a4;}
.groupsideedit{margin-right:10px;}
#sidebar-group-ul{padding-left:0;}
#sidebar-group-list{margin:0 0 5px 0;}#sidebar-group-list ul{list-style-type:none;list-style-position:inside;}
#sidebar-group-list li{margin-top:10px;}
#sidebar-group-list .icon{display:inline-block;height:12px;width:12px;}
#sidebar-new-group{margin:auto;display:inline-block;color:#efefef;text-decoration:none;text-align:center;}
#sidebar-group-list{margin:0 0 5px 0;}#sidebar-group-list li{margin-top:10px;}
#sidebar-group-list .icon{display:inline-block;width:12px;height:12px;}
.sidebar-group-element{padding:3px;}.sidebar-group-element:hover{color:#111111;background:#f2f2c3;border:1px solid #284d7d;padding:3px;}
#sidebar-new-group{margin:auto;display:inline-block;color:#eeeeec;text-decoration:none;text-align:center;}
#peoplefind-sidebar form{margin-bottom:10px;}
#sidebar-new-group:hover{}
#sidebar-new-group:active{position:relative;top:1px;}
#side-peoplefind-url{background-color:#e5e0cf;color:#666;border:1px #666 solid;margin-right:3px;width:75%;}#side-peoplefind-url:hover,#side-peoplefind-url:focus{background-color:#efefef;color:#222;border:1px 333 solid;}
.nets-ul{list-style-type:none;padding-left:0px;}.nets-ul li{margin:10px 0 0;}
#side-peoplefind-url{background-color:#eeeeec;color:#666666;border:1px solid #666666;margin-right:3px;width:75%;}#side-peoplefind-url:hover,#side-peoplefind-url:focus{background-color:#999999;color:#eeeeec;border:1px solid #111111;}
.nets-ul{margin:0px;padding:0px;list-style:none;list-style-position:inside;}.nets-ul li{margin:10px 0 0;}
.nets-link,.nets-all{margin-left:0px;}
#netsearch-box{margin:20px 0px 30px;width:135px;}#netsearch-box #search-submit{margin:5px 5px 0px 0px;}
#pending-update{float:right;color:#fff;font-weight:bold;background-color:#ff0000;padding:0 .3em;}
#pending-update{float:right;color:white;font-weight:bold;background-color:red;padding:0 0.3em;}
.admin.linklist{border:0;padding:0;}
.admin.link{list-style-position:inside;}
#adminpage{color:#111;background:transparent;margin:5px;padding:10px;}#adminpage dl{clear:left;margin-bottom:2px;padding-bottom:2px;border-bottom:1px solid #000;}
.admin.link{margin:0px;padding:0px;list-style:none;list-style-position:inside;}
#adminpage{color:#111111;background:#eeeeec;margin:5px;padding:10px;font-size:smaller;}#adminpage dl{clear:left;margin-bottom:2px;padding-bottom:2px;border-bottom:1px solid #111111;}
#adminpage dt{width:250px;float:left;font-weight:bold;}
#adminpage dd{margin-left:250px;}
#adminpage h3{border-bottom:1px solid #ccc;}
#adminpage h3{border-bottom:1px solid #cccccc;}
#adminpage .submit{clear:left;}
#adminpage #pluginslist{margin:0;padding:0;}
#adminpage .plugin{list-style:none;display:block;border:1px solid #888;padding:1em;margin-bottom:5px;clear:left;}
#adminpage .plugin{display:block;border:1px solid #888888;padding:1em;margin-bottom:5px;clear:left;}
#adminpage .toggleplugin{float:left;margin-right:1em;}
#adminpage table{width:100%;border-bottom:1px solid #000;margin:5px 0;}#adminpage table th{text-align:left;}
#adminpage table{width:100%;border-bottom:1px solid #111111;margin:5px 0;}#adminpage table th{font-weight:bold;text-align:left;}
#adminpage table td{padding:5px;vertical-align:middle;}
#adminpage table#users{padding:5px;}#adminpage table#users img{width:16px;height:16px;}
#adminpage table#users a{color:#111111;text-decoration:underline;}
#adminpage td .icon{float:left;}
#adminpage table#users img{width:16px;height:16px;}
#adminpage table tr:hover{background-color:#bbc7d7;}
#adminpage .selectall{text-align:right;}
#adminpage #users a{text-decoration:underline;}
#users .name{color:#eec;}
.field{overflow:auto;}.field label{width:38%;display:inline-block;font-size:1.077em;margin:0 10px 1em 0;border:1px #999 solid;padding:5px;background:#ccc;color:#111;}
.field .onoff{float:right;margin:0 330px 0 auto;width:80px;}.field .onoff a{display:block;border:1px solid #666;padding:3px 6px 4px 10px;height:16px;text-decoration:none;}
.field .onoff .on{background:url("../../../images/onoff.jpg") no-repeat 42px 1px #999999;color:#111;text-align:left;}
.field .onoff .off{background:url("../../../images/onoff.jpg") no-repeat 2px 1px #cccccc;color:#333;text-align:right;}
#users .name{color:#111111;}
#users .tools{padding:5px 0;vertical-align:middle;}
.field{overflow:auto;}
.field .onoff{float:right;margin:0 330px 0 auto;width:80px;}.field .onoff a{display:block;border:1px solid #666666;padding:3px 6px 4px 10px;height:16px;text-decoration:none;}
.field .onoff .on,.field .onoff .off{background-image:url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAUACIDASIAAhEBAxEB/8QAGgABAQACAwAAAAAAAAAAAAAAAAQDBQEGCf/EACgQAAIBAwIFAwUAAAAAAAAAAAECAAMEERIUBRMxUpEhIoEjM1Nxkv/EABcBAAMBAAAAAAAAAAAAAAAAAAABAgT/xAAaEQEAAgMBAAAAAAAAAAAAAAAAAQIRMVES/9oADAMBAAIRAxEAPwD1ERKFNFVaNNVUYACgACcNVt1dEKUwzZwNI9cSDczDVdnuKDjomrPyJOQ2SXNq/L0rTPMzp9vXHWZfo/jT+RNFQV6e2yPt6s/Ms3EWQofhnDqjszWFqzMcljRUknxEn3ES/dup8xxPZ0hXtKFViQzorEDpkiZtqvc3mIkzs40bVe5vMbVe5vMREbrN3xy4t7utSVaZVHZQSDnAP7iIm+K1xpkm09f/2Q==');background-repeat:no-repeat;}
.field .onoff .on{background-position:42px 1px;background-color:#333333;color:#cccccc;text-align:left;}
.field .onoff .off{background-position:2px 1px;background-color:#cccccc;color:#333333;text-align:right;}
.hidden{display:none !important;}
.field textarea{width:80%;height:100px;}
.field_help{display:block;margin-left:297px;color:#666;}
.field_help{display:block;margin-left:297px;color:#666666;font-size:small;}
.field.radio .field_help{margin-left:297px;}
label{width:38%;display:inline-block;font-size:1.077em;margin:0 10px 1em 0;border:1px #999 solid;padding:5px;background:#ccc;color:#111;}
input{width:250px;height:25px;border:1px #999 solid;}input[type="text"],input[type="password"],input[type="search"]{width:250px;height:25px;border:1px #999 solid;}
input[type="checkbox"],input[type="radio"]{border:1px #999 solid;margin:0 0 0 0;height:15px;width:15px;}
input[type="submit"],input[type="button"]{background-color:#555753;border:2px outset #444;border-radius:5px;box-shadow:1px 3px 4px 0 #111;color:#eeeeec;cursor:pointer;font-weight:bold;width:auto;text-shadow:1px 1px #111;-webkit-border-radius:5px;-moz-border-radius:5px;}
input[type="submit"]:active,input[type="button"]:active{box-shadow:0 0 0 0;}
.popup{width:100%;height:100%;top:0px;left:0px;position:absolute;display:none;}.popup .background{background-color:#000;opacity:0.5;width:100%;height:100%;position:absolute;top:0px;left:0px;}
.popup .panel{top:25%;left:25%;width:50%;height:50%;padding:1em;position:absolute;border:4px solid #000000;background-color:#FFFFFF;}
#panel{z-index:100;}
.grey{color:grey;}
.popup{width:100%;height:100%;top:0px;left:0px;position:absolute;display:none;}.popup .background{background-color:#111111;opacity:0.5;width:100%;height:100%;position:absolute;top:0px;left:0px;}
.popup .panel{top:25%;left:25%;width:50%;height:50%;padding:1em;position:absolute;border:4px solid #000000;background-color:white;}
#panel{position:absolute;font-size:small;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;border:1px solid #eeeeec;background-color:#2e3436;color:#eeeeec;padding:1em;z-index:100;}
.pager{margin-top:60px;display:block;clear:both;text-align:center;font-size:small;font-weight:bold;}.pager span{padding:4px;margin:4px;}
.pager_current{background-color:#3465a4;color:#eeeeec;}
.grey,.gray{color:gray;}
.orange{color:orange;}
.red{color:red;}
.popup .panel .panel_text{display:block;overflow:auto;height:80%;}
.popup .panel .panel_in{width:100%;height:100%;position:relative;}
.popup .panel .panel_actions{width:100%;bottom:4px;left:0px;position:absolute;}
.panel_text .progress{width:50%;overflow:hidden;height:auto;border:1px solid #cccccc;margin-bottom:5px;}.panel_text .progress span{float:right;display:block;width:25%;background-color:#eeeeee;text-align:right;}
.panel_text .progress{width:50%;overflow:hidden;height:auto;border:1px solid #cccccc;margin-bottom:5px;}.panel_text .progress span{float:right;display:block;width:25%;background-color:#eeeeec;text-align:right;}
.oauthapp{height:auto;overflow:auto;border-bottom:2px solid #cccccc;padding-bottom:1em;margin-bottom:1em;}.oauthapp img{float:left;width:48px;height:48px;margin:10px;}.oauthapp img.noicon{background-image:url("../../../images/icons/48/plugin.png");background-position:center center;background-repeat:no-repeat;}
.oauthapp a{float:left;}
.iconspacer{display:block;width:16px;height:16px;}
.icon{display:block;width:20px;height:20px;background:url(light/icons.png) no-repeat;border:0;text-decoration:none;border-radius:5px;}.icon:hover{border:0;text-decoration:none;}
.editicon{display:inline-block;width:21px;height:21px;background:url(light/editicons.png) no-repeat;border:0;text-decoration:none;}
.shadow{box-shadow:2px 2px 5px 2px #111;}.shadow:active,.shadow:focus,.shadow:hover{box-shadow:0 0 0 0;}
.icon{display:block;width:20px;height:20px;background:transparent url("light/icons.png") no-repeat;border:0;text-decoration:none;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}.icon:hover{border:0;text-decoration:none;}
.editicon{display:inline-block;width:21px;height:21px;background:url("light/editicons.png") no-repeat;border:0;text-decoration:none;}
.shadow{-moz-box-shadow:2px 2px 5px 2px #111111;-o-box-shadow:2px 2px 5px 2px #111111;-webkit-box-shadow:2px 2px 5px 2px #111111;-ms-box-shadow:2px 2px 5px 2px #111111;box-shadow:2px 2px 5px 2px #111111;}.shadow:active,.shadow:focus,.shadow:hover{-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;}
.editicon:hover{border:0;}
.boldbb{background-position:0px 0px;}.boldbb:hover{background-position:-22px 0px;}
.italicbb{background-position:0px -22px;}.italicbb:hover{background-position:-22px -22px;}
@ -445,6 +464,7 @@ input[type="submit"]:active,input[type="button"]:active{box-shadow:0 0 0 0;}
.icon.s22.text{padding:10px 0px 0px 25px;width:200px;}
.icon.text{text-indent:0px;}
.icon.s16{min-width:16px;height:16px;}
.wall-item-delete-wrapper.icon.delete,.wall-item-delete-wrapper.icon.drophide{margin:0;}
.s16 .add{background:url("../../../images/icons/16/add.png") no-repeat;}
.add{margin:0px 5px;}
.article{background-position:-50px 0;}
@ -472,7 +492,7 @@ input[type="submit"]:active,input[type="button"]:active{box-shadow:0 0 0 0;}
.lock{background-position:-70px -40px;}
.unlock{background-position:-88px -40px;}
.video{background-position:-110px -40px;}
.attach{background-position:-190px -40px;}
.attach{background-position:-191px -40px;}
.language{background-position:-210px -40px;}
.starred{background-position:-130px -60px;}
.unstarred{background-position:-150px -60px;}
@ -482,8 +502,8 @@ input[type="submit"]:active,input[type="button"]:active{box-shadow:0 0 0 0;}
.prev{background-position:-90px -60px;}
.next{background-position:-110px -60px;}
.icon.dim{opacity:0.3;}
#pause{position:fixed;bottom:40px;right:30px;}
.border{border:1px solid #babdb6;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}.border:hover{border:1px solid #babdb6;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
#pause{position:fixed;bottom:40px;right:30px;z-index:10;}
.border{border:1px solid #babdb6;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}.border:hover{border:1px solid #babdb6;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
.attachtype{display:block;width:20px;height:23px;background-image:url(../../../images/content-types.png);}
.type-video{background-position:0px 0px;}
.type-image{background-position:-20px 0;}
@ -492,23 +512,24 @@ input[type="submit"]:active,input[type="button"]:active{box-shadow:0 0 0 0;}
.type-unkn{background-position:-80px 0;}
.cc-license{margin-top:100px;font-size:0.7em;}
footer{display:block;clear:both;}
#profile-jot-text{height:20px;color:#666;border:1px solid #ccc;border-radius:5px;width:99.5%;}
#photo-edit-perms-select,#photos-upload-permissions-wrapper,#profile-jot-acl-wrapper{display:block !important;background:#eec;color:#2e2f2e;}
#profile-jot-text{height:20px;color:#666666;background:#cccccc;border:1px solid #111111;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;width:99.5%;}
#photo-edit-perms-select,#photos-upload-permissions-wrapper,#profile-jot-acl-wrapper{display:block !important;background:#eeeeec;color:#111111;}
#profile-jot-acl-wrapper{margin:0 10px;border:1px solid #555753;border-top:0;font-size:small;}
#acl-wrapper{width:660px;margin:0 auto;}
#acl-search{float:right;background:#ffffff url("../../../images/search_18.png") no-repeat right center;padding-right:20px;margin:6px;color:#111;}
#acl-showall{float:left;display:block;width:auto;height:18px;background:#eeeecc url("../../../images/show_all_off.png") 8px 8px no-repeat;padding:7px 10px 7px 30px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;color:#999;margin:5px 0;}#acl-showall.selected{color:#000;background:#ff9900 url(../../../images/show_all_on.png) 8px 8px no-repeat;}
#acl-list{height:210px;border:1px solid #ccc;clear:both;margin-top:30px;overflow:auto;}
.acl-list-item{border:1px solid #ccc;display:block;float:left;height:110px;margin:3px 0 5px 5px;width:120px;}.acl-list-item img{width:22px;height:22px;float:left;margin:5px 5px 20px;}
#acl-search{float:right;background:#ffffff url("../../../images/search_18.png") no-repeat right center;padding-right:20px;margin:6px;color:#111111;}
#acl-showall{float:left;display:block;width:auto;height:18px;background:#eeeeec url("../../../images/show_all_off.png") 8px 8px no-repeat;padding:7px 10px 7px 30px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;color:#999999;margin:5px 0;}#acl-showall.selected{color:black;background:#ff9900 url(../../../images/show_all_on.png) 8px 8px no-repeat;}
#acl-list{height:210px;border:1px solid #cccccc;clear:both;margin-top:30px;overflow:auto;}
.acl-list-item{border:1px solid #cccccc;width:120px;height:110px;display:block;float:left;margin:3px 0 5px 5px;}.acl-list-item img{width:22px;height:22px;float:left;margin:5px 5px 20px;}
.acl-list-item p{height:12px;font-size:10px;margin:0 0 22px;padding:2px 0 1px;}
.acl-list-item a{background:#cccccc 3px 3px no-repeat;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;clear:both;font-size:10px;display:block;width:55px;height:20px;color:#999;margin:5px auto 0;padding:0 3px;text-align:center;vertical-align:middle;}
#acl-wrapper a:hover{text-decoration:none;color:#000;border:0;}
.acl-button-show{background-image:url('../../../images/show_off.png');margin:0 auto;}
.acl-button-hide{background-image:url('../../../images/hide_off.png');margin:0 auto;}
.acl-button-show.selected{color:#000;background-color:#9ade00;background-image:url(../../../images/show_on.png);}
.acl-button-hide.selected{color:#000;background-color:#ff4141;background-image:url(../../../images/hide_on.png);}
.acl-list-item a{background:#cccccc 3px 3px no-repeat;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;width:55px;height:20px;clear:both;font-size:10px;display:block;color:#999999;margin:5px auto 0;padding:0 3px;text-align:center;vertical-align:middle;}
#acl-wrapper a:hover{text-decoration:none;color:#111111;border:0;}
.acl-button-show{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAFCAYAAABmWJ3mAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABxSURBVAiZY/z//z8DDMyaNUuEgYEhk4GBwZ8JJrhv3z5DZmbmMwwMDOoMDAxpLKtWraqTl5d3fPv2rcn///9XpKWlpTIwMDCwfPr0SePWrVtmP378YPn//385zASmf//+Rf/8+XMpIyPj2bS0tHcwCQBWkiq6M5HGDgAAAABJRU5ErkJggg==');margin:0 auto;}
.acl-button-hide{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACWSURBVAiZBcEhDsIwFAbg/72+VXQ7wPSCIlj8JMlmcKQGgdgRCCfpEz0HjgSDw3IA1AQC1QqSpXwfqeoZwHOaphsAqGpfVVVHIYQNM1+J6MLMOwA9gAOVUhBC6Ky1r7quv03TrMZxzAwAIjKIyCel9JvneQ8ApKprY8zdObfNOXMp5bEsyyDGmJaITt77NwDEGI/W2vYP0nYuQ/Tw9H4AAAAASUVORK5CYII=');margin:0 auto;}
.acl-button-show.selected{background:#9ade00 url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAFCAYAAABmWJ3mAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABXSURBVAiZTcyhDYNQGADh7xEGwGDxhD2qUWxAwIBgE9BdoxO03YaEEX7USzh5l1yKCJl0pBoT+uIhK3zRYk52Az5444w1FijxwoYOTT4UGPHHL9a4crgBhcYSpxKVgzIAAAAASUVORK5CYII=');color:black;}
.acl-button-hide.selected{background:#ff4141 url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACSSURBVAiZBcGhDoJQFAbg/z/3cGliJDOTszmLichGstkMPoTzvfA2N4vN6gMYCGhwMifMTY7fxyCy4zBcCrMjAFRk7p3LWAEzRwYT2StQgMwBrGlmOJCZV72Ok+QpcTyZ1/VHAEBEyiiKHq+2/d6bZgUADMCUIqeR94t338tAns2sVKea/sy2y667AUAgN+pc+gcI6S733PoZRAAAAABJRU5ErkJggg==');color:black;}
.acl-list-item.groupshow{border-color:#9ade00;}
.acl-list-item.grouphide{border-color:#ff4141;}
.acpopup{max-height:175px;max-width:42%;background-color:#555753;color:#fff;overflow:auto;z-index:100000;border:1px solid #cccccc;}
.acpopup{max-height:175px;max-width:42%;background-color:#555753;color:white;overflow:auto;z-index:100000;border:1px solid #cccccc;}
.acpopupitem{background-color:#555753;padding:4px;clear:left;}.acpopupitem img{float:left;margin-right:4px;}
.acpopupitem.selected{color:#2e3436;background-color:#eeeeec;}
.qcomment-wrapper{padding:0px;margin:5px 5px 5px 81%;}
@ -519,4 +540,4 @@ footer{display:block;clear:both;}
#sidebar-page-list ul{padding:0;margin:5px 0;}
#sidebar-page-list li{list-style:none;}
#jappix_mini{margin-left:130px;position:fixed;bottom:0;right:175px !important;z-index:999;}
@media handheld{body{font-size:15pt;}}
@media handheld and screen{body{font-size:15pt;}}@media only screen and (min-device-width:320px) and (max-device-width:480px){body{font-size:12pt;}}@media only screen and (min-width:321px){body{font-size:12pt;}}@media only screen and (max-width:320px){body{font-size:12pt;}}@media only screen and (min-device-width:768px) and (max-device-width:1024px){body{font-size:14pt;}}@media only screen and (min-device-width:768px) and (max-device-width:1024px) and (orientation:landscape){body{font-size:14pt;}}@media only screen and (min-device-width:768px) and (max-device-width:1024px) and (orientation:portrait){body{font-size:14pt;}}@media only screen and (min-width:1024px){body{font-size:14pt;}}@media only screen and (min-width:1520px){body{font-size:16pt;}}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){body{font-size:14pt;}}

File diff suppressed because it is too large Load Diff

View File

@ -50,7 +50,7 @@
</ul>
<div id="user-menu">
<a id="user-menu-label" onclick="openClose('user-menu-popup'); return false" href="$nav.home.0">$sitelocation</a>
<a id="user-menu-label" onclick="openClose('user-menu-popup'); return false;" href="$nav.home.0">$sitelocation</a>
<ul id="user-menu-popup"
onmouseover="if (typeof tmenu != 'undefined') clearTimeout(tmenu); openMenu('user-menu-popup')"
onmouseout="tmenu=setTimeout('closeMenu(\'user-menu-popup\');',200)">
@ -90,7 +90,9 @@
{{ if $userinfo }}
<ul id="nav-user-menu" class="menu-popup">
{{ for $nav.usermenu as $usermenu }}
<li><a class="$usermenu.2" href="$usermenu.0" title="$usermenu.3">$usermenu.1</a></li>
<li>
<a class="$usermenu.2" href="$usermenu.0" title="$usermenu.3">$usermenu.1</a>
</li>
{{ endfor }}
</ul>
{{ endif }}
@ -121,18 +123,19 @@ $langselector
</div>
<div id="scrollup">
<a href="#top"><img
src="view/theme/dispy/icons/scroll_top.png"
<a href="#top"><img src="view/theme/dispy/icons/scroll_top.png"
alt="back to top" title="Back to top" /></a>
</div>
<div class="search-box">
<form method="get" action="$nav.search.0">
<input id="search-text" class="nav-menu-search" type="search" placeholder="Search" value="" id="search" name="search" />
<input id="mini-search-text" class="nav-menu-search" type="search" placeholder="Search" value="" id="search" name="search" />
</form>
</div>
<ul id="nav-notifications-template" style="display:none;" rel="template">
<li class="{4}"><a href="{0}"><img src="{1}" height="24" width="24" alt="" />{2} <span class="notif-when">{3}</span></a></li>
<li class="{4}">
<a href="{0}"><img src="{1}" height="24" width="24" alt="" />{2} <span class="notif-when">{3}</span></a>
</li>
</ul>

Some files were not shown because too many files have changed in this diff Show More