Web page added.
authoreshe <jessehakanen@gmail.com>
Wed, 21 Jul 2010 18:29:43 +0000 (19:29 +0100)
committereshe <jessehakanen@gmail.com>
Wed, 21 Jul 2010 18:29:43 +0000 (19:29 +0100)
53 files changed:
www/css/style.css [new file with mode: 0644]
www/fancybox/blank.gif [new file with mode: 0644]
www/fancybox/fancy_close.png [new file with mode: 0644]
www/fancybox/fancy_loading.png [new file with mode: 0644]
www/fancybox/fancy_nav_left.png [new file with mode: 0644]
www/fancybox/fancy_nav_right.png [new file with mode: 0644]
www/fancybox/fancy_shadow_e.png [new file with mode: 0644]
www/fancybox/fancy_shadow_n.png [new file with mode: 0644]
www/fancybox/fancy_shadow_ne.png [new file with mode: 0644]
www/fancybox/fancy_shadow_nw.png [new file with mode: 0644]
www/fancybox/fancy_shadow_s.png [new file with mode: 0644]
www/fancybox/fancy_shadow_se.png [new file with mode: 0644]
www/fancybox/fancy_shadow_sw.png [new file with mode: 0644]
www/fancybox/fancy_shadow_w.png [new file with mode: 0644]
www/fancybox/fancy_title_left.png [new file with mode: 0644]
www/fancybox/fancy_title_main.png [new file with mode: 0644]
www/fancybox/fancy_title_over.png [new file with mode: 0644]
www/fancybox/fancy_title_right.png [new file with mode: 0644]
www/fancybox/fancybox-x.png [new file with mode: 0644]
www/fancybox/fancybox-y.png [new file with mode: 0644]
www/fancybox/fancybox.png [new file with mode: 0644]
www/fancybox/jquery.easing-1.3.pack.js [new file with mode: 0644]
www/fancybox/jquery.fancybox-1.3.1.css [new file with mode: 0644]
www/fancybox/jquery.fancybox-1.3.1.js [new file with mode: 0644]
www/fancybox/jquery.fancybox-1.3.1.pack.js [new file with mode: 0644]
www/fancybox/jquery.mousewheel-3.0.2.pack.js [new file with mode: 0644]
www/favicon.ico [new file with mode: 0644]
www/img/background.png [new file with mode: 0644]
www/img/ball.png [new file with mode: 0644]
www/img/bottom-background.png [new file with mode: 0644]
www/img/button.png [new file with mode: 0644]
www/img/content-background.png [new file with mode: 0644]
www/img/download-button.png [new file with mode: 0644]
www/img/info-background.png [new file with mode: 0644]
www/img/logo.png [new file with mode: 0644]
www/img/screenshot.jpg [new file with mode: 0644]
www/img/theme-background.png [new file with mode: 0644]
www/img/themes/dark.jpg [new file with mode: 0644]
www/img/themes/dark_thumb.jpg [new file with mode: 0644]
www/img/themes/default.jpg [new file with mode: 0644]
www/img/themes/default_thumb.jpg [new file with mode: 0644]
www/img/themes/graphical.jpg [new file with mode: 0644]
www/img/themes/graphical_thumb.jpg [new file with mode: 0644]
www/img/themes/white.jpg [new file with mode: 0644]
www/img/themes/white_thumb.jpg [new file with mode: 0644]
www/index.html [new file with mode: 0644]
www/js/script.js [new file with mode: 0644]
www/theme-howto.html [new file with mode: 0644]
www/themes.html [new file with mode: 0644]
www/themes/dark.jspeed [new file with mode: 0644]
www/themes/default.jspeed [new file with mode: 0644]
www/themes/graphical.jspeed [new file with mode: 0644]
www/themes/white.jspeed [new file with mode: 0644]

diff --git a/www/css/style.css b/www/css/style.css
new file mode 100644 (file)
index 0000000..ad9005a
--- /dev/null
@@ -0,0 +1,309 @@
+* {\r
+       border: 0;\r
+       padding: 0;\r
+       margin: 0;\r
+}\r
+\r
+h1#top {\r
+       position: absolute;\r
+       text-indent: -9999px;\r
+}\r
+\r
+body {\r
+       background: #fbfbfb url(../img/background.png) repeat-x;\r
+       font-family: Calibri, Tahoma, Arial, sans-serif;\r
+       font-size: 17px;\r
+}\r
+\r
+a:link, a:active {\r
+       color: #296293;\r
+       text-decoration: none;\r
+}\r
+\r
+a:visited {\r
+       color: #486278;\r
+       text-decoration: none;\r
+}\r
+\r
+a:hover {\r
+       color: #7496b3;\r
+       text-decoration: underline;\r
+}\r
+\r
+#mainmenu {\r
+       background: url(../img/logo.png) no-repeat;\r
+       padding-top: 93px;\r
+       list-style: none;\r
+       width: 950px;\r
+       margin: 0 auto;\r
+}\r
+\r
+#mainmenu li {\r
+       float: left;\r
+       text-align: center;\r
+       width: 165px;\r
+       height: 37px;\r
+       font-size: 14px;\r
+       font-weight: bold;\r
+}\r
+\r
+#mainmenu li a {\r
+       color: #fff;\r
+       text-decoration: none;\r
+       display: block;\r
+       padding-top: 12px;\r
+       width: 165px;\r
+       height: 26px;\r
+       background: url(../img/button.png) 0px -2px;\r
+}\r
+\r
+#mainmenu li a:focus {\r
+       outline: none;\r
+}\r
+\r
+#mainmenu li a:hover, #mainmenu li.selected a{\r
+       background: url(../img/button.png) 0px -43px;\r
+}\r
+\r
+#info {\r
+       clear: both;\r
+       background: #8fb1cf url(../img/info-background.png) repeat-x;\r
+       height: 469px;\r
+       width: 100%;\r
+}\r
+\r
+#info-content {\r
+       width: 430px;\r
+       margin: 0 auto;\r
+       color: #fff;\r
+       font-size: 26px;\r
+       background: url(../img/screenshot.jpg) no-repeat 410px 30px;\r
+       height: 469px;\r
+       padding-top: 50px;\r
+       padding-right: 520px;\r
+       line-height: 1.3em;\r
+}\r
+\r
+#info-content ul {\r
+       margin-left: 25px;\r
+       margin-top: 20px;\r
+}\r
+\r
+#info-content ul li {\r
+       margin-bottom: 14px;\r
+       padding-left: 28px;\r
+       list-style: none;\r
+       background: url(../img/ball.png) 0px 10px no-repeat;\r
+}\r
+\r
+#bottom {\r
+       background: url(../img/bottom-background.png) repeat-x;\r
+       width: 100%;\r
+       clear: both;\r
+}\r
+\r
+#bottom-content {\r
+       width: 950px;\r
+       margin: 0 auto;\r
+       padding-top: 20px;\r
+       padding-bottom: 10px;\r
+}\r
+\r
+.bottom-box {\r
+       width: 250px;\r
+       float: left;\r
+       line-height: 1.5em;\r
+       font-size: 18px;\r
+       padding-right: 20px;\r
+       border-left: 1px dotted #949494;\r
+       padding-left: 25px;\r
+       margin-bottom: 25px;\r
+       height: 125px;\r
+}\r
+\r
+#bottom-content .bottom-box:first-child {\r
+       border-left-width: 0;\r
+}\r
+\r
+.bottom-box h2, .bottom-box h3 {\r
+       font-size: 20px;\r
+       margin-bottom: 8px;\r
+}\r
+\r
+.bottom-box p, .bottom-box ul {\r
+       color: #3c3c3c;\r
+}\r
+\r
+.bottom-box ul li {\r
+       list-style: none;\r
+}\r
+\r
+#copyright {\r
+       clear: both;\r
+       border-top: 1px dotted #949494;\r
+       margin-left: 20px;\r
+       padding-top: 15px;\r
+       width: 900px;\r
+       color: #999;\r
+       padding-bottom: 10px;\r
+       font-size: 16px;\r
+}\r
+\r
+#copyright a {\r
+       color: #999;\r
+}\r
+\r
+#main {\r
+       background: #fff url(../img/content-background.png) repeat-x;\r
+       clear: both;\r
+       border-bottom: 1px solid #ccc;\r
+}\r
+\r
+#main-content {\r
+       width: 910px;\r
+       margin: 0 auto;\r
+       padding: 30px 40px 10px 20px;\r
+       line-height: 1.5em;\r
+       font-family: Tahoma, sans-serif;\r
+       font-size: 16px;\r
+}\r
+\r
+#main-content h1 {\r
+       font-size: 24px;\r
+       margin-bottom: 14px;\r
+}\r
+\r
+#main-content h2 {\r
+       font-size: 22px;\r
+       margin-bottom: 14px;\r
+       margin-top: 25px;\r
+}\r
+\r
+#main-content h3 {\r
+       font-size: 18px;\r
+       margin-bottom: 8px;\r
+       margin-top: 28px;\r
+       border-bottom: 1px dotted #064070;\r
+       padding-bottom: 8px;\r
+}\r
+\r
+#main-content h4 {\r
+       font-size: 17px;\r
+       margin-top: 8px;\r
+}\r
+\r
+#main-content p {\r
+       margin-bottom: 0.8em;\r
+}\r
+\r
+.theme {\r
+       float: left;\r
+       width: 268px;\r
+       height: 235px;\r
+       padding: 5px;\r
+       text-align: center;\r
+       color: #000;\r
+       margin-right: 16px;\r
+       margin-top: 10px;\r
+       margin-bottom: 20px;\r
+       background: url(../img/theme-background.png) no-repeat;\r
+}\r
+\r
+.theme img {\r
+       width: 250px;\r
+       height: 150px;\r
+       border: 1px solid #bbb;\r
+       margin-bottom: 5px;\r
+       filter:alpha(opacity=80);\r
+       -moz-opacity:0.8;\r
+       -khtml-opacity: 0.8;\r
+       opacity: 0.8;\r
+}\r
+\r
+.theme img, .theme a.download {\r
+       filter:alpha(opacity=80);\r
+       -moz-opacity:0.8;\r
+       -khtml-opacity: 0.8;\r
+       opacity: 0.8;\r
+}\r
+\r
+.theme div {\r
+       font-weight: bold;\r
+       margin-bottom: 4px;\r
+       font-size: 15px;\r
+}\r
+\r
+.theme a:hover img, .theme a.download:hover {\r
+       filter:alpha(opacity=100);\r
+       -moz-opacity:1.0;\r
+       -khtml-opacity: 1.0;\r
+       opacity: 1.0;\r
+}\r
+\r
+.theme a.download {\r
+       text-indent: -9999px;\r
+       background: url(../img/download-button.png) no-repeat;\r
+       display: block;\r
+       margin: 0 auto;\r
+       width: 119px;\r
+       height: 34px;\r
+}\r
+\r
+.theme a.download:focus {\r
+       outline: none;\r
+}\r
+\r
+.clear {\r
+       clear: both;\r
+}\r
+\r
+pre.code {\r
+       font-size: 12px;\r
+       margin-top: 15px;\r
+       margin-bottom: 15px;\r
+       max-height: 350px;\r
+       overflow: auto;\r
+}\r
+\r
+.spec {\r
+       margin-top: 6px;\r
+       margin-bottom: 14px;\r
+       width: 100%;\r
+       border: 1px solid #ccc;\r
+}\r
+\r
+.spec th {\r
+       text-align: left;\r
+       font-weight: bold;\r
+       padding: 6px;\r
+       white-space: nowrap;\r
+\r
+}\r
+\r
+.spec pre {\r
+       font-size: 12px;\r
+}\r
+\r
+.spec td {\r
+       padding: 2px 6px 2px 6px;\r
+}\r
+\r
+.spec .color, .spec .color td, .spec .color th {\r
+       background-color: #e4eefa;\r
+}\r
+\r
+.spec .col1 {\r
+       width: 90px;\r
+}\r
+\r
+.spec .col3 {\r
+       width: 220px;\r
+}\r
+\r
+.contents, .contents ul {\r
+       margin-left: 20px;\r
+}\r
+\r
+.contents {\r
+       margin-bottom: 15px;\r
+}\r
diff --git a/www/fancybox/blank.gif b/www/fancybox/blank.gif
new file mode 100644 (file)
index 0000000..35d42e8
Binary files /dev/null and b/www/fancybox/blank.gif differ
diff --git a/www/fancybox/fancy_close.png b/www/fancybox/fancy_close.png
new file mode 100644 (file)
index 0000000..0703530
Binary files /dev/null and b/www/fancybox/fancy_close.png differ
diff --git a/www/fancybox/fancy_loading.png b/www/fancybox/fancy_loading.png
new file mode 100644 (file)
index 0000000..2503017
Binary files /dev/null and b/www/fancybox/fancy_loading.png differ
diff --git a/www/fancybox/fancy_nav_left.png b/www/fancybox/fancy_nav_left.png
new file mode 100644 (file)
index 0000000..ebaa6a4
Binary files /dev/null and b/www/fancybox/fancy_nav_left.png differ
diff --git a/www/fancybox/fancy_nav_right.png b/www/fancybox/fancy_nav_right.png
new file mode 100644 (file)
index 0000000..873294e
Binary files /dev/null and b/www/fancybox/fancy_nav_right.png differ
diff --git a/www/fancybox/fancy_shadow_e.png b/www/fancybox/fancy_shadow_e.png
new file mode 100644 (file)
index 0000000..2eda089
Binary files /dev/null and b/www/fancybox/fancy_shadow_e.png differ
diff --git a/www/fancybox/fancy_shadow_n.png b/www/fancybox/fancy_shadow_n.png
new file mode 100644 (file)
index 0000000..69aa10e
Binary files /dev/null and b/www/fancybox/fancy_shadow_n.png differ
diff --git a/www/fancybox/fancy_shadow_ne.png b/www/fancybox/fancy_shadow_ne.png
new file mode 100644 (file)
index 0000000..79f6980
Binary files /dev/null and b/www/fancybox/fancy_shadow_ne.png differ
diff --git a/www/fancybox/fancy_shadow_nw.png b/www/fancybox/fancy_shadow_nw.png
new file mode 100644 (file)
index 0000000..7182cd9
Binary files /dev/null and b/www/fancybox/fancy_shadow_nw.png differ
diff --git a/www/fancybox/fancy_shadow_s.png b/www/fancybox/fancy_shadow_s.png
new file mode 100644 (file)
index 0000000..d8858bf
Binary files /dev/null and b/www/fancybox/fancy_shadow_s.png differ
diff --git a/www/fancybox/fancy_shadow_se.png b/www/fancybox/fancy_shadow_se.png
new file mode 100644 (file)
index 0000000..541e3ff
Binary files /dev/null and b/www/fancybox/fancy_shadow_se.png differ
diff --git a/www/fancybox/fancy_shadow_sw.png b/www/fancybox/fancy_shadow_sw.png
new file mode 100644 (file)
index 0000000..b451689
Binary files /dev/null and b/www/fancybox/fancy_shadow_sw.png differ
diff --git a/www/fancybox/fancy_shadow_w.png b/www/fancybox/fancy_shadow_w.png
new file mode 100644 (file)
index 0000000..8a4e4a8
Binary files /dev/null and b/www/fancybox/fancy_shadow_w.png differ
diff --git a/www/fancybox/fancy_title_left.png b/www/fancybox/fancy_title_left.png
new file mode 100644 (file)
index 0000000..6049223
Binary files /dev/null and b/www/fancybox/fancy_title_left.png differ
diff --git a/www/fancybox/fancy_title_main.png b/www/fancybox/fancy_title_main.png
new file mode 100644 (file)
index 0000000..8044271
Binary files /dev/null and b/www/fancybox/fancy_title_main.png differ
diff --git a/www/fancybox/fancy_title_over.png b/www/fancybox/fancy_title_over.png
new file mode 100644 (file)
index 0000000..d9f458f
Binary files /dev/null and b/www/fancybox/fancy_title_over.png differ
diff --git a/www/fancybox/fancy_title_right.png b/www/fancybox/fancy_title_right.png
new file mode 100644 (file)
index 0000000..e36d9db
Binary files /dev/null and b/www/fancybox/fancy_title_right.png differ
diff --git a/www/fancybox/fancybox-x.png b/www/fancybox/fancybox-x.png
new file mode 100644 (file)
index 0000000..c2130f8
Binary files /dev/null and b/www/fancybox/fancybox-x.png differ
diff --git a/www/fancybox/fancybox-y.png b/www/fancybox/fancybox-y.png
new file mode 100644 (file)
index 0000000..7ef399b
Binary files /dev/null and b/www/fancybox/fancybox-y.png differ
diff --git a/www/fancybox/fancybox.png b/www/fancybox/fancybox.png
new file mode 100644 (file)
index 0000000..65e14f6
Binary files /dev/null and b/www/fancybox/fancybox.png differ
diff --git a/www/fancybox/jquery.easing-1.3.pack.js b/www/fancybox/jquery.easing-1.3.pack.js
new file mode 100644 (file)
index 0000000..9028179
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * 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
+eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('h.i[\'1a\']=h.i[\'z\'];h.O(h.i,{y:\'D\',z:9(x,t,b,c,d){6 h.i[h.i.y](x,t,b,c,d)},17:9(x,t,b,c,d){6 c*(t/=d)*t+b},D:9(x,t,b,c,d){6-c*(t/=d)*(t-2)+b},13:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t+b;6-c/2*((--t)*(t-2)-1)+b},X:9(x,t,b,c,d){6 c*(t/=d)*t*t+b},U:9(x,t,b,c,d){6 c*((t=t/d-1)*t*t+1)+b},R:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t+b;6 c/2*((t-=2)*t*t+2)+b},N:9(x,t,b,c,d){6 c*(t/=d)*t*t*t+b},M:9(x,t,b,c,d){6-c*((t=t/d-1)*t*t*t-1)+b},L:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t*t+b;6-c/2*((t-=2)*t*t*t-2)+b},K:9(x,t,b,c,d){6 c*(t/=d)*t*t*t*t+b},J:9(x,t,b,c,d){6 c*((t=t/d-1)*t*t*t*t+1)+b},I:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t*t*t+b;6 c/2*((t-=2)*t*t*t*t+2)+b},G:9(x,t,b,c,d){6-c*8.C(t/d*(8.g/2))+c+b},15:9(x,t,b,c,d){6 c*8.n(t/d*(8.g/2))+b},12:9(x,t,b,c,d){6-c/2*(8.C(8.g*t/d)-1)+b},Z:9(x,t,b,c,d){6(t==0)?b:c*8.j(2,10*(t/d-1))+b},Y:9(x,t,b,c,d){6(t==d)?b+c:c*(-8.j(2,-10*t/d)+1)+b},W:9(x,t,b,c,d){e(t==0)6 b;e(t==d)6 b+c;e((t/=d/2)<1)6 c/2*8.j(2,10*(t-1))+b;6 c/2*(-8.j(2,-10*--t)+2)+b},V:9(x,t,b,c,d){6-c*(8.o(1-(t/=d)*t)-1)+b},S:9(x,t,b,c,d){6 c*8.o(1-(t=t/d-1)*t)+b},Q:9(x,t,b,c,d){e((t/=d/2)<1)6-c/2*(8.o(1-t*t)-1)+b;6 c/2*(8.o(1-(t-=2)*t)+1)+b},P:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d)==1)6 b+c;e(!p)p=d*.3;e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);6-(a*8.j(2,10*(t-=1))*8.n((t*d-s)*(2*8.g)/p))+b},H:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d)==1)6 b+c;e(!p)p=d*.3;e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);6 a*8.j(2,-10*t)*8.n((t*d-s)*(2*8.g)/p)+c+b},T:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d/2)==2)6 b+c;e(!p)p=d*(.3*1.5);e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);e(t<1)6-.5*(a*8.j(2,10*(t-=1))*8.n((t*d-s)*(2*8.g)/p))+b;6 a*8.j(2,-10*(t-=1))*8.n((t*d-s)*(2*8.g)/p)*.5+c+b},F:9(x,t,b,c,d,s){e(s==u)s=1.l;6 c*(t/=d)*t*((s+1)*t-s)+b},E:9(x,t,b,c,d,s){e(s==u)s=1.l;6 c*((t=t/d-1)*t*((s+1)*t+s)+1)+b},16:9(x,t,b,c,d,s){e(s==u)s=1.l;e((t/=d/2)<1)6 c/2*(t*t*(((s*=(1.B))+1)*t-s))+b;6 c/2*((t-=2)*t*(((s*=(1.B))+1)*t+s)+2)+b},A:9(x,t,b,c,d){6 c-h.i.v(x,d-t,0,c,d)+b},v:9(x,t,b,c,d){e((t/=d)<(1/2.k)){6 c*(7.q*t*t)+b}m e(t<(2/2.k)){6 c*(7.q*(t-=(1.5/2.k))*t+.k)+b}m e(t<(2.5/2.k)){6 c*(7.q*(t-=(2.14/2.k))*t+.11)+b}m{6 c*(7.q*(t-=(2.18/2.k))*t+.19)+b}},1b:9(x,t,b,c,d){e(t<d/2)6 h.i.A(x,t*2,0,c,d)*.5+b;6 h.i.v(x,t*2-d,0,c,d)*.5+c*.5+b}});',62,74,'||||||return||Math|function|||||if|var|PI|jQuery|easing|pow|75|70158|else|sin|sqrt||5625|asin|||undefined|easeOutBounce|abs||def|swing|easeInBounce|525|cos|easeOutQuad|easeOutBack|easeInBack|easeInSine|easeOutElastic|easeInOutQuint|easeOutQuint|easeInQuint|easeInOutQuart|easeOutQuart|easeInQuart|extend|easeInElastic|easeInOutCirc|easeInOutCubic|easeOutCirc|easeInOutElastic|easeOutCubic|easeInCirc|easeInOutExpo|easeInCubic|easeOutExpo|easeInExpo||9375|easeInOutSine|easeInOutQuad|25|easeOutSine|easeInOutBack|easeInQuad|625|984375|jswing|easeInOutBounce'.split('|'),0,{}))
+
+/*
+ *
+ * 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. 
+ *
+ */
diff --git a/www/fancybox/jquery.fancybox-1.3.1.css b/www/fancybox/jquery.fancybox-1.3.1.css
new file mode 100644 (file)
index 0000000..28bbb13
--- /dev/null
@@ -0,0 +1,363 @@
+/*\r
+ * FancyBox - jQuery Plugin\r
+ * Simple and fancy lightbox alternative\r
+ *\r
+ * Examples and documentation at: http://fancybox.net\r
+ * \r
+ * Copyright (c) 2008 - 2010 Janis Skarnelis\r
+ *\r
+ * Version: 1.3.1 (05/03/2010)\r
+ * Requires: jQuery v1.3+\r
+ *\r
+ * Dual licensed under the MIT and GPL licenses:\r
+ *   http://www.opensource.org/licenses/mit-license.php\r
+ *   http://www.gnu.org/licenses/gpl.html\r
+ */\r
+\r
+#fancybox-loading {\r
+       position: fixed;\r
+       top: 50%;\r
+       left: 50%;\r
+       height: 40px;\r
+       width: 40px;\r
+       margin-top: -20px;\r
+       margin-left: -20px;\r
+       cursor: pointer;\r
+       overflow: hidden;\r
+       z-index: 1104;\r
+       display: none;\r
+}\r
+\r
+* html #fancybox-loading {     /* IE6 */\r
+       position: absolute;\r
+       margin-top: 0;\r
+}\r
+\r
+#fancybox-loading div {\r
+       position: absolute;\r
+       top: 0;\r
+       left: 0;\r
+       width: 40px;\r
+       height: 480px;\r
+       background-image: url('fancybox.png');\r
+}\r
+\r
+#fancybox-overlay {\r
+       position: fixed;\r
+       top: 0;\r
+       left: 0;\r
+       bottom: 0;\r
+       right: 0;\r
+       background: #000;\r
+       z-index: 1100;\r
+       display: none;\r
+}\r
+\r
+* html #fancybox-overlay {     /* IE6 */\r
+       position: absolute;\r
+       width: 100%;\r
+}\r
+\r
+#fancybox-tmp {\r
+       padding: 0;\r
+       margin: 0;\r
+       border: 0;\r
+       overflow: auto;\r
+       display: none;\r
+}\r
+\r
+#fancybox-wrap {\r
+       position: absolute;\r
+       top: 0;\r
+       left: 0;\r
+       margin: 0;\r
+       padding: 20px;\r
+       z-index: 1101;\r
+       display: none;\r
+}\r
+\r
+#fancybox-outer {\r
+       position: relative;\r
+       width: 100%;\r
+       height: 100%;\r
+       background: #FFF;\r
+}\r
+\r
+#fancybox-inner {\r
+       position: absolute;\r
+       top: 0;\r
+       left: 0;\r
+       width: 1px;\r
+       height: 1px;\r
+       padding: 0;\r
+       margin: 0;\r
+       outline: none;\r
+       overflow: hidden;\r
+}\r
+\r
+#fancybox-hide-sel-frame {\r
+       position: absolute;\r
+       top: 0;\r
+       left: 0;\r
+       width: 100%;\r
+       height: 100%;\r
+       background: transparent;\r
+}\r
+\r
+#fancybox-close {\r
+       position: absolute;\r
+       top: -15px;\r
+       right: -15px;\r
+       width: 30px;\r
+       height: 30px;\r
+       background-image: url('fancybox.png');\r
+       background-position: -40px 0px;\r
+       cursor: pointer;\r
+       z-index: 1103;\r
+       display: none;\r
+}\r
+\r
+#fancybox_error {\r
+       color: #444;\r
+       font: normal 12px/20px Arial;\r
+       padding: 7px;\r
+       margin: 0;\r
+}\r
+\r
+#fancybox-content {\r
+       height: auto;\r
+       width: auto;\r
+       padding: 0;\r
+       margin: 0;\r
+}\r
+\r
+#fancybox-img {\r
+       width: 100%;\r
+       height: 100%;\r
+       padding: 0;\r
+       margin: 0;\r
+       border: none;\r
+       outline: none;\r
+       line-height: 0;\r
+       vertical-align: top;\r
+       -ms-interpolation-mode: bicubic;\r
+}\r
+\r
+#fancybox-frame {\r
+       position: relative;\r
+       width: 100%;\r
+       height: 100%;\r
+       border: none;\r
+       display: block;\r
+}\r
+\r
+#fancybox-title {\r
+       position: absolute;\r
+       bottom: 0;\r
+       left: 0;\r
+       font-family: Arial;\r
+       font-size: 12px;\r
+       z-index: 1102;\r
+}\r
+\r
+.fancybox-title-inside {\r
+       padding: 10px 0;\r
+       text-align: center;\r
+       color: #333;\r
+}\r
+\r
+.fancybox-title-outside {\r
+       padding-top: 5px;\r
+       color: #FFF;\r
+       text-align: center;\r
+       font-weight: bold;\r
+}\r
+\r
+.fancybox-title-over {\r
+       color: #FFF;\r
+       text-align: left;\r
+}\r
+\r
+#fancybox-title-over {\r
+       padding: 10px;\r
+       background-image: url('fancy_title_over.png');\r
+       display: block;\r
+}\r
+\r
+#fancybox-title-wrap {\r
+       display: inline-block;\r
+}\r
+\r
+#fancybox-title-wrap span {\r
+       height: 32px;\r
+       float: left;\r
+}\r
+\r
+#fancybox-title-left {\r
+       padding-left: 15px;\r
+       background-image: url('fancybox.png');\r
+       background-position: -40px -90px;\r
+       background-repeat: no-repeat;\r
+}\r
+\r
+#fancybox-title-main {\r
+       font-weight: bold;\r
+       line-height: 29px;\r
+       background-image: url('fancybox-x.png');\r
+       background-position: 0px -40px;\r
+       color: #FFF;\r
+}\r
+\r
+#fancybox-title-right {\r
+       padding-left: 15px;\r
+       background-image: url('fancybox.png');\r
+       background-position: -55px -90px;\r
+       background-repeat: no-repeat;\r
+}\r
+\r
+#fancybox-left, #fancybox-right {\r
+       position: absolute;\r
+       bottom: 0px;\r
+       height: 100%;\r
+       width: 35%;\r
+       cursor: pointer;\r
+       outline: none;\r
+       background-image: url('blank.gif');\r
+       z-index: 1102;\r
+       display: none;\r
+}\r
+\r
+#fancybox-left {\r
+       left: 0px;\r
+}\r
+\r
+#fancybox-right {\r
+       right: 0px;\r
+}\r
+\r
+#fancybox-left-ico, #fancybox-right-ico {\r
+       position: absolute;\r
+       top: 50%;\r
+       left: -9999px;\r
+       width: 30px;\r
+       height: 30px;\r
+       margin-top: -15px;\r
+       cursor: pointer;\r
+       z-index: 1102;\r
+       display: block;\r
+}\r
+\r
+#fancybox-left-ico {\r
+       background-image: url('fancybox.png');\r
+       background-position: -40px -30px;\r
+}\r
+\r
+#fancybox-right-ico {\r
+       background-image: url('fancybox.png');\r
+       background-position: -40px -60px;\r
+}\r
+\r
+#fancybox-left:hover, #fancybox-right:hover {\r
+       visibility: visible;    /* IE6 */\r
+}\r
+\r
+#fancybox-left:hover span {\r
+       left: 20px;\r
+}\r
+\r
+#fancybox-right:hover span {\r
+       left: auto;\r
+       right: 20px;\r
+}\r
+\r
+.fancy-bg {\r
+       position: absolute;\r
+       padding: 0;\r
+       margin: 0;\r
+       border: 0;\r
+       width: 20px;\r
+       height: 20px;\r
+       z-index: 1001;\r
+}\r
+\r
+#fancy-bg-n {\r
+       top: -20px;\r
+       left: 0;\r
+       width: 100%;\r
+       background-image: url('fancybox-x.png');\r
+}\r
+\r
+#fancy-bg-ne {\r
+       top: -20px;\r
+       right: -20px;\r
+       background-image: url('fancybox.png');\r
+       background-position: -40px -162px;\r
+}\r
+\r
+#fancy-bg-e {\r
+       top: 0;\r
+       right: -20px;\r
+       height: 100%;\r
+       background-image: url('fancybox-y.png');\r
+       background-position: -20px 0px;\r
+}\r
+\r
+#fancy-bg-se {\r
+       bottom: -20px;\r
+       right: -20px;\r
+       background-image: url('fancybox.png');\r
+       background-position: -40px -182px; \r
+}\r
+\r
+#fancy-bg-s {\r
+       bottom: -20px;\r
+       left: 0;\r
+       width: 100%;\r
+       background-image: url('fancybox-x.png');\r
+       background-position: 0px -20px;\r
+}\r
+\r
+#fancy-bg-sw {\r
+       bottom: -20px;\r
+       left: -20px;\r
+       background-image: url('fancybox.png');\r
+       background-position: -40px -142px;\r
+}\r
+\r
+#fancy-bg-w {\r
+       top: 0;\r
+       left: -20px;\r
+       height: 100%;\r
+       background-image: url('fancybox-y.png');\r
+}\r
+\r
+#fancy-bg-nw {\r
+       top: -20px;\r
+       left: -20px;\r
+       background-image: url('fancybox.png');\r
+       background-position: -40px -122px;\r
+}\r
+\r
+/* IE */\r
+\r
+#fancybox-loading.fancybox-ie div      { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_loading.png', sizingMethod='scale'); }\r
+.fancybox-ie #fancybox-close           { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_close.png', sizingMethod='scale'); }\r
+\r
+.fancybox-ie #fancybox-title-over      { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_over.png', sizingMethod='scale'); zoom: 1; }\r
+.fancybox-ie #fancybox-title-left      { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_left.png', sizingMethod='scale'); }\r
+.fancybox-ie #fancybox-title-main      { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_main.png', sizingMethod='scale'); }\r
+.fancybox-ie #fancybox-title-right     { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_right.png', sizingMethod='scale'); }\r
+\r
+.fancybox-ie #fancybox-left-ico                { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_left.png', sizingMethod='scale'); }\r
+.fancybox-ie #fancybox-right-ico       { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_right.png', sizingMethod='scale'); }\r
+\r
+.fancybox-ie .fancy-bg { background: transparent !important; }\r
+\r
+.fancybox-ie #fancy-bg-n       { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_n.png', sizingMethod='scale'); }\r
+.fancybox-ie #fancy-bg-ne      { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_ne.png', sizingMethod='scale'); }\r
+.fancybox-ie #fancy-bg-e       { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_e.png', sizingMethod='scale'); }\r
+.fancybox-ie #fancy-bg-se      { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_se.png', sizingMethod='scale'); }\r
+.fancybox-ie #fancy-bg-s       { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_s.png', sizingMethod='scale'); }\r
+.fancybox-ie #fancy-bg-sw      { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_sw.png', sizingMethod='scale'); }\r
+.fancybox-ie #fancy-bg-w       { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_w.png', sizingMethod='scale'); }\r
+.fancybox-ie #fancy-bg-nw      { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_nw.png', sizingMethod='scale'); }\r
diff --git a/www/fancybox/jquery.fancybox-1.3.1.js b/www/fancybox/jquery.fancybox-1.3.1.js
new file mode 100644 (file)
index 0000000..688f93a
--- /dev/null
@@ -0,0 +1,1077 @@
+/*\r
+ * FancyBox - jQuery Plugin\r
+ * Simple and fancy lightbox alternative\r
+ *\r
+ * Examples and documentation at: http://fancybox.net\r
+ * \r
+ * Copyright (c) 2008 - 2010 Janis Skarnelis\r
+ *\r
+ * Version: 1.3.1 (05/03/2010)\r
+ * Requires: jQuery v1.3+\r
+ *\r
+ * Dual licensed under the MIT and GPL licenses:\r
+ *   http://www.opensource.org/licenses/mit-license.php\r
+ *   http://www.gnu.org/licenses/gpl.html\r
+ */\r
+\r
+(function($) {\r
+\r
+       var tmp, loading, overlay, wrap, outer, inner, close, nav_left, nav_right,\r
+\r
+               selectedIndex = 0, selectedOpts = {}, selectedArray = [], currentIndex = 0, currentOpts = {}, currentArray = [],\r
+\r
+               ajaxLoader = null, imgPreloader = new Image(), imgRegExp = /\.(jpg|gif|png|bmp|jpeg)(.*)?$/i, swfRegExp = /[^\.]\.(swf)\s*$/i,\r
+\r
+               loadingTimer, loadingFrame = 1,\r
+\r
+               start_pos, final_pos, busy = false, shadow = 20, fx = $.extend($('<div/>')[0], { prop: 0 }), titleh = 0, \r
+\r
+               isIE6 = !$.support.opacity && !window.XMLHttpRequest,\r
+\r
+               /*\r
+                * Private methods \r
+                */\r
+\r
+               fancybox_abort = function() {\r
+                       loading.hide();\r
+\r
+                       imgPreloader.onerror = imgPreloader.onload = null;\r
+\r
+                       if (ajaxLoader) {\r
+                               ajaxLoader.abort();\r
+                       }\r
+\r
+                       tmp.empty();\r
+               },\r
+\r
+               fancybox_error = function() {\r
+                       $.fancybox('<p id="fancybox_error">The requested content cannot be loaded.<br />Please try again later.</p>', {\r
+                               'scrolling'             : 'no',\r
+                               'padding'               : 20,\r
+                               'transitionIn'  : 'none',\r
+                               'transitionOut' : 'none'\r
+                       });\r
+               },\r
+\r
+               fancybox_get_viewport = function() {\r
+                       return [ $(window).width(), $(window).height(), $(document).scrollLeft(), $(document).scrollTop() ];\r
+               },\r
+\r
+               fancybox_get_zoom_to = function () {\r
+                       var view        = fancybox_get_viewport(),\r
+                               to              = {},\r
+\r
+                               margin = currentOpts.margin,\r
+                               resize = currentOpts.autoScale,\r
+\r
+                               horizontal_space        = (shadow + margin) * 2,\r
+                               vertical_space          = (shadow + margin) * 2,\r
+                               double_padding          = (currentOpts.padding * 2),\r
+                               \r
+                               ratio;\r
+\r
+                       if (currentOpts.width.toString().indexOf('%') > -1) {\r
+                               to.width = ((view[0] * parseFloat(currentOpts.width)) / 100) - (shadow * 2) ;\r
+                               resize = false;\r
+\r
+                       } else {\r
+                               to.width = currentOpts.width + double_padding;\r
+                       }\r
+\r
+                       if (currentOpts.height.toString().indexOf('%') > -1) {\r
+                               to.height = ((view[1] * parseFloat(currentOpts.height)) / 100) - (shadow * 2);\r
+                               resize = false;\r
+\r
+                       } else {\r
+                               to.height = currentOpts.height + double_padding;\r
+                       }\r
+\r
+                       if (resize && (to.width > (view[0] - horizontal_space) || to.height > (view[1] - vertical_space))) {\r
+                               if (selectedOpts.type == 'image' || selectedOpts.type == 'swf') {\r
+                                       horizontal_space        += double_padding;\r
+                                       vertical_space          += double_padding;\r
+\r
+                                       ratio = Math.min(Math.min( view[0] - horizontal_space, currentOpts.width) / currentOpts.width, Math.min( view[1] - vertical_space, currentOpts.height) / currentOpts.height);\r
+\r
+                                       to.width        = Math.round(ratio * (to.width  - double_padding)) + double_padding;\r
+                                       to.height       = Math.round(ratio * (to.height - double_padding)) + double_padding;\r
+\r
+                               } else {\r
+                                       to.width        = Math.min(to.width,    (view[0] - horizontal_space));\r
+                                       to.height       = Math.min(to.height,   (view[1] - vertical_space));\r
+                               }\r
+                       }\r
+\r
+                       to.top  = view[3] + ((view[1] - (to.height      + (shadow * 2 ))) * 0.5);\r
+                       to.left = view[2] + ((view[0] - (to.width       + (shadow * 2 ))) * 0.5);\r
+\r
+                       if (currentOpts.autoScale === false) {\r
+                               to.top  = Math.max(view[3] + margin, to.top);\r
+                               to.left = Math.max(view[2] + margin, to.left);\r
+                       }\r
+\r
+                       return to;\r
+               },\r
+\r
+               fancybox_format_title = function(title) {\r
+                       if (title && title.length) {\r
+                               switch (currentOpts.titlePosition) {\r
+                                       case 'inside':\r
+                                               return title;\r
+                                       case 'over':\r
+                                               return '<span id="fancybox-title-over">' + title + '</span>';\r
+                                       default:\r
+                                               return '<span id="fancybox-title-wrap"><span id="fancybox-title-left"></span><span id="fancybox-title-main">' + title + '</span><span id="fancybox-title-right"></span></span>';\r
+                               }\r
+                       }\r
+\r
+                       return false;\r
+               },\r
+\r
+               fancybox_process_title = function() {\r
+                       var title       = currentOpts.title,\r
+                               width   = final_pos.width - (currentOpts.padding * 2),\r
+                               titlec  = 'fancybox-title-' + currentOpts.titlePosition;\r
+                               \r
+                       $('#fancybox-title').remove();\r
+\r
+                       titleh = 0;\r
+\r
+                       if (currentOpts.titleShow === false) {\r
+                               return;\r
+                       }\r
+\r
+                       title = $.isFunction(currentOpts.titleFormat) ? currentOpts.titleFormat(title, currentArray, currentIndex, currentOpts) : fancybox_format_title(title);\r
+\r
+                       if (!title || title === '') {\r
+                               return;\r
+                       }\r
+\r
+                       $('<div id="fancybox-title" class="' + titlec + '" />').css({\r
+                               'width'                 : width,\r
+                               'paddingLeft'   : currentOpts.padding,\r
+                               'paddingRight'  : currentOpts.padding\r
+                       }).html(title).appendTo('body');\r
+\r
+                       switch (currentOpts.titlePosition) {\r
+                               case 'inside':\r
+                                       titleh = $("#fancybox-title").outerHeight(true) - currentOpts.padding;\r
+                                       final_pos.height += titleh;\r
+                               break;\r
+\r
+                               case 'over':\r
+                                       $('#fancybox-title').css('bottom', currentOpts.padding);\r
+                               break;\r
+\r
+                               default:\r
+                                       $('#fancybox-title').css('bottom', $("#fancybox-title").outerHeight(true) * -1);\r
+                               break;\r
+                       }\r
+\r
+                       $('#fancybox-title').appendTo( outer ).hide();\r
+               },\r
+\r
+               fancybox_set_navigation = function() {\r
+                       $(document).unbind('keydown.fb').bind('keydown.fb', function(e) {\r
+                               if (e.keyCode == 27 && currentOpts.enableEscapeButton) {\r
+                                       e.preventDefault();\r
+                                       $.fancybox.close();\r
+\r
+                               } else if (e.keyCode == 37) {\r
+                                       e.preventDefault();\r
+                                       $.fancybox.prev();\r
+\r
+                               } else if (e.keyCode == 39) {\r
+                                       e.preventDefault();\r
+                                       $.fancybox.next();\r
+                               }\r
+                       });\r
+\r
+                       if ($.fn.mousewheel) {\r
+                               wrap.unbind('mousewheel.fb');\r
+\r
+                               if (currentArray.length > 1) {\r
+                                       wrap.bind('mousewheel.fb', function(e, delta) {\r
+                                               e.preventDefault();\r
+\r
+                                               if (busy || delta === 0) {\r
+                                                       return;\r
+                                               }\r
+\r
+                                               if (delta > 0) {\r
+                                                       $.fancybox.prev();\r
+                                               } else {\r
+                                                       $.fancybox.next();\r
+                                               }\r
+                                       });\r
+                               }\r
+                       }\r
+\r
+                       if (!currentOpts.showNavArrows) { return; }\r
+\r
+                       if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex !== 0) {\r
+                               nav_left.show();\r
+                       }\r
+\r
+                       if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex != (currentArray.length -1)) {\r
+                               nav_right.show();\r
+                       }\r
+               },\r
+\r
+               fancybox_preload_images = function() {\r
+                       var href, \r
+                               objNext;\r
+                               \r
+                       if ((currentArray.length -1) > currentIndex) {\r
+                               href = currentArray[ currentIndex + 1 ].href;\r
+\r
+                               if (typeof href !== 'undefined' && href.match(imgRegExp)) {\r
+                                       objNext = new Image();\r
+                                       objNext.src = href;\r
+                               }\r
+                       }\r
+\r
+                       if (currentIndex > 0) {\r
+                               href = currentArray[ currentIndex - 1 ].href;\r
+\r
+                               if (typeof href !== 'undefined' && href.match(imgRegExp)) {\r
+                                       objNext = new Image();\r
+                                       objNext.src = href;\r
+                               }\r
+                       }\r
+               },\r
+\r
+               _finish = function () {\r
+                       inner.css('overflow', (currentOpts.scrolling == 'auto' ? (currentOpts.type == 'image' || currentOpts.type == 'iframe' || currentOpts.type == 'swf' ? 'hidden' : 'auto') : (currentOpts.scrolling == 'yes' ? 'auto' : 'visible')));\r
+\r
+                       if (!$.support.opacity) {\r
+                               inner.get(0).style.removeAttribute('filter');\r
+                               wrap.get(0).style.removeAttribute('filter');\r
+                       }\r
+\r
+                       $('#fancybox-title').show();\r
+\r
+                       if (currentOpts.hideOnContentClick)     {\r
+                               inner.one('click', $.fancybox.close);\r
+                       }\r
+                       if (currentOpts.hideOnOverlayClick)     {\r
+                               overlay.one('click', $.fancybox.close);\r
+                       }\r
+\r
+                       if (currentOpts.showCloseButton) {\r
+                               close.show();\r
+                       }\r
+\r
+                       fancybox_set_navigation();\r
+\r
+                       $(window).bind("resize.fb", $.fancybox.center);\r
+\r
+                       if (currentOpts.centerOnScroll) {\r
+                               $(window).bind("scroll.fb", $.fancybox.center);\r
+                       } else {\r
+                               $(window).unbind("scroll.fb");\r
+                       }\r
+\r
+                       if ($.isFunction(currentOpts.onComplete)) {\r
+                               currentOpts.onComplete(currentArray, currentIndex, currentOpts);\r
+                       }\r
+\r
+                       busy = false;\r
+\r
+                       fancybox_preload_images();\r
+               },\r
+\r
+               fancybox_draw = function(pos) {\r
+                       var width       = Math.round(start_pos.width    + (final_pos.width      - start_pos.width)      * pos),\r
+                               height  = Math.round(start_pos.height   + (final_pos.height     - start_pos.height)     * pos),\r
+\r
+                               top             = Math.round(start_pos.top      + (final_pos.top        - start_pos.top)        * pos),\r
+                               left    = Math.round(start_pos.left     + (final_pos.left       - start_pos.left)       * pos);\r
+\r
+                       wrap.css({\r
+                               'width'         : width         + 'px',\r
+                               'height'        : height        + 'px',\r
+                               'top'           : top           + 'px',\r
+                               'left'          : left          + 'px'\r
+                       });\r
+\r
+                       width   = Math.max(width - currentOpts.padding * 2, 0);\r
+                       height  = Math.max(height - (currentOpts.padding * 2 + (titleh * pos)), 0);\r
+\r
+                       inner.css({\r
+                               'width'         : width         + 'px',\r
+                               'height'        : height        + 'px'\r
+                       });\r
+\r
+                       if (typeof final_pos.opacity !== 'undefined') {\r
+                               wrap.css('opacity', (pos < 0.5 ? 0.5 : pos));\r
+                       }\r
+               },\r
+\r
+               fancybox_get_obj_pos = function(obj) {\r
+                       var pos         = obj.offset();\r
+\r
+                       pos.top         += parseFloat( obj.css('paddingTop') )  || 0;\r
+                       pos.left        += parseFloat( obj.css('paddingLeft') ) || 0;\r
+\r
+                       pos.top         += parseFloat( obj.css('border-top-width') )    || 0;\r
+                       pos.left        += parseFloat( obj.css('border-left-width') )   || 0;\r
+\r
+                       pos.width       = obj.width();\r
+                       pos.height      = obj.height();\r
+\r
+                       return pos;\r
+               },\r
+\r
+               fancybox_get_zoom_from = function() {\r
+                       var orig = selectedOpts.orig ? $(selectedOpts.orig) : false,\r
+                               from = {},\r
+                               pos,\r
+                               view;\r
+\r
+                       if (orig && orig.length) {\r
+                               pos = fancybox_get_obj_pos(orig);\r
+\r
+                               from = {\r
+                                       width   : (pos.width    + (currentOpts.padding * 2)),\r
+                                       height  : (pos.height   + (currentOpts.padding * 2)),\r
+                                       top             : (pos.top              - currentOpts.padding - shadow),\r
+                                       left    : (pos.left             - currentOpts.padding - shadow)\r
+                               };\r
+                               \r
+                       } else {\r
+                               view = fancybox_get_viewport();\r
+\r
+                               from = {\r
+                                       width   : 1,\r
+                                       height  : 1,\r
+                                       top             : view[3] + view[1] * 0.5,\r
+                                       left    : view[2] + view[0] * 0.5\r
+                               };\r
+                       }\r
+\r
+                       return from;\r
+               },\r
+\r
+               fancybox_show = function() {\r
+                       loading.hide();\r
+\r
+                       if (wrap.is(":visible") && $.isFunction(currentOpts.onCleanup)) {\r
+                               if (currentOpts.onCleanup(currentArray, currentIndex, currentOpts) === false) {\r
+                                       $.event.trigger('fancybox-cancel');\r
+\r
+                                       busy = false;\r
+                                       return;\r
+                               }\r
+                       }\r
+\r
+                       currentArray    = selectedArray;\r
+                       currentIndex    = selectedIndex;\r
+                       currentOpts             = selectedOpts;\r
+\r
+                       inner.get(0).scrollTop  = 0;\r
+                       inner.get(0).scrollLeft = 0;\r
+\r
+                       if (currentOpts.overlayShow) {\r
+                               if (isIE6) {\r
+                                       $('select:not(#fancybox-tmp select)').filter(function() {\r
+                                               return this.style.visibility !== 'hidden';\r
+                                       }).css({'visibility':'hidden'}).one('fancybox-cleanup', function() {\r
+                                               this.style.visibility = 'inherit';\r
+                                       });\r
+                               }\r
+\r
+                               overlay.css({\r
+                                       'background-color'      : currentOpts.overlayColor,\r
+                                       'opacity'                       : currentOpts.overlayOpacity\r
+                               }).unbind().show();\r
+                       }\r
+\r
+                       final_pos = fancybox_get_zoom_to();\r
+\r
+                       fancybox_process_title();\r
+\r
+                       if (wrap.is(":visible")) {\r
+                               $( close.add( nav_left ).add( nav_right ) ).hide();\r
+\r
+                               var pos = wrap.position(),\r
+                                       equal;\r
+\r
+                               start_pos = {\r
+                                       top             :       pos.top ,\r
+                                       left    :       pos.left,\r
+                                       width   :       wrap.width(),\r
+                                       height  :       wrap.height()\r
+                               };\r
+\r
+                               equal = (start_pos.width == final_pos.width && start_pos.height == final_pos.height);\r
+\r
+                               inner.fadeOut(currentOpts.changeFade, function() {\r
+                                       var finish_resizing = function() {\r
+                                               inner.html( tmp.contents() ).fadeIn(currentOpts.changeFade, _finish);\r
+                                       };\r
+                                       \r
+                                       $.event.trigger('fancybox-change');\r
+\r
+                                       inner.empty().css('overflow', 'hidden');\r
+\r
+                                       if (equal) {\r
+                                               inner.css({\r
+                                                       top                     : currentOpts.padding,\r
+                                                       left            : currentOpts.padding,\r
+                                                       width           : Math.max(final_pos.width      - (currentOpts.padding * 2), 1),\r
+                                                       height          : Math.max(final_pos.height     - (currentOpts.padding * 2) - titleh, 1)\r
+                                               });\r
+                                               \r
+                                               finish_resizing();\r
+\r
+                                       } else {\r
+                                               inner.css({\r
+                                                       top                     : currentOpts.padding,\r
+                                                       left            : currentOpts.padding,\r
+                                                       width           : Math.max(start_pos.width      - (currentOpts.padding * 2), 1),\r
+                                                       height          : Math.max(start_pos.height     - (currentOpts.padding * 2), 1)\r
+                                               });\r
+                                               \r
+                                               fx.prop = 0;\r
+\r
+                                               $(fx).animate({ prop: 1 }, {\r
+                                                        duration       : currentOpts.changeSpeed,\r
+                                                        easing         : currentOpts.easingChange,\r
+                                                        step           : fancybox_draw,\r
+                                                        complete       : finish_resizing\r
+                                               });\r
+                                       }\r
+                               });\r
+\r
+                               return;\r
+                       }\r
+\r
+                       wrap.css('opacity', 1);\r
+\r
+                       if (currentOpts.transitionIn == 'elastic') {\r
+                               start_pos = fancybox_get_zoom_from();\r
+\r
+                               inner.css({\r
+                                               top                     : currentOpts.padding,\r
+                                               left            : currentOpts.padding,\r
+                                               width           : Math.max(start_pos.width      - (currentOpts.padding * 2), 1),\r
+                                               height          : Math.max(start_pos.height     - (currentOpts.padding * 2), 1)\r
+                                       })\r
+                                       .html( tmp.contents() );\r
+\r
+                               wrap.css(start_pos).show();\r
+\r
+                               if (currentOpts.opacity) {\r
+                                       final_pos.opacity = 0;\r
+                               }\r
+\r
+                               fx.prop = 0;\r
+\r
+                               $(fx).animate({ prop: 1 }, {\r
+                                        duration       : currentOpts.speedIn,\r
+                                        easing         : currentOpts.easingIn,\r
+                                        step           : fancybox_draw,\r
+                                        complete       : _finish\r
+                               });\r
+\r
+                       } else {\r
+                               inner.css({\r
+                                               top                     : currentOpts.padding,\r
+                                               left            : currentOpts.padding,\r
+                                               width           : Math.max(final_pos.width      - (currentOpts.padding * 2), 1),\r
+                                               height          : Math.max(final_pos.height     - (currentOpts.padding * 2) - titleh, 1)\r
+                                       })\r
+                                       .html( tmp.contents() );\r
+\r
+                               wrap.css( final_pos ).fadeIn( currentOpts.transitionIn == 'none' ? 0 : currentOpts.speedIn, _finish );\r
+                       }\r
+               },\r
+\r
+               fancybox_process_inline = function() {\r
+                       tmp.width(      selectedOpts.width );\r
+                       tmp.height(     selectedOpts.height );\r
+\r
+                       if (selectedOpts.width  == 'auto') {\r
+                               selectedOpts.width = tmp.width();\r
+                       }\r
+                       if (selectedOpts.height == 'auto') {\r
+                               selectedOpts.height     = tmp.height();\r
+                       }\r
+\r
+                       fancybox_show();\r
+               },\r
+               \r
+               fancybox_process_image = function() {\r
+                       busy = true;\r
+\r
+                       selectedOpts.width      = imgPreloader.width;\r
+                       selectedOpts.height     = imgPreloader.height;\r
+\r
+                       $("<img />").attr({\r
+                               'id'    : 'fancybox-img',\r
+                               'src'   : imgPreloader.src,\r
+                               'alt'   : selectedOpts.title\r
+                       }).appendTo( tmp );\r
+\r
+                       fancybox_show();\r
+               },\r
+\r
+               fancybox_start = function() {\r
+                       fancybox_abort();\r
+\r
+                       var obj = selectedArray[ selectedIndex ],\r
+                               href, \r
+                               type, \r
+                               title,\r
+                               str,\r
+                               emb,\r
+                               selector,\r
+                               data;\r
+\r
+                       selectedOpts = $.extend({}, $.fn.fancybox.defaults, (typeof $(obj).data('fancybox') == 'undefined' ? selectedOpts : $(obj).data('fancybox')));\r
+                       title = obj.title || $(obj).title || selectedOpts.title || '';\r
+                       \r
+                       if (obj.nodeName && !selectedOpts.orig) {\r
+                               selectedOpts.orig = $(obj).children("img:first").length ? $(obj).children("img:first") : $(obj);\r
+                       }\r
+\r
+                       if (title === '' && selectedOpts.orig) {\r
+                               title = selectedOpts.orig.attr('alt');\r
+                       }\r
+\r
+                       if (obj.nodeName && (/^(?:javascript|#)/i).test(obj.href)) {\r
+                               href = selectedOpts.href || null;\r
+                       } else {\r
+                               href = selectedOpts.href || obj.href || null;\r
+                       }\r
+\r
+                       if (selectedOpts.type) {\r
+                               type = selectedOpts.type;\r
+\r
+                               if (!href) {\r
+                                       href = selectedOpts.content;\r
+                               }\r
+                               \r
+                       } else if (selectedOpts.content) {\r
+                               type    = 'html';\r
+\r
+                       } else if (href) {\r
+                               if (href.match(imgRegExp)) {\r
+                                       type = 'image';\r
+\r
+                               } else if (href.match(swfRegExp)) {\r
+                                       type = 'swf';\r
+\r
+                               } else if ($(obj).hasClass("iframe")) {\r
+                                       type = 'iframe';\r
+\r
+                               } else if (href.match(/#/)) {\r
+                                       obj = href.substr(href.indexOf("#"));\r
+\r
+                                       type = $(obj).length > 0 ? 'inline' : 'ajax';\r
+                               } else {\r
+                                       type = 'ajax';\r
+                               }\r
+                       } else {\r
+                               type = 'inline';\r
+                       }\r
+\r
+                       selectedOpts.type       = type;\r
+                       selectedOpts.href       = href;\r
+                       selectedOpts.title      = title;\r
+\r
+                       if (selectedOpts.autoDimensions && selectedOpts.type !== 'iframe' && selectedOpts.type !== 'swf') {\r
+                               selectedOpts.width              = 'auto';\r
+                               selectedOpts.height             = 'auto';\r
+                       }\r
+\r
+                       if (selectedOpts.modal) {\r
+                               selectedOpts.overlayShow                = true;\r
+                               selectedOpts.hideOnOverlayClick = false;\r
+                               selectedOpts.hideOnContentClick = false;\r
+                               selectedOpts.enableEscapeButton = false;\r
+                               selectedOpts.showCloseButton    = false;\r
+                       }\r
+\r
+                       if ($.isFunction(selectedOpts.onStart)) {\r
+                               if (selectedOpts.onStart(selectedArray, selectedIndex, selectedOpts) === false) {\r
+                                       busy = false;\r
+                                       return;\r
+                               }\r
+                       }\r
+\r
+                       tmp.css('padding', (shadow + selectedOpts.padding + selectedOpts.margin));\r
+\r
+                       $('.fancybox-inline-tmp').unbind('fancybox-cancel').bind('fancybox-change', function() {\r
+                               $(this).replaceWith(inner.children());\r
+                       });\r
+\r
+                       switch (type) {\r
+                               case 'html' :\r
+                                       tmp.html( selectedOpts.content );\r
+                                       fancybox_process_inline();\r
+                               break;\r
+\r
+                               case 'inline' :\r
+                                       $('<div class="fancybox-inline-tmp" />').hide().insertBefore( $(obj) ).bind('fancybox-cleanup', function() {\r
+                                               $(this).replaceWith(inner.children());\r
+                                       }).bind('fancybox-cancel', function() {\r
+                                               $(this).replaceWith(tmp.children());\r
+                                       });\r
+\r
+                                       $(obj).appendTo(tmp);\r
+\r
+                                       fancybox_process_inline();\r
+                               break;\r
+\r
+                               case 'image':\r
+                                       busy = false;\r
+\r
+                                       $.fancybox.showActivity();\r
+\r
+                                       imgPreloader = new Image();\r
+\r
+                                       imgPreloader.onerror = function() {\r
+                                               fancybox_error();\r
+                                       };\r
+\r
+                                       imgPreloader.onload = function() {\r
+                                               imgPreloader.onerror = null;\r
+                                               imgPreloader.onload = null;\r
+                                               fancybox_process_image();\r
+                                       };\r
+\r
+                                       imgPreloader.src = href;\r
+               \r
+                               break;\r
+\r
+                               case 'swf':\r
+                                       str = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + selectedOpts.width + '" height="' + selectedOpts.height + '"><param name="movie" value="' + href + '"></param>';\r
+                                       emb = '';\r
+                                       \r
+                                       $.each(selectedOpts.swf, function(name, val) {\r
+                                               str += '<param name="' + name + '" value="' + val + '"></param>';\r
+                                               emb += ' ' + name + '="' + val + '"';\r
+                                       });\r
+\r
+                                       str += '<embed src="' + href + '" type="application/x-shockwave-flash" width="' + selectedOpts.width + '" height="' + selectedOpts.height + '"' + emb + '></embed></object>';\r
+\r
+                                       tmp.html(str);\r
+\r
+                                       fancybox_process_inline();\r
+                               break;\r
+\r
+                               case 'ajax':\r
+                                       selector        = href.split('#', 2);\r
+                                       data            = selectedOpts.ajax.data || {};\r
+\r
+                                       if (selector.length > 1) {\r
+                                               href = selector[0];\r
+\r
+                                               if (typeof data == "string") {\r
+                                                       data += '&selector=' + selector[1];\r
+                                               } else {\r
+                                                       data.selector = selector[1];\r
+                                               }\r
+                                       }\r
+\r
+                                       busy = false;\r
+                                       $.fancybox.showActivity();\r
+\r
+                                       ajaxLoader = $.ajax($.extend(selectedOpts.ajax, {\r
+                                               url             : href,\r
+                                               data    : data,\r
+                                               error   : fancybox_error,\r
+                                               success : function(data, textStatus, XMLHttpRequest) {\r
+                                                       if (ajaxLoader.status == 200) {\r
+                                                               tmp.html( data );\r
+                                                               fancybox_process_inline();\r
+                                                       }\r
+                                               }\r
+                                       }));\r
+\r
+                               break;\r
+\r
+                               case 'iframe' :\r
+                                       $('<iframe id="fancybox-frame" name="fancybox-frame' + new Date().getTime() + '" frameborder="0" hspace="0" scrolling="' + selectedOpts.scrolling + '" src="' + selectedOpts.href + '"></iframe>').appendTo(tmp);\r
+                                       fancybox_show();\r
+                               break;\r
+                       }\r
+               },\r
+\r
+               fancybox_animate_loading = function() {\r
+                       if (!loading.is(':visible')){\r
+                               clearInterval(loadingTimer);\r
+                               return;\r
+                       }\r
+\r
+                       $('div', loading).css('top', (loadingFrame * -40) + 'px');\r
+\r
+                       loadingFrame = (loadingFrame + 1) % 12;\r
+               },\r
+\r
+               fancybox_init = function() {\r
+                       if ($("#fancybox-wrap").length) {\r
+                               return;\r
+                       }\r
+\r
+                       $('body').append(\r
+                               tmp                     = $('<div id="fancybox-tmp"></div>'),\r
+                               loading         = $('<div id="fancybox-loading"><div></div></div>'),\r
+                               overlay         = $('<div id="fancybox-overlay"></div>'),\r
+                               wrap            = $('<div id="fancybox-wrap"></div>')\r
+                       );\r
+\r
+                       if (!$.support.opacity) {\r
+                               wrap.addClass('fancybox-ie');\r
+                               loading.addClass('fancybox-ie');\r
+                       }\r
+\r
+                       outer = $('<div id="fancybox-outer"></div>')\r
+                               .append('<div class="fancy-bg" id="fancy-bg-n"></div><div class="fancy-bg" id="fancy-bg-ne"></div><div class="fancy-bg" id="fancy-bg-e"></div><div class="fancy-bg" id="fancy-bg-se"></div><div class="fancy-bg" id="fancy-bg-s"></div><div class="fancy-bg" id="fancy-bg-sw"></div><div class="fancy-bg" id="fancy-bg-w"></div><div class="fancy-bg" id="fancy-bg-nw"></div>')\r
+                               .appendTo( wrap );\r
+\r
+                       outer.append(\r
+                               inner           = $('<div id="fancybox-inner"></div>'),\r
+                               close           = $('<a id="fancybox-close"></a>'),\r
+\r
+                               nav_left        = $('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'),\r
+                               nav_right       = $('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>')\r
+                       );\r
+\r
+                       close.click($.fancybox.close);\r
+                       loading.click($.fancybox.cancel);\r
+\r
+                       nav_left.click(function(e) {\r
+                               e.preventDefault();\r
+                               $.fancybox.prev();\r
+                       });\r
+\r
+                       nav_right.click(function(e) {\r
+                               e.preventDefault();\r
+                               $.fancybox.next();\r
+                       });\r
+\r
+                       if (isIE6) {\r
+                               overlay.get(0).style.setExpression('height',    "document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'");\r
+                               loading.get(0).style.setExpression('top',               "(-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px'");\r
+\r
+                               outer.prepend('<iframe id="fancybox-hide-sel-frame" src="javascript:\'\';" scrolling="no" frameborder="0" ></iframe>');\r
+                       }\r
+               };\r
+\r
+       /*\r
+        * Public methods \r
+        */\r
+\r
+       $.fn.fancybox = function(options) {\r
+               $(this)\r
+                       .data('fancybox', $.extend({}, options, ($.metadata ? $(this).metadata() : {})))\r
+                       .unbind('click.fb').bind('click.fb', function(e) {\r
+                               e.preventDefault();\r
+\r
+                               if (busy) {\r
+                                       return;\r
+                               }\r
+\r
+                               busy = true;\r
+\r
+                               $(this).blur();\r
+\r
+                               selectedArray   = [];\r
+                               selectedIndex   = 0;\r
+\r
+                               var rel = $(this).attr('rel') || '';\r
+\r
+                               if (!rel || rel == '' || rel === 'nofollow') {\r
+                                       selectedArray.push(this);\r
+\r
+                               } else {\r
+                                       selectedArray   = $("a[rel=" + rel + "], area[rel=" + rel + "]");\r
+                                       selectedIndex   = selectedArray.index( this );\r
+                               }\r
+\r
+                               fancybox_start();\r
+\r
+                               return false;\r
+                       });\r
+\r
+               return this;\r
+       };\r
+\r
+       $.fancybox = function(obj) {\r
+               if (busy) {\r
+                       return;\r
+               }\r
+\r
+               busy = true;\r
+\r
+               var opts = typeof arguments[1] !== 'undefined' ? arguments[1] : {};\r
+\r
+               selectedArray   = [];\r
+               selectedIndex   = opts.index || 0;\r
+\r
+               if ($.isArray(obj)) {\r
+                       for (var i = 0, j = obj.length; i < j; i++) {\r
+                               if (typeof obj[i] == 'object') {\r
+                                       $(obj[i]).data('fancybox', $.extend({}, opts, obj[i]));\r
+                               } else {\r
+                                       obj[i] = $({}).data('fancybox', $.extend({content : obj[i]}, opts));\r
+                               }\r
+                       }\r
+\r
+                       selectedArray = jQuery.merge(selectedArray, obj);\r
+\r
+               } else {\r
+                       if (typeof obj == 'object') {\r
+                               $(obj).data('fancybox', $.extend({}, opts, obj));\r
+                       } else {\r
+                               obj = $({}).data('fancybox', $.extend({content : obj}, opts));\r
+                       }\r
+\r
+                       selectedArray.push(obj);\r
+               }\r
+\r
+               if (selectedIndex > selectedArray.length || selectedIndex < 0) {\r
+                       selectedIndex = 0;\r
+               }\r
+\r
+               fancybox_start();\r
+       };\r
+\r
+       $.fancybox.showActivity = function() {\r
+               clearInterval(loadingTimer);\r
+\r
+               loading.show();\r
+               loadingTimer = setInterval(fancybox_animate_loading, 66);\r
+       };\r
+\r
+       $.fancybox.hideActivity = function() {\r
+               loading.hide();\r
+       };\r
+\r
+       $.fancybox.next = function() {\r
+               return $.fancybox.pos( currentIndex + 1);\r
+       };\r
+       \r
+       $.fancybox.prev = function() {\r
+               return $.fancybox.pos( currentIndex - 1);\r
+       };\r
+\r
+       $.fancybox.pos = function(pos) {\r
+               if (busy) {\r
+                       return;\r
+               }\r
+\r
+               pos = parseInt(pos, 10);\r
+\r
+               if (pos > -1 && currentArray.length > pos) {\r
+                       selectedIndex = pos;\r
+                       fancybox_start();\r
+               }\r
+\r
+               if (currentOpts.cyclic && currentArray.length > 1 && pos < 0) {\r
+                       selectedIndex = currentArray.length - 1;\r
+                       fancybox_start();\r
+               }\r
+\r
+               if (currentOpts.cyclic && currentArray.length > 1 && pos >= currentArray.length) {\r
+                       selectedIndex = 0;\r
+                       fancybox_start();\r
+               }\r
+\r
+               return;\r
+       };\r
+\r
+       $.fancybox.cancel = function() {\r
+               if (busy) {\r
+                       return;\r
+               }\r
+\r
+               busy = true;\r
+\r
+               $.event.trigger('fancybox-cancel');\r
+\r
+               fancybox_abort();\r
+\r
+               if (selectedOpts && $.isFunction(selectedOpts.onCancel)) {\r
+                       selectedOpts.onCancel(selectedArray, selectedIndex, selectedOpts);\r
+               }\r
+\r
+               busy = false;\r
+       };\r
+\r
+       // Note: within an iframe use - parent.$.fancybox.close();\r
+       $.fancybox.close = function() {\r
+               if (busy || wrap.is(':hidden')) {\r
+                       return;\r
+               }\r
+\r
+               busy = true;\r
+\r
+               if (currentOpts && $.isFunction(currentOpts.onCleanup)) {\r
+                       if (currentOpts.onCleanup(currentArray, currentIndex, currentOpts) === false) {\r
+                               busy = false;\r
+                               return;\r
+                       }\r
+               }\r
+\r
+               fancybox_abort();\r
+\r
+               $(close.add( nav_left ).add( nav_right )).hide();\r
+\r
+               $('#fancybox-title').remove();\r
+\r
+               wrap.add(inner).add(overlay).unbind();\r
+\r
+               $(window).unbind("resize.fb scroll.fb");\r
+               $(document).unbind('keydown.fb');\r
+\r
+               function _cleanup() {\r
+                       overlay.fadeOut('fast');\r
+\r
+                       wrap.hide();\r
+\r
+                       $.event.trigger('fancybox-cleanup');\r
+\r
+                       inner.empty();\r
+\r
+                       if ($.isFunction(currentOpts.onClosed)) {\r
+                               currentOpts.onClosed(currentArray, currentIndex, currentOpts);\r
+                       }\r
+\r
+                       currentArray    = selectedOpts  = [];\r
+                       currentIndex    = selectedIndex = 0;\r
+                       currentOpts             = selectedOpts  = {};\r
+\r
+                       busy = false;\r
+               }\r
+\r
+               inner.css('overflow', 'hidden');\r
+\r
+               if (currentOpts.transitionOut == 'elastic') {\r
+                       start_pos = fancybox_get_zoom_from();\r
+\r
+                       var pos = wrap.position();\r
+\r
+                       final_pos = {\r
+                               top             :       pos.top ,\r
+                               left    :       pos.left,\r
+                               width   :       wrap.width(),\r
+                               height  :       wrap.height()\r
+                       };\r
+\r
+                       if (currentOpts.opacity) {\r
+                               final_pos.opacity = 1;\r
+                       }\r
+\r
+                       fx.prop = 1;\r
+\r
+                       $(fx).animate({ prop: 0 }, {\r
+                                duration       : currentOpts.speedOut,\r
+                                easing         : currentOpts.easingOut,\r
+                                step           : fancybox_draw,\r
+                                complete       : _cleanup\r
+                       });\r
+\r
+               } else {\r
+                       wrap.fadeOut( currentOpts.transitionOut == 'none' ? 0 : currentOpts.speedOut, _cleanup);\r
+               }\r
+       };\r
+\r
+       $.fancybox.resize = function() {\r
+               var c, h;\r
+               \r
+               if (busy || wrap.is(':hidden')) {\r
+                       return;\r
+               }\r
+\r
+               busy = true;\r
+\r
+               c = inner.wrapInner("<div style='overflow:auto'></div>").children();\r
+               h = c.height();\r
+\r
+               wrap.css({height:       h + (currentOpts.padding * 2) + titleh});\r
+               inner.css({height:      h});\r
+\r
+               c.replaceWith(c.children());\r
+\r
+               $.fancybox.center();\r
+       };\r
+\r
+       $.fancybox.center = function() {\r
+               busy = true;\r
+\r
+               var view        = fancybox_get_viewport(),\r
+                       margin  = currentOpts.margin,\r
+                       to              = {};\r
+\r
+               to.top  = view[3] + ((view[1] - ((wrap.height() - titleh) + (shadow * 2 ))) * 0.5);\r
+               to.left = view[2] + ((view[0] - (wrap.width() + (shadow * 2 ))) * 0.5);\r
+\r
+               to.top  = Math.max(view[3] + margin, to.top);\r
+               to.left = Math.max(view[2] + margin, to.left);\r
+\r
+               wrap.css(to);\r
+\r
+               busy = false;\r
+       };\r
+\r
+       $.fn.fancybox.defaults = {\r
+               padding                         :       10,\r
+               margin                          :       20,\r
+               opacity                         :       false,\r
+               modal                           :       false,\r
+               cyclic                          :       false,\r
+               scrolling                       :       'auto', // 'auto', 'yes' or 'no'\r
+\r
+               width                           :       560,\r
+               height                          :       340,\r
+\r
+               autoScale                       :       true,\r
+               autoDimensions          :       true,\r
+               centerOnScroll          :       false,\r
+\r
+               ajax                            :       {},\r
+               swf                                     :       { wmode: 'transparent' },\r
+\r
+               hideOnOverlayClick      :       true,\r
+               hideOnContentClick      :       false,\r
+\r
+               overlayShow                     :       true,\r
+               overlayOpacity          :       0.3,\r
+               overlayColor            :       '#666',\r
+\r
+               titleShow                       :       true,\r
+               titlePosition           :       'outside',      // 'outside', 'inside' or 'over'\r
+               titleFormat                     :       null,\r
+\r
+               transitionIn            :       'fade', // 'elastic', 'fade' or 'none'\r
+               transitionOut           :       'fade', // 'elastic', 'fade' or 'none'\r
+\r
+               speedIn                         :       300,\r
+               speedOut                        :       300,\r
+\r
+               changeSpeed                     :       300,\r
+               changeFade                      :       'fast',\r
+\r
+               easingIn                        :       'swing',\r
+               easingOut                       :       'swing',\r
+\r
+               showCloseButton         :       true,\r
+               showNavArrows           :       true,\r
+               enableEscapeButton      :       true,\r
+\r
+               onStart                         :       null,\r
+               onCancel                        :       null,\r
+               onComplete                      :       null,\r
+               onCleanup                       :       null,\r
+               onClosed                        :       null\r
+       };\r
+\r
+       $(document).ready(function() {\r
+               fancybox_init();\r
+       });\r
+\r
+})(jQuery);
\ No newline at end of file
diff --git a/www/fancybox/jquery.fancybox-1.3.1.pack.js b/www/fancybox/jquery.fancybox-1.3.1.pack.js
new file mode 100644 (file)
index 0000000..8421d53
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * FancyBox - jQuery Plugin
+ * Simple and fancy lightbox alternative
+ *
+ * Examples and documentation at: http://fancybox.net
+ * 
+ * Copyright (c) 2008 - 2010 Janis Skarnelis
+ *
+ * Version: 1.3.1 (05/03/2010)
+ * Requires: jQuery v1.3+
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+ */
+
+(function(b){var m,u,x,g,D,i,z,A,B,p=0,e={},q=[],n=0,c={},j=[],E=null,s=new Image,G=/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i,S=/[^\.]\.(swf)\s*$/i,H,I=1,k,l,h=false,y=b.extend(b("<div/>")[0],{prop:0}),v=0,O=!b.support.opacity&&!window.XMLHttpRequest,J=function(){u.hide();s.onerror=s.onload=null;E&&E.abort();m.empty()},P=function(){b.fancybox('<p id="fancybox_error">The requested content cannot be loaded.<br />Please try again later.</p>',{scrolling:"no",padding:20,transitionIn:"none",transitionOut:"none"})},
+K=function(){return[b(window).width(),b(window).height(),b(document).scrollLeft(),b(document).scrollTop()]},T=function(){var a=K(),d={},f=c.margin,o=c.autoScale,t=(20+f)*2,w=(20+f)*2,r=c.padding*2;if(c.width.toString().indexOf("%")>-1){d.width=a[0]*parseFloat(c.width)/100-40;o=false}else d.width=c.width+r;if(c.height.toString().indexOf("%")>-1){d.height=a[1]*parseFloat(c.height)/100-40;o=false}else d.height=c.height+r;if(o&&(d.width>a[0]-t||d.height>a[1]-w))if(e.type=="image"||e.type=="swf"){t+=r;
+w+=r;o=Math.min(Math.min(a[0]-t,c.width)/c.width,Math.min(a[1]-w,c.height)/c.height);d.width=Math.round(o*(d.width-r))+r;d.height=Math.round(o*(d.height-r))+r}else{d.width=Math.min(d.width,a[0]-t);d.height=Math.min(d.height,a[1]-w)}d.top=a[3]+(a[1]-(d.height+40))*0.5;d.left=a[2]+(a[0]-(d.width+40))*0.5;if(c.autoScale===false){d.top=Math.max(a[3]+f,d.top);d.left=Math.max(a[2]+f,d.left)}return d},U=function(a){if(a&&a.length)switch(c.titlePosition){case "inside":return a;case "over":return'<span id="fancybox-title-over">'+
+a+"</span>";default:return'<span id="fancybox-title-wrap"><span id="fancybox-title-left"></span><span id="fancybox-title-main">'+a+'</span><span id="fancybox-title-right"></span></span>'}return false},V=function(){var a=c.title,d=l.width-c.padding*2,f="fancybox-title-"+c.titlePosition;b("#fancybox-title").remove();v=0;if(c.titleShow!==false){a=b.isFunction(c.titleFormat)?c.titleFormat(a,j,n,c):U(a);if(!(!a||a==="")){b('<div id="fancybox-title" class="'+f+'" />').css({width:d,paddingLeft:c.padding,
+paddingRight:c.padding}).html(a).appendTo("body");switch(c.titlePosition){case "inside":v=b("#fancybox-title").outerHeight(true)-c.padding;l.height+=v;break;case "over":b("#fancybox-title").css("bottom",c.padding);break;default:b("#fancybox-title").css("bottom",b("#fancybox-title").outerHeight(true)*-1);break}b("#fancybox-title").appendTo(D).hide()}}},W=function(){b(document).unbind("keydown.fb").bind("keydown.fb",function(a){if(a.keyCode==27&&c.enableEscapeButton){a.preventDefault();b.fancybox.close()}else if(a.keyCode==
+37){a.preventDefault();b.fancybox.prev()}else if(a.keyCode==39){a.preventDefault();b.fancybox.next()}});if(b.fn.mousewheel){g.unbind("mousewheel.fb");j.length>1&&g.bind("mousewheel.fb",function(a,d){a.preventDefault();h||d===0||(d>0?b.fancybox.prev():b.fancybox.next())})}if(c.showNavArrows){if(c.cyclic&&j.length>1||n!==0)A.show();if(c.cyclic&&j.length>1||n!=j.length-1)B.show()}},X=function(){var a,d;if(j.length-1>n){a=j[n+1].href;if(typeof a!=="undefined"&&a.match(G)){d=new Image;d.src=a}}if(n>0){a=
+j[n-1].href;if(typeof a!=="undefined"&&a.match(G)){d=new Image;d.src=a}}},L=function(){i.css("overflow",c.scrolling=="auto"?c.type=="image"||c.type=="iframe"||c.type=="swf"?"hidden":"auto":c.scrolling=="yes"?"auto":"visible");if(!b.support.opacity){i.get(0).style.removeAttribute("filter");g.get(0).style.removeAttribute("filter")}b("#fancybox-title").show();c.hideOnContentClick&&i.one("click",b.fancybox.close);c.hideOnOverlayClick&&x.one("click",b.fancybox.close);c.showCloseButton&&z.show();W();b(window).bind("resize.fb",
+b.fancybox.center);c.centerOnScroll?b(window).bind("scroll.fb",b.fancybox.center):b(window).unbind("scroll.fb");b.isFunction(c.onComplete)&&c.onComplete(j,n,c);h=false;X()},M=function(a){var d=Math.round(k.width+(l.width-k.width)*a),f=Math.round(k.height+(l.height-k.height)*a),o=Math.round(k.top+(l.top-k.top)*a),t=Math.round(k.left+(l.left-k.left)*a);g.css({width:d+"px",height:f+"px",top:o+"px",left:t+"px"});d=Math.max(d-c.padding*2,0);f=Math.max(f-(c.padding*2+v*a),0);i.css({width:d+"px",height:f+
+"px"});if(typeof l.opacity!=="undefined")g.css("opacity",a<0.5?0.5:a)},Y=function(a){var d=a.offset();d.top+=parseFloat(a.css("paddingTop"))||0;d.left+=parseFloat(a.css("paddingLeft"))||0;d.top+=parseFloat(a.css("border-top-width"))||0;d.left+=parseFloat(a.css("border-left-width"))||0;d.width=a.width();d.height=a.height();return d},Q=function(){var a=e.orig?b(e.orig):false,d={};if(a&&a.length){a=Y(a);d={width:a.width+c.padding*2,height:a.height+c.padding*2,top:a.top-c.padding-20,left:a.left-c.padding-
+20}}else{a=K();d={width:1,height:1,top:a[3]+a[1]*0.5,left:a[2]+a[0]*0.5}}return d},N=function(){u.hide();if(g.is(":visible")&&b.isFunction(c.onCleanup))if(c.onCleanup(j,n,c)===false){b.event.trigger("fancybox-cancel");h=false;return}j=q;n=p;c=e;i.get(0).scrollTop=0;i.get(0).scrollLeft=0;if(c.overlayShow){O&&b("select:not(#fancybox-tmp select)").filter(function(){return this.style.visibility!=="hidden"}).css({visibility:"hidden"}).one("fancybox-cleanup",function(){this.style.visibility="inherit"});
+x.css({"background-color":c.overlayColor,opacity:c.overlayOpacity}).unbind().show()}l=T();V();if(g.is(":visible")){b(z.add(A).add(B)).hide();var a=g.position(),d;k={top:a.top,left:a.left,width:g.width(),height:g.height()};d=k.width==l.width&&k.height==l.height;i.fadeOut(c.changeFade,function(){var f=function(){i.html(m.contents()).fadeIn(c.changeFade,L)};b.event.trigger("fancybox-change");i.empty().css("overflow","hidden");if(d){i.css({top:c.padding,left:c.padding,width:Math.max(l.width-c.padding*
+2,1),height:Math.max(l.height-c.padding*2-v,1)});f()}else{i.css({top:c.padding,left:c.padding,width:Math.max(k.width-c.padding*2,1),height:Math.max(k.height-c.padding*2,1)});y.prop=0;b(y).animate({prop:1},{duration:c.changeSpeed,easing:c.easingChange,step:M,complete:f})}})}else{g.css("opacity",1);if(c.transitionIn=="elastic"){k=Q();i.css({top:c.padding,left:c.padding,width:Math.max(k.width-c.padding*2,1),height:Math.max(k.height-c.padding*2,1)}).html(m.contents());g.css(k).show();if(c.opacity)l.opacity=
+0;y.prop=0;b(y).animate({prop:1},{duration:c.speedIn,easing:c.easingIn,step:M,complete:L})}else{i.css({top:c.padding,left:c.padding,width:Math.max(l.width-c.padding*2,1),height:Math.max(l.height-c.padding*2-v,1)}).html(m.contents());g.css(l).fadeIn(c.transitionIn=="none"?0:c.speedIn,L)}}},F=function(){m.width(e.width);m.height(e.height);if(e.width=="auto")e.width=m.width();if(e.height=="auto")e.height=m.height();N()},Z=function(){h=true;e.width=s.width;e.height=s.height;b("<img />").attr({id:"fancybox-img",
+src:s.src,alt:e.title}).appendTo(m);N()},C=function(){J();var a=q[p],d,f,o,t,w;e=b.extend({},b.fn.fancybox.defaults,typeof b(a).data("fancybox")=="undefined"?e:b(a).data("fancybox"));o=a.title||b(a).title||e.title||"";if(a.nodeName&&!e.orig)e.orig=b(a).children("img:first").length?b(a).children("img:first"):b(a);if(o===""&&e.orig)o=e.orig.attr("alt");d=a.nodeName&&/^(?:javascript|#)/i.test(a.href)?e.href||null:e.href||a.href||null;if(e.type){f=e.type;if(!d)d=e.content}else if(e.content)f="html";else if(d)if(d.match(G))f=
+"image";else if(d.match(S))f="swf";else if(b(a).hasClass("iframe"))f="iframe";else if(d.match(/#/)){a=d.substr(d.indexOf("#"));f=b(a).length>0?"inline":"ajax"}else f="ajax";else f="inline";e.type=f;e.href=d;e.title=o;if(e.autoDimensions&&e.type!=="iframe"&&e.type!=="swf"){e.width="auto";e.height="auto"}if(e.modal){e.overlayShow=true;e.hideOnOverlayClick=false;e.hideOnContentClick=false;e.enableEscapeButton=false;e.showCloseButton=false}if(b.isFunction(e.onStart))if(e.onStart(q,p,e)===false){h=false;
+return}m.css("padding",20+e.padding+e.margin);b(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change",function(){b(this).replaceWith(i.children())});switch(f){case "html":m.html(e.content);F();break;case "inline":b('<div class="fancybox-inline-tmp" />').hide().insertBefore(b(a)).bind("fancybox-cleanup",function(){b(this).replaceWith(i.children())}).bind("fancybox-cancel",function(){b(this).replaceWith(m.children())});b(a).appendTo(m);F();break;case "image":h=false;b.fancybox.showActivity();
+s=new Image;s.onerror=function(){P()};s.onload=function(){s.onerror=null;s.onload=null;Z()};s.src=d;break;case "swf":t='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+e.width+'" height="'+e.height+'"><param name="movie" value="'+d+'"></param>';w="";b.each(e.swf,function(r,R){t+='<param name="'+r+'" value="'+R+'"></param>';w+=" "+r+'="'+R+'"'});t+='<embed src="'+d+'" type="application/x-shockwave-flash" width="'+e.width+'" height="'+e.height+'"'+w+"></embed></object>";m.html(t);
+F();break;case "ajax":a=d.split("#",2);f=e.ajax.data||{};if(a.length>1){d=a[0];if(typeof f=="string")f+="&selector="+a[1];else f.selector=a[1]}h=false;b.fancybox.showActivity();E=b.ajax(b.extend(e.ajax,{url:d,data:f,error:P,success:function(r){if(E.status==200){m.html(r);F()}}}));break;case "iframe":b('<iframe id="fancybox-frame" name="fancybox-frame'+(new Date).getTime()+'" frameborder="0" hspace="0" scrolling="'+e.scrolling+'" src="'+e.href+'"></iframe>').appendTo(m);N();break}},$=function(){if(u.is(":visible")){b("div",
+u).css("top",I*-40+"px");I=(I+1)%12}else clearInterval(H)},aa=function(){if(!b("#fancybox-wrap").length){b("body").append(m=b('<div id="fancybox-tmp"></div>'),u=b('<div id="fancybox-loading"><div></div></div>'),x=b('<div id="fancybox-overlay"></div>'),g=b('<div id="fancybox-wrap"></div>'));if(!b.support.opacity){g.addClass("fancybox-ie");u.addClass("fancybox-ie")}D=b('<div id="fancybox-outer"></div>').append('<div class="fancy-bg" id="fancy-bg-n"></div><div class="fancy-bg" id="fancy-bg-ne"></div><div class="fancy-bg" id="fancy-bg-e"></div><div class="fancy-bg" id="fancy-bg-se"></div><div class="fancy-bg" id="fancy-bg-s"></div><div class="fancy-bg" id="fancy-bg-sw"></div><div class="fancy-bg" id="fancy-bg-w"></div><div class="fancy-bg" id="fancy-bg-nw"></div>').appendTo(g);
+D.append(i=b('<div id="fancybox-inner"></div>'),z=b('<a id="fancybox-close"></a>'),A=b('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'),B=b('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>'));z.click(b.fancybox.close);u.click(b.fancybox.cancel);A.click(function(a){a.preventDefault();b.fancybox.prev()});B.click(function(a){a.preventDefault();b.fancybox.next()});if(O){x.get(0).style.setExpression("height",
+"document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'");u.get(0).style.setExpression("top","(-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px'");D.prepend('<iframe id="fancybox-hide-sel-frame" src="javascript:\'\';" scrolling="no" frameborder="0" ></iframe>')}}};
+b.fn.fancybox=function(a){b(this).data("fancybox",b.extend({},a,b.metadata?b(this).metadata():{})).unbind("click.fb").bind("click.fb",function(d){d.preventDefault();if(!h){h=true;b(this).blur();q=[];p=0;d=b(this).attr("rel")||"";if(!d||d==""||d==="nofollow")q.push(this);else{q=b("a[rel="+d+"], area[rel="+d+"]");p=q.index(this)}C();return false}});return this};b.fancybox=function(a,d){if(!h){h=true;d=typeof d!=="undefined"?d:{};q=[];p=d.index||0;if(b.isArray(a)){for(var f=0,o=a.length;f<o;f++)if(typeof a[f]==
+"object")b(a[f]).data("fancybox",b.extend({},d,a[f]));else a[f]=b({}).data("fancybox",b.extend({content:a[f]},d));q=jQuery.merge(q,a)}else{if(typeof a=="object")b(a).data("fancybox",b.extend({},d,a));else a=b({}).data("fancybox",b.extend({content:a},d));q.push(a)}if(p>q.length||p<0)p=0;C()}};b.fancybox.showActivity=function(){clearInterval(H);u.show();H=setInterval($,66)};b.fancybox.hideActivity=function(){u.hide()};b.fancybox.next=function(){return b.fancybox.pos(n+1)};b.fancybox.prev=function(){return b.fancybox.pos(n-
+1)};b.fancybox.pos=function(a){if(!h){a=parseInt(a,10);if(a>-1&&j.length>a){p=a;C()}if(c.cyclic&&j.length>1&&a<0){p=j.length-1;C()}if(c.cyclic&&j.length>1&&a>=j.length){p=0;C()}}};b.fancybox.cancel=function(){if(!h){h=true;b.event.trigger("fancybox-cancel");J();e&&b.isFunction(e.onCancel)&&e.onCancel(q,p,e);h=false}};b.fancybox.close=function(){function a(){x.fadeOut("fast");g.hide();b.event.trigger("fancybox-cleanup");i.empty();b.isFunction(c.onClosed)&&c.onClosed(j,n,c);j=e=[];n=p=0;c=e={};h=false}
+if(!(h||g.is(":hidden"))){h=true;if(c&&b.isFunction(c.onCleanup))if(c.onCleanup(j,n,c)===false){h=false;return}J();b(z.add(A).add(B)).hide();b("#fancybox-title").remove();g.add(i).add(x).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");i.css("overflow","hidden");if(c.transitionOut=="elastic"){k=Q();var d=g.position();l={top:d.top,left:d.left,width:g.width(),height:g.height()};if(c.opacity)l.opacity=1;y.prop=1;b(y).animate({prop:0},{duration:c.speedOut,easing:c.easingOut,
+step:M,complete:a})}else g.fadeOut(c.transitionOut=="none"?0:c.speedOut,a)}};b.fancybox.resize=function(){var a,d;if(!(h||g.is(":hidden"))){h=true;a=i.wrapInner("<div style='overflow:auto'></div>").children();d=a.height();g.css({height:d+c.padding*2+v});i.css({height:d});a.replaceWith(a.children());b.fancybox.center()}};b.fancybox.center=function(){h=true;var a=K(),d=c.margin,f={};f.top=a[3]+(a[1]-(g.height()-v+40))*0.5;f.left=a[2]+(a[0]-(g.width()+40))*0.5;f.top=Math.max(a[3]+d,f.top);f.left=Math.max(a[2]+
+d,f.left);g.css(f);h=false};b.fn.fancybox.defaults={padding:10,margin:20,opacity:false,modal:false,cyclic:false,scrolling:"auto",width:560,height:340,autoScale:true,autoDimensions:true,centerOnScroll:false,ajax:{},swf:{wmode:"transparent"},hideOnOverlayClick:true,hideOnContentClick:false,overlayShow:true,overlayOpacity:0.3,overlayColor:"#666",titleShow:true,titlePosition:"outside",titleFormat:null,transitionIn:"fade",transitionOut:"fade",speedIn:300,speedOut:300,changeSpeed:300,changeFade:"fast",
+easingIn:"swing",easingOut:"swing",showCloseButton:true,showNavArrows:true,enableEscapeButton:true,onStart:null,onCancel:null,onComplete:null,onCleanup:null,onClosed:null};b(document).ready(function(){aa()})})(jQuery);
\ No newline at end of file
diff --git a/www/fancybox/jquery.mousewheel-3.0.2.pack.js b/www/fancybox/jquery.mousewheel-3.0.2.pack.js
new file mode 100644 (file)
index 0000000..b950db1
--- /dev/null
@@ -0,0 +1,13 @@
+/*! Copyright (c) 2009 Brandon Aaron (http://brandonaaron.net)
+ * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
+ * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
+ * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
+ * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
+ *
+ * Version: 3.0.2
+ * 
+ * Requires: 1.2.2+
+ */
+
+(function(b){function d(a){var f=[].slice.call(arguments,1),e=0;a=b.event.fix(a||window.event);a.type="mousewheel";if(a.wheelDelta)e=a.wheelDelta/120;if(a.detail)e=-a.detail/3;f.unshift(a,e);return b.event.handle.apply(this,f)}var c=["DOMMouseScroll","mousewheel"];b.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],d,false);else this.onmousewheel=d},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],
+d,false);else this.onmousewheel=null}};b.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery);
\ No newline at end of file
diff --git a/www/favicon.ico b/www/favicon.ico
new file mode 100644 (file)
index 0000000..218f3b7
Binary files /dev/null and b/www/favicon.ico differ
diff --git a/www/img/background.png b/www/img/background.png
new file mode 100644 (file)
index 0000000..d926e8e
Binary files /dev/null and b/www/img/background.png differ
diff --git a/www/img/ball.png b/www/img/ball.png
new file mode 100644 (file)
index 0000000..3517b12
Binary files /dev/null and b/www/img/ball.png differ
diff --git a/www/img/bottom-background.png b/www/img/bottom-background.png
new file mode 100644 (file)
index 0000000..c67fd02
Binary files /dev/null and b/www/img/bottom-background.png differ
diff --git a/www/img/button.png b/www/img/button.png
new file mode 100644 (file)
index 0000000..0b75be3
Binary files /dev/null and b/www/img/button.png differ
diff --git a/www/img/content-background.png b/www/img/content-background.png
new file mode 100644 (file)
index 0000000..3063f5a
Binary files /dev/null and b/www/img/content-background.png differ
diff --git a/www/img/download-button.png b/www/img/download-button.png
new file mode 100644 (file)
index 0000000..bb17ce3
Binary files /dev/null and b/www/img/download-button.png differ
diff --git a/www/img/info-background.png b/www/img/info-background.png
new file mode 100644 (file)
index 0000000..5084bd1
Binary files /dev/null and b/www/img/info-background.png differ
diff --git a/www/img/logo.png b/www/img/logo.png
new file mode 100644 (file)
index 0000000..6721d71
Binary files /dev/null and b/www/img/logo.png differ
diff --git a/www/img/screenshot.jpg b/www/img/screenshot.jpg
new file mode 100644 (file)
index 0000000..11acdd3
Binary files /dev/null and b/www/img/screenshot.jpg differ
diff --git a/www/img/theme-background.png b/www/img/theme-background.png
new file mode 100644 (file)
index 0000000..d18fc9e
Binary files /dev/null and b/www/img/theme-background.png differ
diff --git a/www/img/themes/dark.jpg b/www/img/themes/dark.jpg
new file mode 100644 (file)
index 0000000..d8db16f
Binary files /dev/null and b/www/img/themes/dark.jpg differ
diff --git a/www/img/themes/dark_thumb.jpg b/www/img/themes/dark_thumb.jpg
new file mode 100644 (file)
index 0000000..2447c5d
Binary files /dev/null and b/www/img/themes/dark_thumb.jpg differ
diff --git a/www/img/themes/default.jpg b/www/img/themes/default.jpg
new file mode 100644 (file)
index 0000000..4945c5a
Binary files /dev/null and b/www/img/themes/default.jpg differ
diff --git a/www/img/themes/default_thumb.jpg b/www/img/themes/default_thumb.jpg
new file mode 100644 (file)
index 0000000..b83ccf7
Binary files /dev/null and b/www/img/themes/default_thumb.jpg differ
diff --git a/www/img/themes/graphical.jpg b/www/img/themes/graphical.jpg
new file mode 100644 (file)
index 0000000..106d3ac
Binary files /dev/null and b/www/img/themes/graphical.jpg differ
diff --git a/www/img/themes/graphical_thumb.jpg b/www/img/themes/graphical_thumb.jpg
new file mode 100644 (file)
index 0000000..cffd7c1
Binary files /dev/null and b/www/img/themes/graphical_thumb.jpg differ
diff --git a/www/img/themes/white.jpg b/www/img/themes/white.jpg
new file mode 100644 (file)
index 0000000..b1b5525
Binary files /dev/null and b/www/img/themes/white.jpg differ
diff --git a/www/img/themes/white_thumb.jpg b/www/img/themes/white_thumb.jpg
new file mode 100644 (file)
index 0000000..cd63070
Binary files /dev/null and b/www/img/themes/white_thumb.jpg differ
diff --git a/www/index.html b/www/index.html
new file mode 100644 (file)
index 0000000..df75e0a
--- /dev/null
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi">\r
+\r
+<head>\r
+\r
+<title>jSpeed - Highly customizable speedometer application</title>\r
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />\r
+<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>\r
+<script type="text/javascript" src="fancybox/jquery.mousewheel-3.0.2.pack.js"></script>\r
+<script type="text/javascript" src="fancybox/jquery.fancybox-1.3.1.js"></script>\r
+<script type="text/javascript" src="js/script.js"></script>\r
+<link rel="stylesheet" type="text/css" href="fancybox/jquery.fancybox-1.3.1.css" media="all" />\r
+<link rel="stylesheet" href="css/style.css" media="all" type="text/css" />\r
+\r
+</head>\r
+       \r
+<body>\r
+\r
+<h1 id="top"><a href="http://jspeed.garage.maemo.org/">jSpeed</a></h1>\r
+\r
+<ul id="mainmenu">\r
+       <li class="selected"><a href="http://jspeed.garage.maemo.org/">Info</a></li>\r
+       <li><a href="#download">Download</a></li>\r
+       <li><a href="http://jspeed.garage.maemo.org/themes.html">Themes</a></li>\r
+       <li><a href="http://jspeed.garage.maemo.org/theme-howto.html">Theme howto</a></li>\r
+</ul>\r
+\r
+<div id="info">\r
+\r
+<div id="info-content">\r
+\r
+<p><strong>jSpeed</strong> is a free Maemo 5 speedometer application featuring</p>\r
+\r
+<ul>\r
+       <li>Auto rotation support</li>\r
+       <li>High customizability using themes</li>\r
+       <li>Support for both kilometers and miles</li>\r
+       <li>Screen flipping feature allowing the speedometer to be reflected on a car’s windshield</li>\r
+</ul>\r
+\r
+</div>\r
+\r
+</div>\r
+\r
+<div id="bottom">\r
+\r
+<div id="bottom-content">\r
+\r
+<div class="bottom-box">\r
+\r
+<h3 id="download">Download</h3>\r
+\r
+<p>jSpeed can be downloaded from Maemo extras-devel repository.</p>\r
+\r
+</div>\r
+\r
+<div class="bottom-box">\r
+\r
+<h3>License</h3>\r
+\r
+<p>jSpeed is licensed under the terms of the <a href="http://www.gnu.org/licenses/gpl.txt">GNU General Public License</a>.</p>\r
+\r
+</div>\r
+\r
+<div class="bottom-box">\r
+\r
+<h3>Links</h3>\r
+\r
+<ul>\r
+       <li><a href="https://garage.maemo.org/projects/jspeed/">Project page</a></li>\r
+       <li><a href="http://maemo.org/packages/view/jspeed/">Package overview and changelog</a></li>\r
+       <li><a href="https://garage.maemo.org/tracker/?atid=6134&amp;group_id=1756&amp;func=browse">Bug tracker</a></li>\r
+</ul>\r
+\r
+</div>\r
+\r
+<div id="copyright">\r
+Copyright © 2010 Jesse Hakanen | <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#101;&#115;&#115;&#101;&#104;&#97;&#107;&#97;&#110;&#101;&#110;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;">Contact</a>\r
+</div>\r
+\r
+</div>\r
+\r
+</div>\r
+\r
+</body>\r
+       \r
+</html>
\ No newline at end of file
diff --git a/www/js/script.js b/www/js/script.js
new file mode 100644 (file)
index 0000000..9be6ec2
--- /dev/null
@@ -0,0 +1,8 @@
+window.onload = function()\r
+{\r
+       $("a.thumb").fancybox({\r
+               'titlePosition': 'inside',\r
+               'transitionIn': 'none',\r
+               'transitionOut': 'none'\r
+       });\r
+}
\ No newline at end of file
diff --git a/www/theme-howto.html b/www/theme-howto.html
new file mode 100644 (file)
index 0000000..36257d0
--- /dev/null
@@ -0,0 +1,586 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi">\r
+\r
+<head>\r
+\r
+<title>jSpeed - Highly customizable speedometer application</title>\r
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />\r
+<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>\r
+<script type="text/javascript" src="fancybox/jquery.mousewheel-3.0.2.pack.js"></script>\r
+<script type="text/javascript" src="fancybox/jquery.fancybox-1.3.1.js"></script>\r
+<script type="text/javascript" src="js/script.js"></script>\r
+<link rel="stylesheet" type="text/css" href="fancybox/jquery.fancybox-1.3.1.css" media="all" />\r
+<link rel="stylesheet" href="css/style.css" media="all" type="text/css" />\r
+\r
+</head>\r
+       \r
+<body>\r
+\r
+<ul id="mainmenu">\r
+       <li><a href="http://jspeed.garage.maemo.org/">Info</a></li>\r
+       <li><a href="#download">Download</a></li>\r
+       <li><a href="http://jspeed.garage.maemo.org/themes.html">Themes</a></li>\r
+       <li class="selected"><a href="http://jspeed.garage.maemo.org/theme-howto.html">Theme howto</a></li>\r
+</ul>\r
+\r
+<div id="main">\r
+\r
+<div id="main-content">\r
+\r
+<h1>Theme howto</h1>\r
+\r
+<ul class="contents">\r
+       <li>\r
+               <a href="#screens">Mainscreen and detailscreen tags</a>\r
+       </li>\r
+       <li>\r
+               <a href="#tag-spec">Tag specification</a>\r
+               <ul>\r
+                       <li>\r
+                               <a href="#common-options">Common options</a>\r
+                               <ul>\r
+                                       <li><a href="#effects">Effects</a></li>\r
+                               </ul>\r
+                       </li>\r
+                       <li>\r
+                               <a href="#tag-rectangle">Tag: rectangle</a>\r
+                       </li>\r
+                       <li>\r
+                               <a href="#tag-image">Tag: image</a>\r
+                       </li>\r
+                       <li>\r
+                               <a href="#tag-pointer">Tag: pointer</a>\r
+                       </li>\r
+                       <li>\r
+                               <a href="#tag-text">Tag: text</a>\r
+                       </li>\r
+               </ul>\r
+       </li>\r
+</ul>\r
+\r
+<p>jSpeed theme files (ie. default.jspeed) are just <strong>regular zip-files</strong> renamed to .jspeed. The path for theme files is /home/user/.jspeed/themes.</p>\r
+\r
+<p>Each of these zip-files contains at least one file called theme.xml, which contains all the information required to draw the theme. Theme file may also contain image files and fonts required for the theme. A simple theme.xml could look like this:</p>\r
+\r
+<pre class="code">\r
+&lt;theme&gt;\r
+       &lt;mainscreen orientation="landscape"&gt;\r
+               &lt;text&gt;\r
+                       &lt;xpos&gt;100&lt;/xpos&gt;\r
+                       &lt;ypos&gt;100&lt;/ypos&gt;\r
+                       &lt;data&gt;{SPEED}&lt;/data&gt;\r
+                       &lt;size&gt;36&lt;/size&gt;\r
+               &lt;/text&gt;\r
+       &lt;/mainscreen&gt;\r
+&lt;/theme&gt;\r
+</pre>\r
+\r
+<p>This would print the current speed on screen at position (100, 100) using default font and font size 36. This kind of theme would only work in landscape mode. If one would like the get the theme to also work in portrait mode, there should be another &lt;mainscreen&gt; tag with orientation="portrait" and maybe different positions for speed display.</p>\r
+\r
+<h2 id="screens">Mainscreen and detailscreen tags</h2>\r
+\r
+<p>Each theme.xml must contain at least one &lt;mainscreen&gt; tag like in the example above. jSpeed contains also a detail screen which automatically contains specific speed, time and trip data. The font color and background of this screen can be changed similarly using &lt;detailscreen&gt; tag. Detail screen can also be themed differently in portrait and landscape mode, or the same specification can apply to both portrait and landscape mode by setting attribute orientation="both" on detailscreen tag.</p>\r
+\r
+<p>Here's the source code of jSpeed's default theme. The specific explanation of all possible tags is below.</p>\r
+\r
+<pre class="code">\r
+&lt;theme&gt; \r
+&lt;detailscreen orientation="both" color="#fff"&gt;\r
+       &lt;image&gt;\r
+               &lt;xpos&gt;0&lt;/xpos&gt;\r
+               &lt;ypos&gt;0&lt;/ypos&gt;\r
+               &lt;src&gt;background.png&lt;/src&gt;\r
+       &lt;/image&gt;\r
+&lt;/detailscreen&gt;\r
+&lt;mainscreen orientation="landscape"&gt;\r
+       &lt;image&gt;\r
+               &lt;xpos&gt;0&lt;/xpos&gt;\r
+               &lt;ypos&gt;0&lt;/ypos&gt;\r
+               &lt;src&gt;background.png&lt;/src&gt;\r
+       &lt;/image&gt;\r
+       &lt;text&gt;\r
+               &lt;data&gt;000&lt;/data&gt;\r
+               &lt;font&gt;digital7.ttf&lt;/font&gt;\r
+               &lt;size&gt;320&lt;/size&gt;\r
+               &lt;xpos&gt;100&lt;/xpos&gt;\r
+               &lt;ypos&gt;75&lt;/ypos&gt;\r
+               &lt;color&gt;#17202b&lt;/color&gt;\r
+               &lt;align&gt;right&lt;/align&gt;\r
+               &lt;width&gt;600&lt;/width&gt;\r
+       &lt;/text&gt;\r
+       &lt;text&gt;\r
+               &lt;data&gt;{SPEEDUNIT}&lt;/data&gt;\r
+               &lt;xpos&gt;520&lt;/xpos&gt;\r
+               &lt;ypos&gt;402&lt;/ypos&gt;\r
+               &lt;font&gt;Nokia Sans Bold&lt;/font&gt;\r
+               &lt;size&gt;24&lt;/size&gt;\r
+               &lt;color&gt;#fff&lt;/color&gt;\r
+               &lt;bold&gt;true&lt;/bold&gt;\r
+               &lt;uppercase&gt;true&lt;/uppercase&gt;\r
+               &lt;effect name="dropshadow"&gt;\r
+                       &lt;xoffset&gt;0&lt;/xoffset&gt;\r
+                       &lt;yoffset&gt;0&lt;/yoffset&gt;\r
+                       &lt;radius&gt;35&lt;/radius&gt;\r
+                       &lt;color&gt;#a5efff&lt;/color&gt;\r
+               &lt;/effect&gt;\r
+       &lt;/text&gt;\r
+       &lt;text&gt;\r
+               &lt;data&gt;{SPEED}&lt;/data&gt;\r
+               &lt;font&gt;digital7.ttf&lt;/font&gt;\r
+               &lt;size&gt;320&lt;/size&gt;\r
+               &lt;xpos&gt;100&lt;/xpos&gt;\r
+               &lt;ypos&gt;75&lt;/ypos&gt;\r
+               &lt;color&gt;#fff&lt;/color&gt;\r
+               &lt;align&gt;right&lt;/align&gt;\r
+               &lt;width&gt;600&lt;/width&gt;\r
+               &lt;format&gt;%.0f&lt;/format&gt;\r
+               &lt;effect name="dropshadow"&gt;\r
+                       &lt;xoffset&gt;0&lt;/xoffset&gt;\r
+                       &lt;yoffset&gt;0&lt;/yoffset&gt;\r
+                       &lt;radius&gt;35&lt;/radius&gt;\r
+                       &lt;color&gt;#a5efff&lt;/color&gt;\r
+               &lt;/effect&gt;\r
+       &lt;/text&gt;\r
+&lt;/mainscreen&gt;\r
+&lt;mainscreen orientation="portrait"&gt;\r
+       &lt;image&gt;\r
+               &lt;xpos&gt;0&lt;/xpos&gt;\r
+               &lt;ypos&gt;0&lt;/ypos&gt;\r
+               &lt;src&gt;background.png&lt;/src&gt;\r
+       &lt;/image&gt;\r
+       &lt;text&gt;\r
+               &lt;data&gt;000&lt;/data&gt;\r
+               &lt;font&gt;digital7.ttf&lt;/font&gt;\r
+               &lt;size&gt;250&lt;/size&gt;\r
+               &lt;xpos&gt;0&lt;/xpos&gt;\r
+               &lt;ypos&gt;260&lt;/ypos&gt;\r
+               &lt;color&gt;#17202b&lt;/color&gt;\r
+               &lt;align&gt;right&lt;/align&gt;\r
+               &lt;width&gt;470&lt;/width&gt;\r
+       &lt;/text&gt;\r
+       &lt;text&gt;\r
+               &lt;data&gt;{SPEEDUNIT}&lt;/data&gt;\r
+               &lt;xpos&gt;330&lt;/xpos&gt;\r
+               &lt;ypos&gt;522&lt;/ypos&gt;\r
+               &lt;font&gt;Nokia Sans Bold&lt;/font&gt;\r
+               &lt;size&gt;22&lt;/size&gt;\r
+               &lt;color&gt;#fff&lt;/color&gt;\r
+               &lt;bold&gt;true&lt;/bold&gt;\r
+               &lt;uppercase&gt;true&lt;/uppercase&gt;\r
+               &lt;effect name="dropshadow"&gt;\r
+                       &lt;xoffset&gt;0&lt;/xoffset&gt;\r
+                       &lt;yoffset&gt;0&lt;/yoffset&gt;\r
+                       &lt;radius&gt;35&lt;/radius&gt;\r
+                       &lt;color&gt;#a5efff&lt;/color&gt;\r
+               &lt;/effect&gt;\r
+       &lt;/text&gt;\r
+       &lt;text&gt;\r
+       &lt;data&gt;{SPEED}&lt;/data&gt;\r
+               &lt;font&gt;digital7.ttf&lt;/font&gt;\r
+               &lt;size&gt;250&lt;/size&gt;\r
+               &lt;xpos&gt;0&lt;/xpos&gt;\r
+               &lt;ypos&gt;260&lt;/ypos&gt;\r
+               &lt;color&gt;#fff&lt;/color&gt;\r
+               &lt;align&gt;right&lt;/align&gt;\r
+               &lt;width&gt;470&lt;/width&gt;\r
+               &lt;format&gt;%.0f&lt;/format&gt;\r
+               &lt;effect name="dropshadow"&gt;\r
+                       &lt;xoffset&gt;0&lt;/xoffset&gt;\r
+                       &lt;yoffset&gt;0&lt;/yoffset&gt;\r
+                       &lt;radius&gt;35&lt;/radius&gt;\r
+                       &lt;color&gt;#a5efff&lt;/color&gt;\r
+               &lt;/effect&gt;\r
+        &lt;/text&gt;\r
+&lt;/mainscreen&gt;\r
+&lt;/theme&gt;\r
+</pre>\r
+\r
+<h2 id="tag-spec">Tag specification</h2>\r
+\r
+<p>As you can see on the example above, each detailscreen and mainscreen tags consists of other tags that cause something to be drawn on the screen. Each tag contains specific options to alter its look.</p>\r
+\r
+<h3 id="common-options">Common options</h3>\r
+\r
+<p>Common options that work on all tags are listed below.</p>\r
+\r
+<table class="spec">\r
+<tr class="color">\r
+       <th class="col1">Option</th>\r
+       <th>Definition</th>\r
+       <th class="col3">Example</th>\r
+</tr>\r
+<tr>\r
+       <td>xpos</td>\r
+       <td>Defines the x-position of an element in pixels</td>\r
+       <td><pre>&lt;xpos&gt;80&lt;/xpos&gt;</pre></td>\r
+</tr>\r
+<tr class="color">\r
+       <td>ypos</td>\r
+       <td>Defines the y-position of an element in pixels.</td>\r
+       <td><pre>&lt;ypos&gt;40&lt;/xpos&gt;</pre></td>\r
+</tr>\r
+<tr>\r
+       <td>zpos</td>\r
+       <td>Defines the z-index of an element. An element with bigger zpos gets painted over an element with smaller zpos.</td>\r
+       <td><pre>&lt;zpos&gt;5&lt;/xpos&gt;</pre></td>\r
+</tr>\r
+<tr class="color">\r
+       <td>effect</td>\r
+       <td>Defines an effect to used with the element. See <a href="#effects">effects</a> for more details.</td>\r
+       <td><pre>&lt;effect name="blur"&gt;\r
+       &lt;radius&gt;20&lt;/radius&gt;\r
+&lt;/effect&gt;</pre></td>\r
+</tr>\r
+</table>\r
+\r
+<h4 id="effects">Effects</h4>\r
+\r
+<p>Each element can contain one effect which is used every time the element is painted or updated.</p>\r
+\r
+<table class="spec">\r
+<tr class="color">\r
+       <th class="col1">Effect name</th>\r
+       <th>Possible options</th>\r
+       <th class="col3">Example</th>\r
+</tr>\r
+<tr>\r
+       <td>blur</td>\r
+       <td>\r
+               <strong>radius: </strong>changes the blur radius. Bigger radius will cause the element to be blurred more.\r
+       </td>\r
+       <td><pre>&lt;effect name="blur"&gt;\r
+       &lt;radius&gt;20&lt;/radius&gt;\r
+&lt;/effect&gt;</pre></td>\r
+</tr>\r
+<tr class="color">\r
+       <td>dropshadow</td>\r
+       <td>\r
+               <strong>radius: </strong>changes the shadow radius. Bigger radius will cause the element to have bigger and more spread shadow.<br />\r
+               <strong>color: </strong>sets the color of the shadow.<br />\r
+               <strong>xoffset: </strong>shadow's x-distance from the element.<br />\r
+               <strong>yoffset: </strong>shadow's y-distance from the element<br />\r
+       </td>\r
+       <td>\r
+               <pre>&lt;effect name="dropshadow"&gt;\r
+       &lt;xoffset&gt;0&lt;/xoffset&gt;\r
+       &lt;yoffset&gt;0&lt;/yoffset&gt;\r
+       &lt;radius&gt;35&lt;/radius&gt;\r
+       &lt;color&gt;#a5efff&lt;/color&gt;\r
+&lt;/effect&gt;\r
+       </pre>\r
+       </td>\r
+</tr>\r
+<tr>\r
+       <td>opacity</td>\r
+       <td>\r
+               <strong>opacity: </strong>sets the opacity of an element. Value of 1.0 means totally visible and value of 0.0 totally invisible.<br />\r
+       </td>\r
+       <td>\r
+               <pre>&lt;effect name="opacity"&gt;\r
+       &lt;opacity&gt;0.8&lt;/opacity&gt;\r
+&lt;/effect&gt;</pre>\r
+       </td>\r
+</tr>\r
+</table>\r
+\r
+<h3 id="tag-rectangle">Tag: rectangle</h3>\r
+\r
+<p>Rectangle tag draws an rectangle with specified size and color on the screen. Possible options for rectangle are listed below.</p>\r
+\r
+<table class="spec">\r
+<tr class="color">\r
+       <th class="col1">Option</th>\r
+       <th>Definition</th>\r
+       <th class="col3">Example</th>\r
+</tr>\r
+<tr>\r
+       <td>width</td>\r
+       <td>Defines the width of the rectangle.</td>\r
+       <td><pre>&lt;width&gt;600&lt;/width&gt;</pre></td>\r
+</tr>\r
+<tr class="color">\r
+       <td>height</td>\r
+       <td>Defines the height of the rectangle.</td>\r
+       <td><pre>&lt;height&gt;400&lt;/height&gt;</pre></td>\r
+</tr>\r
+<tr>\r
+       <td>color</td>\r
+       <td>Defines color of the rectangle. Color must be in hexadecimal form.</td>\r
+       <td><pre>&lt;color&gt;#2e94b5&lt;/color&gt;</pre></td>\r
+</tr>\r
+</table>\r
+\r
+<p>Example:</p>\r
+\r
+<pre class="code">\r
+&lt;rectangle&gt;\r
+       &lt;xpos&gt;100&lt;/xpos&gt;\r
+       &lt;ypos&gt;100&lt;/ypos&gt;\r
+       &lt;width&gt;300&lt;/width&gt;\r
+       &lt;height&gt;200&lt;/height&gt;\r
+       &lt;color&gt;#fff&lt;/color&gt;\r
+&lt;/rectangle&gt;\r
+</pre>\r
+\r
+\r
+\r
+<h3 id="tag-image">Tag: image</h3>\r
+\r
+<p>Draws an image on specific location on the screen. The image file should be placed in the same .jspeed file as theme.xml.</p>\r
+\r
+<table class="spec">\r
+<tr class="color">\r
+       <th class="col1">Option</th>\r
+       <th>Definition</th>\r
+       <th class="col3">Example</th>\r
+</tr>\r
+<tr>\r
+       <td>width</td>\r
+       <td>Image is resized to this width. If width is set to 0, it is calculated automatically from height to constrain proportions. If both width and height are set to 0 or are not set at all, the image will be painted in its original size.</td>\r
+       <td><pre>&lt;width&gt;600&lt;/width&gt;</pre></td>\r
+</tr>\r
+<tr class="color">\r
+       <td>height</td>\r
+       <td>Image is resized to this width. If height is set to 0, it is calculated automatically from width to constrain proportions.</td>\r
+       <td><pre>&lt;height&gt;400&lt;/height&gt;</pre></td>\r
+</tr>\r
+</table>\r
+\r
+<p>Example:</p>\r
+\r
+<pre class="code">\r
+&lt;image&gt;\r
+       &lt;xpos&gt;100&lt;/xpos&gt;\r
+       &lt;ypos&gt;100&lt;/ypos&gt;\r
+       &lt;width&gt;300&lt;/width&gt;\r
+&lt;/image&gt;\r
+</pre>\r
+\r
+\r
+\r
+\r
+<h3 id="tag-pointer">Tag: pointer</h3>\r
+\r
+<p>Draws a pointer which moves according to current speed. Can be used to draw analog speedometers. The image file should be placed in the same .jspeed file as theme.xml. The xpos and ypos of a pointer are specified as the rotation point of the pointer on screen (usually somewhere in the middle of the screen).</p>\r
+\r
+<table class="spec">\r
+<tr class="color">\r
+       <th class="col1">Option</th>\r
+       <th>Definition</th>\r
+       <th class="col3">Example</th>\r
+</tr>\r
+<tr>\r
+       <td>src</td>\r
+       <td>The image file used to draw the pointer.</td>\r
+       <td><pre>&lt;src&gt;pointer.png&lt;/src&gt;</pre></td>\r
+</tr>\r
+<tr class="color">\r
+       <td>zerospeed</td>\r
+       <td>The minimum speed in km/h of a pointer (usually 0).</td>\r
+       <td><pre>&lt;zerospeed&gt;0&lt;/zerospeed&gt;</pre></td>\r
+</tr>\r
+<tr>\r
+       <td>fullspeed</td>\r
+       <td>The maximum speed of a pointer in km/h. (usually the maximum speed value in analog speedometer).</td>\r
+       <td><pre>&lt;fullspeed&gt;220&lt;/fullspeed&gt;</pre></td>\r
+</tr>\r
+<tr class="color">\r
+       <td>zeroangle</td>\r
+       <td>When speed is at zerospeed or lower, the pointer is rotated this much in degress from its original state.</td>\r
+       <td><pre>&lt;zeroangle&gt;-30&lt;/zeroangle&gt;</pre></td>\r
+</tr>\r
+<tr>\r
+       <td>fullangle</td>\r
+       <td>When speed is at fullspeed or higher, the pointer is rotated this much in degress from its original state.</td>\r
+       <td><pre>&lt;fullangle&gt;210&lt;/fullangle&gt;</pre></td>\r
+</tr>\r
+<tr class="color">\r
+       <td>xrotationpoint</td>\r
+       <td>The pointer rotates around the point defined with xrotationpoint and yrotationpoint. It is usually located inside the pointer image.</td>\r
+       <td><pre>&lt;xrotationpoint&gt;200&lt;/xrotationpoint&gt;</pre></td>\r
+</tr>\r
+<tr>\r
+       <td>yrotationpoint</td>\r
+       <td>The pointer rotates around the point defined with xrotationpoint and yrotationpoint. It is usually located inside the pointer image.</td>\r
+       <td><pre>&lt;yrotationpoint&gt;12&lt;/yrotationpoint&gt;</pre></td>\r
+</tr>\r
+</table>\r
+\r
+<p>Example:</p>\r
+\r
+<pre class="code">\r
+&lt;pointer&gt;\r
+       &lt;src&gt;pointer.png&lt;/src&gt;\r
+       &lt;zeroangle&gt;-20&lt;/zeroangle&gt;\r
+       &lt;fullangle&gt;210&lt;/fullangle&gt;\r
+       &lt;zerospeed&gt;0&lt;/zerospeed&gt;\r
+       &lt;fullspeed&gt;230&lt;/fullspeed&gt;\r
+       &lt;xpos&gt;400&lt;/xpos&gt;\r
+       &lt;ypos&gt;355&lt;/ypos&gt;\r
+       &lt;xrotationpoint&gt;278&lt;/xrotationpoint&gt;\r
+       &lt;yrotationpoint&gt;14&lt;/yrotationpoint&gt;\r
+&lt;/pointer&gt;\r
+</pre>\r
+\r
+\r
+\r
+<h3 id="tag-text">Tag: text</h3>\r
+\r
+<p>Draws a text block on the screen.</p>\r
+\r
+<table class="spec">\r
+<tr class="color">\r
+       <th class="col1">Option</th>\r
+       <th>Definition</th>\r
+       <th class="col3">Example</th>\r
+</tr>\r
+<tr>\r
+       <td>data</td>\r
+       <td>The actual textual data. Can be a plain text (ie. "Speed:") or a special field (ie. "{SPEED}"). Special fields are automatically updated to contain their value in unit which is specified in settings. Possible special fiels are listed below:<br/>\r
+       <strong>{TRIP}: </strong>Trip value.<br />\r
+       <strong>{TOTAL}: </strong>Total travelled kilometers or miles.<br />\r
+       <strong>{SPEED}: </strong>Current speed.<br />\r
+       <strong>{MAXSPEED}: </strong>Maximum speed.<br />\r
+       <strong>{AVGSPEED}: </strong>Average speed.<br />\r
+       <strong>{UNIT}: </strong>Distance unit (km or mi).<br />\r
+       <strong>{SPEEDUNIT}: </strong>Speed unit (km/h or mph).<br />\r
+       <strong>{TIME}: </strong>Current time, formatted according to timeformat tag.<br />\r
+       <strong>{DATE}: </strong>Current date, formatted according to dateformat tag.<br/>\r
+       </td>\r
+       <td><pre>&lt;data&gt;{SPEED}&lt;/data&gt;</pre></td>\r
+</tr>\r
+<tr class="color">\r
+       <td>format</td>\r
+       <td>Special fields trip, total, speed, maxspeed and avgspeed will be printed according to this format. This field should be in <a href="http://en.wikipedia.org/wiki/Printf">prinf</a> format.</td>\r
+       <td><pre>&lt;format&gt;%.1f&lt;/format&gt;</pre></td>\r
+</tr>\r
+<tr>\r
+       <td>width</td>\r
+       <td>The width of the text block.</td>\r
+       <td><pre>&lt;width&gt;200&lt;/width&gt;</pre></td>\r
+</tr>\r
+<tr class="color">\r
+       <td>align</td>\r
+       <td>Text align inside the text block (left, center or right).</td>\r
+       <td><pre>&lt;align&gt;right&lt;/align&gt;</pre></td>\r
+</tr>\r
+<tr>\r
+       <td>color</td>\r
+       <td>Text color in hexadecimal form.</td>\r
+       <td><pre>&lt;color&gt;#000000&lt;/color&gt;</pre></td>\r
+</tr>\r
+<tr class="color">\r
+       <td>size</td>\r
+       <td>Text size in pixels.</td>\r
+       <td><pre>&lt;size&gt;20&lt;/size&gt;</pre></td>\r
+</tr>\r
+<tr>\r
+       <td>font</td>\r
+       <td>Text font. Can be a font file inside the theme file (ie. "somefont.ttf") or a name of a font intalled in system (ie. "Tahoma").</td>\r
+       <td><pre>&lt;font&gt;arial.ttf&lt;/font&gt;</pre></td>\r
+</tr>\r
+<tr class="color">\r
+       <td>bold</td>\r
+       <td>Sets <strong>bold</strong> text.</td>\r
+       <td><pre>&lt;bold&gt;true&lt;/bold&gt;</pre></td>\r
+</tr>\r
+<tr>\r
+       <td>italic</td>\r
+       <td>Sets <em>italic</em> text.</td>\r
+       <td><pre>&lt;italic&gt;true&lt;/italic&gt;</pre></td>\r
+</tr>\r
+<tr class="color">\r
+       <td>uppercase</td>\r
+       <td>Prints all letters in UPPERCASE.</td>\r
+       <td><pre>&lt;uppercase&gt;true&lt;/uppercase&gt;</pre></td>\r
+</tr>\r
+<tr>\r
+       <td>letterspacing</td>\r
+       <td>Sets the spacing between letters.</td>\r
+       <td><pre>&lt;letterspacing&gt;150&lt;/letterspacing&gt;</pre></td>\r
+</tr>\r
+<tr class="color">\r
+       <td>timeformat</td>\r
+       <td>Special field time will be printed according to this format. See <a href="http://doc.qt.nokia.com/4.6/qtime.html#toString">Qt QTime manual</a> for possible expressions.</td>\r
+       <td><pre>&lt;timeformat&gt;hh:mm&lt;/timeformat&gt;</pre></td>\r
+</tr>\r
+<tr>\r
+       <td>dateformat</td>\r
+       <td>Special field date will be printed according to this format. See <a href="http://doc.qt.nokia.com/4.6/qdate.html#toString">Qt QDate manual</a> for possible expressions.</td>\r
+       <td><pre>&lt;dateformat&gt;dd.MM.yyyy&lt;/dateformat&gt;</pre></td>\r
+</tr>\r
+</table>\r
+\r
+<p>Example:</p>\r
+\r
+<pre class="code">\r
+&lt;text&gt;\r
+       &lt;data&gt;{SPEED}&lt;/data&gt;\r
+       &lt;font&gt;digital7.ttf&lt;/font&gt;\r
+       &lt;size&gt;320&lt;/size&gt;\r
+       &lt;xpos&gt;100&lt;/xpos&gt;\r
+       &lt;ypos&gt;75&lt;/ypos&gt;\r
+       &lt;color&gt;#fff&lt;/color&gt;\r
+       &lt;align&gt;right&lt;/align&gt;\r
+       &lt;width&gt;600&lt;/width&gt;\r
+       &lt;format&gt;%.0f&lt;/format&gt;\r
+       &lt;effect name=&quot;dropshadow&quot;&gt;\r
+               &lt;xoffset&gt;0&lt;/xoffset&gt;\r
+               &lt;yoffset&gt;0&lt;/yoffset&gt;\r
+               &lt;radius&gt;35&lt;/radius&gt;\r
+               &lt;color&gt;#a5efff&lt;/color&gt;\r
+       &lt;/effect&gt;\r
+&lt;/text&gt;\r
+\r
+</pre>\r
+\r
+<br class="clear" />\r
+\r
+</div>\r
+\r
+</div>\r
+\r
+<div id="bottom">\r
+\r
+<div id="bottom-content">\r
+\r
+<div class="bottom-box">\r
+\r
+<h3 id="download">Download</h3>\r
+\r
+<p>jSpeed can be downloaded from Maemo extras-devel repository.</p>\r
+\r
+</div>\r
+\r
+<div class="bottom-box">\r
+\r
+<h3>License</h3>\r
+\r
+<p>jSpeed is licensed under the terms of the <a href="http://www.gnu.org/licenses/gpl.txt">GNU General Public License</a>.</p>\r
+\r
+</div>\r
+\r
+<div class="bottom-box">\r
+\r
+<h3>Links</h3>\r
+\r
+<ul>\r
+       <li><a href="https://garage.maemo.org/projects/jspeed/">Project page</a></li>\r
+       <li><a href="http://maemo.org/packages/view/jspeed/">Package overview and changelog</a></li>\r
+       <li><a href="https://garage.maemo.org/tracker/?atid=6134&amp;group_id=1756&amp;func=browse">Bug tracker</a></li>\r
+</ul>\r
+\r
+</div>\r
+\r
+<div id="copyright">\r
+Copyright © 2010 Jesse Hakanen | <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#101;&#115;&#115;&#101;&#104;&#97;&#107;&#97;&#110;&#101;&#110;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;">Contact</a>\r
+</div>\r
+\r
+</div>\r
+\r
+</div>\r
+\r
+</body>\r
+       \r
+</html>
\ No newline at end of file
diff --git a/www/themes.html b/www/themes.html
new file mode 100644 (file)
index 0000000..2f87108
--- /dev/null
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi">\r
+\r
+<head>\r
+\r
+<title>jSpeed - Highly customizable speedometer application</title>\r
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />\r
+<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>\r
+<script type="text/javascript" src="fancybox/jquery.mousewheel-3.0.2.pack.js"></script>\r
+<script type="text/javascript" src="fancybox/jquery.fancybox-1.3.1.js"></script>\r
+<script type="text/javascript" src="js/script.js"></script>\r
+<link rel="stylesheet" type="text/css" href="fancybox/jquery.fancybox-1.3.1.css" media="all" />\r
+<link rel="stylesheet" href="css/style.css" media="all" type="text/css" />\r
+\r
+</head>\r
+       \r
+<body>\r
+\r
+<ul id="mainmenu">\r
+       <li><a href="http://jspeed.garage.maemo.org/">Info</a></li>\r
+       <li><a href="#download">Download</a></li>\r
+       <li class="selected"><a href="http://jspeed.garage.maemo.org/themes.html">Themes</a></li>\r
+       <li><a href="http://jspeed.garage.maemo.org/theme-howto.html">Theme howto</a></li>\r
+</ul>\r
+\r
+<div id="main">\r
+\r
+<div id="main-content">\r
+\r
+<h1>Theme gallery</h1>\r
+\r
+<p>Some of these themes come installed in jSpeed by default. If you want your theme listed here, just <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#101;&#115;&#115;&#101;&#104;&#97;&#107;&#97;&#110;&#101;&#110;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;">email me</a>.</p>\r
+\r
+<div class="theme">\r
+<div>Default</div>\r
+<a href="img/themes/default.jpg" class="thumb"><img src="img/themes/default_thumb.jpg" alt="Default" title="Default" /></a>\r
+<a href="themes/default.jspeed" title="Default" class="download">Download</a>\r
+</div>\r
+\r
+<div class="theme">\r
+<div>Dark</div>\r
+<a href="img/themes/dark.jpg" class="thumb"><img src="img/themes/dark_thumb.jpg" alt="Dark" title="Dark" /></a>\r
+<a href="themes/dark.jspeed" title="Dark" class="download">Download</a>\r
+</div>\r
+\r
+<div class="theme">\r
+<div>Graphical</div>\r
+<a href="img/themes/graphical.jpg" class="thumb"><img src="img/themes/graphical_thumb.jpg" alt="Graphical" title="Graphical" /></a>\r
+<a href="themes/graphical.jspeed" title="Graphical" class="download">Download</a>\r
+</div>\r
+\r
+\r
+<div class="theme">\r
+<div>White</div>\r
+<a href="img/themes/white.jpg" class="thumb"><img src="img/themes/white_thumb.jpg" alt="White" title="White" /></a>\r
+<a href="themes/white.jspeed" title="White" class="download">Download</a>\r
+</div>\r
+\r
+\r
+\r
+<br class="clear" />\r
+\r
+</div>\r
+\r
+</div>\r
+\r
+<div id="bottom">\r
+\r
+<div id="bottom-content">\r
+\r
+<div class="bottom-box">\r
+\r
+<h3 id="download">Download</h3>\r
+\r
+<p>jSpeed can be downloaded from Maemo extras-devel repository.</p>\r
+\r
+</div>\r
+\r
+<div class="bottom-box">\r
+\r
+<h3>License</h3>\r
+\r
+<p>jSpeed is licensed under the terms of the <a href="http://www.gnu.org/licenses/gpl.txt">GNU General Public License</a>.</p>\r
+\r
+</div>\r
+\r
+<div class="bottom-box">\r
+\r
+<h3>Links</h3>\r
+\r
+<ul>\r
+       <li><a href="https://garage.maemo.org/projects/jspeed/">Project page</a></li>\r
+       <li><a href="http://maemo.org/packages/view/jspeed/">Package overview and changelog</a></li>\r
+       <li><a href="https://garage.maemo.org/tracker/?atid=6134&amp;group_id=1756&amp;func=browse">Bug tracker</a></li>\r
+</ul>\r
+\r
+</div>\r
+\r
+<div id="copyright">\r
+Copyright © 2010 Jesse Hakanen | <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#101;&#115;&#115;&#101;&#104;&#97;&#107;&#97;&#110;&#101;&#110;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;">Contact</a>\r
+</div>\r
+\r
+</div>\r
+\r
+</div>\r
+\r
+</body>\r
+       \r
+</html>
\ No newline at end of file
diff --git a/www/themes/dark.jspeed b/www/themes/dark.jspeed
new file mode 100644 (file)
index 0000000..30131ed
Binary files /dev/null and b/www/themes/dark.jspeed differ
diff --git a/www/themes/default.jspeed b/www/themes/default.jspeed
new file mode 100644 (file)
index 0000000..f24f472
Binary files /dev/null and b/www/themes/default.jspeed differ
diff --git a/www/themes/graphical.jspeed b/www/themes/graphical.jspeed
new file mode 100644 (file)
index 0000000..eb9b245
Binary files /dev/null and b/www/themes/graphical.jspeed differ
diff --git a/www/themes/white.jspeed b/www/themes/white.jspeed
new file mode 100644 (file)
index 0000000..171f527
Binary files /dev/null and b/www/themes/white.jspeed differ