diff --git a/README.mdown b/README.mdown new file mode 100644 index 0000000..9ecf113 --- /dev/null +++ b/README.mdown @@ -0,0 +1,67 @@ + + +---------- + + + + + + + +### Includes Sample code +The following bodies of code are included unmodified to form a testing +corpus. Suggestions for other idiomatic samples welcome. + +#### CSS +##### yui3 + - Homepage: http://github.com/yui/yui3 + - License: BSD + + +##### 960 + - Homepage: http://960.gs/ + - License: GPL/MIT + + +##### Blueprint CSS + - Homepage: http://www.blueprintcss.org/ + - License: GPL/MIT + + +#### JavsScript + +##### Dojo Toolkit + - Homepage: http://www.dojotoolkit.org/ + - License: BSD License and the Academic Free License. + +##### flot + - Homepage: http://code.google.com/p/flot/ + - License: MIT + +##### jQuery + - Homepage: http://jquery.com/ + - License: MIT and GPL licenses. + +##### jQuery UI + - Homepage: http://jqueryui.com/ + - License: MIT and GPL licenses. + +#### MooTools + - Homepage: http://mootools.net + - License: MIT-style license. + +##### Processing.js + - Homepage: http://processingjs.org/ + - License: MIT + +##### Prototype + - Homepage: http://www.prototypejs.org/ + - License: MIT + +##### SWFObject + - Homepage: http://code.google.com/p/swfobject/ + - License: MIT + +##### yui3 + - Homepage: http://github.com/yui/yui3 + - License: BSD diff --git a/minification-compare.py b/minification-compare.py index c1352ea..a951f31 100755 --- a/minification-compare.py +++ b/minification-compare.py @@ -40,6 +40,8 @@ {'cmd': 'java -jar minify-programs/yuicompressor-2.4.2.jar --type js -o OUTFILE INFILE'}, 'yui-compressor-2.4.3-csb.0' : {'cmd': 'java -jar minify-programs/yuicompressor-2.4.3-csb.0.jar --type js -o OUTFILE INFILE'}, + 'cs_comp' : + {'cmd': './minify-programs/cs_comp INFILE OUTFILE'} } diff --git a/sample-files/css/960/960.css b/sample-files/css/960/960.css new file mode 100755 index 0000000..0ff24f8 --- /dev/null +++ b/sample-files/css/960/960.css @@ -0,0 +1,606 @@ +/* + 960 Grid System ~ Core CSS. + Learn more ~ http://960.gs/ + + Licensed under GPL and MIT. +*/ + +/* `Containers +----------------------------------------------------------------------------------------------------*/ + +.container_12, +.container_16 { + margin-left: auto; + margin-right: auto; + width: 960px; +} + +/* `Grid >> Global +----------------------------------------------------------------------------------------------------*/ + +.grid_1, +.grid_2, +.grid_3, +.grid_4, +.grid_5, +.grid_6, +.grid_7, +.grid_8, +.grid_9, +.grid_10, +.grid_11, +.grid_12, +.grid_13, +.grid_14, +.grid_15, +.grid_16 { + display: inline; + float: left; + position: relative; + margin-left: 10px; + margin-right: 10px; +} + +.container_12 .grid_3, +.container_16 .grid_4 { + width: 220px; +} + +.container_12 .grid_6, +.container_16 .grid_8 { + width: 460px; +} + +.container_12 .grid_9, +.container_16 .grid_12 { + width: 700px; +} + +.container_12 .grid_12, +.container_16 .grid_16 { + width: 940px; +} + +/* `Grid >> Children (Alpha ~ First, Omega ~ Last) +----------------------------------------------------------------------------------------------------*/ + +.alpha { + margin-left: 0; +} + +.omega { + margin-right: 0; +} + +/* `Grid >> 12 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_12 .grid_1 { + width: 60px; +} + +.container_12 .grid_2 { + width: 140px; +} + +.container_12 .grid_4 { + width: 300px; +} + +.container_12 .grid_5 { + width: 380px; +} + +.container_12 .grid_7 { + width: 540px; +} + +.container_12 .grid_8 { + width: 620px; +} + +.container_12 .grid_10 { + width: 780px; +} + +.container_12 .grid_11 { + width: 860px; +} + +/* `Grid >> 16 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_16 .grid_1 { + width: 40px; +} + +.container_16 .grid_2 { + width: 100px; +} + +.container_16 .grid_3 { + width: 160px; +} + +.container_16 .grid_5 { + width: 280px; +} + +.container_16 .grid_6 { + width: 340px; +} + +.container_16 .grid_7 { + width: 400px; +} + +.container_16 .grid_9 { + width: 520px; +} + +.container_16 .grid_10 { + width: 580px; +} + +.container_16 .grid_11 { + width: 640px; +} + +.container_16 .grid_13 { + width: 760px; +} + +.container_16 .grid_14 { + width: 820px; +} + +.container_16 .grid_15 { + width: 880px; +} + +/* `Prefix Extra Space >> Global +----------------------------------------------------------------------------------------------------*/ + +.container_12 .prefix_3, +.container_16 .prefix_4 { + padding-left: 240px; +} + +.container_12 .prefix_6, +.container_16 .prefix_8 { + padding-left: 480px; +} + +.container_12 .prefix_9, +.container_16 .prefix_12 { + padding-left: 720px; +} + +/* `Prefix Extra Space >> 12 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_12 .prefix_1 { + padding-left: 80px; +} + +.container_12 .prefix_2 { + padding-left: 160px; +} + +.container_12 .prefix_4 { + padding-left: 320px; +} + +.container_12 .prefix_5 { + padding-left: 400px; +} + +.container_12 .prefix_7 { + padding-left: 560px; +} + +.container_12 .prefix_8 { + padding-left: 640px; +} + +.container_12 .prefix_10 { + padding-left: 800px; +} + +.container_12 .prefix_11 { + padding-left: 880px; +} + +/* `Prefix Extra Space >> 16 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_16 .prefix_1 { + padding-left: 60px; +} + +.container_16 .prefix_2 { + padding-left: 120px; +} + +.container_16 .prefix_3 { + padding-left: 180px; +} + +.container_16 .prefix_5 { + padding-left: 300px; +} + +.container_16 .prefix_6 { + padding-left: 360px; +} + +.container_16 .prefix_7 { + padding-left: 420px; +} + +.container_16 .prefix_9 { + padding-left: 540px; +} + +.container_16 .prefix_10 { + padding-left: 600px; +} + +.container_16 .prefix_11 { + padding-left: 660px; +} + +.container_16 .prefix_13 { + padding-left: 780px; +} + +.container_16 .prefix_14 { + padding-left: 840px; +} + +.container_16 .prefix_15 { + padding-left: 900px; +} + +/* `Suffix Extra Space >> Global +----------------------------------------------------------------------------------------------------*/ + +.container_12 .suffix_3, +.container_16 .suffix_4 { + padding-right: 240px; +} + +.container_12 .suffix_6, +.container_16 .suffix_8 { + padding-right: 480px; +} + +.container_12 .suffix_9, +.container_16 .suffix_12 { + padding-right: 720px; +} + +/* `Suffix Extra Space >> 12 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_12 .suffix_1 { + padding-right: 80px; +} + +.container_12 .suffix_2 { + padding-right: 160px; +} + +.container_12 .suffix_4 { + padding-right: 320px; +} + +.container_12 .suffix_5 { + padding-right: 400px; +} + +.container_12 .suffix_7 { + padding-right: 560px; +} + +.container_12 .suffix_8 { + padding-right: 640px; +} + +.container_12 .suffix_10 { + padding-right: 800px; +} + +.container_12 .suffix_11 { + padding-right: 880px; +} + +/* `Suffix Extra Space >> 16 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_16 .suffix_1 { + padding-right: 60px; +} + +.container_16 .suffix_2 { + padding-right: 120px; +} + +.container_16 .suffix_3 { + padding-right: 180px; +} + +.container_16 .suffix_5 { + padding-right: 300px; +} + +.container_16 .suffix_6 { + padding-right: 360px; +} + +.container_16 .suffix_7 { + padding-right: 420px; +} + +.container_16 .suffix_9 { + padding-right: 540px; +} + +.container_16 .suffix_10 { + padding-right: 600px; +} + +.container_16 .suffix_11 { + padding-right: 660px; +} + +.container_16 .suffix_13 { + padding-right: 780px; +} + +.container_16 .suffix_14 { + padding-right: 840px; +} + +.container_16 .suffix_15 { + padding-right: 900px; +} + +/* `Push Space >> Global +----------------------------------------------------------------------------------------------------*/ + +.container_12 .push_3, +.container_16 .push_4 { + left: 240px; +} + +.container_12 .push_6, +.container_16 .push_8 { + left: 480px; +} + +.container_12 .push_9, +.container_16 .push_12 { + left: 720px; +} + +/* `Push Space >> 12 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_12 .push_1 { + left: 80px; +} + +.container_12 .push_2 { + left: 160px; +} + +.container_12 .push_4 { + left: 320px; +} + +.container_12 .push_5 { + left: 400px; +} + +.container_12 .push_7 { + left: 560px; +} + +.container_12 .push_8 { + left: 640px; +} + +.container_12 .push_10 { + left: 800px; +} + +.container_12 .push_11 { + left: 880px; +} + +/* `Push Space >> 16 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_16 .push_1 { + left: 60px; +} + +.container_16 .push_2 { + left: 120px; +} + +.container_16 .push_3 { + left: 180px; +} + +.container_16 .push_5 { + left: 300px; +} + +.container_16 .push_6 { + left: 360px; +} + +.container_16 .push_7 { + left: 420px; +} + +.container_16 .push_9 { + left: 540px; +} + +.container_16 .push_10 { + left: 600px; +} + +.container_16 .push_11 { + left: 660px; +} + +.container_16 .push_13 { + left: 780px; +} + +.container_16 .push_14 { + left: 840px; +} + +.container_16 .push_15 { + left: 900px; +} + +/* `Pull Space >> Global +----------------------------------------------------------------------------------------------------*/ + +.container_12 .pull_3, +.container_16 .pull_4 { + left: -240px; +} + +.container_12 .pull_6, +.container_16 .pull_8 { + left: -480px; +} + +.container_12 .pull_9, +.container_16 .pull_12 { + left: -720px; +} + +/* `Pull Space >> 12 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_12 .pull_1 { + left: -80px; +} + +.container_12 .pull_2 { + left: -160px; +} + +.container_12 .pull_4 { + left: -320px; +} + +.container_12 .pull_5 { + left: -400px; +} + +.container_12 .pull_7 { + left: -560px; +} + +.container_12 .pull_8 { + left: -640px; +} + +.container_12 .pull_10 { + left: -800px; +} + +.container_12 .pull_11 { + left: -880px; +} + +/* `Pull Space >> 16 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_16 .pull_1 { + left: -60px; +} + +.container_16 .pull_2 { + left: -120px; +} + +.container_16 .pull_3 { + left: -180px; +} + +.container_16 .pull_5 { + left: -300px; +} + +.container_16 .pull_6 { + left: -360px; +} + +.container_16 .pull_7 { + left: -420px; +} + +.container_16 .pull_9 { + left: -540px; +} + +.container_16 .pull_10 { + left: -600px; +} + +.container_16 .pull_11 { + left: -660px; +} + +.container_16 .pull_13 { + left: -780px; +} + +.container_16 .pull_14 { + left: -840px; +} + +.container_16 .pull_15 { + left: -900px; +} + +/* `Clear Floated Elements +----------------------------------------------------------------------------------------------------*/ + +/* http://sonspring.com/journal/clearing-floats */ + +.clear { + clear: both; + display: block; + overflow: hidden; + visibility: hidden; + width: 0; + height: 0; +} + +/* http://perishablepress.com/press/2008/02/05/lessons-learned-concerning-the-clearfix-css-hack */ + +.clearfix:after { + clear: both; + content: ' '; + display: block; + font-size: 0; + line-height: 0; + visibility: hidden; + width: 0; + height: 0; +} + +* html .clearfix { + height: 1%; +} \ No newline at end of file diff --git a/sample-files/css/960/960_24_col.css b/sample-files/css/960/960_24_col.css new file mode 100644 index 0000000..7ddf6eb --- /dev/null +++ b/sample-files/css/960/960_24_col.css @@ -0,0 +1,569 @@ +/* + 960 Grid System ~ Core CSS. + Learn more ~ http://960.gs/ + + Licensed under GPL and MIT. +*/ + +/* Container >> 24 Columns +----------------------------------------------------------------------------------------------------*/ +.container_24 { + margin-left: auto; + margin-right: auto; + width: 960px; +} + +/* Grid >> Global +----------------------------------------------------------------------------------------------------*/ + +.grid_1, +.grid_2, +.grid_3, +.grid_4, +.grid_5, +.grid_6, +.grid_7, +.grid_8, +.grid_9, +.grid_10, +.grid_11, +.grid_12, +.grid_13, +.grid_14, +.grid_15, +.grid_16, +.grid_17, +.grid_18, +.grid_19, +.grid_20, +.grid_21, +.grid_22, +.grid_23, +.grid_24 { + display: inline; + float: left; + position: relative; + margin-left: 5px; + margin-right: 5px; +} + +/* Grid >> Children (Alpha ~ First, Omega ~ Last) +----------------------------------------------------------------------------------------------------*/ + +.alpha { + margin-left: 0; +} + +.omega { + margin-right: 0; +} + +/* Grid >> 24 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_24 .grid_1 { + width: 30px; +} + +.container_24 .grid_2 { + width: 70px; +} + +.container_24 .grid_3 { + width: 110px; +} + +.container_24 .grid_4 { + width: 150px; +} + +.container_24 .grid_5 { + width: 190px; +} + +.container_24 .grid_6 { + width: 230px; +} + +.container_24 .grid_7 { + width: 270px; +} + +.container_24 .grid_8 { + width: 310px; +} + +.container_24 .grid_9 { + width: 350px; +} + +.container_24 .grid_10 { + width: 390px; +} + +.container_24 .grid_11 { + width: 430px; +} + +.container_24 .grid_12 { + width: 470px; +} + +.container_24 .grid_13 { + width: 510px; +} + +.container_24 .grid_14 { + width: 550px; +} + +.container_24 .grid_15 { + width: 590px; +} + +.container_24 .grid_16 { + width: 630px; +} + +.container_24 .grid_17 { + width: 670px; +} + +.container_24 .grid_18 { + width: 710px; +} + +.container_24 .grid_19 { + width: 750px; +} + +.container_24 .grid_20 { + width: 790px; +} + +.container_24 .grid_21 { + width: 830px; +} + +.container_24 .grid_22 { + width: 870px; +} + +.container_24 .grid_23 { + width: 910px; +} + +.container_24 .grid_24 { + width: 950px; +} + +/* Prefix Extra Space >> 24 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_24 .prefix_1 { + padding-left: 40px; +} + +.container_24 .prefix_2 { + padding-left: 80px; +} + +.container_24 .prefix_3 { + padding-left: 120px; +} + +.container_24 .prefix_4 { + padding-left: 160px; +} + +.container_24 .prefix_5 { + padding-left: 200px; +} + +.container_24 .prefix_6 { + padding-left: 240px; +} + +.container_24 .prefix_7 { + padding-left: 280px; +} + +.container_24 .prefix_8 { + padding-left: 320px; +} + +.container_24 .prefix_9 { + padding-left: 360px; +} + +.container_24 .prefix_10 { + padding-left: 400px; +} + +.container_24 .prefix_11 { + padding-left: 440px; +} + +.container_24 .prefix_12 { + padding-left: 480px; +} + +.container_24 .prefix_13 { + padding-left: 520px; +} + +.container_24 .prefix_14 { + padding-left: 560px; +} + +.container_24 .prefix_15 { + padding-left: 600px; +} + +.container_24 .prefix_16 { + padding-left: 640px; +} + +.container_24 .prefix_17 { + padding-left: 680px; +} + +.container_24 .prefix_18 { + padding-left: 720px; +} + +.container_24 .prefix_19 { + padding-left: 760px; +} + +.container_24 .prefix_20 { + padding-left: 800px; +} + +.container_24 .prefix_21 { + padding-left: 840px; +} + +.container_24 .prefix_22 { + padding-left: 880px; +} + +.container_24 .prefix_23 { + padding-left: 920px; +} + +/* Suffix Extra Space >> 24 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_24 .suffix_1 { + padding-right: 40px; +} + +.container_24 .suffix_2 { + padding-right: 80px; +} + +.container_24 .suffix_3 { + padding-right: 120px; +} + +.container_24 .suffix_4 { + padding-right: 160px; +} + +.container_24 .suffix_5 { + padding-right: 200px; +} + +.container_24 .suffix_6 { + padding-right: 240px; +} + +.container_24 .suffix_7 { + padding-right: 280px; +} + +.container_24 .suffix_8 { + padding-right: 320px; +} + +.container_24 .suffix_9 { + padding-right: 360px; +} + +.container_24 .suffix_10 { + padding-right: 400px; +} + +.container_24 .suffix_11 { + padding-right: 440px; +} + +.container_24 .suffix_12 { + padding-right: 480px; +} + +.container_24 .suffix_13 { + padding-right: 520px; +} + +.container_24 .suffix_14 { + padding-right: 560px; +} + +.container_24 .suffix_15 { + padding-right: 600px; +} + +.container_24 .suffix_16 { + padding-right: 640px; +} + +.container_24 .suffix_17 { + padding-right: 680px; +} + +.container_24 .suffix_18 { + padding-right: 720px; +} + +.container_24 .suffix_19 { + padding-right: 760px; +} + +.container_24 .suffix_20 { + padding-right: 800px; +} + +.container_24 .suffix_21 { + padding-right: 840px; +} + +.container_24 .suffix_22 { + padding-right: 880px; +} + +.container_24 .suffix_23 { + padding-right: 920px; +} + +/* Push Space >> 24 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_24 .push_1 { + left: 40px; +} + +.container_24 .push_2 { + left: 80px; +} + +.container_24 .push_3 { + left: 120px; +} + +.container_24 .push_4 { + left: 160px; +} + +.container_24 .push_5 { + left: 200px; +} + +.container_24 .push_6 { + left: 240px; +} + +.container_24 .push_7 { + left: 280px; +} + +.container_24 .push_8 { + left: 320px; +} + +.container_24 .push_9 { + left: 360px; +} + +.container_24 .push_10 { + left: 400px; +} + +.container_24 .push_11 { + left: 440px; +} + +.container_24 .push_12 { + left: 480px; +} + +.container_24 .push_13 { + left: 520px; +} + +.container_24 .push_14 { + left: 560px; +} + +.container_24 .push_15 { + left: 600px; +} + +.container_24 .push_16 { + left: 640px; +} + +.container_24 .push_17 { + left: 680px; +} + +.container_24 .push_18 { + left: 720px; +} + +.container_24 .push_19 { + left: 760px; +} + +.container_24 .push_20 { + left: 800px; +} + +.container_24 .push_21 { + left: 840px; +} + +.container_24 .push_22 { + left: 880px; +} + +.container_24 .push_23 { + left: 920px; +} + +/* Pull Space >> 24 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_24 .pull_1 { + left: -40px; +} + +.container_24 .pull_2 { + left: -80px; +} + +.container_24 .pull_3 { + left: -120px; +} + +.container_24 .pull_4 { + left: -160px; +} + +.container_24 .pull_5 { + left: -200px; +} + +.container_24 .pull_6 { + left: -240px; +} + +.container_24 .pull_7 { + left: -280px; +} + +.container_24 .pull_8 { + left: -320px; +} + +.container_24 .pull_9 { + left: -360px; +} + +.container_24 .pull_10 { + left: -400px; +} + +.container_24 .pull_11 { + left: -440px; +} + +.container_24 .pull_12 { + left: -480px; +} + +.container_24 .pull_13 { + left: -520px; +} + +.container_24 .pull_14 { + left: -560px; +} + +.container_24 .pull_15 { + left: -600px; +} + +.container_24 .pull_16 { + left: -640px; +} + +.container_24 .pull_17 { + left: -680px; +} + +.container_24 .pull_18 { + left: -720px; +} + +.container_24 .pull_19 { + left: -760px; +} + +.container_24 .pull_20 { + left: -800px; +} + +.container_24 .pull_21 { + left: -840px; +} + +.container_24 .pull_22 { + left: -880px; +} + +.container_24 .pull_23 { + left: -920px; +} + +/* `Clear Floated Elements +----------------------------------------------------------------------------------------------------*/ + +/* http://sonspring.com/journal/clearing-floats */ + +.clear { + clear: both; + display: block; + overflow: hidden; + visibility: hidden; + width: 0; + height: 0; +} + +/* http://perishablepress.com/press/2008/02/05/lessons-learned-concerning-the-clearfix-css-hack */ + +.clearfix:after { + clear: both; + content: ' '; + display: block; + font-size: 0; + line-height: 0; + visibility: hidden; + width: 0; + height: 0; +} + +* html .clearfix { + height: 1%; +} \ No newline at end of file diff --git a/sample-files/css/960/demo.css b/sample-files/css/960/demo.css new file mode 100644 index 0000000..07d9265 --- /dev/null +++ b/sample-files/css/960/demo.css @@ -0,0 +1,47 @@ +body { + background: #123; + border-top: 5px solid #000; + color: #333; + font-size: 11px; + padding: 20px 0 40px; +} + +a { + color: #fff; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +h1 { + font-family: Georgia, serif; + font-weight: normal; + text-align: center; +} + +h2 { + padding: 20px 0 0; + text-align: center; +} + +p { + border: 1px solid #666; + overflow: hidden; + padding: 10px 0; + text-align: center; +} + +.container_12 { + background: #fff url(../../img/12_col.gif) repeat-y; + margin-bottom: 20px; +} + +.container_16 { + background: #fff url(../../img/16_col.gif) repeat-y; +} + +.container_24 { + background: #fff url(../../img/24_col.gif) repeat-y; +} \ No newline at end of file diff --git a/sample-files/css/960/reset.css b/sample-files/css/960/reset.css new file mode 100755 index 0000000..13f8e0a --- /dev/null +++ b/sample-files/css/960/reset.css @@ -0,0 +1,53 @@ +/* http://meyerweb.com/eric/tools/css/reset/ */ +/* v1.0 | 20080212 */ + +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, +b, u, i, center, +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-size: 100%; + vertical-align: baseline; + background: transparent; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} + +/* remember to define focus styles! */ +:focus { + outline: 0; +} + +/* remember to highlight inserts somehow! */ +ins { + text-decoration: none; +} +del { + text-decoration: line-through; +} + +/* tables still need 'cellspacing="0"' in the markup */ +table { + border-collapse: collapse; + border-spacing: 0; +} \ No newline at end of file diff --git a/sample-files/css/960/text.css b/sample-files/css/960/text.css new file mode 100755 index 0000000..236d213 --- /dev/null +++ b/sample-files/css/960/text.css @@ -0,0 +1,84 @@ +/* + 960 Grid System ~ Text CSS. + Learn more ~ http://960.gs/ + + Licensed under GPL and MIT. +*/ + +/* `Basic HTML +----------------------------------------------------------------------------------------------------*/ + +body { + font: 13px/1.5 'Helvetica Neue', Arial, 'Liberation Sans', FreeSans, sans-serif; +} + +a:focus { + outline: 1px dotted; +} + +hr { + border: 0 #ccc solid; + border-top-width: 1px; + clear: both; + height: 0; +} + +/* `Headings +----------------------------------------------------------------------------------------------------*/ + +h1 { + font-size: 25px; +} + +h2 { + font-size: 23px; +} + +h3 { + font-size: 21px; +} + +h4 { + font-size: 19px; +} + +h5 { + font-size: 17px; +} + +h6 { + font-size: 15px; +} + +/* `Spacing +----------------------------------------------------------------------------------------------------*/ + +ol { + list-style: decimal; +} + +ul { + list-style: disc; +} + +li { + margin-left: 30px; +} + +p, +dl, +hr, +h1, +h2, +h3, +h4, +h5, +h6, +ol, +ul, +pre, +table, +address, +fieldset { + margin-bottom: 20px; +} \ No newline at end of file diff --git a/sample-files/css/blurprint/forms.css b/sample-files/css/blurprint/forms.css new file mode 100644 index 0000000..b491134 --- /dev/null +++ b/sample-files/css/blurprint/forms.css @@ -0,0 +1,65 @@ +/* -------------------------------------------------------------- + + forms.css + * Sets up some default styling for forms + * Gives you classes to enhance your forms + + Usage: + * For text fields, use class .title or .text + * For inline forms, use .inline (even when using columns) + +-------------------------------------------------------------- */ + +label { font-weight: bold; } +fieldset { padding:1.4em; margin: 0 0 1.5em 0; border: 1px solid #ccc; } +legend { font-weight: bold; font-size:1.2em; } + + +/* Form fields +-------------------------------------------------------------- */ + +input[type=text], input[type=password], +input.text, input.title, +textarea, select { + background-color:#fff; + border:1px solid #bbb; +} +input[type=text]:focus, input[type=password]:focus, +input.text:focus, input.title:focus, +textarea:focus, select:focus { + border-color:#666; +} + +input[type=text], input[type=password], +input.text, input.title, +textarea, select { + margin:0.5em 0; +} + +input.text, +input.title { width: 300px; padding:5px; } +input.title { font-size:1.5em; } +textarea { width: 390px; height: 250px; padding:5px; } + +input[type=checkbox], input[type=radio], +input.checkbox, input.radio { + position:relative; top:.25em; +} + +form.inline { line-height:3; } +form.inline p { margin-bottom:0; } + + +/* Success, notice and error boxes +-------------------------------------------------------------- */ + +.error, +.notice, +.success { padding: .8em; margin-bottom: 1em; border: 2px solid #ddd; } + +.error { background: #FBE3E4; color: #8a1f11; border-color: #FBC2C4; } +.notice { background: #FFF6BF; color: #514721; border-color: #FFD324; } +.success { background: #E6EFC2; color: #264409; border-color: #C6D880; } +.error a { color: #8a1f11; } +.notice a { color: #514721; } +.success a { color: #264409; } diff --git a/sample-files/css/blurprint/grid.css b/sample-files/css/blurprint/grid.css new file mode 100644 index 0000000..352e0e2 --- /dev/null +++ b/sample-files/css/blurprint/grid.css @@ -0,0 +1,281 @@ +/* -------------------------------------------------------------- + grid.css + * Sets up an easy-to-use grid of 24 columns. + + By default, the grid is 950px wide, with 24 columns + spanning 30px, and a 10px margin between columns. + + If you need fewer or more columns, namespaces or semantic + element names, use the compressor script (lib/compress.rb) + + Note: Changes made in this file will not be applied when + using the compressor: make changes in lib/blueprint/grid.css.rb +-------------------------------------------------------------- */ + +/* A container should group all your columns. */ +.container { + width: 950px; + margin: 0 auto; +} + +/* Use this class on any div.span / container to see the grid. */ +.showgrid { + background: url(src/grid.png); +} + + +/* Columns +-------------------------------------------------------------- */ + +/* Sets up basic grid floating and margin. */ +.column, div.span-1, div.span-2, div.span-3, div.span-4, div.span-5, div.span-6, div.span-7, div.span-8, div.span-9, div.span-10, div.span-11, div.span-12, div.span-13, div.span-14, div.span-15, div.span-16, div.span-17, div.span-18, div.span-19, div.span-20, div.span-21, div.span-22, div.span-23, div.span-24 { + float: left; + margin-right: 10px; +} + +/* The last column in a row needs this class. */ +.last, div.last { margin-right: 0; } + +/* Use these classes to set the width of a column. */ +.span-1 {width: 30px;} + +.span-2 {width: 70px;} +.span-3 {width: 110px;} +.span-4 {width: 150px;} +.span-5 {width: 190px;} +.span-6 {width: 230px;} +.span-7 {width: 270px;} +.span-8 {width: 310px;} +.span-9 {width: 350px;} +.span-10 {width: 390px;} +.span-11 {width: 430px;} +.span-12 {width: 470px;} +.span-13 {width: 510px;} +.span-14 {width: 550px;} +.span-15 {width: 590px;} +.span-16 {width: 630px;} +.span-17 {width: 670px;} +.span-18 {width: 710px;} +.span-19 {width: 750px;} +.span-20 {width: 790px;} +.span-21 {width: 830px;} +.span-22 {width: 870px;} +.span-23 {width: 910px;} +.span-24, div.span-24 { width:950px; margin-right:0; } + +/* Use these classes to set the width of an input. */ +input.span-1, textarea.span-1, input.span-2, textarea.span-2, input.span-3, textarea.span-3, input.span-4, textarea.span-4, input.span-5, textarea.span-5, input.span-6, textarea.span-6, input.span-7, textarea.span-7, input.span-8, textarea.span-8, input.span-9, textarea.span-9, input.span-10, textarea.span-10, input.span-11, textarea.span-11, input.span-12, textarea.span-12, input.span-13, textarea.span-13, input.span-14, textarea.span-14, input.span-15, textarea.span-15, input.span-16, textarea.span-16, input.span-17, textarea.span-17, input.span-18, textarea.span-18, input.span-19, textarea.span-19, input.span-20, textarea.span-20, input.span-21, textarea.span-21, input.span-22, textarea.span-22, input.span-23, textarea.span-23, input.span-24, textarea.span-24 { + border-left-width: 1px!important; + border-right-width: 1px!important; + padding-left: 5px!important; + padding-right: 5px!important; +} + +input.span-1, textarea.span-1 { width: 18px!important; } +input.span-2, textarea.span-2 { width: 58px!important; } +input.span-3, textarea.span-3 { width: 98px!important; } +input.span-4, textarea.span-4 { width: 138px!important; } +input.span-5, textarea.span-5 { width: 178px!important; } +input.span-6, textarea.span-6 { width: 218px!important; } +input.span-7, textarea.span-7 { width: 258px!important; } +input.span-8, textarea.span-8 { width: 298px!important; } +input.span-9, textarea.span-9 { width: 338px!important; } +input.span-10, textarea.span-10 { width: 378px!important; } +input.span-11, textarea.span-11 { width: 418px!important; } +input.span-12, textarea.span-12 { width: 458px!important; } +input.span-13, textarea.span-13 { width: 498px!important; } +input.span-14, textarea.span-14 { width: 538px!important; } +input.span-15, textarea.span-15 { width: 578px!important; } +input.span-16, textarea.span-16 { width: 618px!important; } +input.span-17, textarea.span-17 { width: 658px!important; } +input.span-18, textarea.span-18 { width: 698px!important; } +input.span-19, textarea.span-19 { width: 738px!important; } +input.span-20, textarea.span-20 { width: 778px!important; } +input.span-21, textarea.span-21 { width: 818px!important; } +input.span-22, textarea.span-22 { width: 858px!important; } +input.span-23, textarea.span-23 { width: 898px!important; } +input.span-24, textarea.span-24 { width: 938px!important; } + +/* Add these to a column to append empty cols. */ + +.append-1 { padding-right: 40px;} +.append-2 { padding-right: 80px;} +.append-3 { padding-right: 120px;} +.append-4 { padding-right: 160px;} +.append-5 { padding-right: 200px;} +.append-6 { padding-right: 240px;} +.append-7 { padding-right: 280px;} +.append-8 { padding-right: 320px;} +.append-9 { padding-right: 360px;} +.append-10 { padding-right: 400px;} +.append-11 { padding-right: 440px;} +.append-12 { padding-right: 480px;} +.append-13 { padding-right: 520px;} +.append-14 { padding-right: 560px;} +.append-15 { padding-right: 600px;} +.append-16 { padding-right: 640px;} +.append-17 { padding-right: 680px;} +.append-18 { padding-right: 720px;} +.append-19 { padding-right: 760px;} +.append-20 { padding-right: 800px;} +.append-21 { padding-right: 840px;} +.append-22 { padding-right: 880px;} +.append-23 { padding-right: 920px;} + +/* Add these to a column to prepend empty cols. */ + +.prepend-1 { padding-left: 40px;} +.prepend-2 { padding-left: 80px;} +.prepend-3 { padding-left: 120px;} +.prepend-4 { padding-left: 160px;} +.prepend-5 { padding-left: 200px;} +.prepend-6 { padding-left: 240px;} +.prepend-7 { padding-left: 280px;} +.prepend-8 { padding-left: 320px;} +.prepend-9 { padding-left: 360px;} +.prepend-10 { padding-left: 400px;} +.prepend-11 { padding-left: 440px;} +.prepend-12 { padding-left: 480px;} +.prepend-13 { padding-left: 520px;} +.prepend-14 { padding-left: 560px;} +.prepend-15 { padding-left: 600px;} +.prepend-16 { padding-left: 640px;} +.prepend-17 { padding-left: 680px;} +.prepend-18 { padding-left: 720px;} +.prepend-19 { padding-left: 760px;} +.prepend-20 { padding-left: 800px;} +.prepend-21 { padding-left: 840px;} +.prepend-22 { padding-left: 880px;} +.prepend-23 { padding-left: 920px;} + + +/* Border on right hand side of a column. */ +div.border { + padding-right: 4px; + margin-right: 5px; + border-right: 1px solid #eee; +} + +/* Border with more whitespace, spans one column. */ +div.colborder { + padding-right: 24px; + margin-right: 25px; + border-right: 1px solid #eee; +} + + +/* Use these classes on an element to push it into the +next column, or to pull it into the previous column. */ + + +.pull-1 { margin-left: -40px; } +.pull-2 { margin-left: -80px; } +.pull-3 { margin-left: -120px; } +.pull-4 { margin-left: -160px; } +.pull-5 { margin-left: -200px; } +.pull-6 { margin-left: -240px; } +.pull-7 { margin-left: -280px; } +.pull-8 { margin-left: -320px; } +.pull-9 { margin-left: -360px; } +.pull-10 { margin-left: -400px; } +.pull-11 { margin-left: -440px; } +.pull-12 { margin-left: -480px; } +.pull-13 { margin-left: -520px; } +.pull-14 { margin-left: -560px; } +.pull-15 { margin-left: -600px; } +.pull-16 { margin-left: -640px; } +.pull-17 { margin-left: -680px; } +.pull-18 { margin-left: -720px; } +.pull-19 { margin-left: -760px; } +.pull-20 { margin-left: -800px; } +.pull-21 { margin-left: -840px; } +.pull-22 { margin-left: -880px; } +.pull-23 { margin-left: -920px; } +.pull-24 { margin-left: -960px; } + +.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 {float: left; position:relative;} + + +.push-1 { margin: 0 -40px 1.5em 40px; } +.push-2 { margin: 0 -80px 1.5em 80px; } +.push-3 { margin: 0 -120px 1.5em 120px; } +.push-4 { margin: 0 -160px 1.5em 160px; } +.push-5 { margin: 0 -200px 1.5em 200px; } +.push-6 { margin: 0 -240px 1.5em 240px; } +.push-7 { margin: 0 -280px 1.5em 280px; } +.push-8 { margin: 0 -320px 1.5em 320px; } +.push-9 { margin: 0 -360px 1.5em 360px; } +.push-10 { margin: 0 -400px 1.5em 400px; } +.push-11 { margin: 0 -440px 1.5em 440px; } +.push-12 { margin: 0 -480px 1.5em 480px; } +.push-13 { margin: 0 -520px 1.5em 520px; } +.push-14 { margin: 0 -560px 1.5em 560px; } +.push-15 { margin: 0 -600px 1.5em 600px; } +.push-16 { margin: 0 -640px 1.5em 640px; } +.push-17 { margin: 0 -680px 1.5em 680px; } +.push-18 { margin: 0 -720px 1.5em 720px; } +.push-19 { margin: 0 -760px 1.5em 760px; } +.push-20 { margin: 0 -800px 1.5em 800px; } +.push-21 { margin: 0 -840px 1.5em 840px; } +.push-22 { margin: 0 -880px 1.5em 880px; } +.push-23 { margin: 0 -920px 1.5em 920px; } +.push-24 { margin: 0 -960px 1.5em 960px; } + +.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 {float: right; position:relative;} + + +/* Misc classes and elements +-------------------------------------------------------------- */ + +/* In case you need to add a gutter above/below an element */ +.prepend-top { + margin-top:1.5em; +} +.append-bottom { + margin-bottom:1.5em; +} + +/* Use a .box to create a padded box inside a column. */ +.box { + padding: 1.5em; + margin-bottom: 1.5em; + background: #E5ECF9; +} + +/* Use this to create a horizontal ruler across a column. */ +hr { + background: #ddd; + color: #ddd; + clear: both; + float: none; + width: 100%; + height: .1em; + margin: 0 0 1.45em; + border: none; +} + +hr.space { + background: #fff; + color: #fff; + visibility: hidden; +} + + +/* Clearing floats without extra markup + Based on How To Clear Floats Without Structural Markup by PiE + [http://www.positioniseverything.net/easyclearing.html] */ + +.clearfix:after, .container:after { + content: "\0020"; + display: block; + height: 0; + clear: both; + visibility: hidden; + overflow:hidden; +} +.clearfix, .container {display: block;} + +/* Regular clearing + apply to column that should drop below previous ones. */ + +.clear { clear:both; } diff --git a/sample-files/css/blurprint/ie.css b/sample-files/css/blurprint/ie.css new file mode 100644 index 0000000..214b879 --- /dev/null +++ b/sample-files/css/blurprint/ie.css @@ -0,0 +1,76 @@ +/* -------------------------------------------------------------- + + ie.css + + Contains every hack for Internet Explorer, + so that our core files stay sweet and nimble. + +-------------------------------------------------------------- */ + +/* Make sure the layout is centered in IE5 */ +body { text-align: center; } +.container { text-align: left; } + +/* Fixes IE margin bugs */ +* html .column, * html div.span-1, * html div.span-2, +* html div.span-3, * html div.span-4, * html div.span-5, +* html div.span-6, * html div.span-7, * html div.span-8, +* html div.span-9, * html div.span-10, * html div.span-11, +* html div.span-12, * html div.span-13, * html div.span-14, +* html div.span-15, * html div.span-16, * html div.span-17, +* html div.span-18, * html div.span-19, * html div.span-20, +* html div.span-21, * html div.span-22, * html div.span-23, +* html div.span-24 { display:inline; overflow-x: hidden; } + + +/* Elements +-------------------------------------------------------------- */ + +/* Fixes incorrect styling of legend in IE6. */ +* html legend { margin:0px -8px 16px 0; padding:0; } + +/* Fixes wrong line-height on sup/sub in IE. */ +sup { vertical-align:text-top; } +sub { vertical-align:text-bottom; } + +/* Fixes IE7 missing wrapping of code elements. */ +html>body p code { *white-space: normal; } + +/* IE 6&7 has problems with setting proper
margins. */ +hr { margin:-8px auto 11px; } + +/* Explicitly set interpolation, allowing dynamically resized images to not look horrible */ +img { -ms-interpolation-mode:bicubic; } + +/* Clearing +-------------------------------------------------------------- */ + +/* Makes clearfix actually work in IE */ +.clearfix, .container { display:inline-block; } +* html .clearfix, +* html .container { height:1%; } + + +/* Forms +-------------------------------------------------------------- */ + +/* Fixes padding on fieldset */ +fieldset { padding-top:0; } + +/* Makes classic textareas in IE 6 resemble other browsers */ +textarea { overflow:auto; } + +/* Fixes rule that IE 6 ignores */ +input.text, input.title, textarea { background-color:#fff; border:1px solid #bbb; } +input.text:focus, input.title:focus { border-color:#666; } +input.text, input.title, textarea, select { margin:0.5em 0; } +input.checkbox, input.radio { position:relative; top:.25em; } + +/* Fixes alignment of inline form elements */ +form.inline div, form.inline p { vertical-align:middle; } +form.inline label { position:relative;top:-0.25em; } +form.inline input.checkbox, form.inline input.radio, +form.inline input.button, form.inline button { + margin:0.5em 0; +} +button, input.button { position:relative;top:0.25em; } \ No newline at end of file diff --git a/sample-files/css/blurprint/print.css b/sample-files/css/blurprint/print.css new file mode 100644 index 0000000..d303029 --- /dev/null +++ b/sample-files/css/blurprint/print.css @@ -0,0 +1,85 @@ +/* -------------------------------------------------------------- + + print.css + * Gives you some sensible styles for printing pages. + * See Readme file in this directory for further instructions. + + Some additions you'll want to make, customized to your markup: + #header, #footer, #navigation { display:none; } + +-------------------------------------------------------------- */ + +body { + line-height: 1.5; + font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; + color:#000; + background: none; + font-size: 10pt; +} + + +/* Layout +-------------------------------------------------------------- */ + +.container { + background: none; +} + +hr { + background:#ccc; + color:#ccc; + width:100%; + height:2px; + margin:2em 0; + padding:0; + border:none; +} +hr.space { + background: #fff; + color: #fff; + visibility: hidden; +} + + +/* Text +-------------------------------------------------------------- */ + +h1,h2,h3,h4,h5,h6 { font-family: "Helvetica Neue", Arial, "Lucida Grande", sans-serif; } +code { font:.9em "Courier New", Monaco, Courier, monospace; } + +a img { border:none; } +p img.top { margin-top: 0; } + +blockquote { + margin:1.5em; + padding:1em; + font-style:italic; + font-size:.9em; +} + +.small { font-size: .9em; } +.large { font-size: 1.1em; } +.quiet { color: #999; } +.hide { display:none; } + + +/* Links +-------------------------------------------------------------- */ + +a:link, a:visited { + background: transparent; + font-weight:700; + text-decoration: underline; +} + +a:link:after, a:visited:after { + content: " (" attr(href) ")"; + font-size: 90%; +} + +/* If you're having trouble printing relative links, uncomment and customize this: + (note: This is valid CSS3, but it still won't go through the W3C CSS Validator) */ + +/* a[href^="/"]:after { + content: " (http://www.yourdomain.com" attr(href) ") "; +} */ diff --git a/sample-files/css/blurprint/reset.css b/sample-files/css/blurprint/reset.css new file mode 100644 index 0000000..fc0788c --- /dev/null +++ b/sample-files/css/blurprint/reset.css @@ -0,0 +1,38 @@ +/* -------------------------------------------------------------- + + reset.css + * Resets default browser CSS. + +-------------------------------------------------------------- */ + +html, body, div, span, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, code, +del, dfn, em, img, q, dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0; + padding: 0; + border: 0; + font-weight: inherit; + font-style: inherit; + font-size: 100%; + font-family: inherit; + vertical-align: baseline; +} + +body { + line-height: 1.5; +} + +/* Tables still need 'cellspacing="0"' in the markup. */ +table { border-collapse: separate; border-spacing: 0; } +caption, th, td { text-align: left; font-weight: normal; } +table, td, th { vertical-align: middle; } + +/* Remove possible quote marks (") from ,
. */ +blockquote:before, blockquote:after, q:before, q:after { content: ""; } +blockquote, q { quotes: "" ""; } + +/* Remove annoying border on linked images. */ +a img { border: none; } diff --git a/sample-files/css/blurprint/typography.css b/sample-files/css/blurprint/typography.css new file mode 100644 index 0000000..6cc099c --- /dev/null +++ b/sample-files/css/blurprint/typography.css @@ -0,0 +1,106 @@ +/* -------------------------------------------------------------- + + typography.css + * Sets up some sensible default typography. + +-------------------------------------------------------------- */ + +/* Default font settings. + The font-size percentage is of 16px. (0.75 * 16px = 12px) */ +html { font-size:100.01%; } +body { + font-size: 75%; + color: #222; + background: #fff; + font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; +} + + +/* Headings +-------------------------------------------------------------- */ + +h1,h2,h3,h4,h5,h6 { font-weight: normal; color: #111; } + +h1 { font-size: 3em; line-height: 1; margin-bottom: 0.5em; } +h2 { font-size: 2em; margin-bottom: 0.75em; } +h3 { font-size: 1.5em; line-height: 1; margin-bottom: 1em; } +h4 { font-size: 1.2em; line-height: 1.25; margin-bottom: 1.25em; } +h5 { font-size: 1em; font-weight: bold; margin-bottom: 1.5em; } +h6 { font-size: 1em; font-weight: bold; } + +h1 img, h2 img, h3 img, +h4 img, h5 img, h6 img { + margin: 0; +} + + +/* Text elements +-------------------------------------------------------------- */ + +p { margin: 0 0 1.5em; } +p img.left { float: left; margin: 1.5em 1.5em 1.5em 0; padding: 0; } +p img.right { float: right; margin: 1.5em 0 1.5em 1.5em; } + +a:focus, +a:hover { color: #000; } +a { color: #009; text-decoration: underline; } + +blockquote { margin: 1.5em; color: #666; font-style: italic; } +strong { font-weight: bold; } +em,dfn { font-style: italic; } +dfn { font-weight: bold; } +sup, sub { line-height: 0; } + +abbr, +acronym { border-bottom: 1px dotted #666; } +address { margin: 0 0 1.5em; font-style: italic; } +del { color:#666; } + +pre { margin: 1.5em 0; white-space: pre; } +pre,code,tt { font: 1em 'andale mono', 'lucida console', monospace; line-height: 1.5; } + + +/* Lists +-------------------------------------------------------------- */ + +li ul, +li ol { margin: 0; } +ul, ol { margin: 0 1.5em 1.5em 0; padding-left: 3.333em; } + +ul { list-style-type: disc; } +ol { list-style-type: decimal; } + +dl { margin: 0 0 1.5em 0; } +dl dt { font-weight: bold; } +dd { margin-left: 1.5em;} + + +/* Tables +-------------------------------------------------------------- */ + +table { margin-bottom: 1.4em; width:100%; } +th { font-weight: bold; } +thead th { background: #c3d9ff; } +th,td,caption { padding: 4px 10px 4px 5px; } +tr.even td { background: #e5ecf9; } +tfoot { font-style: italic; } +caption { background: #eee; } + + +/* Misc classes +-------------------------------------------------------------- */ + +.small { font-size: .8em; margin-bottom: 1.875em; line-height: 1.875em; } +.large { font-size: 1.2em; line-height: 2.5em; margin-bottom: 1.25em; } +.hide { display: none; } + +.quiet { color: #666; } +.loud { color: #000; } +.highlight { background:#ff0; } +.added { background:#060; color: #fff; } +.removed { background:#900; color: #fff; } + +.first { margin-left:0; padding-left:0; } +.last { margin-right:0; padding-right:0; } +.top { margin-top:0; padding-top:0; } +.bottom { margin-bottom:0; padding-bottom:0; } diff --git a/sample-files/css/yui3/api.css b/sample-files/css/yui3/api.css new file mode 100644 index 0000000..18b5fd0 --- /dev/null +++ b/sample-files/css/yui3/api.css @@ -0,0 +1,243 @@ + + +body { background-color: #ECF0F6; } + +/* main page */ +a:link { color: #003399; } +a:visited { color: #003399;} + +#doc3 #hd { margin-bottom:1em; position: relative; zoom: 1; } +#doc3 #hd h1 { color: #545454; font-size: 170%; padding: 0px 0 8px 150px; background: url(yui.png) 15px 9px no-repeat; height: 60px; font-weight: bold; } +#doc3 #hd h1 a { position: relative; top: 14px; } +#doc3 #hd a { text-decoration: none; color: black; } +#doc3 #hd h3 { + background: #98AAB1; background-image: url(bg_hd.gif); color: #000; font-size: 100%; padding: 4px 10px; margin: 0 0 7px 0; + border: 1px solid #98AAB1; +} +#ft hr { + display: none; +} +#ft { + background: #98AAB1; background-image: url(bg_hd.gif); color: #000; font-size: 100%; padding: 4px 10px; margin: 7px 0 0 0; border: 1px solid #98AAB1; +} +#doc3 #hd h3 A { color: #FFF; text-decoration: none; } +#doc3 #hd .breadcrumbs { font-size: 85%; margin-bottom:10px;} +#doc3 #hd .subtitle {position: absolute; right:1em; padding: 0px;margin:0px} + +#doc3 dl { margin: 2px 0; } +#doc3 dd { margin-left: 20px; } +#doc3 .requires dt { font-style: italic; } +#doc3 .default { margin-top:6px; } +#doc3 .detail .deprecated { margin-top:4px; padding:4px; background-color: #EFECCA } +#doc3 .detail .deprecated strong { color:#441054; } +#doc3 code, pre {font-size:85%} + +#doc3 #hd h1 { + border: 1px solid #98AAB1; + background-color: #fff; + margin-bottom: .5em; + +} +#bd { + border: 1px solid #98AAB1; + background-color: #fff; +} + +.submodules dd { + font-size: 93%; + font-weight: italic; +} + + +#doc3 .classopts { font-size: 85%; float:right; margin:2px; padding: 2px; background-color:#ECF0F6;border: 1px solid #98AAB1;} +#yui-classopts-form fieldset legend { display: none; } + +/* undo reset.css styles for description block formatting */ +#doc3 .description dl { margin: 5px 0 10px 0; } +#doc3 .description ul { padding: 10px 0 10px 28px; font-size: 90%; list-style: disc} +#doc3 .description li { list-style: disc} +#doc3 .description p { padding-bottom: 10px} +#doc3 .description strong { font-weight: bold;} +#doc3 .description em {padding: 2px; background-color: #EFECCA} +#doc3 pre { padding: 10px;} + +#doc3 .summary { margin: 0px 10px 10px 0; padding:10px; background-color:#ECF0F6; border:1px solid #98AAB1; } +#doc3 .extends {font-weight: normal; font-size: 90%} + +#doc3 .nav {min-height: 400px;} +#doc3 .nav .module { + width:100%; + border-right: 1px solid #98AAB1; + border-bottom: 1px solid #98AAB1; + padding: 0; overflow:hidden; +} +#doc3 .nav .module h4 { + padding: 3px 5px; + border-bottom: 1px solid #98AAB1; + background-image: url(bg_hd.gif); +} +#doc3 .nav .module h4 A { color: #000; text-decoration: none; } +#doc3 .nav .module .content { padding: 2px; } +#doc3 .nav .module UL.content LI { font-size: 90%; } +#doc3 .nav .module UL.content A { text-decoration: none; color: black; display: block; padding: 2px 4px 2px 4px; } +#doc3 .nav .module LI, +#doc3 .nav .module LI A { + zoom: 1; +} +#doc3 .nav .module LI.selected A, +#doc3 .nav .module LI A:hover { + background-color: #ECF0F6; + zoom: 1; +} + +#doc3 .section { margin: 0 7px 7px 0; } +#doc3 .section strong { font-weight: bold;} +#doc3 .section hr { border: none 0; border-top: 1px solid #ccc; } +#doc3 .section h4 { font-size:110%;} +#doc3 .section h3 { background: #98AAB1; background-image: url(bg_hd.gif); width: 98%; color: #000; padding: 3px; margin: 0 0 7px 0; + border: 1px solid #98AAB1; + +} +#doc3 .section h3 .top { font-size: 60%; font-weight: normal; width: 100%; font-family: verdana; padding-left: 20px; } +#doc3 .section h3 .top A { color: #000; text-decoration: none; } + +#doc3 .section.details .content { padding: 0 0 0 10px; } +#doc3 .section.details .description { padding: 10px 0 0 20px; } +#doc3 .section.details .description dt { font-weight: bold; } +#doc3 .section.details .description td { border:1px solid #ccc; margin:2px;padding:2px;} + +#doc3 .inheritance { padding:10px; background-color:#ECF0F6; border:1px solid #98AAB1; } +#doc3 .inheritance h4 { font-size: 100%;} + +/* index page autocomplete */ +/* +#propertysearch {;position:absolute;margin:1em;width:35em;} +#searchinput {position:absolute;width:100%;height:1.4em;} +#searchresults {position:absolute;top:1.7em;width:100%;} +#searchresults .yui-ac-content {position:absolute;top:4px; left:0px; width:100%;height:20em;border:1px solid #aaa;background:#fff;overflow:auto;overflow-x:hidden;z-index:9050;} +#searchresults .yui-ac-shadow {position:absolute;margin:.3em;width:100%;background:#a0a0a0;z-index:9049;}: +#searchresults ul {padding:5px 0;width:100%;} +#searchresults li {padding:0 5px;cursor:default;white-space:nowrap;} +#searchresults li.yui-ac-highlight {background:#D1C6DA;} +#searchresults li em { position:absolute; width:44%; overflow:hidden; color:#654D6C;} +#searchresults li span { position:relative; left:46% } +*/ + +#propertysearch { + width: 25em; + position: absolute; + right: 5px; + bottom: -4px; +} +#searchinput { + width: 83%; + height: 1.4em; +} +#searchresults { + position: absolute; + right: 25em; + top: 25px; + height: 0; +} +#searchresults .yui-ac-content { + position: absolute; + top: 0; + left: 0; + width: 25em; + height: 20em; + border: 1px solid #98AAB1; + background: #fff; + overflow: auto; + overflow-x: hidden; + z-index: 9050; +} +#searchresults li.yui-ac-highlight { + background-color: #ECF0F6; +} +#searchresults li em { + width:44%; + overflow: hidden; + color: #98AAB1; +} + +.deprecated, .private, .protected { + display: none; +} + +body.show_deprecated .deprecated, +body.show_private .private, +body.show_protected .protected { + display: block; +} + +#splash_classList ul { + margin: 1em; + margin-left:2em; +} +#splash_classList ul li { + list-style: disc outside; +} + + +/* source code view */ +#srcout {min-width: 580px; } +*html #srcout { width: 100%; padding-bottom:1em; overflow-x:auto } + +.highlight .c { color: #60a0b0; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #808080 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0040D0 } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kp { color: #007020 } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #007020; font-weight: bold } /* Keyword.Type */ +.highlight .m { color: #40a070 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .mf { color: #40a070 } /* Literal.Number.Float */ +.highlight .mh { color: #40a070 } /* Literal.Number.Hex */ +.highlight .mi { color: #40a070 } /* Literal.Number.Integer */ +.highlight .mo { color: #40a070 } /* Literal.Number.Oct */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */ + diff --git a/sample-files/css/yui3/base-context.css b/sample-files/css/yui3/base-context.css new file mode 100644 index 0000000..2c971fb --- /dev/null +++ b/sample-files/css/yui3/base-context.css @@ -0,0 +1,73 @@ +/* base.css, part of YUI's CSS Foundation */ +.yui-cssbase h1 { + /*18px via YUI Fonts CSS foundation*/ + font-size:138.5%; +} +.yui-cssbase h2 { + /*16px via YUI Fonts CSS foundation*/ + font-size:123.1%; +} +.yui-cssbase h3 { + /*14px via YUI Fonts CSS foundation*/ + font-size:108%; +} +.yui-cssbase h1,.yui-cssbase h2,.yui-cssbase h3 { + /* top & bottom margin based on font size */ + margin:1em 0; +} +.yui-cssbase h1,.yui-cssbase h2,.yui-cssbase h3,.yui-cssbase h4,.yui-cssbase h5,.yui-cssbase h6,.yui-cssbase strong { + /*bringing boldness back to headers and the strong element*/ + font-weight:bold; +} +.yui-cssbase abbr,.yui-cssbase acronym { + /*indicating to users that more info is available */ + border-bottom:1px dotted #000; + cursor:help; +} +.yui-cssbase em { + /*bringing italics back to the em element*/ + font-style:italic; +} +.yui-cssbase blockquote,.yui-cssbase ul,.yui-cssbase ol,.yui-cssbase dl { + /*giving blockquotes and lists room to breath*/ + margin:1em; +} +.yui-cssbase ol,.yui-cssbase ul,.yui-cssbase dl { + /*bringing lists on to the page with breathing room */ + margin-left:2em; +} +.yui-cssbase ol li { + /*giving OL's LIs generated numbers*/ + list-style: decimal outside; +} +.yui-cssbase ul li { + /*giving UL's LIs generated disc markers*/ + list-style: disc outside; +} +.yui-cssbase dl dd { + /*providing spacing for definition terms*/ + margin-left:1em; +} +.yui-cssbase th,.yui-cssbase td { + /*borders and padding to make the table readable*/ + border:1px solid #000; + padding:.5em; +} +.yui-cssbase th { + /*distinguishing table headers from data cells*/ + font-weight:bold; + text-align:center; +} +.yui-cssbase caption { + /*coordinated margin to match cell's padding*/ + margin-bottom:.5em; + /*centered so it doesn't blend in to other content*/ + text-align:center; +} +.yui-cssbase p,.yui-cssbase fieldset,.yui-cssbase table,.yui-cssbase pre { + /*so things don't run into each other*/ + margin-bottom:1em; +} +/* setting a consistent width, 160px; + control of type=file still not possible */ +.yui-cssbase input[type=text],.yui-cssbase input[type=password],.yui-cssbase textarea{width:12.25em;*width:11.9em;} diff --git a/sample-files/css/yui3/base.css b/sample-files/css/yui3/base.css new file mode 100644 index 0000000..b470420 --- /dev/null +++ b/sample-files/css/yui3/base.css @@ -0,0 +1,73 @@ +/* base.css, part of YUI's CSS Foundation */ +h1 { + /*18px via YUI Fonts CSS foundation*/ + font-size:138.5%; +} +h2 { + /*16px via YUI Fonts CSS foundation*/ + font-size:123.1%; +} +h3 { + /*14px via YUI Fonts CSS foundation*/ + font-size:108%; +} +h1,h2,h3 { + /* top & bottom margin based on font size */ + margin:1em 0; +} +h1,h2,h3,h4,h5,h6,strong { + /*bringing boldness back to headers and the strong element*/ + font-weight:bold; +} +abbr,acronym { + /*indicating to users that more info is available */ + border-bottom:1px dotted #000; + cursor:help; +} +em { + /*bringing italics back to the em element*/ + font-style:italic; +} +blockquote,ul,ol,dl { + /*giving blockquotes and lists room to breath*/ + margin:1em; +} +ol,ul,dl { + /*bringing lists on to the page with breathing room */ + margin-left:2em; +} +ol li { + /*giving OL's LIs generated numbers*/ + list-style: decimal outside; +} +ul li { + /*giving UL's LIs generated disc markers*/ + list-style: disc outside; +} +dl dd { + /*providing spacing for definition terms*/ + margin-left:1em; +} +th,td { + /*borders and padding to make the table readable*/ + border:1px solid #000; + padding:.5em; +} +th { + /*distinguishing table headers from data cells*/ + font-weight:bold; + text-align:center; +} +caption { + /*coordinated margin to match cell's padding*/ + margin-bottom:.5em; + /*centered so it doesn't blend in to other content*/ + text-align:center; +} +p,fieldset,table,pre { + /*so things don't run into each other*/ + margin-bottom:1em; +} +/* setting a consistent width, 160px; + control of type=file still not possible */ +input[type=text],input[type=password],textarea{width:12.25em;*width:11.9em;} diff --git a/sample-files/css/yui3/console-skin.css b/sample-files/css/yui3/console-skin.css new file mode 100644 index 0000000..89e7ae8 --- /dev/null +++ b/sample-files/css/yui3/console-skin.css @@ -0,0 +1,185 @@ +.yui-skin-sam .yui-separate-console { + position:absolute; + right:1em; + top:1em; + z-index:999; +} + +.yui-skin-sam .yui-inline-console { + /* xbrowser inline-block styles */ + display: -moz-inline-stack; /* FF2 */ + display: inline-block; + *display: inline; /* IE 7- (with zoom) */ + zoom: 1; + vertical-align: top; +} +.yui-skin-sam .yui-inline-console .yui-console-content { + position: relative; +} + +.yui-skin-sam .yui-console-content { + background: #777; + _background: #D8D8DA url(bg.png) repeat-x 0 0; + font: normal 13px/1.3 Arial, sans-serif; + text-align: left; + + border: 1px solid #777; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +} + +.yui-skin-sam .yui-console-hd, +.yui-skin-sam .yui-console-bd, +.yui-skin-sam .yui-console-ft { + position: relative; +} + +.yui-skin-sam .yui-console-hd, +.yui-skin-sam .yui-console-ft .yui-console-controls { + text-align: right; +} + +.yui-skin-sam .yui-console-hd { + background: #D8D8DA url(bg.png) repeat-x 0 0; + padding: 1ex; + + border: 1px solid transparent; + _border: 0 none; + border-top-right-radius: 10px; + border-top-left-radius: 10px; + -moz-border-radius-topright: 10px; + -moz-border-radius-topleft: 10px; + -webkit-border-top-right-radius: 10px; + -webkit-border-top-left-radius: 10px; +} + +.yui-skin-sam .yui-console-bd { + background: #fff; + border-top: 1px solid #777; + border-bottom: 1px solid #777; + color: #000; + font-size: 11px; + overflow: auto; + overflow-x: auto; + overflow-y: scroll; + _width: 100%; +} + +.yui-skin-sam .yui-console-ft { + background: #D8D8DA url(bg.png) repeat-x 0 0; + + border: 1px solid transparent; + _border: 0 none; + border-bottom-right-radius: 10px; + border-bottom-left-radius: 10px; + -moz-border-radius-bottomright: 10px; + -moz-border-radius-bottomleft: 10px; + -webkit-border-bottom-right-radius: 10px; + -webkit-border-bottom-left-radius: 10px; +} + +.yui-skin-sam .yui-console-controls { + padding: 4px 1ex; + zoom: 1; +} + +.yui-skin-sam .yui-console-title { + color: #000; + display: inline; + float: left; + font-weight: bold; + font-size: 13px; + height: 24px; + line-height: 24px; + margin: 0; + padding-left: 1ex; +} + +.yui-skin-sam .yui-console-pause-label { + float: left; +} +.yui-skin-sam .yui-console-button { + line-height: 1.3; +} + +.yui-skin-sam .yui-console-collapsed .yui-console-bd, +.yui-skin-sam .yui-console-collapsed .yui-console-ft { + display: none; +} +.yui-skin-sam .yui-console-content.yui-console-collapsed { + -webkit-border-radius: 0; +} +.yui-skin-sam .yui-console-collapsed .yui-console-hd { + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 0; +} + +/* Log entries */ +.yui-skin-sam .yui-console-entry { + border-bottom: 1px solid #aaa; + min-height: 32px; + _height: 32px; +} + +.yui-skin-sam .yui-console-entry-meta { + margin: 0; + overflow: hidden; +} + +.yui-skin-sam .yui-console-entry-content { + margin: 0; + padding: 0 1ex; + white-space: pre-wrap; + word-wrap: break-word; +} + +.yui-skin-sam .yui-console-entry-meta .yui-console-entry-src { + color: #000; + font-style: italic; + font-weight: bold; + float: right; + margin: 2px 5px 0 0; +} +.yui-skin-sam .yui-console-entry-meta .yui-console-entry-time { + color: #777; + padding-left: 1ex; +} +.yui-skin-sam .yui-console-entry-warn .yui-console-entry-meta .yui-console-entry-time { + color: #555; +} + +.yui-skin-sam .yui-console-entry-info .yui-console-entry-meta .yui-console-entry-cat, +.yui-skin-sam .yui-console-entry-warn .yui-console-entry-meta .yui-console-entry-cat, +.yui-skin-sam .yui-console-entry-error .yui-console-entry-meta .yui-console-entry-cat { + display: none; +} +.yui-skin-sam .yui-console-entry-warn { + background: #aee url(warn_error.png) no-repeat -15px 15px; +} +.yui-skin-sam .yui-console-entry-error { + background: #ffa url(warn_error.png) no-repeat 5px -24px; + color: #900; +} +.yui-skin-sam .yui-console-entry-warn .yui-console-entry-content, +.yui-skin-sam .yui-console-entry-error .yui-console-entry-content { + padding-left: 24px; +} +.yui-skin-sam .yui-console-entry-cat { + text-transform: uppercase; + padding: 1px 4px; + background-color: #ccc; +} +.yui-skin-sam .yui-console-entry-info .yui-console-entry-cat { + background-color: #ac2; +} +.yui-skin-sam .yui-console-entry-warn .yui-console-entry-cat { + background-color: #e81; +} +.yui-skin-sam .yui-console-entry-error .yui-console-entry-cat { + background-color: #b00; + color: #fff; +} + +.yui-skin-sam .yui-console-hidden { display: none; } diff --git a/sample-files/css/yui3/console.css b/sample-files/css/yui3/console.css new file mode 100644 index 0000000..a094934 --- /dev/null +++ b/sample-files/css/yui3/console.css @@ -0,0 +1 @@ +.yui-skin-sam .yui-separate-console{position:absolute;right:1em;top:1em;z-index:999;}.yui-skin-sam .yui-inline-console{display:-moz-inline-stack;display:inline-block;*display:inline;zoom:1;vertical-align:top;}.yui-skin-sam .yui-inline-console .yui-console-content{position:relative;}.yui-skin-sam .yui-console-content{background:#777;_background:#D8D8DA url(bg.png) repeat-x 0 0;font:normal 13px/1.3 Arial,sans-serif;text-align:left;border:1px solid #777;border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px;}.yui-skin-sam .yui-console-hd,.yui-skin-sam .yui-console-bd,.yui-skin-sam .yui-console-ft{position:relative;}.yui-skin-sam .yui-console-hd,.yui-skin-sam .yui-console-ft .yui-console-controls{text-align:right;}.yui-skin-sam .yui-console-hd{background:#D8D8DA url(bg.png) repeat-x 0 0;padding:1ex;border:1px solid transparent;_border:0 none;border-top-right-radius:10px;border-top-left-radius:10px;-moz-border-radius-topright:10px;-moz-border-radius-topleft:10px;-webkit-border-top-right-radius:10px;-webkit-border-top-left-radius:10px;}.yui-skin-sam .yui-console-bd{background:#fff;border-top:1px solid #777;border-bottom:1px solid #777;color:#000;font-size:11px;overflow:auto;overflow-x:auto;overflow-y:scroll;_width:100%;}.yui-skin-sam .yui-console-ft{background:#D8D8DA url(bg.png) repeat-x 0 0;border:1px solid transparent;_border:0 none;border-bottom-right-radius:10px;border-bottom-left-radius:10px;-moz-border-radius-bottomright:10px;-moz-border-radius-bottomleft:10px;-webkit-border-bottom-right-radius:10px;-webkit-border-bottom-left-radius:10px;}.yui-skin-sam .yui-console-controls{padding:4px 1ex;zoom:1;}.yui-skin-sam .yui-console-title{color:#000;display:inline;float:left;font-weight:bold;font-size:13px;height:24px;line-height:24px;margin:0;padding-left:1ex;}.yui-skin-sam .yui-console-pause-label{float:left;}.yui-skin-sam .yui-console-button{line-height:1.3;}.yui-skin-sam .yui-console-collapsed .yui-console-bd,.yui-skin-sam .yui-console-collapsed .yui-console-ft{display:none;}.yui-skin-sam .yui-console-content.yui-console-collapsed{-webkit-border-radius:0;}.yui-skin-sam .yui-console-collapsed .yui-console-hd{border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:0;}.yui-skin-sam .yui-console-entry{border-bottom:1px solid #aaa;min-height:32px;_height:32px;}.yui-skin-sam .yui-console-entry-meta{margin:0;overflow:hidden;}.yui-skin-sam .yui-console-entry-content{margin:0;padding:0 1ex;white-space:pre-wrap;word-wrap:break-word;}.yui-skin-sam .yui-console-entry-meta .yui-console-entry-src{color:#000;font-style:italic;font-weight:bold;float:right;margin:2px 5px 0 0;}.yui-skin-sam .yui-console-entry-meta .yui-console-entry-time{color:#777;padding-left:1ex;}.yui-skin-sam .yui-console-entry-warn .yui-console-entry-meta .yui-console-entry-time{color:#555;}.yui-skin-sam .yui-console-entry-info .yui-console-entry-meta .yui-console-entry-cat,.yui-skin-sam .yui-console-entry-warn .yui-console-entry-meta .yui-console-entry-cat,.yui-skin-sam .yui-console-entry-error .yui-console-entry-meta .yui-console-entry-cat{display:none;}.yui-skin-sam .yui-console-entry-warn{background:#aee url(warn_error.png) no-repeat -15px 15px;}.yui-skin-sam .yui-console-entry-error{background:#ffa url(warn_error.png) no-repeat 5px -24px;color:#900;}.yui-skin-sam .yui-console-entry-warn .yui-console-entry-content,.yui-skin-sam .yui-console-entry-error .yui-console-entry-content{padding-left:24px;}.yui-skin-sam .yui-console-entry-cat{text-transform:uppercase;padding:1px 4px;background-color:#ccc;}.yui-skin-sam .yui-console-entry-info .yui-console-entry-cat{background-color:#ac2;}.yui-skin-sam .yui-console-entry-warn .yui-console-entry-cat{background-color:#e81;}.yui-skin-sam .yui-console-entry-error .yui-console-entry-cat{background-color:#b00;color:#fff;}.yui-skin-sam .yui-console-hidden{display:none;} diff --git a/sample-files/css/yui3/dpSyntaxHighlighter.css b/sample-files/css/yui3/dpSyntaxHighlighter.css new file mode 100644 index 0000000..5fcbdf3 --- /dev/null +++ b/sample-files/css/yui3/dpSyntaxHighlighter.css @@ -0,0 +1,190 @@ +/* Give syntax-highlighting textareas some height for unsupported browsers */ + +textarea.JScript, textarea.HTML, textarea.XML {height:10em;} + +/* Main style for the table */ + +.dp-highlighter { + width: 100%; + overflow: auto; + line-height: 100% !important; + margin:0 0 1em 0; +} + +.dp-highlighter table { + width:99% !important; + margin: 2px 0px 2px 0px !important; + border-collapse: collapse; + border-bottom: 2px solid #eee; + background-color: #fff; +} + +.dp-highlighter tbody.hide { display: none; } +.dp-highlighter tbody.show { display: table-row-group; _display: block; } + +.dp-highlighter td +{ + font-family: Courier New; + font-size: 11px; +} + +/* Styles for the tools */ + +.dp-highlighter .tools-corner { + background-color: #eee; + font-size: 9px; +} + +.dp-highlighter .tools { + background-color: #eee; + padding: 3px 8px 3px 10px; + border-bottom: 1px solid gray; + font: 9px Verdana, Geneva, Arial, Helvetica, sans-serif; + color: silver; +} + +.dp-highlighter .tools-corner { + background-color: #eee; +} + +.dp-highlighter .tools a { + font-size: 9px; + color: gray; + text-decoration: none; +} + +.dp-highlighter .tools a:hover { + color: red; + text-decoration: underline; +} + +/* Gutter with line number */ + +.dp-highlighter .gutter { + padding-right: 5px; + padding-left: 10px; + width: 5px; + background-color: #eee; + border-right: 1px solid gray; + color: gray; + text-align: right; + vertical-align: top; +} + +/* Single line style */ + +.dp-highlighter .line1, .line2 { + padding-left: 10px; + /*border-bottom: 1px solid #F7F7F7;*/ + white-space:nowrap; +} + +.dp-highlighter .line2 { + /*background-color: #F7F7F7;*/ +} + +/* About dialog styles */ + +.dp-about { + background-color: #fff; + margin: 0px; +} + +.dp-about table { + width: 100%; + height: 100%; + font-size: 11px; + font-family: Tahoma, Verdana, Arial, sans-serif !important; +} + +.dp-about td { + padding: 10px; + vertical-align: top; +} + +.dp-about .copy { + border-bottom: 1px solid #ACA899; + height: 95%; +} + +.dp-about .title { + color: red; + font-weight: bold; +} + +.dp-about .para { + margin-bottom: 4px; +} + +.dp-about .footer { + background-color: #ECEADB; + border-top: 1px solid #fff; + text-align: right; +} + +.dp-about .close { + font-size: 11px; + font-family: Tahoma, Verdana, Arial, sans-serif !important; + background-color: #ECEADB; + width: 60px; + height: 22px; +} + +/* Language specific styles */ + +.dp-c {} +.dp-c .comment { color: green; } +.dp-c .string { color: blue; } +.dp-c .preprocessor { color: gray; } +.dp-c .keyword { color: blue; } +.dp-c .vars { color: #d00; } +/* +.dp-vb {} +.dp-vb .comment { color: green; } +.dp-vb .string { color: blue; } +.dp-vb .preprocessor { color: gray; } +.dp-vb .keyword { color: blue; } + +.dp-sql {} +.dp-sql .comment { color: green; } +.dp-sql .string { color: red; } +.dp-sql .keyword { color: blue; } +.dp-sql .func { color: #ff1493; } +.dp-sql .op { color: #808080; } +*/ +.dp-xml {} +.dp-xml .cdata { color: #ff1493; } +.dp-xml .comments { color: green; } +.dp-xml .tag { color: blue; } +.dp-xml .tag-name { color: black; font-weight: bold; } +.dp-xml .attribute { color: red; } +.dp-xml .attribute-value { color: blue; } +/* +.dp-delphi {} +.dp-delphi .comment { color: #008200; font-style: italic; } +.dp-delphi .string { color: blue; } +.dp-delphi .number { color: blue; } +.dp-delphi .directive { color: #008284; } +.dp-delphi .keyword { font-weight: bold; color: navy; } +.dp-delphi .vars { color: #000; } + +.dp-py {} +.dp-py .comment { color: green; } +.dp-py .string { color: red; } +.dp-py .docstring { color: brown; } +.dp-py .keyword { color: blue; font-weight: bold;} +.dp-py .builtins { color: #ff1493; } +.dp-py .magicmethods { color: #808080; } +.dp-py .exceptions { color: brown; } +.dp-py .types { color: brown; font-style: italic; } +.dp-py .commonlibs { color: #8A2BE2; font-style: italic; }*/ + + +.dp-css .keyword { color: red; } +.dp-css .value { color: #ff1493; } +.dp-css .comment { color: green; } +.dp-css .string { color: blue; } +.dp-css .preprocessor { color: gray; } +.dp-css .keyword { color: blue; } +.dp-css .vars { color: #d00; } +.dp-css .colors { font-weight: bold; } diff --git a/sample-files/css/yui3/grids-context.css b/sample-files/css/yui3/grids-context.css new file mode 100644 index 0000000..bf39b7a --- /dev/null +++ b/sample-files/css/yui3/grids-context.css @@ -0,0 +1,484 @@ +/* +* +* The YUI CSS Foundation uses the *property and _property CSS filter +* techniques to shield a value from A-grade browsers [1] other than +* IE6 & IE7 (*property) and IE6 (_property) +* +/ +Section: General Rules +*/ +.yui-cssgrids body { + /* center the page */ + text-align: center; + margin-left: auto; + margin-right: auto; +} +/* +Section: Page Width Rules (#doc, #doc2, #doc3, #doc4) +*/ +/* +Subsection: General +*/ +.yui-cssgrids .yui-d0, /* 100% */ +.yui-cssgrids .yui-d1, /* 750px */ +.yui-cssgrids .yui-d1f, /* 750px fixed */ +.yui-cssgrids .yui-d2, /* 950px */ +.yui-cssgrids .yui-d2f, /* 950px fixed */ +.yui-cssgrids .yui-d3, /* 974px */ +.yui-cssgrids .yui-d3f { /* 974px fixed */ + margin: auto; + text-align: left; + width: 57.69em; + *width: 56.25em; /* doc1*/ +} + +.yui-cssgrids .yui-t1, +.yui-cssgrids .yui-t2, +.yui-cssgrids .yui-t3, +.yui-cssgrids .yui-t4, +.yui-cssgrids .yui-t5, +.yui-cssgrids .yui-t6 { + margin: auto; + text-align: left; + width: 100%; +} + +/* +Subsection: 100% (doc) +*/ +.yui-cssgrids .yui-d0 { + /* Left and Right margins are not a structural part of Grids. Without them Grids + works fine, but content bleeds to the very edge of the document, which often + impairs readability and usability. They are + provided because they prevent the content from "bleeding" into the browser's chrome.*/ + margin: auto 10px; + width: auto; +} +.yui-cssgrids .yui-d0f { + width: 100%; +} + +/* +Subsection: 950 Centered (doc2) +*/ +.yui-cssgrids .yui-d2 { + width: 73.076em; + *width: 71.25em; +} +.yui-cssgrids .yui-d2f { + width: 950px; +} +/* +Subsection: 974 Centered (doc3) +*/ +.yui-cssgrids .yui-d3 { + width: 74.923em; + *width: 73.05em; +} +.yui-cssgrids .yui-d3f { + width: 974px; +} +/* +Section: Preset Template Rules (.yui-t[1-6]) +*/ +/* +Subsection: General +*/ + +/* to preserve source-order independence for Gecko without breaking IE */ +.yui-cssgrids .yui-b { + position: relative; +} +.yui-cssgrids .yui-b { + _position: static; +} +.yui-cssgrids .yui-main .yui-b { + position: static; +} +.yui-cssgrids .yui-main { + width: 100%; +} +.yui-cssgrids .yui-t1 .yui-main, +.yui-cssgrids .yui-t2 .yui-main, +.yui-cssgrids .yui-t3 .yui-main { + float: right; + /* IE: preserve layout at narrow widths */ + margin-left: -25em; +} +.yui-cssgrids .yui-t4 .yui-main, +.yui-cssgrids .yui-t5 .yui-main, +.yui-cssgrids .yui-t6 .yui-main { + float: left; + /* IE: preserve layout at narrow widths */ + margin-right: -25em; +} + +/* Subsection: For Specific Template Presets */ + +/** +* Nudge down to get to 13px equivalent for these form elements +*/ + +/* +TODO Create t1-6's that are based on fixed widths +*/ +/* t1 narrow block = left, equivalent of 160px */ +.yui-cssgrids .yui-t1 .yui-b { + float: left; + width: 12.30769em; + *width: 12.00em; +} +.yui-cssgrids .yui-t1 .yui-main .yui-b { + margin-left: 13.30769em; + *margin-left:12.975em; +} +/* t2 narrow block = left, equivalent of 180px */ +.yui-cssgrids .yui-t2 .yui-b { + float: left; + width: 13.84615em; + *width: 13.50em; +} +.yui-cssgrids .yui-t2 .yui-main .yui-b { + margin-left: 14.84615em; + *margin-left: 14.475em; +} +/* t3 narrow block = left, equivalent of 300px */ +.yui-cssgrids .yui-t3 .yui-b { + float: left; + width: 23.0769em; + *width: 22.50em; +} +.yui-cssgrids .yui-t3 .yui-main .yui-b { + margin-left: 24.0769em; + *margin-left: 23.475em; +} +/* t4 narrow block = right, equivalent of 180px */ +.yui-cssgrids .yui-t4 .yui-b { + float: right; + width: 13.8456em; + *width: 13.50em; +} +.yui-cssgrids .yui-t4 .yui-main .yui-b { + margin-right: 14.8456em; + *margin-right: 14.475em; +} +/* t5 narrow block = right, equivalent of 240px */ +.yui-cssgrids .yui-t5 .yui-b { + float: right; + width: 18.4615em; + *width: 18.00em; +} +.yui-cssgrids .yui-t5 .yui-main .yui-b { + margin-right: 19.4615em; + *margin-right: 18.975em; +} +/* t6 narrow block = equivalent of 300px */ +.yui-cssgrids .yui-t6 .yui-b { + float: right; + width: 23.0769em; + *width: 22.50em; +} +.yui-cssgrids .yui-t6 .yui-main .yui-b { + margin-right: 24.0769em; + *margin-right: 23.475em; +} + +.yui-cssgrids .yui-main .yui-b { + float: none; + width: auto; +} + +/* +Section: Grids and Nesting Grids +*/ + +/* +Subsection: Children generally take half the available space +*/ + +.yui-cssgrids .yui-gb .yui-u, +.yui-cssgrids .yui-g .yui-gb .yui-u, +.yui-cssgrids .yui-gb .yui-g, +.yui-cssgrids .yui-gb .yui-gb, +.yui-cssgrids .yui-gb .yui-gc, +.yui-cssgrids .yui-gb .yui-gd, +.yui-cssgrids .yui-gb .yui-ge, +.yui-cssgrids .yui-gb .yui-gf, +.yui-cssgrids .yui-gc .yui-u, +.yui-cssgrids .yui-gc .yui-g, +.yui-cssgrids .yui-gd .yui-u { + float: left; +} + +/*Float units (and sub grids) to the right */ +.yui-cssgrids .yui-g .yui-u, +.yui-cssgrids .yui-g .yui-g, +.yui-cssgrids .yui-g .yui-gb, +.yui-cssgrids .yui-g .yui-gc, +.yui-cssgrids .yui-g .yui-gd, +.yui-cssgrids .yui-g .yui-ge, +.yui-cssgrids .yui-g .yui-gf, +.yui-cssgrids .yui-gc .yui-u, +.yui-cssgrids .yui-gd .yui-g, +.yui-cssgrids .yui-g .yui-gc .yui-u, +.yui-cssgrids .yui-ge .yui-u, +.yui-cssgrids .yui-ge .yui-g, +.yui-cssgrids .yui-gf .yui-g, +.yui-cssgrids .yui-gf .yui-u { + float: right; +} + +/*Float units (and sub grids) to the left */ +.yui-cssgrids .yui-g div.first, +.yui-cssgrids .yui-gb div.first, +.yui-cssgrids .yui-gc div.first, +.yui-cssgrids .yui-gd div.first, +.yui-cssgrids .yui-ge div.first, +.yui-cssgrids .yui-gf div.first, +.yui-cssgrids .yui-g .yui-gc div.first, +.yui-cssgrids .yui-g .yui-ge div.first, +.yui-cssgrids .yui-gc div.first div.first { + float: left; +} + +.yui-cssgrids .yui-g .yui-u, +.yui-cssgrids .yui-g .yui-g, +.yui-cssgrids .yui-g .yui-gb, +.yui-cssgrids .yui-g .yui-gc, +.yui-cssgrids .yui-g .yui-gd, +.yui-cssgrids .yui-g .yui-ge, +.yui-cssgrids .yui-g .yui-gf { + width: 49.1%; +} + +.yui-cssgrids .yui-gb .yui-u, +.yui-cssgrids .yui-g .yui-gb .yui-u, +.yui-cssgrids .yui-gb .yui-g, +.yui-cssgrids .yui-gb .yui-gb, +.yui-cssgrids .yui-gb .yui-gc, +.yui-cssgrids .yui-gb .yui-gd, +.yui-cssgrids .yui-gb .yui-ge, +.yui-cssgrids .yui-gb .yui-gf, +.yui-cssgrids .yui-gc .yui-u, +.yui-cssgrids .yui-gc .yui-g, +.yui-cssgrids .yui-gd .yui-u { + width: 32%; + margin-left: 2.0%; +} + +/* Give IE some extra breathing room for 1/3-based rounding issues */ +.yui-cssgrids .yui-gb .yui-u { + *width: 31.8%; + *margin-left: 1.9%; +} + +.yui-cssgrids .yui-gc div.first, +.yui-cssgrids .yui-gd .yui-u { + width: 66%; + _width: 65.7%; +} +.yui-cssgrids .yui-gd div.first { + width: 32%; + _width: 31.5%; +} + +.yui-cssgrids .yui-ge div.first, +.yui-cssgrids .yui-gf .yui-u { + width: 74.2%; + _width: 74%; +} + +.yui-cssgrids .yui-ge .yui-u, +.yui-cssgrids .yui-gf div.first { + width: 24%; + _width: 23.8%; +} + +.yui-cssgrids .yui-g .yui-gb div.first, +.yui-cssgrids .yui-gb div.first, +.yui-cssgrids .yui-gc div.first, +.yui-cssgrids .yui-gd div.first { + margin-left: 0; +} + +/* +Section: Deep Nesting +*/ +.yui-cssgrids .yui-g .yui-g .yui-u, +.yui-cssgrids .yui-gb .yui-g .yui-u, +.yui-cssgrids .yui-gc .yui-g .yui-u, +.yui-cssgrids .yui-gd .yui-g .yui-u, +.yui-cssgrids .yui-ge .yui-g .yui-u, +.yui-cssgrids .yui-gf .yui-g .yui-u { + width: 49%; + *width: 48.1%; + *margin-left: 0; +} + +.yui-cssgrids .yui-g .yui-gb div.first, +.yui-cssgrids .yui-gb .yui-gb div.first { + *margin-right: 0; + *width: 32%; + _width: 31.7%; +} + +.yui-cssgrids .yui-g .yui-gc div.first, +.yui-cssgrids .yui-gd .yui-g { + width: 66%; +} + +.yui-cssgrids .yui-gb .yui-g div.first { + *margin-right: 4%; + _margin-right: 1.3%; +} + +.yui-cssgrids .yui-gb .yui-gc div.first, +.yui-cssgrids .yui-gb .yui-gd div.first { + *margin-right: 0; +} + +.yui-cssgrids .yui-gb .yui-gb .yui-u, +.yui-cssgrids .yui-gb .yui-gc .yui-u { + *margin-left: 1.8%; + _margin-left: 4%; +} + +.yui-cssgrids .yui-g .yui-gb .yui-u { + _margin-left: 1.0%; +} + +.yui-cssgrids .yui-gb .yui-gd .yui-u { + *width: 66%; + _width: 61.2%; +} +.yui-cssgrids .yui-gb .yui-gd div.first { + *width: 31%; + _width: 29.5%; +} + +.yui-cssgrids .yui-g .yui-gc .yui-u, +.yui-cssgrids .yui-gb .yui-gc .yui-u { + width: 32%; + _float: right; + margin-right: 0; + _margin-left: 0; +} +.yui-cssgrids .yui-gb .yui-gc div.first { + width: 66%; + *float: left; + *margin-left: 0; +} + +.yui-cssgrids .yui-gb .yui-ge .yui-u, +.yui-cssgrids .yui-gb .yui-gf .yui-u { + margin: 0; +} + +.yui-cssgrids .yui-gb .yui-gb .yui-u { + _margin-left: .7%; +} + +.yui-cssgrids .yui-gb .yui-g div.first, +.yui-cssgrids .yui-gb .yui-gb div.first { + *margin-left:0; +} + +.yui-cssgrids .yui-gc .yui-g .yui-u, +.yui-cssgrids .yui-gd .yui-g .yui-u { + *width: 48.1%; + *margin-left: 0; +} + +.yui-cssgrids .yui-gb .yui-gd div.first { + width: 32%; +} +.yui-cssgrids .yui-g .yui-gd div.first { + _width: 29.9%; +} + +.yui-cssgrids .yui-ge .yui-g { + width: 24%; +} +.yui-cssgrids .yui-gf .yui-g { + width: 74.2%; +} + +.yui-cssgrids .yui-gb .yui-ge div.yui-u, +.yui-cssgrids .yui-gb .yui-gf div.yui-u { + float: right; +} +.yui-cssgrids .yui-gb .yui-ge div.first, +.yui-cssgrids .yui-gb .yui-gf div.first { + float: left; +} + +/* Width Accommodation for Nested Contexts */ +.yui-cssgrids .yui-gb .yui-ge .yui-u, +.yui-cssgrids .yui-gb .yui-gf div.first { + *width: 24%; + _width: 20%; +} + +/* Width Accommodation for Nested Contexts */ + +.yui-cssgrids .yui-gc .yui-gf .yui-u { + width: 74%; + _width: 73%; +} + +.yui-cssgrids .yui-gc .yui-gf div.first { + width: 24%; +} + +.yui-cssgrids .yui-gb .yui-ge div.first, +.yui-cssgrids .yui-gb .yui-gf .yui-u { + *width: 73.5%; + _width: 65.5%; +} + +/* Patch for GD within GE */ +.yui-cssgrids .yui-ge div.first .yui-gd .yui-u { + width: 65%; +} +.yui-cssgrids .yui-ge div.first .yui-gd div.first { + width: 32%; +} + +/* +Section: Clearing. zoom for IE, :after for others +*/ + +.yui-cssgrids #bd:after, +.yui-cssgrids .yui-g:after, +.yui-cssgrids .yui-gb:after, +.yui-cssgrids .yui-gc:after, +.yui-cssgrids .yui-gd:after, +.yui-cssgrids .yui-ge:after, +.yui-cssgrids .yui-gf:after, +.yui-cssgrids .yui-t1:after, +.yui-cssgrids .yui-t2:after, +.yui-cssgrids .yui-t3:after, +.yui-cssgrids .yui-t4:after, +.yui-cssgrids .yui-t5:after, +.yui-cssgrids .yui-t6:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} +.yui-cssgrids #bd, +.yui-cssgrids .yui-g, +.yui-cssgrids .yui-gb, +.yui-cssgrids .yui-gc, +.yui-cssgrids .yui-gd, +.yui-cssgrids .yui-ge, +.yui-cssgrids .yui-gf, +.yui-cssgrids .yui-t1, +.yui-cssgrids .yui-t2, +.yui-cssgrids .yui-t3, +.yui-cssgrids .yui-t4, +.yui-cssgrids .yui-t5, +.yui-cssgrids .yui-t6 { + zoom: 1; +} \ No newline at end of file diff --git a/sample-files/css/yui3/grids.css b/sample-files/css/yui3/grids.css new file mode 100644 index 0000000..c1014c7 --- /dev/null +++ b/sample-files/css/yui3/grids.css @@ -0,0 +1,474 @@ +/* +* +* The YUI CSS Foundation uses the *property and _property CSS filter +* techniques to shield a value from A-grade browsers [1] other than +* IE6 & IE7 (*property) and IE6 (_property) +* +/ +Section: General Rules +*/ +body { + /* center the page */ + text-align: center; + margin-left: auto; + margin-right: auto; +} +/* +Section: Page Width Rules (#doc, #doc2, #doc3, #doc4) +*/ +/* +Subsection: General +*/ +.yui-d0, /* 100% */ +.yui-d1, /* 750px */ +.yui-d1f, /* 750px fixed */ +.yui-d2, /* 950px */ +.yui-d2f, /* 950px fixed */ +.yui-d3, /* 974px */ +.yui-d3f { /* 974px fixed */ + margin: auto; + text-align: left; + width: 57.69em; + *width: 56.25em; /* doc1*/ +} + +.yui-t1, +.yui-t2, +.yui-t3, +.yui-t4, +.yui-t5, +.yui-t6 { + margin: auto; + text-align: left; + width: 100%; +} + +/* +Subsection: 100% (doc) +*/ +.yui-d0 { + /* Left and Right margins are not a structural part of Grids. Without them Grids + works fine, but content bleeds to the very edge of the document, which often + impairs readability and usability. They are + provided because they prevent the content from "bleeding" into the browser's chrome.*/ + margin: auto 10px; + width: auto; +} +.yui-d0f { + width: 100%; +} + +/* +Subsection: 950 Centered (doc2) +*/ +.yui-d2 { + width: 73.076em; + *width: 71.25em; +} +.yui-d2f { + width: 950px; +} +/* +Subsection: 974 Centered (doc3) +*/ +.yui-d3 { + width: 74.923em; + *width: 73.05em; +} +.yui-d3f { + width: 974px; +} +/* +Section: Preset Template Rules (.yui-t[1-6]) +*/ +/* +Subsection: General +*/ + +/* to preserve source-order independence for Gecko without breaking IE */ +.yui-b { + position: relative; +} +.yui-b { + _position: static; +} +.yui-main .yui-b { + position: static; +} +.yui-main { + width: 100%; +} +.yui-t1 .yui-main, +.yui-t2 .yui-main, +.yui-t3 .yui-main { + float: right; + /* IE: preserve layout at narrow widths */ + margin-left: -25em; +} +.yui-t4 .yui-main, +.yui-t5 .yui-main, +.yui-t6 .yui-main { + float: left; + /* IE: preserve layout at narrow widths */ + margin-right: -25em; +} + +/* Subsection: For Specific Template Presets */ + +/** +* Nudge down to get to 13px equivalent for these form elements +*/ + +/* +TODO Create t1-6's that are based on fixed widths +*/ +/* t1 narrow block = left, equivalent of 160px */ +.yui-t1 .yui-b { + float: left; + width: 12.30769em; + *width: 12.00em; +} +.yui-t1 .yui-main .yui-b { + margin-left: 13.30769em; + *margin-left:12.975em; +} +/* t2 narrow block = left, equivalent of 180px */ +.yui-t2 .yui-b { + float: left; + width: 13.84615em; + *width: 13.50em; +} +.yui-t2 .yui-main .yui-b { + margin-left: 14.84615em; + *margin-left: 14.475em; +} +/* t3 narrow block = left, equivalent of 300px */ +.yui-t3 .yui-b { + float: left; + width: 23.0769em; + *width: 22.50em; +} +.yui-t3 .yui-main .yui-b { + margin-left: 24.0769em; + *margin-left: 23.475em; +} +/* t4 narrow block = right, equivalent of 180px */ +.yui-t4 .yui-b { + float: right; + width: 13.8456em; + *width: 13.50em; +} +.yui-t4 .yui-main .yui-b { + margin-right: 14.8456em; + *margin-right: 14.475em; +} +/* t5 narrow block = right, equivalent of 240px */ +.yui-t5 .yui-b { + float: right; + width: 18.4615em; + *width: 18.00em; +} +.yui-t5 .yui-main .yui-b { + margin-right: 19.4615em; + *margin-right: 18.975em; +} +/* t6 narrow block = equivalent of 300px */ +.yui-t6 .yui-b { + float: right; + width: 23.0769em; + *width: 22.50em; +} +.yui-t6 .yui-main .yui-b { + margin-right: 24.0769em; + *margin-right: 23.475em; +} + +.yui-main .yui-b { + float: none; + width: auto; +} + +/* +Section: Grids and Nesting Grids +*/ + +/* +Subsection: Children generally take half the available space +*/ + +.yui-gb .yui-u, +.yui-g .yui-gb .yui-u, +.yui-gb .yui-g, +.yui-gb .yui-gb, +.yui-gb .yui-gc, +.yui-gb .yui-gd, +.yui-gb .yui-ge, +.yui-gb .yui-gf, +.yui-gc .yui-u, +.yui-gc .yui-g, +.yui-gd .yui-u { + float: left; +} + +/*Float units (and sub grids) to the right */ +.yui-g .yui-u, +.yui-g .yui-g, +.yui-g .yui-gb, +.yui-g .yui-gc, +.yui-g .yui-gd, +.yui-g .yui-ge, +.yui-g .yui-gf, +.yui-gc .yui-u, +.yui-gd .yui-g, +.yui-g .yui-gc .yui-u, +.yui-ge .yui-u, +.yui-ge .yui-g, +.yui-gf .yui-g, +.yui-gf .yui-u { + float: right; +} + +/*Float units (and sub grids) to the left */ +.yui-g div.first, +.yui-gb div.first, +.yui-gc div.first, +.yui-gd div.first, +.yui-ge div.first, +.yui-gf div.first, +.yui-g .yui-gc div.first, +.yui-g .yui-ge div.first, +.yui-gc div.first div.first { + float: left; +} + +.yui-g .yui-u, +.yui-g .yui-g, +.yui-g .yui-gb, +.yui-g .yui-gc, +.yui-g .yui-gd, +.yui-g .yui-ge, +.yui-g .yui-gf { + width: 49.1%; +} + +.yui-gb .yui-u, +.yui-g .yui-gb .yui-u, +.yui-gb .yui-g, +.yui-gb .yui-gb, +.yui-gb .yui-gc, +.yui-gb .yui-gd, +.yui-gb .yui-ge, +.yui-gb .yui-gf, +.yui-gc .yui-u, +.yui-gc .yui-g, +.yui-gd .yui-u { + width: 32%; + margin-left: 2.0%; +} + +/* Give IE some extra breathing room for 1/3-based rounding issues */ +.yui-gb .yui-u { + *width: 31.8%; + *margin-left: 1.9%; +} + +.yui-gc div.first, +.yui-gd .yui-u { + width: 66%; + _width: 65.7%; +} +.yui-gd div.first { + width: 32%; + _width: 31.5%; +} + +.yui-ge div.first, +.yui-gf .yui-u { + width: 74.2%; + _width: 74%; +} + +.yui-ge .yui-u, +.yui-gf div.first { + width: 24%; + _width: 23.8%; +} + +.yui-g .yui-gb div.first, +.yui-gb div.first, +.yui-gc div.first, +.yui-gd div.first { + margin-left: 0; +} + +/* +Section: Deep Nesting +*/ +.yui-g .yui-g .yui-u, +.yui-gb .yui-g .yui-u, +.yui-gc .yui-g .yui-u, +.yui-gd .yui-g .yui-u, +.yui-ge .yui-g .yui-u, +.yui-gf .yui-g .yui-u { + width: 49%; + *width: 48.1%; + *margin-left: 0; +} + +.yui-g .yui-gb div.first, +.yui-gb .yui-gb div.first { + *margin-right: 0; + *width: 32%; + _width: 31.7%; +} + +.yui-g .yui-gc div.first, +.yui-gd .yui-g { + width: 66%; +} + +.yui-gb .yui-g div.first { + *margin-right: 4%; + _margin-right: 1.3%; +} + +.yui-gb .yui-gc div.first, +.yui-gb .yui-gd div.first { + *margin-right: 0; +} + +.yui-gb .yui-gb .yui-u, +.yui-gb .yui-gc .yui-u { + *margin-left: 1.8%; + _margin-left: 4%; +} + +.yui-g .yui-gb .yui-u { + _margin-left: 1.0%; +} + +.yui-gb .yui-gd .yui-u { + *width: 66%; + _width: 61.2%; +} +.yui-gb .yui-gd div.first { + *width: 31%; + _width: 29.5%; +} + +.yui-g .yui-gc .yui-u, +.yui-gb .yui-gc .yui-u { + width: 32%; + _float: right; + margin-right: 0; + _margin-left: 0; +} +.yui-gb .yui-gc div.first { + width: 66%; + *float: left; + *margin-left: 0; +} + +.yui-gb .yui-ge .yui-u, +.yui-gb .yui-gf .yui-u { + margin: 0; +} + +.yui-gb .yui-gb .yui-u { + _margin-left: .7%; +} + +.yui-gb .yui-g div.first, +.yui-gb .yui-gb div.first { + *margin-left:0; +} + +.yui-gc .yui-g .yui-u, +.yui-gd .yui-g .yui-u { + *width: 48.1%; + *margin-left: 0; +} + +.yui-gb .yui-gd div.first { + width: 32%; +} +.yui-g .yui-gd div.first { + _width: 29.9%; +} + +.yui-ge .yui-g { + width: 24%; +} +.yui-gf .yui-g { + width: 74.2%; +} + +.yui-gb .yui-ge div.yui-u, +.yui-gb .yui-gf div.yui-u { + float: right; +} +.yui-gb .yui-ge div.first, +.yui-gb .yui-gf div.first { + float: left; +} + +/* Width Accommodation for Nested Contexts */ +.yui-gb .yui-ge .yui-u, +.yui-gb .yui-gf div.first { + *width: 24%; + _width: 20%; +} + +/* Width Accommodation for Nested Contexts */ +.yui-gb .yui-ge div.first, +.yui-gb .yui-gf .yui-u { + *width: 73.5%; + _width: 65.5%; +} + +/* Patch for GD within GE */ +.yui-ge div.first .yui-gd .yui-u { + width: 65%; +} +.yui-ge div.first .yui-gd div.first { + width: 32%; +} + +/* +Section: Clearing. zoom for IE, :after for others +*/ + +#bd:after, +.yui-g:after, +.yui-gb:after, +.yui-gc:after, +.yui-gd:after, +.yui-ge:after, +.yui-gf:after, +.yui-t1:after, +.yui-t2:after, +.yui-t3:after, +.yui-t4:after, +.yui-t5:after, +.yui-t6:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} +#bd, +.yui-g, +.yui-gb, +.yui-gc, +.yui-gd, +.yui-ge, +.yui-gf, +.yui-t1, +.yui-t2, +.yui-t3, +.yui-t4, +.yui-t5, +.yui-t6 { + zoom: 1; +} \ No newline at end of file diff --git a/sample-files/css/yui3/node-menunav-core.css b/sample-files/css/yui3/node-menunav-core.css new file mode 100644 index 0000000..cba0657 --- /dev/null +++ b/sample-files/css/yui3/node-menunav-core.css @@ -0,0 +1,169 @@ +.yui-menu .yui-menu { + + position: absolute; + z-index: 1; + +} + + +.yui-menu .yui-shim { + + /* + Styles for the ' : ''); + inst._keyEvent = false; + return html; + }, + + /* Generate the month and year header. */ + _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate, + selectedDate, secondary, monthNames, monthNamesShort) { + minDate = (inst.rangeStart && minDate && selectedDate < minDate ? selectedDate : minDate); + var changeMonth = this._get(inst, 'changeMonth'); + var changeYear = this._get(inst, 'changeYear'); + var showMonthAfterYear = this._get(inst, 'showMonthAfterYear'); + var html = '
'; + var monthHtml = ''; + // month selection + if (secondary || !changeMonth) + monthHtml += '' + monthNames[drawMonth] + ' '; + else { + var inMinYear = (minDate && minDate.getFullYear() == drawYear); + var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear); + monthHtml += ''; + } + if (!showMonthAfterYear) + html += monthHtml + ((secondary || changeMonth || changeYear) && (!(changeMonth && changeYear)) ? ' ' : ''); + // year selection + if (secondary || !changeYear) + html += '' + drawYear + ''; + else { + // determine range of years to display + var years = this._get(inst, 'yearRange').split(':'); + var year = 0; + var endYear = 0; + if (years.length != 2) { + year = drawYear - 10; + endYear = drawYear + 10; + } else if (years[0].charAt(0) == '+' || years[0].charAt(0) == '-') { + year = drawYear + parseInt(years[0], 10); + endYear = drawYear + parseInt(years[1], 10); + } else { + year = parseInt(years[0], 10); + endYear = parseInt(years[1], 10); + } + year = (minDate ? Math.max(year, minDate.getFullYear()) : year); + endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear); + html += ''; + } + if (showMonthAfterYear) + html += (secondary || changeMonth || changeYear ? ' ' : '') + monthHtml; + html += '
'; // Close datepicker_header + return html; + }, + + /* Adjust one of the date sub-fields. */ + _adjustInstDate: function(inst, offset, period) { + var year = inst.drawYear + (period == 'Y' ? offset : 0); + var month = inst.drawMonth + (period == 'M' ? offset : 0); + var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) + + (period == 'D' ? offset : 0); + var date = this._daylightSavingAdjust(new Date(year, month, day)); + // ensure it is within the bounds set + var minDate = this._getMinMaxDate(inst, 'min', true); + var maxDate = this._getMinMaxDate(inst, 'max'); + date = (minDate && date < minDate ? minDate : date); + date = (maxDate && date > maxDate ? maxDate : date); + inst.selectedDay = date.getDate(); + inst.drawMonth = inst.selectedMonth = date.getMonth(); + inst.drawYear = inst.selectedYear = date.getFullYear(); + if (period == 'M' || period == 'Y') + this._notifyChange(inst); + }, + + /* Notify change of month/year. */ + _notifyChange: function(inst) { + var onChange = this._get(inst, 'onChangeMonthYear'); + if (onChange) + onChange.apply((inst.input ? inst.input[0] : null), + [inst.selectedYear, inst.selectedMonth + 1, inst]); + }, + + /* Determine the number of months to show. */ + _getNumberOfMonths: function(inst) { + var numMonths = this._get(inst, 'numberOfMonths'); + return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths)); + }, + + /* Determine the current maximum date - ensure no time components are set - may be overridden for a range. */ + _getMinMaxDate: function(inst, minMax, checkRange) { + var date = this._determineDate(this._get(inst, minMax + 'Date'), null); + return (!checkRange || !inst.rangeStart ? date : + (!date || inst.rangeStart > date ? inst.rangeStart : date)); + }, + + /* Find the number of days in a given month. */ + _getDaysInMonth: function(year, month) { + return 32 - new Date(year, month, 32).getDate(); + }, + + /* Find the day of the week of the first of a month. */ + _getFirstDayOfMonth: function(year, month) { + return new Date(year, month, 1).getDay(); + }, + + /* Determines if we should allow a "next/prev" month display change. */ + _canAdjustMonth: function(inst, offset, curYear, curMonth) { + var numMonths = this._getNumberOfMonths(inst); + var date = this._daylightSavingAdjust(new Date( + curYear, curMonth + (offset < 0 ? offset : numMonths[1]), 1)); + if (offset < 0) + date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth())); + return this._isInRange(inst, date); + }, + + /* Is the given date in the accepted range? */ + _isInRange: function(inst, date) { + // during range selection, use minimum of selected date and range start + var newMinDate = (!inst.rangeStart ? null : this._daylightSavingAdjust( + new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay))); + newMinDate = (newMinDate && inst.rangeStart < newMinDate ? inst.rangeStart : newMinDate); + var minDate = newMinDate || this._getMinMaxDate(inst, 'min'); + var maxDate = this._getMinMaxDate(inst, 'max'); + return ((!minDate || date >= minDate) && (!maxDate || date <= maxDate)); + }, + + /* Provide the configuration settings for formatting/parsing. */ + _getFormatConfig: function(inst) { + var shortYearCutoff = this._get(inst, 'shortYearCutoff'); + shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff : + new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10)); + return {shortYearCutoff: shortYearCutoff, + dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'), + monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')}; + }, + + /* Format the given date for display. */ + _formatDate: function(inst, day, month, year) { + if (!day) { + inst.currentDay = inst.selectedDay; + inst.currentMonth = inst.selectedMonth; + inst.currentYear = inst.selectedYear; + } + var date = (day ? (typeof day == 'object' ? day : + this._daylightSavingAdjust(new Date(year, month, day))) : + this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); + return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst)); + } +}); + +/* jQuery extend now ignores nulls! */ +function extendRemove(target, props) { + $.extend(target, props); + for (var name in props) + if (props[name] == null || props[name] == undefined) + target[name] = props[name]; + return target; +}; + +/* Determine whether an object is an array. */ +function isArray(a) { + return (a && (($.browser.safari && typeof a == 'object' && a.length) || + (a.constructor && a.constructor.toString().match(/\Array\(\)/)))); +}; + +/* Invoke the datepicker functionality. + @param options string - a command, optionally followed by additional parameters or + Object - settings for attaching new datepicker functionality + @return jQuery object */ +$.fn.datepicker = function(options){ + + /* Initialise the date picker. */ + if (!$.datepicker.initialized) { + $(document).mousedown($.datepicker._checkExternalClick). + find('body').append($.datepicker.dpDiv); + $.datepicker.initialized = true; + } + + var otherArgs = Array.prototype.slice.call(arguments, 1); + if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate')) + return $.datepicker['_' + options + 'Datepicker']. + apply($.datepicker, [this[0]].concat(otherArgs)); + if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string') + return $.datepicker['_' + options + 'Datepicker']. + apply($.datepicker, [this[0]].concat(otherArgs)); + return this.each(function() { + typeof options == 'string' ? + $.datepicker['_' + options + 'Datepicker']. + apply($.datepicker, [this].concat(otherArgs)) : + $.datepicker._attachDatepicker(this, options); + }); +}; + +$.datepicker = new Datepicker(); // singleton instance +$.datepicker.initialized = false; +$.datepicker.uuid = new Date().getTime(); +$.datepicker.version = "1.7.2"; + +// Workaround for #4055 +// Add another global to avoid noConflict issues with inline event handlers +window.DP_jQuery = $; + +})(jQuery); +/* + * jQuery UI Progressbar 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Progressbar + * + * Depends: + * ui.core.js + */ +(function($) { + +$.widget("ui.progressbar", { + + _init: function() { + + this.element + .addClass("ui-progressbar" + + " ui-widget" + + " ui-widget-content" + + " ui-corner-all") + .attr({ + role: "progressbar", + "aria-valuemin": this._valueMin(), + "aria-valuemax": this._valueMax(), + "aria-valuenow": this._value() + }); + + this.valueDiv = $('
').appendTo(this.element); + + this._refreshValue(); + + }, + + destroy: function() { + + this.element + .removeClass("ui-progressbar" + + " ui-widget" + + " ui-widget-content" + + " ui-corner-all") + .removeAttr("role") + .removeAttr("aria-valuemin") + .removeAttr("aria-valuemax") + .removeAttr("aria-valuenow") + .removeData("progressbar") + .unbind(".progressbar"); + + this.valueDiv.remove(); + + $.widget.prototype.destroy.apply(this, arguments); + + }, + + value: function(newValue) { + if (newValue === undefined) { + return this._value(); + } + + this._setData('value', newValue); + return this; + }, + + _setData: function(key, value) { + + switch (key) { + case 'value': + this.options.value = value; + this._refreshValue(); + this._trigger('change', null, {}); + break; + } + + $.widget.prototype._setData.apply(this, arguments); + + }, + + _value: function() { + + var val = this.options.value; + if (val < this._valueMin()) val = this._valueMin(); + if (val > this._valueMax()) val = this._valueMax(); + + return val; + + }, + + _valueMin: function() { + var valueMin = 0; + return valueMin; + }, + + _valueMax: function() { + var valueMax = 100; + return valueMax; + }, + + _refreshValue: function() { + var value = this.value(); + this.valueDiv[value == this._valueMax() ? 'addClass' : 'removeClass']("ui-corner-right"); + this.valueDiv.width(value + '%'); + this.element.attr("aria-valuenow", value); + } + +}); + +$.extend($.ui.progressbar, { + version: "1.7.2", + defaults: { + value: 0 + } +}); + +})(jQuery); +/* + * jQuery UI Effects 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/ + */ +;jQuery.effects || (function($) { + +$.effects = { + version: "1.7.2", + + // Saves a set of properties in a data storage + save: function(element, set) { + for(var i=0; i < set.length; i++) { + if(set[i] !== null) element.data("ec.storage."+set[i], element[0].style[set[i]]); + } + }, + + // Restores a set of previously saved properties from a data storage + restore: function(element, set) { + for(var i=0; i < set.length; i++) { + if(set[i] !== null) element.css(set[i], element.data("ec.storage."+set[i])); + } + }, + + setMode: function(el, mode) { + if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle + return mode; + }, + + getBaseline: function(origin, original) { // Translates a [top,left] array into a baseline value + // this should be a little more flexible in the future to handle a string & hash + var y, x; + switch (origin[0]) { + case 'top': y = 0; break; + case 'middle': y = 0.5; break; + case 'bottom': y = 1; break; + default: y = origin[0] / original.height; + }; + switch (origin[1]) { + case 'left': x = 0; break; + case 'center': x = 0.5; break; + case 'right': x = 1; break; + default: x = origin[1] / original.width; + }; + return {x: x, y: y}; + }, + + // Wraps the element around a wrapper that copies position properties + createWrapper: function(element) { + + //if the element is already wrapped, return it + if (element.parent().is('.ui-effects-wrapper')) + return element.parent(); + + //Cache width,height and float properties of the element, and create a wrapper around it + var props = { width: element.outerWidth(true), height: element.outerHeight(true), 'float': element.css('float') }; + element.wrap('
'); + var wrapper = element.parent(); + + //Transfer the positioning of the element to the wrapper + if (element.css('position') == 'static') { + wrapper.css({ position: 'relative' }); + element.css({ position: 'relative'} ); + } else { + var top = element.css('top'); if(isNaN(parseInt(top,10))) top = 'auto'; + var left = element.css('left'); if(isNaN(parseInt(left,10))) left = 'auto'; + wrapper.css({ position: element.css('position'), top: top, left: left, zIndex: element.css('z-index') }).show(); + element.css({position: 'relative', top: 0, left: 0 }); + } + + wrapper.css(props); + return wrapper; + }, + + removeWrapper: function(element) { + if (element.parent().is('.ui-effects-wrapper')) + return element.parent().replaceWith(element); + return element; + }, + + setTransition: function(element, list, factor, value) { + value = value || {}; + $.each(list, function(i, x){ + unit = element.cssUnit(x); + if (unit[0] > 0) value[x] = unit[0] * factor + unit[1]; + }); + return value; + }, + + //Base function to animate from one class to another in a seamless transition + animateClass: function(value, duration, easing, callback) { + + var cb = (typeof easing == "function" ? easing : (callback ? callback : null)); + var ea = (typeof easing == "string" ? easing : null); + + return this.each(function() { + + var offset = {}; var that = $(this); var oldStyleAttr = that.attr("style") || ''; + if(typeof oldStyleAttr == 'object') oldStyleAttr = oldStyleAttr["cssText"]; /* Stupidly in IE, style is a object.. */ + if(value.toggle) { that.hasClass(value.toggle) ? value.remove = value.toggle : value.add = value.toggle; } + + //Let's get a style offset + var oldStyle = $.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this,null) : this.currentStyle)); + if(value.add) that.addClass(value.add); if(value.remove) that.removeClass(value.remove); + var newStyle = $.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this,null) : this.currentStyle)); + if(value.add) that.removeClass(value.add); if(value.remove) that.addClass(value.remove); + + // The main function to form the object for animation + for(var n in newStyle) { + if( typeof newStyle[n] != "function" && newStyle[n] /* No functions and null properties */ + && n.indexOf("Moz") == -1 && n.indexOf("length") == -1 /* No mozilla spezific render properties. */ + && newStyle[n] != oldStyle[n] /* Only values that have changed are used for the animation */ + && (n.match(/color/i) || (!n.match(/color/i) && !isNaN(parseInt(newStyle[n],10)))) /* Only things that can be parsed to integers or colors */ + && (oldStyle.position != "static" || (oldStyle.position == "static" && !n.match(/left|top|bottom|right/))) /* No need for positions when dealing with static positions */ + ) offset[n] = newStyle[n]; + } + + that.animate(offset, duration, ea, function() { // Animate the newly constructed offset object + // Change style attribute back to original. For stupid IE, we need to clear the damn object. + if(typeof $(this).attr("style") == 'object') { $(this).attr("style")["cssText"] = ""; $(this).attr("style")["cssText"] = oldStyleAttr; } else $(this).attr("style", oldStyleAttr); + if(value.add) $(this).addClass(value.add); if(value.remove) $(this).removeClass(value.remove); + if(cb) cb.apply(this, arguments); + }); + + }); + } +}; + + +function _normalizeArguments(a, m) { + + var o = a[1] && a[1].constructor == Object ? a[1] : {}; if(m) o.mode = m; + var speed = a[1] && a[1].constructor != Object ? a[1] : (o.duration ? o.duration : a[2]); //either comes from options.duration or the secon/third argument + speed = $.fx.off ? 0 : typeof speed === "number" ? speed : $.fx.speeds[speed] || $.fx.speeds._default; + var callback = o.callback || ( $.isFunction(a[1]) && a[1] ) || ( $.isFunction(a[2]) && a[2] ) || ( $.isFunction(a[3]) && a[3] ); + + return [a[0], o, speed, callback]; + +} + +//Extend the methods of jQuery +$.fn.extend({ + + //Save old methods + _show: $.fn.show, + _hide: $.fn.hide, + __toggle: $.fn.toggle, + _addClass: $.fn.addClass, + _removeClass: $.fn.removeClass, + _toggleClass: $.fn.toggleClass, + + // New effect methods + effect: function(fx, options, speed, callback) { + return $.effects[fx] ? $.effects[fx].call(this, {method: fx, options: options || {}, duration: speed, callback: callback }) : null; + }, + + show: function() { + if(!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0]))) + return this._show.apply(this, arguments); + else { + return this.effect.apply(this, _normalizeArguments(arguments, 'show')); + } + }, + + hide: function() { + if(!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0]))) + return this._hide.apply(this, arguments); + else { + return this.effect.apply(this, _normalizeArguments(arguments, 'hide')); + } + }, + + toggle: function(){ + if(!arguments[0] || + (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0])) || + ($.isFunction(arguments[0]) || typeof arguments[0] == 'boolean')) { + return this.__toggle.apply(this, arguments); + } else { + return this.effect.apply(this, _normalizeArguments(arguments, 'toggle')); + } + }, + + addClass: function(classNames, speed, easing, callback) { + return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames); + }, + removeClass: function(classNames,speed,easing,callback) { + return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames); + }, + toggleClass: function(classNames,speed,easing,callback) { + return ( (typeof speed !== "boolean") && speed ) ? $.effects.animateClass.apply(this, [{ toggle: classNames },speed,easing,callback]) : this._toggleClass(classNames, speed); + }, + morph: function(remove,add,speed,easing,callback) { + return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]); + }, + switchClass: function() { + return this.morph.apply(this, arguments); + }, + + // helper functions + cssUnit: function(key) { + var style = this.css(key), val = []; + $.each( ['em','px','%','pt'], function(i, unit){ + if(style.indexOf(unit) > 0) + val = [parseFloat(style), unit]; + }); + return val; + } +}); + +/* + * jQuery Color Animations + * Copyright 2007 John Resig + * Released under the MIT and GPL licenses. + */ + +// We override the animation for all of these color styles +$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i,attr){ + $.fx.step[attr] = function(fx) { + if ( fx.state == 0 ) { + fx.start = getColor( fx.elem, attr ); + fx.end = getRGB( fx.end ); + } + + fx.elem.style[attr] = "rgb(" + [ + Math.max(Math.min( parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0],10), 255), 0), + Math.max(Math.min( parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1],10), 255), 0), + Math.max(Math.min( parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2],10), 255), 0) + ].join(",") + ")"; + }; +}); + +// Color Conversion functions from highlightFade +// By Blair Mitchelmore +// http://jquery.offput.ca/highlightFade/ + +// Parse strings looking for color tuples [255,255,255] +function getRGB(color) { + var result; + + // Check if we're already dealing with an array of colors + if ( color && color.constructor == Array && color.length == 3 ) + return color; + + // Look for rgb(num,num,num) + if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color)) + return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)]; + + // Look for rgb(num%,num%,num%) + if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color)) + return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55]; + + // Look for #a0b1c2 + if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color)) + return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)]; + + // Look for #fff + if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color)) + return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)]; + + // Look for rgba(0, 0, 0, 0) == transparent in Safari 3 + if (result = /rgba\(0, 0, 0, 0\)/.exec(color)) + return colors['transparent']; + + // Otherwise, we're most likely dealing with a named color + return colors[$.trim(color).toLowerCase()]; +} + +function getColor(elem, attr) { + var color; + + do { + color = $.curCSS(elem, attr); + + // Keep going until we find an element that has color, or we hit the body + if ( color != '' && color != 'transparent' || $.nodeName(elem, "body") ) + break; + + attr = "backgroundColor"; + } while ( elem = elem.parentNode ); + + return getRGB(color); +}; + +// Some named colors to work with +// From Interface by Stefan Petre +// http://interface.eyecon.ro/ + +var colors = { + aqua:[0,255,255], + azure:[240,255,255], + beige:[245,245,220], + black:[0,0,0], + blue:[0,0,255], + brown:[165,42,42], + cyan:[0,255,255], + darkblue:[0,0,139], + darkcyan:[0,139,139], + darkgrey:[169,169,169], + darkgreen:[0,100,0], + darkkhaki:[189,183,107], + darkmagenta:[139,0,139], + darkolivegreen:[85,107,47], + darkorange:[255,140,0], + darkorchid:[153,50,204], + darkred:[139,0,0], + darksalmon:[233,150,122], + darkviolet:[148,0,211], + fuchsia:[255,0,255], + gold:[255,215,0], + green:[0,128,0], + indigo:[75,0,130], + khaki:[240,230,140], + lightblue:[173,216,230], + lightcyan:[224,255,255], + lightgreen:[144,238,144], + lightgrey:[211,211,211], + lightpink:[255,182,193], + lightyellow:[255,255,224], + lime:[0,255,0], + magenta:[255,0,255], + maroon:[128,0,0], + navy:[0,0,128], + olive:[128,128,0], + orange:[255,165,0], + pink:[255,192,203], + purple:[128,0,128], + violet:[128,0,128], + red:[255,0,0], + silver:[192,192,192], + white:[255,255,255], + yellow:[255,255,0], + transparent: [255,255,255] +}; + +/* + * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ + * + * Uses the built in easing capabilities added In jQuery 1.1 + * to offer multiple easing options + * + * TERMS OF USE - jQuery Easing + * + * Open source under the BSD License. + * + * Copyright 2008 George McGinley Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +// t: current time, b: begInnIng value, c: change In value, d: duration +$.easing.jswing = $.easing.swing; + +$.extend($.easing, +{ + def: 'easeOutQuad', + swing: function (x, t, b, c, d) { + //alert($.easing.default); + return $.easing[$.easing.def](x, t, b, c, d); + }, + easeInQuad: function (x, t, b, c, d) { + return c*(t/=d)*t + b; + }, + easeOutQuad: function (x, t, b, c, d) { + return -c *(t/=d)*(t-2) + b; + }, + easeInOutQuad: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t + b; + return -c/2 * ((--t)*(t-2) - 1) + b; + }, + easeInCubic: function (x, t, b, c, d) { + return c*(t/=d)*t*t + b; + }, + easeOutCubic: function (x, t, b, c, d) { + return c*((t=t/d-1)*t*t + 1) + b; + }, + easeInOutCubic: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t + b; + return c/2*((t-=2)*t*t + 2) + b; + }, + easeInQuart: function (x, t, b, c, d) { + return c*(t/=d)*t*t*t + b; + }, + easeOutQuart: function (x, t, b, c, d) { + return -c * ((t=t/d-1)*t*t*t - 1) + b; + }, + easeInOutQuart: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t + b; + return -c/2 * ((t-=2)*t*t*t - 2) + b; + }, + easeInQuint: function (x, t, b, c, d) { + return c*(t/=d)*t*t*t*t + b; + }, + easeOutQuint: function (x, t, b, c, d) { + return c*((t=t/d-1)*t*t*t*t + 1) + b; + }, + easeInOutQuint: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; + return c/2*((t-=2)*t*t*t*t + 2) + b; + }, + easeInSine: function (x, t, b, c, d) { + return -c * Math.cos(t/d * (Math.PI/2)) + c + b; + }, + easeOutSine: function (x, t, b, c, d) { + return c * Math.sin(t/d * (Math.PI/2)) + b; + }, + easeInOutSine: function (x, t, b, c, d) { + return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; + }, + easeInExpo: function (x, t, b, c, d) { + return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; + }, + easeOutExpo: function (x, t, b, c, d) { + return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; + }, + easeInOutExpo: function (x, t, b, c, d) { + if (t==0) return b; + if (t==d) return b+c; + if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; + return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; + }, + easeInCirc: function (x, t, b, c, d) { + return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; + }, + easeOutCirc: function (x, t, b, c, d) { + return c * Math.sqrt(1 - (t=t/d-1)*t) + b; + }, + easeInOutCirc: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; + return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; + }, + easeInElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + }, + easeOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; + }, + easeInOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; + }, + easeInBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*(t/=d)*t*((s+1)*t - s) + b; + }, + easeOutBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; + }, + easeInOutBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; + return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; + }, + easeInBounce: function (x, t, b, c, d) { + return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b; + }, + easeOutBounce: function (x, t, b, c, d) { + if ((t/=d) < (1/2.75)) { + return c*(7.5625*t*t) + b; + } else if (t < (2/2.75)) { + return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; + } else if (t < (2.5/2.75)) { + return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; + } else { + return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; + } + }, + easeInOutBounce: function (x, t, b, c, d) { + if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; + return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; + } +}); + +/* + * + * TERMS OF USE - EASING EQUATIONS + * + * Open source under the BSD License. + * + * Copyright 2001 Robert Penner + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +})(jQuery); +/* + * jQuery UI Effects Blind 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Blind + * + * Depends: + * effects.core.js + */ +(function($) { + +$.effects.blind = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','left']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode + var direction = o.options.direction || 'vertical'; // Default direction + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper + var ref = (direction == 'vertical') ? 'height' : 'width'; + var distance = (direction == 'vertical') ? wrapper.height() : wrapper.width(); + if(mode == 'show') wrapper.css(ref, 0); // Shift + + // Animation + var animation = {}; + animation[ref] = mode == 'show' ? distance : 0; + + // Animate + wrapper.animate(animation, o.duration, o.options.easing, function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(el[0], arguments); // Callback + el.dequeue(); + }); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Bounce 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Bounce + * + * Depends: + * effects.core.js + */ +(function($) { + +$.effects.bounce = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','left']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode + var direction = o.options.direction || 'up'; // Default direction + var distance = o.options.distance || 20; // Default distance + var times = o.options.times || 5; // Default # of times + var speed = o.duration || 250; // Default speed per bounce + if (/show|hide/.test(mode)) props.push('opacity'); // Avoid touching opacity to prevent clearType and PNG issues in IE + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + $.effects.createWrapper(el); // Create Wrapper + var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; + var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; + var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 3 : el.outerWidth({margin:true}) / 3); + if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift + if (mode == 'hide') distance = distance / (times * 2); + if (mode != 'hide') times--; + + // Animate + if (mode == 'show') { // Show Bounce + var animation = {opacity: 1}; + animation[ref] = (motion == 'pos' ? '+=' : '-=') + distance; + el.animate(animation, speed / 2, o.options.easing); + distance = distance / 2; + times--; + }; + for (var i = 0; i < times; i++) { // Bounces + var animation1 = {}, animation2 = {}; + animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance; + animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance; + el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing); + distance = (mode == 'hide') ? distance * 2 : distance / 2; + }; + if (mode == 'hide') { // Last Bounce + var animation = {opacity: 0}; + animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance; + el.animate(animation, speed / 2, o.options.easing, function(){ + el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + }); + } else { + var animation1 = {}, animation2 = {}; + animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance; + animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance; + el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing, function(){ + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + }); + }; + el.queue('fx', function() { el.dequeue(); }); + el.dequeue(); + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Clip 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Clip + * + * Depends: + * effects.core.js + */ +(function($) { + +$.effects.clip = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','left','height','width']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode + var direction = o.options.direction || 'vertical'; // Default direction + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper + var animate = el[0].tagName == 'IMG' ? wrapper : el; + var ref = { + size: (direction == 'vertical') ? 'height' : 'width', + position: (direction == 'vertical') ? 'top' : 'left' + }; + var distance = (direction == 'vertical') ? animate.height() : animate.width(); + if(mode == 'show') { animate.css(ref.size, 0); animate.css(ref.position, distance / 2); } // Shift + + // Animation + var animation = {}; + animation[ref.size] = mode == 'show' ? distance : 0; + animation[ref.position] = mode == 'show' ? 0 : distance / 2; + + // Animate + animate.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(el[0], arguments); // Callback + el.dequeue(); + }}); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Drop 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Drop + * + * Depends: + * effects.core.js + */ +(function($) { + +$.effects.drop = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','left','opacity']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode + var direction = o.options.direction || 'left'; // Default Direction + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + $.effects.createWrapper(el); // Create Wrapper + var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; + var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; + var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 2 : el.outerWidth({margin:true}) / 2); + if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift + + // Animation + var animation = {opacity: mode == 'show' ? 1 : 0}; + animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance; + + // Animate + el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + el.dequeue(); + }}); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Explode 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Explode + * + * Depends: + * effects.core.js + */ +(function($) { + +$.effects.explode = function(o) { + + return this.queue(function() { + + var rows = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3; + var cells = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3; + + o.options.mode = o.options.mode == 'toggle' ? ($(this).is(':visible') ? 'hide' : 'show') : o.options.mode; + var el = $(this).show().css('visibility', 'hidden'); + var offset = el.offset(); + + //Substract the margins - not fixing the problem yet. + offset.top -= parseInt(el.css("marginTop"),10) || 0; + offset.left -= parseInt(el.css("marginLeft"),10) || 0; + + var width = el.outerWidth(true); + var height = el.outerHeight(true); + + for(var i=0;i') + .css({ + position: 'absolute', + visibility: 'visible', + left: -j*(width/cells), + top: -i*(height/rows) + }) + .parent() + .addClass('ui-effects-explode') + .css({ + position: 'absolute', + overflow: 'hidden', + width: width/cells, + height: height/rows, + left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? (j-Math.floor(cells/2))*(width/cells) : 0), + top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? (i-Math.floor(rows/2))*(height/rows) : 0), + opacity: o.options.mode == 'show' ? 0 : 1 + }).animate({ + left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? 0 : (j-Math.floor(cells/2))*(width/cells)), + top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? 0 : (i-Math.floor(rows/2))*(height/rows)), + opacity: o.options.mode == 'show' ? 1 : 0 + }, o.duration || 500); + } + } + + // Set a timeout, to call the callback approx. when the other animations have finished + setTimeout(function() { + + o.options.mode == 'show' ? el.css({ visibility: 'visible' }) : el.css({ visibility: 'visible' }).hide(); + if(o.callback) o.callback.apply(el[0]); // Callback + el.dequeue(); + + $('div.ui-effects-explode').remove(); + + }, o.duration || 500); + + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Fold 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Fold + * + * Depends: + * effects.core.js + */ +(function($) { + +$.effects.fold = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','left']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode + var size = o.options.size || 15; // Default fold size + var horizFirst = !(!o.options.horizFirst); // Ensure a boolean value + var duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2; + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper + var widthFirst = ((mode == 'show') != horizFirst); + var ref = widthFirst ? ['width', 'height'] : ['height', 'width']; + var distance = widthFirst ? [wrapper.width(), wrapper.height()] : [wrapper.height(), wrapper.width()]; + var percent = /([0-9]+)%/.exec(size); + if(percent) size = parseInt(percent[1],10) / 100 * distance[mode == 'hide' ? 0 : 1]; + if(mode == 'show') wrapper.css(horizFirst ? {height: 0, width: size} : {height: size, width: 0}); // Shift + + // Animation + var animation1 = {}, animation2 = {}; + animation1[ref[0]] = mode == 'show' ? distance[0] : size; + animation2[ref[1]] = mode == 'show' ? distance[1] : 0; + + // Animate + wrapper.animate(animation1, duration, o.options.easing) + .animate(animation2, duration, o.options.easing, function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(el[0], arguments); // Callback + el.dequeue(); + }); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Highlight 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Highlight + * + * Depends: + * effects.core.js + */ +(function($) { + +$.effects.highlight = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['backgroundImage','backgroundColor','opacity']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode + var color = o.options.color || "#ffff99"; // Default highlight color + var oldColor = el.css("backgroundColor"); + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + el.css({backgroundImage: 'none', backgroundColor: color}); // Shift + + // Animation + var animation = {backgroundColor: oldColor }; + if (mode == "hide") animation['opacity'] = 0; + + // Animate + el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { + if(mode == "hide") el.hide(); + $.effects.restore(el, props); + if (mode == "show" && $.browser.msie) this.style.removeAttribute('filter'); + if(o.callback) o.callback.apply(this, arguments); + el.dequeue(); + }}); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Pulsate 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Pulsate + * + * Depends: + * effects.core.js + */ +(function($) { + +$.effects.pulsate = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this); + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode + var times = o.options.times || 5; // Default # of times + var duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2; + + // Adjust + if (mode == 'hide') times--; + if (el.is(':hidden')) { // Show fadeIn + el.css('opacity', 0); + el.show(); // Show + el.animate({opacity: 1}, duration, o.options.easing); + times = times-2; + } + + // Animate + for (var i = 0; i < times; i++) { // Pulsate + el.animate({opacity: 0}, duration, o.options.easing).animate({opacity: 1}, duration, o.options.easing); + }; + if (mode == 'hide') { // Last Pulse + el.animate({opacity: 0}, duration, o.options.easing, function(){ + el.hide(); // Hide + if(o.callback) o.callback.apply(this, arguments); // Callback + }); + } else { + el.animate({opacity: 0}, duration, o.options.easing).animate({opacity: 1}, duration, o.options.easing, function(){ + if(o.callback) o.callback.apply(this, arguments); // Callback + }); + }; + el.queue('fx', function() { el.dequeue(); }); + el.dequeue(); + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Scale 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Scale + * + * Depends: + * effects.core.js + */ +(function($) { + +$.effects.puff = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this); + + // Set options + var options = $.extend(true, {}, o.options); + var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode + var percent = parseInt(o.options.percent,10) || 150; // Set default puff percent + options.fade = true; // It's not a puff if it doesn't fade! :) + var original = {height: el.height(), width: el.width()}; // Save original + + // Adjust + var factor = percent / 100; + el.from = (mode == 'hide') ? original : {height: original.height * factor, width: original.width * factor}; + + // Animation + options.from = el.from; + options.percent = (mode == 'hide') ? percent : 100; + options.mode = mode; + + // Animate + el.effect('scale', options, o.duration, o.callback); + el.dequeue(); + }); + +}; + +$.effects.scale = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this); + + // Set options + var options = $.extend(true, {}, o.options); + var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode + var percent = parseInt(o.options.percent,10) || (parseInt(o.options.percent,10) == 0 ? 0 : (mode == 'hide' ? 0 : 100)); // Set default scaling percent + var direction = o.options.direction || 'both'; // Set default axis + var origin = o.options.origin; // The origin of the scaling + if (mode != 'effect') { // Set default origin and restore for show/hide + options.origin = origin || ['middle','center']; + options.restore = true; + } + var original = {height: el.height(), width: el.width()}; // Save original + el.from = o.options.from || (mode == 'show' ? {height: 0, width: 0} : original); // Default from state + + // Adjust + var factor = { // Set scaling factor + y: direction != 'horizontal' ? (percent / 100) : 1, + x: direction != 'vertical' ? (percent / 100) : 1 + }; + el.to = {height: original.height * factor.y, width: original.width * factor.x}; // Set to state + + if (o.options.fade) { // Fade option to support puff + if (mode == 'show') {el.from.opacity = 0; el.to.opacity = 1;}; + if (mode == 'hide') {el.from.opacity = 1; el.to.opacity = 0;}; + }; + + // Animation + options.from = el.from; options.to = el.to; options.mode = mode; + + // Animate + el.effect('size', options, o.duration, o.callback); + el.dequeue(); + }); + +}; + +$.effects.size = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','left','width','height','overflow','opacity']; + var props1 = ['position','top','left','overflow','opacity']; // Always restore + var props2 = ['width','height','overflow']; // Copy for children + var cProps = ['fontSize']; + var vProps = ['borderTopWidth', 'borderBottomWidth', 'paddingTop', 'paddingBottom']; + var hProps = ['borderLeftWidth', 'borderRightWidth', 'paddingLeft', 'paddingRight']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode + var restore = o.options.restore || false; // Default restore + var scale = o.options.scale || 'both'; // Default scale mode + var origin = o.options.origin; // The origin of the sizing + var original = {height: el.height(), width: el.width()}; // Save original + el.from = o.options.from || original; // Default from state + el.to = o.options.to || original; // Default to state + // Adjust + if (origin) { // Calculate baseline shifts + var baseline = $.effects.getBaseline(origin, original); + el.from.top = (original.height - el.from.height) * baseline.y; + el.from.left = (original.width - el.from.width) * baseline.x; + el.to.top = (original.height - el.to.height) * baseline.y; + el.to.left = (original.width - el.to.width) * baseline.x; + }; + var factor = { // Set scaling factor + from: {y: el.from.height / original.height, x: el.from.width / original.width}, + to: {y: el.to.height / original.height, x: el.to.width / original.width} + }; + if (scale == 'box' || scale == 'both') { // Scale the css box + if (factor.from.y != factor.to.y) { // Vertical props scaling + props = props.concat(vProps); + el.from = $.effects.setTransition(el, vProps, factor.from.y, el.from); + el.to = $.effects.setTransition(el, vProps, factor.to.y, el.to); + }; + if (factor.from.x != factor.to.x) { // Horizontal props scaling + props = props.concat(hProps); + el.from = $.effects.setTransition(el, hProps, factor.from.x, el.from); + el.to = $.effects.setTransition(el, hProps, factor.to.x, el.to); + }; + }; + if (scale == 'content' || scale == 'both') { // Scale the content + if (factor.from.y != factor.to.y) { // Vertical props scaling + props = props.concat(cProps); + el.from = $.effects.setTransition(el, cProps, factor.from.y, el.from); + el.to = $.effects.setTransition(el, cProps, factor.to.y, el.to); + }; + }; + $.effects.save(el, restore ? props : props1); el.show(); // Save & Show + $.effects.createWrapper(el); // Create Wrapper + el.css('overflow','hidden').css(el.from); // Shift + + // Animate + if (scale == 'content' || scale == 'both') { // Scale the children + vProps = vProps.concat(['marginTop','marginBottom']).concat(cProps); // Add margins/font-size + hProps = hProps.concat(['marginLeft','marginRight']); // Add margins + props2 = props.concat(vProps).concat(hProps); // Concat + el.find("*[width]").each(function(){ + child = $(this); + if (restore) $.effects.save(child, props2); + var c_original = {height: child.height(), width: child.width()}; // Save original + child.from = {height: c_original.height * factor.from.y, width: c_original.width * factor.from.x}; + child.to = {height: c_original.height * factor.to.y, width: c_original.width * factor.to.x}; + if (factor.from.y != factor.to.y) { // Vertical props scaling + child.from = $.effects.setTransition(child, vProps, factor.from.y, child.from); + child.to = $.effects.setTransition(child, vProps, factor.to.y, child.to); + }; + if (factor.from.x != factor.to.x) { // Horizontal props scaling + child.from = $.effects.setTransition(child, hProps, factor.from.x, child.from); + child.to = $.effects.setTransition(child, hProps, factor.to.x, child.to); + }; + child.css(child.from); // Shift children + child.animate(child.to, o.duration, o.options.easing, function(){ + if (restore) $.effects.restore(child, props2); // Restore children + }); // Animate children + }); + }; + + // Animate + el.animate(el.to, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, restore ? props : props1); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + el.dequeue(); + }}); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Shake 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Shake + * + * Depends: + * effects.core.js + */ +(function($) { + +$.effects.shake = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','left']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode + var direction = o.options.direction || 'left'; // Default direction + var distance = o.options.distance || 20; // Default distance + var times = o.options.times || 3; // Default # of times + var speed = o.duration || o.options.duration || 140; // Default speed per shake + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + $.effects.createWrapper(el); // Create Wrapper + var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; + var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; + + // Animation + var animation = {}, animation1 = {}, animation2 = {}; + animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance; + animation1[ref] = (motion == 'pos' ? '+=' : '-=') + distance * 2; + animation2[ref] = (motion == 'pos' ? '-=' : '+=') + distance * 2; + + // Animate + el.animate(animation, speed, o.options.easing); + for (var i = 1; i < times; i++) { // Shakes + el.animate(animation1, speed, o.options.easing).animate(animation2, speed, o.options.easing); + }; + el.animate(animation1, speed, o.options.easing). + animate(animation, speed / 2, o.options.easing, function(){ // Last shake + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + }); + el.queue('fx', function() { el.dequeue(); }); + el.dequeue(); + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Slide 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Slide + * + * Depends: + * effects.core.js + */ +(function($) { + +$.effects.slide = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','left']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode + var direction = o.options.direction || 'left'; // Default Direction + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper + var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; + var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; + var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) : el.outerWidth({margin:true})); + if (mode == 'show') el.css(ref, motion == 'pos' ? -distance : distance); // Shift + + // Animation + var animation = {}; + animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance; + + // Animate + el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + el.dequeue(); + }}); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Transfer 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Transfer + * + * Depends: + * effects.core.js + */ +(function($) { + +$.effects.transfer = function(o) { + return this.queue(function() { + var elem = $(this), + target = $(o.options.to), + endPosition = target.offset(), + animation = { + top: endPosition.top, + left: endPosition.left, + height: target.innerHeight(), + width: target.innerWidth() + }, + startPosition = elem.offset(), + transfer = $('
') + .appendTo(document.body) + .addClass(o.options.className) + .css({ + top: startPosition.top, + left: startPosition.left, + height: elem.innerHeight(), + width: elem.innerWidth(), + position: 'absolute' + }) + .animate(animation, o.duration, o.options.easing, function() { + transfer.remove(); + (o.callback && o.callback.apply(elem[0], arguments)); + elem.dequeue(); + }); + }); +}; + +})(jQuery); diff --git a/sample-files/js/jquery/jquery-1.3.2.js b/sample-files/js/jquery/jquery-1.3.2.js new file mode 100644 index 0000000..9263574 --- /dev/null +++ b/sample-files/js/jquery/jquery-1.3.2.js @@ -0,0 +1,4376 @@ +/*! + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){ + +var + // Will speed up references to window, and allows munging its name. + window = this, + // Will speed up references to undefined, and allows munging its name. + undefined, + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + // Map over the $ in case of overwrite + _$ = window.$, + + jQuery = window.jQuery = window.$ = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context ); + }, + + // A simple way to check for HTML strings or ID strings + // (both of which we optimize for) + quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/, + // Is it a simple selector + isSimple = /^.[^:#\[\.,]*$/; + +jQuery.fn = jQuery.prototype = { + init: function( selector, context ) { + // Make sure that a selection was provided + selector = selector || document; + + // Handle $(DOMElement) + if ( selector.nodeType ) { + this[0] = selector; + this.length = 1; + this.context = selector; + return this; + } + // Handle HTML strings + if ( typeof selector === "string" ) { + // Are we dealing with HTML string or an ID? + var match = quickExpr.exec( selector ); + + // Verify a match, and that no context was specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) + selector = jQuery.clean( [ match[1] ], context ); + + // HANDLE: $("#id") + else { + var elem = document.getElementById( match[3] ); + + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem && elem.id != match[3] ) + return jQuery().find( selector ); + + // Otherwise, we inject the element directly into the jQuery object + var ret = jQuery( elem || [] ); + ret.context = document; + ret.selector = selector; + return ret; + } + + // HANDLE: $(expr, [context]) + // (which is just equivalent to: $(content).find(expr) + } else + return jQuery( context ).find( selector ); + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) + return jQuery( document ).ready( selector ); + + // Make sure that old selector state is passed along + if ( selector.selector && selector.context ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return this.setArray(jQuery.isArray( selector ) ? + selector : + jQuery.makeArray(selector)); + }, + + // Start with an empty selector + selector: "", + + // The current version of jQuery being used + jquery: "1.3.2", + + // The number of elements contained in the matched element set + size: function() { + return this.length; + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num === undefined ? + + // Return a 'clean' array + Array.prototype.slice.call( this ) : + + // Return just the object + this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems, name, selector ) { + // Build a new jQuery matched element set + var ret = jQuery( elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + ret.context = this.context; + + if ( name === "find" ) + ret.selector = this.selector + (this.selector ? " " : "") + selector; + else if ( name ) + ret.selector = this.selector + "." + name + "(" + selector + ")"; + + // Return the newly-formed element set + return ret; + }, + + // Force the current matched set of elements to become + // the specified array of elements (destroying the stack in the process) + // You should use pushStack() in order to do this, but maintain the stack + setArray: function( elems ) { + // Resetting the length to 0, then using the native Array push + // is a super-fast way to populate an object with array-like properties + this.length = 0; + Array.prototype.push.apply( this, elems ); + + return this; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem && elem.jquery ? elem[0] : elem + , this ); + }, + + attr: function( name, value, type ) { + var options = name; + + // Look for the case where we're accessing a style value + if ( typeof name === "string" ) + if ( value === undefined ) + return this[0] && jQuery[ type || "attr" ]( this[0], name ); + + else { + options = {}; + options[ name ] = value; + } + + // Check to see if we're setting style values + return this.each(function(i){ + // Set all the styles + for ( name in options ) + jQuery.attr( + type ? + this.style : + this, + name, jQuery.prop( this, options[ name ], type, i, name ) + ); + }); + }, + + css: function( key, value ) { + // ignore negative width and height values + 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] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).clone(); + + if ( this[0].parentNode ) + wrap.insertBefore( this[0] ); + + wrap.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, function(elem){ + if (this.nodeType == 1) + this.appendChild( elem ); + }); + }, + + prepend: function() { + return this.domManip(arguments, true, function(elem){ + if (this.nodeType == 1) + this.insertBefore( elem, this.firstChild ); + }); + }, + + before: function() { + return this.domManip(arguments, false, function(elem){ + this.parentNode.insertBefore( elem, this ); + }); + }, + + after: function() { + return this.domManip(arguments, false, function(elem){ + this.parentNode.insertBefore( elem, this.nextSibling ); + }); + }, + + end: function() { + return this.prevObject || jQuery( [] ); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: [].push, + sort: [].sort, + splice: [].splice, + + find: function( selector ) { + if ( this.length === 1 ) { + var ret = this.pushStack( [], "find", selector ); + ret.length = 0; + jQuery.find( selector, this[0], ret ); + return ret; + } else { + return this.pushStack( jQuery.unique(jQuery.map(this, function(elem){ + return jQuery.find( selector, elem ); + })), "find", selector ); + } + }, + + clone: function( events ) { + // Do the clone + var ret = this.map(function(){ + if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) { + // IE copies events bound via attachEvent when + // using cloneNode. Calling detachEvent on the + // clone will also remove the events from the orignal + // In order to get around this, we use innerHTML. + // Unfortunately, this means some modifications to + // attributes in IE that are actually only stored + // as properties will not be copied (such as the + // the name attribute on an input). + var html = this.outerHTML; + if ( !html ) { + var div = this.ownerDocument.createElement("div"); + div.appendChild( this.cloneNode(true) ); + html = div.innerHTML; + } + + return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0]; + } else + return this.cloneNode(true); + }); + + // Copy the events from the original to the clone + if ( events === true ) { + var orig = this.find("*").andSelf(), i = 0; + + ret.find("*").andSelf().each(function(){ + if ( this.nodeName !== orig[i].nodeName ) + return; + + var events = jQuery.data( orig[i], "events" ); + + for ( var type in events ) { + for ( var handler in events[ type ] ) { + jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data ); + } + } + + i++; + }); + } + + // Return the cloned set + 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, jQuery.grep(this, function(elem){ + return elem.nodeType === 1; + }) ), "filter", selector ); + }, + + closest: function( selector ) { + var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null, + closer = 0; + + return this.map(function(){ + var cur = this; + while ( cur && cur.ownerDocument ) { + if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selector) ) { + jQuery.data(cur, "closest", closer); + return cur; + } + cur = cur.parentNode; + closer++; + } + }); + }, + + not: function( selector ) { + if ( typeof selector === "string" ) + // test special case where just one selector is passed in + if ( isSimple.test( selector ) ) + return this.pushStack( jQuery.multiFilter( selector, this, true ), "not", selector ); + 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 this.pushStack( jQuery.unique( jQuery.merge( + this.get(), + typeof selector === "string" ? + jQuery( selector ) : + jQuery.makeArray( selector ) + ))); + }, + + is: function( selector ) { + return !!selector && jQuery.multiFilter( selector, this ).length > 0; + }, + + hasClass: function( selector ) { + return !!selector && this.is( "." + selector ); + }, + + val: function( value ) { + if ( value === undefined ) { + var elem = this[0]; + + if ( elem ) { + if( jQuery.nodeName( elem, 'option' ) ) + return (elem.attributes.value || {}).specified ? elem.value : elem.text; + + // We need to handle select boxes special + if ( jQuery.nodeName( elem, "select" ) ) { + var index = elem.selectedIndex, + values = [], + options = elem.options, + one = elem.type == "select-one"; + + // Nothing was selected + if ( index < 0 ) + return null; + + // Loop through all the selected options + for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { + var option = options[ i ]; + + if ( option.selected ) { + // Get the specifc value for the option + value = jQuery(option).val(); + + // We don't need an array for one selects + if ( one ) + return value; + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + } + + // Everything else, we just grab the value + return (elem.value || "").replace(/\r/g, ""); + + } + + return undefined; + } + + if ( typeof value === "number" ) + value += ''; + + return this.each(function(){ + if ( this.nodeType != 1 ) + return; + + if ( jQuery.isArray(value) && /radio|checkbox/.test( this.type ) ) + this.checked = (jQuery.inArray(this.value, value) >= 0 || + jQuery.inArray(this.name, value) >= 0); + + else if ( jQuery.nodeName( this, "select" ) ) { + var values = jQuery.makeArray(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[0] ? + this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") : + 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 ), + "slice", Array.prototype.slice.call(arguments).join(",") ); + }, + + 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, callback ) { + if ( this[0] ) { + var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(), + scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ), + first = fragment.firstChild; + + if ( first ) + for ( var i = 0, l = this.length; i < l; i++ ) + callback.call( root(this[i], first), this.length > 1 || i > 0 ? + fragment.cloneNode(true) : fragment ); + + if ( scripts ) + jQuery.each( scripts, evalScript ); + } + + return this; + + function root( elem, cur ) { + return table && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ? + (elem.getElementsByTagName("tbody")[0] || + elem.appendChild(elem.ownerDocument.createElement("tbody"))) : + elem; + } + } +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +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 ); +} + +function now(){ + return +new Date; +} + +jQuery.extend = jQuery.fn.extend = function() { + // copy reference to target object + var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) + target = {}; + + // extend jQuery itself if only one argument is passed + if ( length == i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) + // Extend the base object + for ( var name in options ) { + var src = target[ name ], copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) + continue; + + // Recurse if we're merging object values + if ( deep && copy && typeof copy === "object" && !copy.nodeType ) + target[ name ] = jQuery.extend( deep, + // Never move original objects, clone them + src || ( copy.length != null ? [ ] : { } ) + , copy ); + + // Don't bring in undefined values + else if ( copy !== undefined ) + target[ name ] = copy; + + } + + // Return the modified object + return target; +}; + +// exclude the following css properties to add px +var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i, + // cache defaultView + defaultView = document.defaultView || {}, + toString = Object.prototype.toString; + +jQuery.extend({ + noConflict: function( deep ) { + window.$ = _$; + + if ( deep ) + window.jQuery = _jQuery; + + return jQuery; + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return toString.call(obj) === "[object Function]"; + }, + + isArray: function( obj ) { + return toString.call(obj) === "[object Array]"; + }, + + // check if an element is in a (or is an) XML document + isXMLDoc: function( elem ) { + return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" || + !!elem.ownerDocument && jQuery.isXMLDoc( elem.ownerDocument ); + }, + + // Evalulates a script in a global context + globalEval: function( data ) { + if ( data && /\S/.test(data) ) { + // Inspired by code by Andrea Giammarchi + // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html + var head = document.getElementsByTagName("head")[0] || document.documentElement, + script = document.createElement("script"); + + script.type = "text/javascript"; + if ( jQuery.support.scriptEval ) + script.appendChild( document.createTextNode( data ) ); + else + script.text = data; + + // Use insertBefore instead of appendChild to circumvent an IE6 bug. + // This arises when a base node is used (#2709). + head.insertBefore( script, head.firstChild ); + head.removeChild( script ); + } + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase(); + }, + + // args is for internal usage only + each: function( object, callback, args ) { + var name, i = 0, length = object.length; + + if ( args ) { + if ( length === undefined ) { + for ( name in object ) + if ( callback.apply( object[ name ], args ) === false ) + break; + } else + for ( ; i < length; ) + if ( callback.apply( object[ i++ ], args ) === false ) + break; + + // A special, fast, case for the most common use of each + } else { + if ( length === undefined ) { + for ( name in object ) + if ( callback.call( object[ name ], name, object[ name ] ) === false ) + break; + } else + for ( var value = object[0]; + i < length && callback.call( value, i, value ) !== false; value = object[++i] ){} + } + + return object; + }, + + prop: function( elem, value, type, i, name ) { + // Handle executable functions + if ( jQuery.isFunction( value ) ) + value = value.call( elem, i ); + + // Handle passing in a number to a CSS property + return typeof value === "number" && type == "curCSS" && !exclude.test( name ) ? + value + "px" : + value; + }, + + className: { + // internal only, use addClass("class") + add: function( elem, classNames ) { + jQuery.each((classNames || "").split(/\s+/), function(i, className){ + if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) ) + elem.className += (elem.className ? " " : "") + className; + }); + }, + + // internal only, use removeClass("class") + remove: function( elem, classNames ) { + if (elem.nodeType == 1) + elem.className = classNames !== undefined ? + jQuery.grep(elem.className.split(/\s+/), function(className){ + return !jQuery.className.has( classNames, className ); + }).join(" ") : + ""; + }, + + // internal only, use hasClass("class") + has: function( elem, className ) { + return elem && jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1; + } + }, + + // A method for quickly swapping in/out CSS properties to get correct calculations + swap: function( elem, options, callback ) { + var old = {}; + // Remember the old values, and insert the new ones + for ( var name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + callback.call( elem ); + + // Revert the old values + for ( var name in options ) + elem.style[ name ] = old[ name ]; + }, + + css: function( elem, name, force, extra ) { + 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; + + if ( extra === "border" ) + return; + + jQuery.each( which, function() { + if ( !extra ) + val -= parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0; + if ( extra === "margin" ) + val += parseFloat(jQuery.curCSS( elem, "margin" + this, true)) || 0; + else + val -= parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0; + }); + } + + if ( elem.offsetWidth !== 0 ) + getWH(); + else + jQuery.swap( elem, props, getWH ); + + return Math.max(0, Math.round(val)); + } + + return jQuery.curCSS( elem, name, force ); + }, + + curCSS: function( elem, name, force ) { + var ret, style = elem.style; + + // We need to handle opacity special in IE + if ( name == "opacity" && !jQuery.support.opacity ) { + ret = jQuery.attr( style, "opacity" ); + + return ret == "" ? + "1" : + ret; + } + + // Make sure we're using the right name for getting the float value + if ( name.match( /float/i ) ) + name = styleFloat; + + if ( !force && style && style[ name ] ) + ret = style[ name ]; + + else if ( defaultView.getComputedStyle ) { + + // Only "float" is needed here + if ( name.match( /float/i ) ) + name = "float"; + + name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase(); + + var computedStyle = defaultView.getComputedStyle( elem, null ); + + if ( computedStyle ) + ret = computedStyle.getPropertyValue( name ); + + // We should always get a number back from opacity + if ( name == "opacity" && ret == "" ) + ret = "1"; + + } else if ( elem.currentStyle ) { + var camelCase = name.replace(/\-(\w)/g, function(all, letter){ + return letter.toUpperCase(); + }); + + ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ]; + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) { + // Remember the original values + var left = style.left, rsLeft = elem.runtimeStyle.left; + + // Put in the new values to get a computed value out + elem.runtimeStyle.left = elem.currentStyle.left; + style.left = ret || 0; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + elem.runtimeStyle.left = rsLeft; + } + } + + return ret; + }, + + clean: function( elems, context, fragment ) { + context = context || document; + + // !context.createElement fails in IE with an error but returns typeof 'object' + if ( typeof context.createElement === "undefined" ) + context = context.ownerDocument || context[0] && context[0].ownerDocument || document; + + // If a single string is passed in and it's a single tag + // just do a createElement and skip the rest + if ( !fragment && elems.length === 1 && typeof elems[0] === "string" ) { + var match = /^<(\w+)\s*\/?>$/.exec(elems[0]); + if ( match ) + return [ context.createElement( match[1] ) ]; + } + + var ret = [], scripts = [], div = context.createElement("div"); + + jQuery.each(elems, function(i, elem){ + if ( typeof elem === "number" ) + elem += ''; + + if ( !elem ) + return; + + // Convert html string into DOM nodes + if ( typeof elem === "string" ) { + // Fix "XHTML"-style tags in all browsers + elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){ + return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? + all : + front + ">"; + }); + + // Trim whitespace, otherwise indexOf won't work as expected + var tags = elem.replace(/^\s+/, "").substring(0, 10).toLowerCase(); + + var wrap = + // option or optgroup + !tags.indexOf("", "" ] || + + !tags.indexOf("", "" ] || + + tags.match(/^<(thead|tbody|tfoot|colg|cap)/) && + [ 1, "", "
" ] || + + !tags.indexOf("", "" ] || + + // matched above + (!tags.indexOf("", "" ] || + + !tags.indexOf("", "" ] || + + // IE can't serialize and