diff options
author | Jay Freeman (saurik) <saurik@saurik.com> | 2010-10-28 02:25:18 -0700 |
---|---|---|
committer | Jay Freeman (saurik) <saurik@saurik.com> | 2010-11-01 22:56:25 -0700 |
commit | e17a8c4f2ae16f8daab460936a9b130d024173dd (patch) | |
tree | 1544816ffb283219f2de45b0a8e99d6f7ebe24f6 /MobileCydia.app/menes | |
parent | 6067f1b8116d8fb2502359f430b9d958e10807b9 (diff) |
Rename Cydia.* to MobileCydia.* and add Cydia.frappliance.
Diffstat (limited to 'MobileCydia.app/menes')
-rw-r--r-- | MobileCydia.app/menes/chevron.png | bin | 0 -> 289 bytes | |||
-rw-r--r-- | MobileCydia.app/menes/chevron@2x.png | bin | 0 -> 415 bytes | |||
-rw-r--r-- | MobileCydia.app/menes/indicator-c7ced5-4d4d70.gif | bin | 0 -> 1849 bytes | |||
-rw-r--r-- | MobileCydia.app/menes/menes.js | 575 | ||||
-rw-r--r-- | MobileCydia.app/menes/style.css | 885 |
5 files changed, 1460 insertions, 0 deletions
diff --git a/MobileCydia.app/menes/chevron.png b/MobileCydia.app/menes/chevron.png Binary files differnew file mode 100644 index 0000000..6ff8205 --- /dev/null +++ b/MobileCydia.app/menes/chevron.png diff --git a/MobileCydia.app/menes/chevron@2x.png b/MobileCydia.app/menes/chevron@2x.png Binary files differnew file mode 100644 index 0000000..9905c17 --- /dev/null +++ b/MobileCydia.app/menes/chevron@2x.png diff --git a/MobileCydia.app/menes/indicator-c7ced5-4d4d70.gif b/MobileCydia.app/menes/indicator-c7ced5-4d4d70.gif Binary files differnew file mode 100644 index 0000000..e41bb96 --- /dev/null +++ b/MobileCydia.app/menes/indicator-c7ced5-4d4d70.gif diff --git a/MobileCydia.app/menes/menes.js b/MobileCydia.app/menes/menes.js new file mode 100644 index 0000000..dc210bb --- /dev/null +++ b/MobileCydia.app/menes/menes.js @@ -0,0 +1,575 @@ +/* XXX: this message is ultra-lame */ +var _assert = function (expr, value) { + if (!expr) { + var message = "_assert(" + value + ")"; + console.log(message); + throw message; + } +} + +// Compatibility {{{ +if (typeof Array.prototype.push != "function") + Array.prototype.push = function (value) { + this[this.length] = value; + }; +// }}} + +var $ = function (arg, doc) { + if (this.magic_ != $.prototype.magic_) + return new $(arg); + + if (arg == null) + arg = []; + + var type = $.type(arg); + + if (type == "function") + $.ready(arg); + else if (type == "string") { + if (typeof doc == 'undefined') + doc = document; + if (arg.charAt(0) == '#') { + /* XXX: this is somewhat incorrect-a-porter */ + var element = doc.getElementById(arg.substring(1)); + return $(element == null ? [] : [element]); + } else if (arg.charAt(0) == '.') + return $(doc.getElementsByClassName(arg.substring(1))); + else + return $([doc]).descendants(arg); + } else if (typeof arg.length != 'undefined') { + _assert(typeof doc == 'undefined', "non-query with document to $"); + this.set(arg); + return this; + } else _assert(false, "unknown argument to $: " + typeof arg); +}; + +$.xml = function (value) { + return value + .replace(/&/, "&") + .replace(/</, "<") + .replace(/>/, ">") + .replace(/"/, """) + .replace(/'/, "'") + ; +} + +$.type = function (value) { + var type = typeof value; + + if ((type == "function" || type == "object") && value.toString != null) { + var string = value.toString(); + if (string.substring(0, 8) == "[object ") + return string.substring(8, string.length - 1); + } + + return type; +}; + +(function () { + var ready_ = null; + + $.ready = function (_function) { + if (ready_ == null) { + ready_ = []; + + document.addEventListener("DOMContentLoaded", function () { + for (var i = 0; i != ready_.length; ++i) + ready_[i](); + }, false); + } + + ready_.push(_function); + }; +})(); + +/* XXX: verify arg3 overflow */ +$.each = function (values, _function, arg0, arg1, arg2) { + for (var i = 0, e = values.length; i != e; ++i) + _function(values[i], arg0, arg1, arg2); +}; + +/* XXX: verify arg3 overflow */ +$.map = function (values, _function, arg0, arg1, arg2) { + var mapped = []; + for (var i = 0, e = values.length; i != e; ++i) + mapped.push(_function(values[i], arg0, arg1, arg2)); + return mapped; +}; + +$.array = function (values) { + if (values.constructor == Array) + return values; + _assert(typeof values.length != 'undefined', "$.array on underlying non-array"); + var array = []; + for (var i = 0; i != values.length; ++i) + array.push(values[i]); + return array; +}; + +$.document = function (node) { + for (;;) { + var parent = node.parentNode; + if (parent == null) + return node; + node = parent; + } +}; + +$.reclass = function (_class) { + return new RegExp('(\\s|^)' + _class + '(\\s|$)'); +}; + +$.prototype = { + magic_: 2041085062, + + add: function (nodes) { + Array.prototype.push.apply(this, $.array(nodes)); + }, + + at: function (name, value) { + if (typeof value == 'undefined') + return $.map(this, function (node) { + return node.getAttribute(name); + }); + else if (value == null) + $.each(this, function (node) { + node.removeAttribute(); + }); + else + $.each(this, function (node) { + node.setAttribute(name, value); + }); + }, + + set: function (nodes) { + this.length = 0; + this.add(nodes); + }, + + /* XXX: verify arg3 overflow */ + each: function (_function, arg0, arg1, arg2) { + $.each(this, function (node) { + _function($([node]), arg0, arg1, arg2); + }); + }, + + css: function (name, value) { + $.each(this, function (node) { + node.style[name] = value; + }); + }, + + addClass: function (_class) { + $.each(this, function (node) { + if (!$([node]).hasClass(_class)[0]) + node.className += " " + _class; + }); + }, + + blur: function () { + $.each(this, function (node) { + node.blur(); + }); + }, + + focus: function () { + $.each(this, function (node) { + node.focus(); + }); + }, + + removeClass: function (_class) { + $.each(this, function (node) { + node.className = node.className.replace($.reclass(_class), ' '); + }); + }, + + hasClass: function (_class) { + return $.map(this, function (node) { + return node.className.match($.reclass(_class)); + }); + }, + + append: function (children) { + if ($.type(children) == "string") + $.each(this, function (node) { + var doc = $.document(node); + + // XXX: implement wrapper system + var div = doc.createElement("div"); + div.innerHTML = children; + + while (div.childNodes.length != 0) { + var child = div.childNodes[0]; + node.appendChild(child); + } + }); + else + $.each(this, function (node) { + $.each(children, function (child) { + node.appendChild(child); + }); + }); + }, + + xpath: function (expression) { + var value = $([]); + + $.each(this, function (node) { + var doc = $.document(node); + var results = doc.evaluate(expression, node, null, XPathResult.ANY_TYPE, null); + var result; + while (result = results.iterateNext()) + value.add([result]); + }); + + return value; + }, + + clone: function (deep) { + return $($.map(this, function (node) { + return node.cloneNode(deep); + })); + }, + + descendants: function (expression) { + var descendants = $([]); + + $.each(this, function (node) { + var nodes = node.getElementsByTagName(expression); + descendants.add(nodes); + }); + + return descendants; + }, + + remove: function () { + $.each(this, function (node) { + node.parentNode.removeChild(node); + }); + } +}; + +$.scroll = function (x, y) { + window.scrollTo(x, y); +}; + +// XXX: document.all? +$.all = function (doc) { + if (typeof doc == 'undefined') + doc = document; + return $(doc.getElementsByTagName("*")); +}; + +$.inject = function (a, b) { + if ($.type(a) == "string") { + $.prototype[a] = function (value) { + if (typeof value == 'undefined') + return $.map(this, function (node) { + return b.get(node); + }); + else + $.each(this, function (node, value) { + b.set(node, value); + }, value); + }; + } else for (var name in a) + $.inject(name, a[name]); +}; + +$.inject({ + _default: { + get: function (node) { + return node.style.defaultValue; + }, + set: function (node, value) { + node.style.defaultValue = value; + } + }, + + height: { + get: function (node) { + return node.height; + }, + set: function (node, value) { + node.height = value; + } + }, + + html: { + get: function (node) { + return node.innerHTML; + }, + set: function (node, value) { + node.innerHTML = value; + } + }, + + href: { + get: function (node) { + return node.href; + }, + set: function (node, value) { + node.href = value; + } + }, + + name: { + get: function (node) { + return node.name; + }, + set: function (node, value) { + node.name = value; + } + }, + + parent: { + get: function (node) { + return node.parentNode; + } + }, + + src: { + get: function (node) { + return node.src; + }, + set: function (node, value) { + node.src = value; + } + }, + + type: { + get: function (node) { + return node.localName; + } + }, + + value: { + get: function (node) { + return node.value; + }, + set: function (node, value) { + // XXX: do I really need this? + if (true || node.localName != "select") + node.value = value; + else { + var options = node.options; + for (var i = 0, e = options.length; i != e; ++i) + if (options[i].value == value) { + if (node.selectedIndex != i) + node.selectedIndex = i; + break; + } + } + } + }, + + width: { + get: function (node) { + return node.offsetWidth; + } + } +}); + +// Query String Parsing {{{ +$.query = function () { + var args = {}; + + var search = location.search; + if (search != null) { + _assert(search[0] == "?", "query string without ?"); + + var values = search.substring(1).split("&"); + for (var index in values) { + var value = values[index] + var equal = value.indexOf("="); + var name; + + if (equal == -1) { + name = value; + value = null; + } else { + name = value.substring(0, equal); + value = value.substring(equal + 1); + value = decodeURIComponent(value); + } + + name = decodeURIComponent(name); + if (typeof args[name] == "undefined") + args[name] = []; + if (value != null) + args[name].push(value); + } + } + + return args; +}; +// }}} +// Event Registration {{{ +// XXX: unable to remove registration +$.prototype.event = function (event, _function) { + $.each(this, function (node) { + // XXX: smooth over this pointer ugliness + if (node.addEventListener) + node.addEventListener(event, _function, false); + else if (node.attachEvent) + node.attachEvent("on" + event, _function); + else + // XXX: multiple registration SNAFU + node["on" + event] = _function; + }); +}; + +$.each([ + "click", "load", "submit" +], function (event) { + $.prototype[event] = function (_function) { + if (typeof _function == 'undefined') + _assert(false, "undefined function to $.[event]"); + else + this.event(event, _function); + }; +}); +// }}} +// Timed Animation {{{ +$.interpolate = function (duration, event) { + var start = new Date(); + + var next = function () { + setTimeout(update, 0); + }; + + var update = function () { + var time = new Date() - start; + + if (time >= duration) + event(1); + else { + event(time / duration); + next(); + } + }; + + next(); +}; +// }}} +// AJAX Requests {{{ +// XXX: abstract and implement other cases +$.xhr = function (url, method, headers, data, events) { + var xhr = new XMLHttpRequest(); + xhr.open(method, url, true); + + for (var name in headers) + xhr.setRequestHeader(name.replace(/_/, "-"), headers[name]); + + if (events == null) + events = {}; + + xhr.onreadystatechange = function () { + if (xhr.readyState == 4) { + var status = xhr.status; + var text = xhr.responseText; + if (events.response != null) + events.response(status, text); + if (status == 200) { + if (events.success != null) + events.success(text); + } else { + if (events.failure != null) + events.failure(status); + } + } + }; + + xhr.send(data); +}; + +$.call = function (url, post, onsuccess) { + var events = {}; + + if (onsuccess != null) + events.complete = function (text) { + onsuccess(eval(text)); + }; + + if (post == null) + $.xhr(url, "POST", null, null, events); + else + $.xhr(url, "POST", { + Content_Type: "application/json" + }, $.json(post), events); +}; +// }}} +// WWW Form URL Encoder {{{ +$.form = function (parameters) { + var data = ""; + + var ampersand = false; + for (var name in parameters) { + if (!ampersand) + ampersand = true; + else + data += "&"; + + var value = parameters[name]; + + data += escape(name); + data += "="; + data += escape(value); + } + + return data; +}; +// }}} +// JSON Serializer {{{ +$.json = function (value) { + if (value == null) + return "null"; + + var type = $.type(value); + + if (type == "number") + return value; + else if (type == "string") + return "\"" + value + .replace(/\\/, "\\\\") + .replace(/\t/, "\\t") + .replace(/\r/, "\\r") + .replace(/\n/, "\\n") + .replace(/"/, "\\\"") + + "\""; + else if (value.constructor == Array) { + var json = "["; + var comma = false; + + for (var i = 0; i != value.length; ++i) { + if (!comma) + comma = true; + else + json += ","; + + json += $.json(value[i]); + } + + return json + "]"; + } else if ( + value.constructor == Object && + value.toString() == "[object Object]" + ) { + var json = "{"; + var comma = false; + + for (var name in value) { + if (!comma) + comma = true; + else + json += ","; + + json += name + ":" + $.json(value[name]); + } + return json + "}"; + } else { + return value; + } +}; +// }}} diff --git a/MobileCydia.app/menes/style.css b/MobileCydia.app/menes/style.css new file mode 100644 index 0000000..677a2fc --- /dev/null +++ b/MobileCydia.app/menes/style.css @@ -0,0 +1,885 @@ +/* iPhone.css - iPhone Interface Cascading Style Sheet + * Copyright (C) 2007-2008 Jay Freeman (saurik) +*/ + +/* + * Redistribution and use in source and binary + * forms, with or without modification, are permitted + * provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the + * above copyright notice, this list of conditions + * and the following disclaimer. + * 2. Redistributions in binary form must reproduce the + * above copyright notice, this list of conditions + * and the following disclaimer in the documentation + * and/or other materials provided with the + * distribution. + * 3. The name of the author may not be used to endorse + * or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* .clearfix {{{ */ +.clearfix:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; +} + +.clearfix { + display: block; +} +/* }}} */ + +* { + border: 0; + -moz-border-radius: 0; + -webkit-border-radius: 0; + box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + -webkit-box-sizing: border-box; + /*font-family: inherit;*/ + font-size: 100%; + font-style: inherit; + font-weight: inherit; + margin: 0; + outline: 0; + padding: 0; + text-decoration: none; + vertical-align: baseline; +} + +a { + color: inherit; +} + +sup { + font-size: smaller; + margin-top: -6px; + position: relative; + top: -6px; +} + +select { + border: 1px solid #999999; +} + +panel { + display: block; + width: 320px; +} + +body { + font-family: Helvetica, Arial; + -webkit-text-size-adjust: none; + -webkit-user-select: none; + margin: 0 auto; + width: 320px; +} + +body.white { + background-color: #ffffff; +} + +body.pinstripe { + background: #c7ced5 url(cydia://uikit-image/UIPinstripe.png); + background-size: 7px 1px; +} + +dialog { + display: block; + position: absolute; + width: 100%; +} + +dialog > panel { + display: block; +} + +a { + color: blue; + text-underline-style: dotted; +} + +strong { + font-weight: bold +} + +pre, tt { + font-family: monospace; +} + +pre { + letter-spacing: -2px; +} + +em { + font-style: italic; +} + +.default { + color: #aaaabb; +} + +.deleted { + display: none; +} + +/* #toolbar {{{ */ +dialog > toolbar { + background: url(toolbar.png) #6d84a2 repeat-x; + border-bottom: 1px solid #2d3642; + height: 45px; + padding: 10px; +} + +dialog > toolbar > h1 { + color: #ffffff; + font-size: 20px; + font-weight: bold; + height: 100%; + margin: 1px auto 0 auto; + text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0; + text-align: center; + white-space: nowrap; +} +/* }}} */ +/* (back|forward)-button {{{ */ +dialog > toolbar > a.back-button, +dialog > toolbar > a.forward-button { + color: #ffffff; + font-size: 12px; + font-weight: bold; + height: 30px; + line-height: 30px; + margin-top: -28px; + padding: 0 3px; + text-decoration: none; + text-shadow: rgba(0, 0, 0, 0.6) 0px -1px 0; + white-space: nowrap; +} + +dialog > toolbar > a.back-button { + -webkit-border-image: url(backButton.png) 0 8 0 14; + border-width: 0 8px 0 14px; + float: left; +} + +dialog > toolbar > a.forward-button { + -webkit-border-image: url(toolButton.png) 0 5 0 5; + border-width: 0 5px; + float: right; +} +/* }}} */ + +panel > block { + /*background-color: #ccd1d5;*/ + /*background-color: white;*/ + /*background-color: #c7ced5;*/ + background-color: transparent; + //background-color: #ffffff; + border-bottom: 1px solid #999999; + border-top: 1px solid #999999; + border-left: 1px dotted #999999; + border-right: 1px dotted #999999; + -moz-border-radius: 9px; + -webkit-border-radius: 9px; + //border: 1px solid #999999; + display: block; + font-size: 16px; + margin: 9px; + padding: 0 10px; +} + +panel > fieldset > div > hr, +panel > block > hr { + border-top: 1px dashed #999999; +} + +panel > fieldset { + background-color: #ffffff; + border: 1px solid #999999; + -moz-border-radius: 9px; + -webkit-border-radius: 9px; + font-size: 16px; + margin: 9px; +} + +panel > input[type="submit"] { + /*-webkit-border-image: url(whiteButton.png) 0 12 0 12; + -moz-border-radius: 0; + -webkit-border-radius: 0; + border-width: 0px 12px;*/ + border: none; + color: #000000; + display: block; + font-size: 20px; + font-weight: bold; + margin: 9px; + height: 44px; + padding: 10px; + text-align: center; + width: 302px; +} + +list > label { + background: #a7b3bc url(cydia://uikit-image/UISectionListHeaderBackground.png); + background-repeat: repeat-x no-repeat-y; + margin-bottom: 0px; + padding: 4px 15px 1px 15px; + display: block; + color: white; + font-size: inherit; + font-weight: bold; + text-shadow: rgba(0, 0, 0, 0.5) 0px 1px 0; +} + +panel > label { + display: block; + margin: 13px 0 -4px 24px; + line-height: 24px; + font-size: inherit; + font-weight: bold; + color: #4d4d70; + text-shadow: rgba(255, 255, 255, 0.75) 1px 1px 0; +} + +panel > fieldset > a, +panel > fieldset > div, +panel > fieldset > textarea { + border-top: 1px solid #999999; +} + +/* XXX: should be a.left:nth-last-child(2) */ +panel > fieldset > a.left, +panel > fieldset > a.middle, +panel > fieldset > a:first-child, +panel > fieldset > div:first-child, +panel > fieldset > textarea:first-child { + border-top: 0; +} + +list > fieldset > a, +list > fieldset > div, +list > fieldset > textarea { + border-bottom: 1px solid #e0e0e0; +} + +fieldset > a:not([type="ad"]), +fieldset > div, +fieldset > textarea { + /* XXX: small differences due to font bugs */ + padding: 12px 14px 10px 14px; +} + +/*fieldset > a:not([type="ad"]):last-child, +fieldset > div:last-child { + padding-bottom: 10px; +}*/ + +fieldset > a[type="ad"] { + /* XXX: small differences due to font bugs */ + padding: 4px 4px 2px 5px; +} + +panel > fieldset > a[type="ad"]:first-child > div:first-child, +panel > fieldset > a[type="comment"]:first-child > div:first-child, +panel > fieldset > a[type="profile"]:first-child > div:first-child, +panel > fieldset > a[type="thumb"]:first-child > div:first-child { + -moz-border-radius-topleft: 9px; + -webkit-border-top-left-radius: 9px; +} + +panel > fieldset > a[type="ad"]:last-child > div:first-child, +panel > fieldset > a[type="comment"]:last-child > div:first-child, +panel > fieldset > a[type="profile"]:last-child > div:first-child, +panel > fieldset > a[type="thumb"]:last-child > div:first-child { + -moz-border-radius-bottomleft: 9px; + -webkit-border-bottom-left-radius: 9px; +} + +fieldset > a[type="ad"] > div:first-child { + border: 1px solid #999999; +} + +list > fieldset > a[type="comment"] > div:first-child, +list > fieldset > a[type="profile"] > div:first-child, +list > fieldset > a[type="thumb"] > div:first-child { + border: 1px solid #e0e0e0; +} + +panel > fieldset > a[type="comment"] > div:first-child { + border: 1px solid #999999; + border-bottom-style: dashed; +} + +panel > fieldset > a[type="profile"] > div:first-child, +panel > fieldset:not(.header) > a[type="thumb"] > div:first-child { + border: 1px solid #999999; +} + +div[tile] { + float: right; + height: 30px; + width: 30px; +} + +div[tile="app"] { background-image: url(http://cache.saurik.com/cydia/tile/app.png); } +div[tile="call"] { background-image: url(http://cache.saurik.com/cydia/tile/call.png); } +div[tile="map"] { background-image: url(http://cache.saurik.com/cydia/tile/map.png); } +div[tile="media"] { background-image: url(http://cache.saurik.com/cydia/tile/media.png); } +div[tile="music"] { background-image: url(http://cache.saurik.com/cydia/tile/video.png); } +div[tile="site"] { background-image: url(http://cache.saurik.com/cydia/tile/site.png); } + +fieldset > a[type="ad"] > div:first-child { + background-repeat: no-repeat; + background-position: center center; + border-right: none; + display: inline-block; + height: 40px; + line-height: 38px; + /* XXX: small differences due to font bugs */ + /* XXX: 1px difference due to border stupidity */ + margin: -5px 5px -3px -6px; + width: 40px; +} + +panel > fieldset > a[type="comment"] { + border-bottom-style: dashed; +} + +fieldset > a[type="comment"] > div:first-child { + -webkit-background-size: 44px; + height: 44px; + width: 44px; +} + +fieldset > a[type="header"] > div:first-child { + height: 64px; + width: 64px; +} + +fieldset > a[type="profile"] > div:first-child { + -webkit-background-size: 50px; + height: 50px; + width: 50px; +} + +fieldset > a[type="thumb"] > div:first-child { + height: 64px; + width: 64px; +} + +fieldset > a[type="comment"] > div:first-child, +fieldset > a[type="header"] > div:first-child, +fieldset > a[type="profile"] > div:first-child, +fieldset > a[type="thumb"] > div:first-child { + background-repeat: no-repeat; + background-position: center center; + display: inline-block; + /* XXX: small differences due to font bugs */ + /* XXX: 1px difference due to border stupidity */ + margin: -13px 7px -11px -15px; +} + +fieldset > a > img.icon, +fieldset > div > img.icon { + height: auto; + /* XXX: small differences due to font bugs */ + margin: -7px 6px -9px -8px; + max-height: 30px; + min-width: 30px; + width: 30px; +} + +fieldset > a.sixth > img.icon { + position: relative; + left: 7px; +} + +panel > block > p, +fieldset > div > p, +panel > block > ul, +fieldset > div > ul { + margin: 10px 0; +} + +panel > block > ul, +fieldset > div > ul { + margin-left: 13px; +} + +panel > block > p, +fieldset > div > p { + text-align: center; +} + +fieldset > div > p:first-child, +fieldset > div > ul:first-child { + margin-top: 0; +} + +fieldset > div > p:last-child, +fieldset > div > ul:last-child { + margin-bottom: 0; +} + +fieldset > a { + color: inherit; + display: block; +} + +fieldset > textarea, +fieldset > div > input:not([type="checkbox"]), +fieldset > div > select, +fieldset > div > div > select { + background: none; + -webkit-box-shadow: none; + -webkit-appearance: none; +} + +/* Chevrons {{{ */ + +fieldset > a[href]:not([type="ad"]), +fieldset > div > select, +fieldset > div > div > select { + background-repeat: no-repeat; + background-image: url(chevron.png); +} + +@media screen and (-webkit-min-device-pixel-ratio: 2) { +fieldset > a[href]:not([type="ad"]), +fieldset > div > select, +fieldset > div > div > select { + background-image: url(chevron@2x.png); + background-size: 10px 13px; +} } + +/* Horizontal */ + +list > fieldset > a[href] { + background-position: 295px center; +} + +panel > fieldset > a[href] { + background-position: 275px center; +} + +panel > fieldset > a[href].half { + background-position: 125px center; +} + +panel > fieldset > a[href].third { + background-position: 75px center; +} + +panel > fieldset > a[href].sixth { + background: none; +} + +list > fieldset > a:not([href]) > select, +list > fieldset > div > select, +list > fieldset > div > div > select { + background-position: 183px center; +} + +panel > fieldset > a:not([href]) > select, +panel > fieldset > div > select, +panel > fieldset > div > div > select { + background-position: 163px center; +} + +/* }}} */ + +fieldset > textarea, +fieldset > div > input, +fieldset > div > select, +fieldset > div > div > select, +fieldset > a > div > label + label, +fieldset > div > div > label + label { + color: #193250; +} + +fieldset > textarea, +fieldset > div > input, +fieldset > div > select, +fieldset > div > div > select { + font-size: 16px; +} + +fieldset > div > input { + padding-left: 7px; + padding-right: 14px; +} + +fieldset > div > input[type="checkbox"] { + border: 1px solid #999999; + -moz-border-radius: 7px; + -webkit-border-radius: 7px; + float: right; + margin: -7px -8px; + height: 30px; + width: 30px; +} + +fieldset > div > select, +fieldset > div > div > select, +fieldset > div > input:not([type="checkbox"]) { + border: none; + float: right; + height: 40px; + margin: -11px -13px -11px -14px; +} + +panel > fieldset > div > select, +panel > fieldset > div > div > select, +panel > fieldset > div > input:not([type="checkbox"]) { + width: 187px; +} + +list > fieldset > div > select, +list > fieldset > div > div > select, +list > fieldset > div > input:not([type="checkbox"]) { + width: 207px; +} + +fieldset > textarea { + padding: 10px; + width: 320px; +} + +fieldset > div > div, +fieldset > a > div { + display: inline-block; +} + +fieldset > div > div { + width: 273px; +} + +fieldset > a[type="ad"] > div:nth-child(2) { + width: 218px; +} + +fieldset > a:not([type]) > div { + width: 250px; +} + +fieldset > a:not([href]) > img.icon + div, +fieldset > div > img.icon + div { + width: 244px; +} + +fieldset > a[href] > img.icon + div { + width: 221px; +} + +fieldset > a[type="profile"] > div:nth-child(2) > label:nth-child(1).unknown { + color: #aaaabb; +} + +fieldset > a[type="profile"] > div:nth-child(2) > label:only-child { + left: 4px; + position: relative; + top: 3px; +} + +fieldset > a[type="thumb"] > div:nth-child(2) > label:only-child { + position: relative; + top: 10px; +} + +fieldset > a[type="profile"] > div:nth-child(2) > label + label { + display: block; + font-size: 13px; + margin-top: 2px; +} + +fieldset > a[type="thumb"] > div:nth-child(2) > label + label { + display: block; + margin-top: 2px; +} + +fieldset > a[type="profile"] > div:nth-child(2) { + width: 207px; +} + +fieldset > a[type="thumb"] > div:nth-child(2) { + width: 193px; +} + +fieldset > a[type="profile"] > div:nth-child(2) { + margin: -5px 0; +} + +fieldset > a[type="profile"] > div:nth-child(2), +fieldset > a[type="thumb"] > div:nth-child(2) { + vertical-align: top; +} + +fieldset > a > label:first-child, +fieldset > a > div > label:first-child, +fieldset > div > label:first-child, +fieldset > div > div > label:first-child { + font-weight: bold; +} + +/* XXX: this doesn't handle icon offsets */ +list > fieldset > a:not([type]) > div > label + label, +list > fieldset > div > div > label + label { + margin-left: 94px; +} + +panel > fieldset > a:not([type]) > div > label + label, +panel > fieldset > div > div > label + label { + float: right; + text-align: right; +} + +panel > img { + display: block; + margin: 9px auto 4px auto; + height: auto; + width: 300px; +} + +fieldset > a[type="ad"] { +} + +fieldset > a[type="ad"] > div:nth-child(2) { + position: relative; + vertical-align: top; +} + +fieldset > a[type="ad"] > div > label:first-child { + color: #2d2d50; + font-size: 13px; + font-weight: bold; + line-height: 15px; +} + +fieldset > a[type="ad"] > div > label + label { + position: absolute; + top: 17px; + left: 156px; + font-size: 9.5px; + font-weight: normal; +} + +panel > fieldset > a.middle, +panel > fieldset > a.right { + border-left: 1px solid #999999; +} + +panel > fieldset > a.half { + display: inline-block; + width: 150px; +} + +panel > fieldset > a.third { + display: inline-block; + width: 100px; +} + +panel > fieldset > a.sixth { + display: inline-block; + width: 50px; +} + +fieldset.half > a { + background: none; + background-position: 120px center; +} + +fieldset.half > a > img.icon + div { + width: 65px; +} + +fieldset.right { + float: right; + margin-left: 10px; +} + +block + fieldset.right, +fieldset + fieldset.right { + margin-top: 0; +} + +fieldset.half { + width: 146px; +} + +panel > fieldset.dashed > a, +panel > fieldset.dashed > div, +panel > fieldset.dashed > textarea, +list > fieldset.dashed > a, +list > fieldset.dashed > div, +list > fieldset.dashed > textarea { + border-style: dashed; +} + +fieldset > a[type="thumb"]:first-child > back { + -moz-border-radius-topright: 9px; + -webkit-border-top-right-radius: 9px; +} + +fieldset > a[type="thumb"]:last-child > back { + -moz-border-radius-bottomright: 9px; + -webkit-border-bottom-right-radius: 9px; +} + +fieldset > a[type="thumb"] > back { + background-repeat: no-repeat; + border: 1px solid #999999; + display: block; + height: 64px; + left: 62px; + position: absolute; + opacity: 0.2; + top: -1px; + width: 237px; +} + +.mm { + border: 1px solid #999999; + -moz-border-radius: 9px; + -webkit-border-radius: 9px; +} + +a.mm { + display: block; + margin: 9px; +} + +div.mm img { + height: auto; + width: 300px; +} + +fieldset > a.small { + font-size: 12px; + padding-top: 9px; +} + +fieldset > a.small label { + display: inline-block; + position: relative; + top: 1px; +} + +fieldset > a.small > img.icon { + max-height: 22px; + min-width: 22px; + width: 22px; +} + +fieldset > a.small.half > img.icon + div { + width: 79px; +} + +fieldset > a.small.third > img.icon + div { + width: 50px; +} + +fieldset > a.small.sixth > img.icon + div { + width: 0px; +} + +panel.centered > label { + margin-left: 0px; + margin-right: 0px; + text-align: center; +} + +panel > iframe { + margin: -9px 0; +} + +panel > iframe:first-child, +panel > iframe + iframe { + margin-top: 0; +} + +/* Rating Stars {{{ */ +.ratings { + margin: -2px 0; + text-align: center; +} + +.rated { + display: inline-block; +} + +.rated.left { + margin-right: 9px; +} + +.rated label { + font-weight: bold; + margin-right: 3px; + position: relative; + top: -3px; +} + +.rating { + display: inline-block; + width: 80px; +} + +.rating .back, +.rating .fore, +.rating .star { + background: url(http://cache.saurik.com/crystal/16x16/actions/knewstuff.png); + height: 16px; +} + +.rating .back, +.rating .fore { + width: 80px; +} + +.rating .star { + display: inline-block; + width: 16px; +} + +.rating .back { + opacity: 0.2; +} + +.rating .fore { + /*border-right: 1px solid #999999;*/ + position: absolute; +} +/* }}} */ + +panel > fieldset.header { + background-color: transparent; + border: none; + margin: -5px 9px -11px 9px; +} + +panel > fieldset.header > a > div > label { + color: #4d4d70; + text-shadow: rgba(255, 255, 255, 0.75) 1px 1px 0; +} |