diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f19c56a --- /dev/null +++ b/.gitignore @@ -0,0 +1,62 @@ +.rsync +bin/openresty.fcgi +demo/Admin/.rsync +*~ +*.json +*.o +*.hi +haskell/bin/openhesty +haskell/openhesty.txt +!*.t.json +cover_db +Makefile +bin/test-account.sh +blib +haskell/big.sql +demo/Springbot/staff/update.sh +demo/*/out +demo/Blog2/js +demo/Blog2/template +demo/Springbot/staff/import +demo/*/script/import-localhost +*.old +*.swp +bin/.openresty.shell.hist +demo/Springbot/staff/staff.* +pm_to_blib +demo/Springbot/staff/staff.html +demo/Blog2/script/init.pl +share/openresty_revision +etc/site_openresty.conf +share/font +haskell/bin/restyscript +t/*.dat +*.tar.gz +demo/Blog2/script/upload +demo/Blog/script/upload +demo/Springbot/staff/*.sql +demo/Click4honor/JSON.js +demo/Click4honor/jquery.js +demo/Click4honor/openresty.js +demo/RestyCheck/JSON.js +demo/RestyCheck/jquery.js +demo/RestyCheck/openresty.js +demo/RestyCheck/upload +demo/*/script/upload +metamodel +demo/Onccf/pack_out +log.txt +TODO1 +demo/Onccf/out1 +demo/Onccf/out2 +demo/Onccf/out3 +demo/Onccf/out4 +demo/Onccf/out5 +demo/Onccf/out6 +demo/Onccf/out7 +demo/Onccf/out8 +diff.txt +etc/compiled.actions +etc/taobao_vip.conf +lib/OpenResty/Handler/YLogin.pm + diff --git a/clients/js/JSON.js b/clients/js/JSON.js new file mode 100644 index 0000000..04e94fe --- /dev/null +++ b/clients/js/JSON.js @@ -0,0 +1,103 @@ +var JSON = (function () { + var m = { + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"' : '\\"', + '\\': '\\\\' + }, + s = { + 'boolean': function (x) { + return String(x); + }, + number: function (x) { + return isFinite(x) ? String(x) : 'null'; + }, + string: function (x) { + if (/["\\\x00-\x1f]/.test(x)) { + x = x.replace(/([\x00-\x1f\\"])/g, function(a, b) { + var c = m[b]; + if (c) { + return c; + } + c = b.charCodeAt(); + return '\\u00' + + Math.floor(c / 16).toString(16) + + (c % 16).toString(16); + }); + } + return '"' + x + '"'; + }, + object: function (x) { + if (x) { + var a = [], b, f, i, l, v; + if (x instanceof Array) { + a[0] = '['; + l = x.length; + for (i = 0; i < l; i += 1) { + v = x[i]; + f = s[typeof v]; + if (f) { + v = f(v); + if (typeof v == 'string') { + if (b) { + a[a.length] = ','; + } + a[a.length] = v; + b = true; + } + } + } + a[a.length] = ']'; + } else if (x instanceof Object) { + a[0] = '{'; + for (i in x) { + v = x[i]; + f = s[typeof v]; + if (f) { + v = f(v); + if (typeof v == 'string') { + if (b) { + a[a.length] = ','; + } + a.push(s.string(i), ':', v); + b = true; + } + } + } + a[a.length] = '}'; + } else { + return; + } + return a.join(''); + } + return 'null'; + } + }; + return { + copyright: '(c)2005 JSON.org', + license: 'http://www.crockford.com/JSON/license.html', + stringify: function (v) { + var f = s[typeof v]; + if (f) { + v = f(v); + if (typeof v == 'string') { + return v; + } + } + return null; + }, + parse: function (text) { + try { + return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test( + text.replace(/"(\\.|[^"\\])*"/g, ''))) && + eval('(' + text + ')'); + } catch (e) { + return false; + } + } + }; +}()); + diff --git a/clients/js/md5.js b/clients/js/md5.js new file mode 100644 index 0000000..36fc1c2 --- /dev/null +++ b/clients/js/md5.js @@ -0,0 +1,256 @@ +/* + * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message + * Digest Algorithm, as defined in RFC 1321. + * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * Distributed under the BSD License + * See http://pajhome.org.uk/crypt/md5 for more info. + */ + +/* + * Configurable variables. You may need to tweak these to be compatible with + * the server-side, but the defaults work in most cases. + */ +var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ +var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ +var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */ + +/* + * These are the functions you'll usually want to call + * They take string arguments and return either hex or base-64 encoded strings + */ +function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));} +function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));} +function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));} +function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); } +function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); } +function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); } + +/* + * Perform a simple self-test to see if the VM is working + */ +function md5_vm_test() +{ + return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72"; +} + +/* + * Calculate the MD5 of an array of little-endian words, and a bit length + */ +function core_md5(x, len) +{ + /* append padding */ + x[len >> 5] |= 0x80 << ((len) % 32); + x[(((len + 64) >>> 9) << 4) + 14] = len; + + var a = 1732584193; + var b = -271733879; + var c = -1732584194; + var d = 271733878; + + for(var i = 0; i < x.length; i += 16) + { + var olda = a; + var oldb = b; + var oldc = c; + var oldd = d; + + a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936); + d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586); + c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819); + b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330); + a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897); + d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426); + c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341); + b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983); + a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416); + d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417); + c = md5_ff(c, d, a, b, x[i+10], 17, -42063); + b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162); + a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682); + d = md5_ff(d, a, b, c, x[i+13], 12, -40341101); + c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290); + b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329); + + a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510); + d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632); + c = md5_gg(c, d, a, b, x[i+11], 14, 643717713); + b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302); + a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691); + d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083); + c = md5_gg(c, d, a, b, x[i+15], 14, -660478335); + b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848); + a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438); + d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690); + c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961); + b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501); + a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467); + d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784); + c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473); + b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734); + + a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558); + d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463); + c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562); + b = md5_hh(b, c, d, a, x[i+14], 23, -35309556); + a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060); + d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353); + c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632); + b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640); + a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174); + d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222); + c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979); + b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189); + a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487); + d = md5_hh(d, a, b, c, x[i+12], 11, -421815835); + c = md5_hh(c, d, a, b, x[i+15], 16, 530742520); + b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651); + + a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844); + d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415); + c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905); + b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055); + a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571); + d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606); + c = md5_ii(c, d, a, b, x[i+10], 15, -1051523); + b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799); + a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359); + d = md5_ii(d, a, b, c, x[i+15], 10, -30611744); + c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380); + b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649); + a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070); + d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379); + c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259); + b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551); + + a = safe_add(a, olda); + b = safe_add(b, oldb); + c = safe_add(c, oldc); + d = safe_add(d, oldd); + } + return Array(a, b, c, d); + +} + +/* + * These functions implement the four basic operations the algorithm uses. + */ +function md5_cmn(q, a, b, x, s, t) +{ + return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b); +} +function md5_ff(a, b, c, d, x, s, t) +{ + return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); +} +function md5_gg(a, b, c, d, x, s, t) +{ + return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); +} +function md5_hh(a, b, c, d, x, s, t) +{ + return md5_cmn(b ^ c ^ d, a, b, x, s, t); +} +function md5_ii(a, b, c, d, x, s, t) +{ + return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); +} + +/* + * Calculate the HMAC-MD5, of a key and some data + */ +function core_hmac_md5(key, data) +{ + var bkey = str2binl(key); + if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz); + + var ipad = Array(16), opad = Array(16); + for(var i = 0; i < 16; i++) + { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5C5C5C5C; + } + + var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz); + return core_md5(opad.concat(hash), 512 + 128); +} + +/* + * Add integers, wrapping at 2^32. This uses 16-bit operations internally + * to work around bugs in some JS interpreters. + */ +function safe_add(x, y) +{ + var lsw = (x & 0xFFFF) + (y & 0xFFFF); + var msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xFFFF); +} + +/* + * Bitwise rotate a 32-bit number to the left. + */ +function bit_rol(num, cnt) +{ + return (num << cnt) | (num >>> (32 - cnt)); +} + +/* + * Convert a string to an array of little-endian words + * If chrsz is ASCII, characters >255 have their hi-byte silently ignored. + */ +function str2binl(str) +{ + var bin = Array(); + var mask = (1 << chrsz) - 1; + for(var i = 0; i < str.length * chrsz; i += chrsz) + bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32); + return bin; +} + +/* + * Convert an array of little-endian words to a string + */ +function binl2str(bin) +{ + var str = ""; + var mask = (1 << chrsz) - 1; + for(var i = 0; i < bin.length * 32; i += chrsz) + str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask); + return str; +} + +/* + * Convert an array of little-endian words to a hex string. + */ +function binl2hex(binarray) +{ + var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; + var str = ""; + for(var i = 0; i < binarray.length * 4; i++) + { + str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) + + hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF); + } + return str; +} + +/* + * Convert an array of little-endian words to a base-64 string + */ +function binl2b64(binarray) +{ + var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var str = ""; + for(var i = 0; i < binarray.length * 4; i += 3) + { + var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16) + | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 ) + | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF); + for(var j = 0; j < 4; j++) + { + if(i * 8 + j * 6 > binarray.length * 32) str += b64pad; + else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F); + } + } + return str; +} diff --git a/demo/Blog/css/blog.css b/demo/Blog/css/blog.css new file mode 100644 index 0000000..34b3fdc --- /dev/null +++ b/demo/Blog/css/blog.css @@ -0,0 +1,82 @@ +.entry-header b { + color: #cc0022; +} + +#beta-inner.pkg b { + color: #cc0022; + font-weight: normal; +} + +input#searchbox { + margin-top: 5px; + margin-bottom: 5px; + color:#369; + background:#fff; + width: 180px; +} + +div#wait-message { + color: red !important; + background: white !important; + font-size: 18px !important; + float: right; + position: fixed; + top: 2px; + right: 30px; + padding: 4px; + border-width: 2px; + border-style: outset; + border-color: white; + display: block; +} + +td.today-cell { + background: #fff; +} + +td.highlight { + font-weight: bold; + color:#A90A08; +} + +input.required { + background: #ffa; +} + +ins.item-body { + text-decoration: none; +} + +a.nav-arrow { + font-size: 10pt; + font-weight: bold; +} + +ins { + font-style: normal; +} + +table.paging { + border: 0; + width: 1%; +} + +table.paging td { + font-size: 90%; + white-space: nowrap; +} + +.prev-page { + text-align: right; + font-size: 12pt; + color: #00c; + font-weight: bold; +} + +.next-page { + text-align: left; + font-size: 12pt; + color: #00c; + font-weight: bold; +} + diff --git a/demo/Blog/css/styles.css b/demo/Blog/css/styles.css new file mode 100644 index 0000000..0552001 --- /dev/null +++ b/demo/Blog/css/styles.css @@ -0,0 +1,49 @@ +/* Base */ +@import url(themes/common/base-weblog.css); + +/* Tip Jar */ +@import url(themes/common/tipjar.css); + +/* Portal */ + + +/* Theme */ +@import url(themes/lilia/theme-bluecrush.css); + +/* Custom */ +body +{ + font-family: 'Corbel', 'Cambria', 'trebuchet ms', helvetica, arial, sans-serif; + font-size: 15px; + color: black; +} + +tt +{ + font-family: 'Consolas', 'Courier New', 'FreeMono', monospace; +} + +h1, h2, h3, h4, h5, h6 +{ + font-family: 'Cambria', 'Corbel', 'Candara', 'trebuchet ms', helvetica, arial, sans-serif; + font-weight: bold; +} + +a { color: #009; text-decoration: underline; } +a:visited { color: #306 } + +.entry h2 { + color: #930; + font-size: 18px; + border-bottom: 1px dotted #930; + margin-bottom: 15px; + font-weight: bold; + } + +h3 { + color: #000; + font-size: 15px; + margin-bottom: 10px; + } + + diff --git a/demo/Blog/css/themes/common/base-weblog.css b/demo/Blog/css/themes/common/base-weblog.css new file mode 100644 index 0000000..da8cf13 --- /dev/null +++ b/demo/Blog/css/themes/common/base-weblog.css @@ -0,0 +1,492 @@ +/* $Id: base-weblog.css 66356 2007-11-02 17:15:45Z kgoess $ */ + +/* basic elements */ + +html +{ + margin: 0; + /* setting border: 0 hoses ie6 win window inner well border */ + padding: 0; +} + +body +{ + margin: 0; + /* setting border: 0 hoses ie5 win window inner well border */ + padding: 0; + font-family: verdana, 'trebuchet ms', sans-serif; + font-size: 12px; +} + +form { margin: 0; padding: 0; } +a { text-decoration: underline; } +a img { border: 0; } + +h1, h2, h3, h4, h5, h6 { font-weight: normal; } +h1, h2, h3, h4, h5, h6, p, ol, ul, pre, blockquote +{ + margin-top: 10px; + margin-bottom: 10px; +} + + +/* standard helper classes */ + +.clr +{ + clear: both; + overflow: hidden; + width: 1px; + height: 1px; + margin: 0 -1px -1px 0; + border: 0; + padding: 0; + font-size: 0; + line-height: 0; +} + +/* .pkg class wraps enclosing block element around inner floated elements */ +.pkg:after +{ + content: " "; + display: block; + visibility: hidden; + clear: both; + height: 0.1px; + font-size: 0.1em; + line-height: 0; +} +.pkg { display: inline-block; } +/* no ie mac \*/ +* html .pkg { height: 1%; } +.pkg { display: block; } +/* */ + + +/* page layout */ + +body { text-align: center; } /* center on ie */ + +#container +{ + position: relative; + margin: 0 auto; /* center on everything else */ + width: 720px; + text-align: left; +} +#container-inner { position: static; width: auto; } + +#banner { position: relative; } +#banner-inner { position: static; } + +#pagebody { position: relative; width: 100%; } +#pagebody-inner { position: static; width: 100%; } + +#alpha, #beta, #gamma, #delta +{ + display: inline; /* ie win bugfix */ + position: relative; + float: left; + min-height: 1px; +} + +#delta { float: right; } + +#alpha-inner, #beta-inner, #gamma-inner, #delta-inner +{ + position: static; +} + + +/* banner user/photo */ + +.banner-user +{ + float: left; + overflow: hidden; + width: 64px; + margin: 0 15px 0 0; + border: 0; + padding: 0; + text-align: center; +} + +.banner-user-photo +{ + display: block; + margin: 0 0 2px; + border: 0; + padding: 0; + background-position: center center; + background-repeat: no-repeat; + text-decoration: none !important; +} + +.banner-user-photo img +{ + width: 64px; + height: auto; + margin: 0; + border: 0; + padding: 0; +} + + +/* content */ + +.content-nav +{ + margin: 10px; + text-align: center; +} + +.date-header, +.entry-content +{ + position: static; + clear: both; +} + +.entry, +.trackbacks, +.comments, +.archive +{ + position: static; + overflow: hidden; + clear: both; + width: 100%; + margin-bottom: 20px; +} + +.entry-content, +.trackbacks-info, +.trackback-content, +.comments-info, +.comment-content, +.comments-open-content, +.comments-closed +{ + clear: both; + margin: 5px 10px; +} + +.trackbacks-info p, +.comments-info p +{ + margin-top: 5px; +} + +.trackbacks-link +{ + font-size: 0.8em; +} + +.entry-excerpt, +.entry-body, +.entry-more-link, +.entry-more +{ + clear: both; +} + +.entry-footer, +.trackback-footer, +.comment-footer, +.comments-open-footer, +.archive-content +{ + clear: both; + margin: 5px 10px 20px; +} + +.entry-footer p +{ + margin-top: 0; + margin-bottom: 2px; +} + +.comments-open label { display: block; } + +#comment-author, #comment-email, #comment-url, #comment-text +{ + width: 240px; +} + +#comment-bake-cookie +{ + margin-left: 0; + vertical-align: middle; +} + +#comment-post +{ + font-weight: bold; +} + +img.image-full { width: 100%; } + +.image-thumbnail +{ + float: left; + width: 115px; + margin: 0 10px 10px 0; +} + +.image-thumbnail img +{ + width: 115px; + height: 115px; + margin: 0 0 2px; +} + + +/* modules */ + +.module +{ + position: relative; + overflow: hidden; + width: 100%; +} + +.module-content +{ + position: relative; + margin: 5px 10px 20px; +} + +.module-list, +.archive-list +{ + margin: 0; + padding: 0; + list-style: none; +} + +.module-list-item, +.archive-list-item +{ + margin-top: 5px; + margin-bottom: 5px; +} + +.module-more +{ + text-align: right; +} + +.module-elsewhere .module-list img, +.archive-elsewhere .archive-list img, +.module-presence img +{ + vertical-align: middle; +} + +.module-powered .module-content { margin-bottom: 10px; } +.module-photo .module-content { text-align: center; } +.module-wishlist .module-content { text-align: center; } + +.module-calendar .module-content table +{ + border-collapse: collapse; + width: 100%; +} + +.module-calendar .module-content th, +.module-calendar .module-content td +{ + width: 14%; + text-align: center; +} + +.module-category-cloud .module-list +{ + margin-right: 0; + margin-left: 0; +} + +.module-category-cloud .module-list-item +{ + display: inline; + margin: 0 5px 0 0; + padding: 0; + line-height: 1.2em; + background: none; +} + +.module-category-cloud .cloud-weight-1 { font-size: 0.9em; } +.module-category-cloud .cloud-weight-2 { font-size: 0.95em; } +.module-category-cloud .cloud-weight-3 { font-size: 1em; } +.module-category-cloud .cloud-weight-4 { font-size: 1.125em; } +.module-category-cloud .cloud-weight-5 { font-size: 1.25em; } +.module-category-cloud .cloud-weight-6 { font-size: 1.375em; } +.module-category-cloud .cloud-weight-7 { font-size: 1.5em; } +.module-category-cloud .cloud-weight-8 { font-size: 1.625em; } +.module-category-cloud .cloud-weight-9 { font-size: 1.75em; } +.module-category-cloud .cloud-weight-10 { font-size: 1.75em; } + +.typelist-plain .module-list, +.typelist-plain .archive-list +{ + list-style: none; +} + +.typelist-plain .module-list-item, +.typelist-plain .archive-list-item +{ + padding: 0; + background: none; +} + +.typelist-thumbnailed { margin: 0 0 20px; } + +.typelist-thumbnailed .module-list-item +{ + display: block; + clear: both; + margin: 0; +} + +/* positioniseverything.net/easyclearing.html */ +.typelist-thumbnailed .module-list-item:after +{ + content: " "; + display: block; + visibility: hidden; + clear: both; + height: 0.1px; + font-size: 0.1em; + line-height: 0; +} +.typelist-thumbnailed .module-list-item { display: inline-block; } +/* no ie mac \*/ +* html .typelist-thumbnailed .module-list-item { height: 1%; } +.typelist-thumbnailed .module-list-item { display: block; } +/* */ + +.typelist-thumbnail +{ + float: left; + min-width: 60px; + width: 60px; + /* no ie mac \*/width: auto;/* */ + margin: 0 5px 0 0; + text-align: center; + vertical-align: middle; +} + +.typelist-thumbnail img { margin: 5px; } + +.module-galleries .typelist-thumbnail img { width: 50px; } + +.typelist-description +{ + margin: 0; + padding: 5px; +} + +.typelist-no-description +{ + text-align: center; + margin: 10px 0; +} + +.module-featured-photo .module-content, +.module-photo .module-content +{ + margin: 0; +} + +.module-featured-photo img { width: 100%; } + +.module-recent-photos { margin: 0 0 15px; } +.module-recent-photos .module-content { margin: 0; } +.module-recent-photos .module-list +{ + display: block; + height: 1%; + margin: 0; + border: 0; + padding: 0; + list-style: none; +} + +/* positioniseverything.net/easyclearing.html */ +.module-recent-photos .module-list:after +{ + content: " "; + display: block; + visibility: hidden; + clear: both; + height: 0.1px; + font-size: 0.1em; + line-height: 0; +} +.module-recent-photos .module-list { display: inline-block; } +/* no ie mac \*/ +* html .module-recent-photos .module-list { height: 1%; } +.module-recent-photos .module-list { display: block; } +/* */ + +.module-recent-photos .module-list-item +{ + display: block; + float: left; + /* ie win fix \*/ height: 1%; /**/ + margin: 0; + border: 0; + padding: 0; +} + +.module-recent-photos .module-list-item a +{ + display: block; + margin: 0; + border: 0; + padding: 0; +} + +.module-recent-photos .module-list-item img +{ + width: 60px; + height: 60px; + margin: 0; + padding: 0; +} + + +/* mmt calendar */ + +.module-mmt-calendar { margin-bottom: 15px; } +.module-mmt-calendar .module-content { margin: 0; } +.module-mmt-calendar .module-header { margin: 0; } +.module-mmt-calendar .module-header a { text-decoration: none; } +.module-mmt-calendar table { width: 100%; } + +.module-mmt-calendar th { text-align: left; } + +.module-mmt-calendar td +{ + width: 14%; + height: 75px; + text-align: left; + vertical-align: top; +} + +.day-photo +{ + width: 54px; + height: 54px; +} + +.day-photo a +{ + display: block; +} + +.day-photo a img +{ + width: 50px; + height: 50px; +} diff --git a/demo/Blog/css/themes/common/print.css b/demo/Blog/css/themes/common/print.css new file mode 100644 index 0000000..dbf5422 --- /dev/null +++ b/demo/Blog/css/themes/common/print.css @@ -0,0 +1,205 @@ +/* Reset (Eric Meyer, http://meyerweb.com/) */ + +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, font, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0; + padding: 0; + border: 0; + outline: 0; + font-weight: inherit; + font-style: inherit; + font-size: 100%; + font-family: inherit; + vertical-align: baseline; +} +/* remember to define focus styles! */ +:focus { + outline: 0; +} +body { + line-height: 1; + color: black; + background: white; +} +ol, ul { + list-style: none; +} +/* tables still need 'cellspacing="0"' in the markup */ +table { + border-collapse: separate; + border-spacing: 0; +} +caption, th, td { + text-align: left; + font-weight: normal; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ""; +} +blockquote, q { + quotes: "" ""; +} + + +/* Base Weblog Print Styles (Six Apart, Ltd., http://sixapart.com/) */ + +body +{ + color: #000; + font-size: 10pt; + line-height: 1.5; + font-family: Georgia, serif; +} + +a +{ + color: #000; + text-decoration: underline; +} + +#banner, +.entry, +.trackbacks, +.trackbacks-info, +.comments, +.comments-info, +.archive +{ + margin-bottom: 1.5em; +} + +#banner-header +{ + font-size: 15pt; + font-weight: bold; +} + +#banner-description { font-size: 12pt; } + +#banner-header a, +.entry-header a +{ + text-decoration: none; +} + +.entry-header, +.trackbacks-header, +.comments-header, +.archive-header, +.content-header +{ + margin-bottom: 0.5em; + font-weight: bold; +} + +.entry-header, .archive-header, .content-header { font-size: 12pt; } + +.trackbacks-header, .comments-header { font-size: 10pt; } + +.trackbacks, .comments { font-size: 9pt; } + +.entry-content p, +.entry-content blockquote, +.entry-content pre, +.entry-content dl, +.entry-content ol, +.entry-content ul, +.trackback-content p, +.comment-content p, +.comment-content blockquote, +.comment-content pre, +.comment-content dl, +.comment-content ol, +.comment-content ul, +.archive-content ul +{ + margin-bottom: 0.5em; +} + +.entry-content blockquote, +.comment-content blockquote +{ + margin-left: 1em; + border-left: 1pt solid #000; + padding-left: 1em; +} + +.entry-content pre, +.comment-content pre +{ + margin-left: 1em; + border-left: 1pt solid #000; + padding-left: 1em; + font-family: Monaco, monospace; +} + +.entry-content code, +.comment-content code +{ + font-family: Monaco, monospace; +} + +.entry-content ol, +.entry-content ul, +.comment-content ol, +.comment-content ul, +.archive-content ul +{ + padding-left: 2em; +} + +.entry-content ol, +.comment-content ol +{ + list-style-type: decimal; +} + +.entry-content ul, +.comment-content ul, +.archive-content ul +{ + list-style-type: disc; +} + +.entry-content table td, +.comment-content table td +{ + padding: 0 1em 0.5em 0; +} + +.layout-two-column-left #alpha, +.layout-two-column-right #beta, +.layout-three-column #alpha, +.layout-three-column #gamma, +.layout-three-column-right #beta, +.layout-three-column-right #gamma, +.layout-artistic #beta, +.layout-calendar #beta, +.layout-moblog1 #alpha, +.layout-moblog1 #gamma, +.layout-moblog2 #alpha, +.layout-moblog2 #gamma, +.layout-moblog2 #delta, +.layout-timeline #beta, +.content-nav, +#comment-form +{ + display: none; +} + +.entry, .entry-content, .entry-footer, .entry-excerpt, +.entry-body, .entry-more-link, .entry-more, +.trackbacks, .trackbacks-info, .trackback-content, .trackback-footer, +.comments, .comments-info, .comment-content, .comment-footer, +.comments-open-content, .comments-open-footer, .comments-closed, +.archive, .archive-content, .date-header +{ + clear: both; +} diff --git a/demo/Blog/css/themes/common/print.css.1 b/demo/Blog/css/themes/common/print.css.1 new file mode 100644 index 0000000..dbf5422 --- /dev/null +++ b/demo/Blog/css/themes/common/print.css.1 @@ -0,0 +1,205 @@ +/* Reset (Eric Meyer, http://meyerweb.com/) */ + +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, font, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0; + padding: 0; + border: 0; + outline: 0; + font-weight: inherit; + font-style: inherit; + font-size: 100%; + font-family: inherit; + vertical-align: baseline; +} +/* remember to define focus styles! */ +:focus { + outline: 0; +} +body { + line-height: 1; + color: black; + background: white; +} +ol, ul { + list-style: none; +} +/* tables still need 'cellspacing="0"' in the markup */ +table { + border-collapse: separate; + border-spacing: 0; +} +caption, th, td { + text-align: left; + font-weight: normal; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ""; +} +blockquote, q { + quotes: "" ""; +} + + +/* Base Weblog Print Styles (Six Apart, Ltd., http://sixapart.com/) */ + +body +{ + color: #000; + font-size: 10pt; + line-height: 1.5; + font-family: Georgia, serif; +} + +a +{ + color: #000; + text-decoration: underline; +} + +#banner, +.entry, +.trackbacks, +.trackbacks-info, +.comments, +.comments-info, +.archive +{ + margin-bottom: 1.5em; +} + +#banner-header +{ + font-size: 15pt; + font-weight: bold; +} + +#banner-description { font-size: 12pt; } + +#banner-header a, +.entry-header a +{ + text-decoration: none; +} + +.entry-header, +.trackbacks-header, +.comments-header, +.archive-header, +.content-header +{ + margin-bottom: 0.5em; + font-weight: bold; +} + +.entry-header, .archive-header, .content-header { font-size: 12pt; } + +.trackbacks-header, .comments-header { font-size: 10pt; } + +.trackbacks, .comments { font-size: 9pt; } + +.entry-content p, +.entry-content blockquote, +.entry-content pre, +.entry-content dl, +.entry-content ol, +.entry-content ul, +.trackback-content p, +.comment-content p, +.comment-content blockquote, +.comment-content pre, +.comment-content dl, +.comment-content ol, +.comment-content ul, +.archive-content ul +{ + margin-bottom: 0.5em; +} + +.entry-content blockquote, +.comment-content blockquote +{ + margin-left: 1em; + border-left: 1pt solid #000; + padding-left: 1em; +} + +.entry-content pre, +.comment-content pre +{ + margin-left: 1em; + border-left: 1pt solid #000; + padding-left: 1em; + font-family: Monaco, monospace; +} + +.entry-content code, +.comment-content code +{ + font-family: Monaco, monospace; +} + +.entry-content ol, +.entry-content ul, +.comment-content ol, +.comment-content ul, +.archive-content ul +{ + padding-left: 2em; +} + +.entry-content ol, +.comment-content ol +{ + list-style-type: decimal; +} + +.entry-content ul, +.comment-content ul, +.archive-content ul +{ + list-style-type: disc; +} + +.entry-content table td, +.comment-content table td +{ + padding: 0 1em 0.5em 0; +} + +.layout-two-column-left #alpha, +.layout-two-column-right #beta, +.layout-three-column #alpha, +.layout-three-column #gamma, +.layout-three-column-right #beta, +.layout-three-column-right #gamma, +.layout-artistic #beta, +.layout-calendar #beta, +.layout-moblog1 #alpha, +.layout-moblog1 #gamma, +.layout-moblog2 #alpha, +.layout-moblog2 #gamma, +.layout-moblog2 #delta, +.layout-timeline #beta, +.content-nav, +#comment-form +{ + display: none; +} + +.entry, .entry-content, .entry-footer, .entry-excerpt, +.entry-body, .entry-more-link, .entry-more, +.trackbacks, .trackbacks-info, .trackback-content, .trackback-footer, +.comments, .comments-info, .comment-content, .comment-footer, +.comments-open-content, .comments-open-footer, .comments-closed, +.archive, .archive-content, .date-header +{ + clear: both; +} diff --git a/demo/Blog/css/themes/common/tipjar.css b/demo/Blog/css/themes/common/tipjar.css new file mode 100644 index 0000000..2677ab1 --- /dev/null +++ b/demo/Blog/css/themes/common/tipjar.css @@ -0,0 +1,152 @@ +.module-tipjar, +.module-tipjar-r2 { + font-family: 'trebuchet ms', sans-serif; +} + +.module-tipjar .button { + margin: 0; +} + +.module-tipjar-r2 .tipjar-button-wrapper { + position: relative; +} + +.module-tipjar-r2 .tipjar-button { + position: relative; + float: left; + text-align: left; +} + +.module-tipjar .button h3, +.module-tipjar .button p, +.module-tipjar-r2 .tipjar-button h3, +.module-tipjar-r2 .tipjar-button p { + margin: 0; + padding: 0; + color: #000; + line-height: 1.2em; +} + +.module-tipjar .button img, +.module-tipjar-r2 .tipjar-button img { + position: absolute; + top: 0; + left: 0; + border: 0; +} + +.module-tipjar .module-content { + position: relative; + margin: 10px; + padding: 0; +} + +.module-tipjar p { + margin-left: 10px; +} + +.module-tipjar-r2 p { + margin: 2px 0 0 0; +} + +.module-tipjar #button-1, .module-tipjar-r2 #button-1 { background: url(/.shared/images/tipjar-buttons/tipjar-green-large.gif) left top no-repeat; } +.module-tipjar #button-2, .module-tipjar-r2 #button-2 { background: url(/.shared/images/tipjar-buttons/tipjar-pink-large.gif) left top no-repeat; } +.module-tipjar #button-3, .module-tipjar-r2 #button-3 { background: url(/.shared/images/tipjar-buttons/tipjar-green-medium.gif) left top no-repeat; } +.module-tipjar #button-4, .module-tipjar-r2 #button-4 { background: url(/.shared/images/tipjar-buttons/tipjar-pink-medium.gif) left top no-repeat; } +.module-tipjar #button-5, .module-tipjar-r2 #button-5 { background: url(/.shared/images/tipjar-buttons/tipjar-green-small.gif) left top no-repeat; } +.module-tipjar #button-6, .module-tipjar-r2 #button-6 { background: url(/.shared/images/tipjar-buttons/tipjar-pink-small.gif) left top no-repeat; } + +.module-tipjar .empty-1, +.module-tipjar .empty-2, +.module-tipjar-r2 #button-1, +.module-tipjar-r2 #button-2, +.module-tipjar-r2 .empty-1, +.module-tipjar-r2 .empty-2 { + width: 120px; + height: 52px; +} + +.module-tipjar #button-1 h3, +.module-tipjar #button-2 h3, +.module-tipjar-r2 #button-1 h3, +.module-tipjar-r2 #button-2 h3 { + font-size: 15px; + font-weight: bold; + padding: 4px 0 0 28px; +} + +.module-tipjar #button-1 p, +.module-tipjar #button-2 p, +.module-tipjar-r2 #button-1 p, +.module-tipjar-r2 #button-2 p { + font-size: 11px; +} + +.module-tipjar #button-1 p, +.module-tipjar #button-2 p { + padding: 0 0 24px 28px; +} + +.module-tipjar-r2 #button-1 p, +.module-tipjar-r2 #button-2 p { + padding: 0 0 0 28px; +} + +.module-tipjar .empty-3, +.module-tipjar .empty-4, +.module-tipjar-r2 #button-3, +.module-tipjar-r2 #button-4, +.module-tipjar-r2 .empty-3, +.module-tipjar-r2 .empty-4 { + width: 88px; + height: 31px; +} + +.module-tipjar #button-3 h3, +.module-tipjar #button-4 h3, +.module-tipjar-r2 #button-3 h3, +.module-tipjar-r2 #button-4 h3 { + font-size: 13px; + font-weight: bold; + padding: 0 0 0 5px; +} + +.module-tipjar #button-3 p, +.module-tipjar #button-4 p, +.module-tipjar-r2 #button-3 p, +.module-tipjar-r2 #button-4 p { + font-size: 11px; +} + +.module-tipjar #button-3 p, +.module-tipjar #button-4 p { + padding: 0 0 4px 5px; +} + +.module-tipjar-r2 #button-3 p, +.module-tipjar-r2 #button-4 p { + padding: 0 0 0 5px; +} + +.module-tipjar #button-5, +.module-tipjar #button-6, +.module-tipjar .empty-5, +.module-tipjar .empty-6, +.module-tipjar-r2 #button-5, +.module-tipjar-r2 #button-6, +.module-tipjar-r2 .empty-5, +.module-tipjar-r2 .empty-6 { + width: 94px; + height: 15px; +} + +.module-tipjar #button-5 h3, +.module-tipjar #button-6 h3, +.module-tipjar #button-5 p, +.module-tipjar #button-6 p, +.module-tipjar-r2 #button-5 h3, +.module-tipjar-r2 #button-6 h3, +.module-tipjar-r2 #button-5 p, +.module-tipjar-r2 #button-6 p { + display: none; +} diff --git a/demo/Blog/css/themes/lilia/theme-bluecrush.css b/demo/Blog/css/themes/lilia/theme-bluecrush.css new file mode 100644 index 0000000..90cfbfe --- /dev/null +++ b/demo/Blog/css/themes/lilia/theme-bluecrush.css @@ -0,0 +1,563 @@ +/* $Id: theme-bluecrush.css 64929 2007-10-15 20:22:20Z kgoess $ */ + +/* basic page elements */ + +body +{ + font-family: 'trebuchet ms', helvetica, arial, sans-serif; + font-size: 12px; +} + +a { color: #393; text-decoration: underline; } +a:visited { color: #666; } +a:hover { color: #f93; } + +#banner a { color: #fff; font-weight: bold; text-decoration: none; } +#banner a:visited { color: #fff; } +#banner a:hover { color: #f93; } + +.module-content a { color: #39c; font-weight: bold;} +.module-content a:visited { color: #369; } +.module-content a:hover { color: #f93; } + +.entry-header a { color: #f93; text-decoration: none; } +.entry-header a:visited { color: #f93; } +.entry-header a:hover { color: #f93; } + +h1, h2, h3, h4, h5, h6 +{ + font-family: 'trebuchet ms', helvetica, arial, sans-serif; +} + +.module-header, +.trackbacks-header, +.comments-header, +.comments-open-header, +.archive-header +{ + /* ie win (5, 5.5, 6) bugfix */ + p\osition: relative; + width: 100%; + w\idth: auto; + + margin: 1px 0; + padding: 5px 5px 5px 25px; + color: #fff; + background: #79B5E7 url(theme-bluecrush/colitem-header-bg.gif) 0 50% repeat; + font-size: 14px; + font-weight: bold; + line-height: 1; +} + +.module-header a, +.module-header a:visited, +.trackbacks-header a, +.trackbacks-header a:visited, +.comments-header a, +.comments-header a:visited, +.comments-open-header a, +.comments-open-header a:visited +.archive-header a, +.archive-header a:visited +{ + color: #fff; +} + +.module-header a:hover, +.trackbacks-header a:hover, +.comments-header a:hover, +.comments-open-header a:hover +.archive-header a:hover +{ + color: #f93; +} + +.entry-more-link, +.entry-footer, +.comment-footer, +.trackback-footer, +.typelist-thumbnailed +{ + font-size: 11px; +} + +.trackbacks-info, +.comments-info +{ + margin-bottom: 20px; +} + + +/* page layout */ + +body +{ + min-width: 780px; + color: #666; + background: #94C4EC; +} + +#container +{ + width: 780px; + background: transparent url(theme-bluecrush/container-bg.gif) repeat-y; +} + +#container-inner +{ + margin: 0 10px 0 10px; + border-bottom: 1px solid #369; + background: transparent url(theme-bluecrush/column-right-bg.gif) -500px 0 repeat-y; +} + +#banner +{ + width: 760px; /* necessary for ie win */ + border-bottom: 1px solid #369; + background: #335099 url(theme-bluecrush/banner-bg.gif) repeat-x; +} + +#banner-inner { padding: 20px; } + +.banner-user +{ + width: 70px; + margin-top: 4px; + font-size: 10px; +} + +.banner-user-photo { border: 3px solid #fff; } + +#banner-header +{ + margin: 0; + color: #fff; + font-size: 30px; + font-weight: bold; + line-height: 1; +} + +#banner-description +{ + margin: 1px 0; + color: #fff; + background: none; + font-size: 12px; + line-height: 1.125; +} + +#alpha { margin: 20px 0 20px 20px; width: 260px; } +#beta { margin: 20px 0 0 40px; width: 420px;} +#gamma, #delta { width: 202px; } + +.date-header +{ + margin: 0; + color: #335099; + font-size: 14px; + text-transform: uppercase; +} + +.entry-header +{ + margin: 10px 0; + border-left: 4px solid #f93; + padding: 0 0 0 5px; + color: #f93; + font-size: 18px; + font-weight: bold; +} + +.entry-content { margin: 0; } +.entry-footer +{ + margin: 0 0 20px 0; + border-top: 1px solid #d7d7d7; + padding-top: 2px; + color: #393; + font-weight: normal; +} + +.content-nav { margin-top: 0; } + +.content-header +{ + margin: 0 0 30px; + color: #f93; + font-size: 24px; + font-weight: bold; +} + + +/* modules */ + +.module-calendar .module-content { margin: 5px 0 15px 0; } + +.module-mmt-calendar .module-content table, +.module-calendar .module-content table { font-size: 11px; } + +.module-mmt-calendar .module-header a { color: #f93; } +.module-mmt-calendar .module-header a:visited { color: #f93; } +.module-mmt-calendar .module-header a:hover { color: #069; } + + +.module-powered { margin: 20px 0; } +.module-powered .module-content +{ + margin: 0; + padding: 10px; + border: 1px dashed #39c; + color: #039; + background: #b8d4ec url(theme-bluecrush/powered-bg.gif) repeat-x; +} + +.module-powered a { color: #06c; } +.module-powered a:visited { color: #06c; } +.module-powered a:hover { color: #f93; } + +.module-photo { background: none; } +.module-photo img { border: solid 1px #dce1e4; } + +.module-list-item +{ + padding-left: 12px; + background: url(theme-bluecrush/li-bg.gif) 0 0.5em no-repeat; + line-height: 150%; +} + +.typelist-thumbnailed .module-list +{ + margin: 0; +} + +.typelist-thumbnailed .module-list-item +{ + margin: 0 0 1px 0; + padding: 0; + border: 1px solid #d9dee1; + background: #d2dfe9 url(theme-bluecrush/thumbnailed-bg.gif) repeat-x; +} + +.typelist-thumbnail { background: #baccdb url(theme-bluecrush/typelist-thumbnail-bg.gif) repeat-x; } + +.module-featured-photo img +{ + width: 414px; +} + + +/* recent photos */ + +.module-recent-photos .module-content { margin: 6px 0 0 0; } + +.module-recent-photos .module-list { margin: 0; } + +.module-recent-photos .module-list-item +{ + width: 64px; /* mac ie fix */ + margin: 0 6px 6px 0; + padding: 0; + background: none; +} + +.module-recent-photos .module-list-item a +{ + border: 1px solid #39c; + padding: 1px; + background: #fff; +} + +.module-recent-photos .module-list-item a:hover +{ + border-color: #f93; +} + + +/* artistic tweaks */ + + +/* calendar tweaks */ + + .layout-calendar #beta { overflow: visible; } + + .module-mmt-calendar { width: 420px; } + + .module-mmt-calendar .module-header + { + margin: 0 0 5px 0; + border: 0; + padding: 0; + color: #369; + background: none; + font-size: 14px; + font-weight: normal; + text-align: right; + } + + .module-mmt-calendar table + { + color: #fff; + background: #bcc5cc; + } + + .module-mmt-calendar th, + .module-mmt-calendar td + { + border-right: 1px solid #d0d0d0; + padding: 2px; + text-align: right; + font-weight: normal; + } + + .module-mmt-calendar .weekday-7, td.day-7, td.day-14, td.day-21, td.day-28, td.day-35, td.day-42 + { + border-right: none; + } + + .day-photo a + { + border: solid 1px #39c; + padding: 1px; + background: #fff; + } + + .day-photo a:hover + { + border-color: #f93; + } + + +/* moblog1 tweaks */ + + .layout-moblog1 #container-inner { background-position: -220px 0; } + .layout-moblog1 #pagebody + { + background: transparent url(theme-bluecrush/column-left-bg.gif) -580px 0 repeat-y; + } + + .layout-moblog1 #alpha { width: 200px; } + + .layout-moblog1 #beta + { + width: 320px; + margin: 20px 0 20px 20px; + } + + .layout-moblog1 #gamma + { + width: 160px; + margin: 20px 0 20px 40px; + } + + .layout-moblog1 .entry { margin-bottom: 40px; } + + .layout-moblog1 .module-recent-photos .module-content { margin: 6px 0 0 12px; } + + .layout-moblog1 .module-powered .module-content + { + margin-right: 20px; + } + + +/* moblog2 tweaks */ + + .layout-moblog2 #container-inner { background-position: -355px 0; } + .layout-moblog2 #pagebody + { + background: transparent url(theme-bluecrush/column-left-bg.gif) -695px 0 repeat-y; + } + .layout-moblog2 #pagebody-inner + { + background: transparent url(theme-bluecrush/column-right-bg.gif) -160px 0 repeat-y; + } + + .layout-moblog2 #alpha { width: 65px; } + .layout-moblog2 #beta { width: 300px; margin: 0 0 0 40px; } + .layout-moblog2 #gamma { width: 175px; margin: 0 0 0 40px; } + + .layout-moblog2 #delta + { + float: left; + width: 100px; + margin: 0 0 0 20px; + } + + .layout-moblog2 .module-header, + .layout-moblog2 .trackbacks-header, + .layout-moblog2 .comments-header, + .layout-moblog2 .comments-open-header + .layout-moblog2 .archive-header + { + margin: 20px 0 1px 0; + } + + .layout-moblog2 .date-header { margin-top: 20px; } + + .layout-moblog2 .content-nav { margin-top: 20px; } + + .layout-moblog2 .module-photo .module-content { margin: 0; } + .layout-moblog2 .module-photo img { width: 80px; height: auto; } + + .layout-moblog2 .module-recent-photos .module-content + { + margin: 0; + padding: 0; + background: none; + } + + .layout-moblog2 .module-recent-photos .module-list { margin: 0; } + .layout-moblog2 .module-recent-photos .module-list-item { margin: 0 0 5px 0; } + + .layout-moblog2 .module-powered .module-content + { + margin-right: 20px; + } + + +/* timeline tweaks */ + + .layout-timeline #container-inner { background-position: -420px 0; } + + .layout-timeline #alpha { width: 340px; } + .layout-timeline #beta { width: 360px; } + + .layout-timeline #gamma, + .layout-timeline #delta + { + width: 170px; + } + + .layout-timeline .module-recent-photos .module-content { padding: 0 0 10px 0; } + .layout-timeline .module-recent-photos .module-list { margin: 7px 7px 0 0; } + + +/* one-column tweaks */ + + .layout-one-column body + { + min-width: 620px; + } + + .layout-one-column #container + { + width: 620px; + background: transparent url(theme-bluecrush/one-column-container-bg.gif) repeat-y; + } + + .layout-one-column #container-inner + { + margin: 0 10px 0 10px; + border-bottom: 1px solid #5b626a; + background: transparent url(theme-bluecrush/column-right-bg.gif) -500px 0 repeat-y; + } + + .layout-one-column #banner + { + width: 600px; /* necessary for ie win */ + } + + .layout-one-column #container-inner { background: none; } + .layout-one-column #alpha { width: 560px; } + + +/* two-column-left tweaks */ + + .layout-two-column-left #container-inner { background: none; } + + .layout-two-column-left #pagebody + { + background: transparent url(theme-bluecrush/column-left-bg.gif) -580px 0 repeat-y; + } + + .layout-two-column-left #alpha { width: 200px; } + .layout-two-column-left #beta + { + width: 500px; + margin: 20px 0 0 20px; + } + + .layout-two-column-left .module-powered .module-content + { + margin-right: 10px; + } + + +/* two-column-right tweaks */ + + .layout-two-column-right #container-inner { background: none; } + + .layout-two-column-right #pagebody + { + background: transparent url(theme-bluecrush/column-right-bg.gif) -260px 0 repeat-y; + } + + .layout-two-column-right #container-inner { background: none; } + .layout-two-column-right #alpha { width: 500px; } + .layout-two-column-right #beta + { + width: 200px; + margin: 20px 0 0 40px; + } + + .layout-two-column-right .module-powered .module-content + { + margin-right: 10px; + } + + +/* three-column tweaks */ + + .layout-three-column #container-inner { background-position: -260px 0; } + + .layout-three-column #pagebody + { + background: transparent url(theme-bluecrush/column-left-bg.gif) -580px 0 repeat-y; + } + + .layout-three-column #alpha { width: 200px; } + + .layout-three-column #beta + { + width: 280px; + margin: 20px 0 20px 20px; + } + + .layout-three-column #gamma + { + width: 200px; + margin: 20px 0 20px 40px; + } + + .layout-three-column .module-powered .module-content + { + margin-right: 20px; + } + + +/* three-column-right tweaks */ + + .layout-three-column-right #container-inner { background-position: -480px 0; } + + .layout-three-column-right #pagebody + { + background: transparent url(theme-bluecrush/column-right-bg.gif) -260px 0 repeat-y; + } + + .layout-three-column-right #alpha { width: 280px; } + + .layout-three-column-right #beta + { + width: 200px; + margin: 20px 0 20px 40px; + } + + .layout-three-column-right #gamma + { + width: 200px; + margin: 20px 0 20px 20px; + } + + .layout-three-column-right .module-powered .module-content + { + margin-right: 20px; + } diff --git a/demo/Blog/css/themes/lilia/theme-bluecrush/banner-bg.gif b/demo/Blog/css/themes/lilia/theme-bluecrush/banner-bg.gif new file mode 100644 index 0000000..0eb103d Binary files /dev/null and b/demo/Blog/css/themes/lilia/theme-bluecrush/banner-bg.gif differ diff --git a/demo/Blog/css/themes/lilia/theme-bluecrush/colitem-header-bg.gif b/demo/Blog/css/themes/lilia/theme-bluecrush/colitem-header-bg.gif new file mode 100644 index 0000000..b3793a6 Binary files /dev/null and b/demo/Blog/css/themes/lilia/theme-bluecrush/colitem-header-bg.gif differ diff --git a/demo/Blog/css/themes/lilia/theme-bluecrush/column-left-bg.gif b/demo/Blog/css/themes/lilia/theme-bluecrush/column-left-bg.gif new file mode 100644 index 0000000..e805d5e Binary files /dev/null and b/demo/Blog/css/themes/lilia/theme-bluecrush/column-left-bg.gif differ diff --git a/demo/Blog/css/themes/lilia/theme-bluecrush/container-bg.gif b/demo/Blog/css/themes/lilia/theme-bluecrush/container-bg.gif new file mode 100644 index 0000000..7473051 Binary files /dev/null and b/demo/Blog/css/themes/lilia/theme-bluecrush/container-bg.gif differ diff --git a/demo/Blog/css/themes/lilia/theme-bluecrush/li-bg.gif b/demo/Blog/css/themes/lilia/theme-bluecrush/li-bg.gif new file mode 100644 index 0000000..0c651a3 Binary files /dev/null and b/demo/Blog/css/themes/lilia/theme-bluecrush/li-bg.gif differ diff --git a/demo/Blog/css/themes/lilia/theme-bluecrush/thumbnailed-bg.gif b/demo/Blog/css/themes/lilia/theme-bluecrush/thumbnailed-bg.gif new file mode 100644 index 0000000..57da37d Binary files /dev/null and b/demo/Blog/css/themes/lilia/theme-bluecrush/thumbnailed-bg.gif differ diff --git a/demo/Blog/image/loading.gif b/demo/Blog/image/loading.gif new file mode 100644 index 0000000..c82b360 Binary files /dev/null and b/demo/Blog/image/loading.gif differ diff --git a/demo/Blog/image/me.jpg b/demo/Blog/image/me.jpg new file mode 100644 index 0000000..db5735c Binary files /dev/null and b/demo/Blog/image/me.jpg differ diff --git a/demo/Blog/js/thirdparty/jquery.js b/demo/Blog/js/thirdparty/jquery.js new file mode 100644 index 0000000..fbe2312 --- /dev/null +++ b/demo/Blog/js/thirdparty/jquery.js @@ -0,0 +1,31 @@ +/* + * jQuery 1.2.2 - New Wave Javascript + * + * Copyright (c) 2007 John Resig (jquery.com) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * $Date: 2008-01-14 17:56:07 -0500 (Mon, 14 Jan 2008) $ + * $Rev: 4454 $ + */ +(function(){if(window.jQuery)var _jQuery=window.jQuery;var jQuery=window.jQuery=function(selector,context){return new jQuery.prototype.init(selector,context);};if(window.$)var _$=window.$;window.$=jQuery;var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;var isSimple=/^.[^:#\[\.]*$/;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}else if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem)if(elem.id!=match[3])return jQuery().find(selector);else{this[0]=elem;this.length=1;return this;}else +selector=[];}}else +return new jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return new jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(selector.constructor==Array&&selector||(selector.jquery||selector.length&&selector!=window&&!selector.nodeType&&selector[0]!=undefined&&selector[0].nodeType)&&jQuery.makeArray(selector)||[selector]);},jquery:"1.2.2",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;this.each(function(i){if(this==elem)ret=i;});return ret;},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value==undefined)return this.length&&jQuery[type||"attr"](this[0],name)||undefined;else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div"),container2=document.createElement("div");container.appendChild(clone);container2.innerHTML=container.innerHTML;return container2.firstChild;}else +return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else +selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return!selector?this:this.pushStack(jQuery.merge(this.get(),selector.constructor==String?jQuery(selector).get():selector.length!=undefined&&(!selector.nodeName||jQuery.nodeName(selector,"form"))?selector:[selector]));},is:function(selector){return selector?jQuery.multiFilter(selector,this).length>0:false;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=value.constructor==Array?value:[value];jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else +this.value=value;});},html:function(value){return value==undefined?(this.length?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script")){scripts=scripts.add(elem);}else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.prototype.init.prototype=jQuery.prototype;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else +jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==1){target=this;i=0;}for(;i-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else +jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret;function color(elem){if(!jQuery.browser.safari)return false;var ret=document.defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(elem.style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=elem.style.display;elem.style.display="block";elem.style.display=save;}if(name.match(/float/i))name=styleFloat;if(!force&&elem.style&&elem.style[name])ret=elem.style[name];else if(document.defaultView&&document.defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var getComputedStyle=document.defaultView.getComputedStyle(elem,null);if(getComputedStyle&&!color(elem))ret=getComputedStyle.getPropertyValue(name);else{var swap=[],stack=[];for(var a=elem;a&&color(a);a=a.parentNode)stack.unshift(a);for(var i=0;i]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("",""]||!tags.indexOf("",""]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!tags.indexOf("",""]||(!tags.indexOf("",""]||!tags.indexOf("",""]||jQuery.browser.msie&&[1,"div
","
"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf(""&&tags.indexOf("=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else +ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var fix=jQuery.isXMLDoc(elem)?{}:jQuery.props;if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(fix[name]){if(value!=undefined)elem[fix[name]]=value;return elem[fix[name]];}else if(jQuery.browser.msie&&name=="style")return jQuery.attr(elem.style,"cssText",value);else if(value==undefined&&jQuery.browser.msie&&jQuery.nodeName(elem,"form")&&(name=="action"||name=="method"))return elem.getAttributeNode(name).nodeValue;else if(elem.tagName){if(value!=undefined){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem.setAttribute(name,""+value);}if(jQuery.browser.msie&&/href|src/.test(name)&&!jQuery.isXMLDoc(elem))return elem.getAttribute(name,2);return elem.getAttribute(name);}else{if(name=="opacity"&&jQuery.browser.msie){if(value!=undefined){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseFloat(value).toString()=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100).toString():"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(value!=undefined)elem[name]=value;return elem[name];}},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(typeof array!="array")for(var i=0,length=array.length;i*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":"m[2]=='*'||jQuery.nodeName(a,m[2])","#":"a.getAttribute('id')==m[2]",":":{lt:"im[3]-0",nth:"m[3]-0==i",eq:"m[3]-0==i",first:"i==0",last:"i==r.length-1",even:"i%2==0",odd:"i%2","first-child":"a.parentNode.getElementsByTagName('*')[0]==a","last-child":"jQuery.nth(a.parentNode.lastChild,1,'previousSibling')==a","only-child":"!jQuery.nth(a.parentNode.lastChild,2,'previousSibling')",parent:"a.firstChild",empty:"!a.firstChild",contains:"(a.textContent||a.innerText||jQuery(a).text()||'').indexOf(m[3])>=0",visible:'"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden"',hidden:'"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden"',enabled:"!a.disabled",disabled:"a.disabled",checked:"a.checked",selected:"a.selected||jQuery.attr(a,'selected')",text:"'text'==a.type",radio:"'radio'==a.type",checkbox:"'checkbox'==a.type",file:"'file'==a.type",password:"'password'==a.type",submit:"'submit'==a.type",image:"'image'==a.type",reset:"'reset'==a.type",button:'"button"==a.type||jQuery.nodeName(a,"button")',input:"/input|select|textarea|button/i.test(a.nodeName)",has:"jQuery.find(m[3],a).length",header:"/h\\d/i.test(a.nodeName)",animated:"jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length"}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false;var re=quickChild;var m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var f=jQuery.expr[m[1]];if(typeof f!="string")f=jQuery.expr[m[1]][m[2]];f=eval("false||function(a,i){return "+f+"}");r=jQuery.grep(r,f,not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[];var cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&(!elem||n!=elem))r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval!=undefined)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=function(){return fn.apply(this,arguments);};handler.data=data;handler.guid=fn.guid;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){var val;if(typeof jQuery=="undefined"||jQuery.event.triggered)return val;val=jQuery.event.handle.apply(arguments.callee.elem,arguments);return val;});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined)for(var type in events)this.remove(elem,type);else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else +for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data||[]);if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event)data.unshift(this.fix({type:type,target:elem}));data[0].type=type;if(jQuery.isFunction(jQuery.data(elem,"handle")))val=jQuery.data(elem,"handle").apply(elem,data);if(!fn&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val;event=jQuery.event.fix(event||window.event||{});var parts=event.type.split(".");event.type=parts[0];var handlers=jQuery.data(this,"events")&&jQuery.data(this,"events")[event.type],args=Array.prototype.slice.call(arguments,1);args.unshift(event);for(var j in handlers){var handler=handlers[j];args[0].handler=handler;args[0].data=handler.data;if(!parts[1]||handler.type==parts[1]){var ret=handler.apply(this,args);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}if(jQuery.browser.msie)event.target=event.preventDefault=event.stopPropagation=event.handler=event.data=null;return val;},fix:function(event){var originalEvent=event;event=jQuery.extend({},originalEvent);event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=originalEvent.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;arguments[0].type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;arguments[0].type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){return this.each(function(){jQuery.event.add(this,type,function(event){jQuery(this).unbind(event);return(fn||data).apply(this,arguments);},fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){if(this[0])return jQuery.event.trigger(type,data,this[0],false,fn);return undefined;},toggle:function(){var args=arguments;return this.click(function(event){this.lastToggle=0==this.lastToggle?1:0;event.preventDefault();return args[this.lastToggle].apply(this,arguments)||false;});},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else +jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.apply(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("
").append(res.responseText.replace(//g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=(new Date).getTime();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){var jsonp,jsre=/=\?(&|$)/g,status,data;s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(s.type.toLowerCase()=="get"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&s.type.toLowerCase()=="get"){var ts=(new Date()).getTime();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&s.type.toLowerCase()=="get"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");if((!s.url.indexOf("http")||!s.url.indexOf("//"))&&(s.dataType=="script"||s.dataType=="json")&&s.type.toLowerCase()=="get"){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xml=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();xml.open(s.type,s.url,s.async,s.username,s.password);try{if(s.data)xml.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xml.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xml.setRequestHeader("X-Requested-With","XMLHttpRequest");xml.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend)s.beforeSend(xml);if(s.global)jQuery.event.trigger("ajaxSend",[xml,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xml&&(xml.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xml)&&"error"||s.ifModified&&jQuery.httpNotModified(xml,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xml,s.dataType);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xml.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else +jQuery.handleError(s,xml,status);complete();if(s.async)xml=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xml){xml.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xml.send(s.data);}catch(e){jQuery.handleError(s,xml,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xml,s]);}function complete(){if(s.complete)s.complete(xml,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xml,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xml;},handleError:function(s,xml,status,e){if(s.error)s.error(xml,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xml,s,e]);},active:0,httpSuccess:function(r){try{return!r.status&&location.protocol=="file:"||(r.status>=200&&r.status<300)||r.status==304||r.status==1223||jQuery.browser.safari&&r.status==undefined;}catch(e){}return false;},httpNotModified:function(xml,url){try{var xmlRes=xml.getResponseHeader("Last-Modified");return xml.status==304||xmlRes==jQuery.lastModified[url]||jQuery.browser.safari&&xml.status==undefined;}catch(e){}return false;},httpData:function(r,type){var ct=r.getResponseHeader("content-type");var xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0;var data=xml?r.responseXML:r.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else +for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else +s.push(encodeURIComponent(j)+"="+encodeURIComponent(a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle(fn,fn2):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall);var hidden=jQuery(this).is(":hidden"),self=this;for(var p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return jQuery.isFunction(opt.complete)&&opt.complete.apply(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else +e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.apply(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(!elem)return undefined;type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",array?jQuery.makeArray(array):[]);return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].apply(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:{slow:600,fast:200}[opt.duration])||400;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.apply(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.apply(this.elem,[this.now,this]);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=(new Date()).getTime();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;ithis.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done&&jQuery.isFunction(this.options.complete))this.options.complete.apply(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.fx.step={scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}};jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522,fixed=jQuery.css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&jQuery.css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(jQuery.css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&jQuery.css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||jQuery.css(offsetChild,"position")=="absolute"))||(mozilla&&jQuery.css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l)||0;top+=parseInt(t)||0;}return results;};})(); \ No newline at end of file diff --git a/demo/Blog/template/banner.tt b/demo/Blog/template/banner.tt new file mode 100644 index 0000000..02bac6f --- /dev/null +++ b/demo/Blog/template/banner.tt @@ -0,0 +1,17 @@ +[% DEFAULT + blog_name = 'Foo\'s blog', + blog_desc = 'This is my blog' +-%] + + diff --git a/demo/Blog/template/elem/archive-list.tt b/demo/Blog/template/elem/archive-list.tt new file mode 100644 index 0000000..b0d1792 --- /dev/null +++ b/demo/Blog/template/elem/archive-list.tt @@ -0,0 +1,27 @@ + + +

+ +[% IF offset > 0 %] + << +[% END %] +    +    +    +    +    +[% IF archives.size == count %] + + Next... + +[% END %] + +

+ diff --git a/demo/Blog/template/elem/archive-nav.tt b/demo/Blog/template/elem/archive-nav.tt new file mode 100644 index 0000000..36b92cc --- /dev/null +++ b/demo/Blog/template/elem/archive-nav.tt @@ -0,0 +1,16 @@ +[% IF next %] + [%- index = next.month %] + + « [% months.$index %] [% next.year %] + +[% END %] + | + Main + | +[% IF prev %] + [%- index = prev.month %] + + [% months.$index %] [% prev.year %] » + +[% END %] + diff --git a/demo/Blog/template/elem/calendar.tt b/demo/Blog/template/elem/calendar.tt new file mode 100644 index 0000000..7cf9825 --- /dev/null +++ b/demo/Blog/template/elem/calendar.tt @@ -0,0 +1,71 @@ +[%- index = month + 1 %] +

[% months.$index %] [% year %]

+
+ + + + + + + + + + + + +
+ + << + + + + < + +     + + > + + + + >> + +
+ + + + + + + + + + + + [%- day = 1; %] + [%- WHILE day <= end_of_month %] + + [%- day_of_week = 0 %] + [%- WHILE day_of_week <= 6 %] + [%- today_mark = day == today ? 'class="today-cell"' : '' %] + [%- IF (day > end_of_month) || (day == 1 && day_of_week < first_day_of_week) -%] + + [%- ELSE -%] + + [%- day = day + 1 %] + [%- END %] + [%- day_of_week = day_of_week + 1 %] + [%- END %] + [%- END %] + + +
SunMonTueWedThuFriSat
 [% day %]
+
+ diff --git a/demo/Blog/template/elem/comments.tt b/demo/Blog/template/elem/comments.tt new file mode 100644 index 0000000..5986e4d --- /dev/null +++ b/demo/Blog/template/elem/comments.tt @@ -0,0 +1,29 @@ +[%- FOREACH comment IN comments -%] + +
+
+ [%- IF comment.body %] + [%- comment.body.replace('&', '&') + .replace('<', '<') + .replace('>', '>') + .replace('\n', '
') + .replace(' ', '  ') + .replace('(http://(?:\%[A-Fa-f0-9]{2}|[-A-Za-z./0-9~_])+)', '$1') %] + [%- END %] +
+ +
+[%- END %] + diff --git a/demo/Blog/template/elem/nav.tt b/demo/Blog/template/elem/nav.tt new file mode 100644 index 0000000..07a5cab --- /dev/null +++ b/demo/Blog/template/elem/nav.tt @@ -0,0 +1,24 @@ +[% + SET prev_post = undef; + SET next_post = undef; + FOREACH post IN posts; + IF post.id < current; + prev_post = post; + ELSE; + next_post = post; + END; + END -%] +[% IF next_post %] + + « [% next_post.title %] + +[% END %] + | + Main + | +[% IF prev_post %] + + [% prev_post.title %] » + +[% END %] + diff --git a/demo/Blog/template/elem/pager.tt b/demo/Blog/template/elem/pager.tt new file mode 100644 index 0000000..61600cb --- /dev/null +++ b/demo/Blog/template/elem/pager.tt @@ -0,0 +1,51 @@ +[% DEFAULT + page = 1, + page_count = undef, + title = 'Pages', + prefix = 'post-list/', + suffix = '' +-%] + +[% IF page_count <= 10; + from = 1; + to = page_count; + ELSE; + from = page - 10 >= 1 ? page - 10 : 1 + to = page + 9 >= page_count ? page_count : page + 9; + END -%] + +
+ + + + + + [%- i = from; %] + [%- WHILE i <= to %] + [%- IF i == page %] + + [%- ELSE %] + + [%- END %] + [%- i = i + 1 %] + [%- END %] + + + +
+ [% title %]:    + + [%- IF page > 1 %] + + Previous + + [%- END %] + [% i %][% i %] + [%- IF page < page_count %] + + Next + + [%- END %] +
+
+
diff --git a/demo/Blog/template/elem/post-list.tt b/demo/Blog/template/elem/post-list.tt new file mode 100644 index 0000000..f4a88ac --- /dev/null +++ b/demo/Blog/template/elem/post-list.tt @@ -0,0 +1,5 @@ +
+[% FOREACH post IN post_list %] + [% PROCESS 'post.tt' %] +[% END %] + diff --git a/demo/Blog/template/elem/post-page.tt b/demo/Blog/template/elem/post-page.tt new file mode 100644 index 0000000..f43b88f --- /dev/null +++ b/demo/Blog/template/elem/post-page.tt @@ -0,0 +1,55 @@ +

+

+ + +[% PROCESS 'post.tt' -%] + + +
+

Comments

+
+ +
+
+ +
+
+ +

Post a comment

+
+
+

+ + +

+

+ + + +

+

+ + +

+ +

+ +

+
+ +

+ + +

+
+ + + +
+
+ diff --git a/demo/Blog/template/elem/post.tt b/demo/Blog/template/elem/post.tt new file mode 100644 index 0000000..c0bb6c0 --- /dev/null +++ b/demo/Blog/template/elem/post.tt @@ -0,0 +1,32 @@ +

[% post.created %]

+
+

+ + [%- post.title -%] + +

+
+
+ [%- post.content -%] +

+

+
+ +
+ diff --git a/demo/Blog/template/elem/recent-comments.tt b/demo/Blog/template/elem/recent-comments.tt new file mode 100644 index 0000000..bdf5a37 --- /dev/null +++ b/demo/Blog/template/elem/recent-comments.tt @@ -0,0 +1,30 @@ + + +

+ +[% IF offset > 0 %] + << +[% END %] +    +    +    +    +    +[% IF last_id > 1 && comments.size == count %] + + Next... + +[% END %] + +

+ diff --git a/demo/Blog/template/elem/recent-posts.tt b/demo/Blog/template/elem/recent-posts.tt new file mode 100644 index 0000000..b31cc1f --- /dev/null +++ b/demo/Blog/template/elem/recent-posts.tt @@ -0,0 +1,28 @@ +
    +[% last_id %] +[% FOREACH post IN posts -%] +
  • + [% post.title %] +
  • + [%- last_id = post.id %] +[% END -%] +
+ +

+ +[% IF offset > 0 %] + << +[% END %] +    +    +    +    +    +[% IF last_id > 1 && posts.size == count %] + + Next... + +[% END %] + +

+ diff --git a/demo/Blog/template/footer.tt b/demo/Blog/template/footer.tt new file mode 100644 index 0000000..8f75f3a --- /dev/null +++ b/demo/Blog/template/footer.tt @@ -0,0 +1,11 @@ + + diff --git a/demo/Blog/template/header.tt b/demo/Blog/template/header.tt new file mode 100644 index 0000000..521ad09 --- /dev/null +++ b/demo/Blog/template/header.tt @@ -0,0 +1,36 @@ +[% DEFAULT + blog_name = 'Foo\'s blog', + blog_desc = 'This is my blog'; +-%] +[% IF NOT pack_js; + js_files = [ + 'jquery.js', + 'blog-jemplate.js', + 'openresty.js', + 'dojo.openresty.js', + 'blog.js', + ]; + ELSE; + js_files = ['jquery-dojo.js', 'blog_min.js']; + END; +-%] + + [% blog_name | html %] + + + + + + [%- FOREACH js_file IN js_files %] + + [%- END %] + + + + + + + + + + diff --git a/demo/Blog/template/index.tt b/demo/Blog/template/index.tt new file mode 100644 index 0000000..d41cb55 --- /dev/null +++ b/demo/Blog/template/index.tt @@ -0,0 +1,41 @@ + + + +[%- PROCESS 'header.tt' -%] + + + + +
+
+ + + [%- PROCESS 'banner.tt' %] + +
+
+
+
+ + + [%- PROCESS 'sidebar.tt' %] + +
+
+
+
+
+ +
+
+
+
+
+
+ [%- PROCESS 'footer.tt' %] +
+
+ + + diff --git a/demo/Blog/template/sidebar.tt b/demo/Blog/template/sidebar.tt new file mode 100644 index 0000000..d5c54c8 --- /dev/null +++ b/demo/Blog/template/sidebar.tt @@ -0,0 +1,98 @@ +
+ +
+ +
+

Site search

+
+ +
+
+ +
+

Recent Posts

+
+
+
+ +
+

Recent Comments

+
+
+
+ +
+

Categories

+
+
+
+
+

Archives

+
+
+
+ +[% IF blog_owner == 'agentzh' %] +
+

[% blog_owner %]

+
+
+
+ +
+
My Photo
+
+
+[% END %] + + + + + +
+

License

+
+ +
+
+ +