From svnadmin@urchin.earth.li Wed Aug 13 23:44:40 2008 From: svnadmin@urchin.earth.li To: openguides-commits@lists.openguides.org Subject: [openguides-commits] r1205 - in website/preview: . talks talks/yapc-eu-2008 talks/yapc-eu-2008/ui talks/yapc-eu-2008/ui/default Date: Wed, 13 Aug 2008 23:44:40 +0100 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3947028225924743198==" --===============3947028225924743198== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: dom Date: 2008-08-13 23:44:40 +0100 (Wed, 13 Aug 2008) New Revision: 1205 Added: website/preview/talks/ website/preview/talks/yapc-eu-2008/ website/preview/talks/yapc-eu-2008/index.html website/preview/talks/yapc-eu-2008/ui/ website/preview/talks/yapc-eu-2008/ui/default/ website/preview/talks/yapc-eu-2008/ui/default/blank.gif website/preview/talks/yapc-eu-2008/ui/default/bodybg.gif website/preview/talks/yapc-eu-2008/ui/default/framing.css website/preview/talks/yapc-eu-2008/ui/default/iepngfix.htc website/preview/talks/yapc-eu-2008/ui/default/opera.css website/preview/talks/yapc-eu-2008/ui/default/outline.css website/preview/talks/yapc-eu-2008/ui/default/pretty.css website/preview/talks/yapc-eu-2008/ui/default/print.css website/preview/talks/yapc-eu-2008/ui/default/s5-core.css website/preview/talks/yapc-eu-2008/ui/default/slides.css website/preview/talks/yapc-eu-2008/ui/default/slides.js Log: add talk Added: website/preview/talks/yapc-eu-2008/index.html =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- website/preview/talks/yapc-eu-2008/index.html (re= v 0) +++ website/preview/talks/yapc-eu-2008/index.html 2008-08-13 22:44:40 UTC (re= v 1205) @@ -0,0 +1,138 @@ + + + + + +OpenGuides in five minutes + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+

YAPC::EU 2008, Copenhagen, Denmark

+

OpenGuides in five minutes

+
+ +
+ + +
+ +
+

OpenGuides in five minutes

+

Dominic Hargreaves

+

OpenGuides Project

+
+ + +
+

OpenGuides is...

+
    +
  • ... a wiki
  • +
  • ... many wikis
  • +
  • ... a Perl project (CPAN)
  • +
+
+ +
+

OpenGuides is...

+
    +
  • ... a wiki with well-defined data types
  • +
  • ... targetted at a set of needs
  • +
+
+ +
+

OpenGuides is...

+
    +
  • ... a collaborative city guide
  • +
+
+ +
+

Some facts

+
    +
  • 24 guides
  • +
  • London guide: 16,000 edits to 3,500 pages
  • +
  • There's even a Copenhagen guide!
  • +
+
+ +
+

What we need

+
    +
  • Developers
  • +
  • Guide admins
  • +
  • Content creators
  • +
+
+ +
+

an Open Problem

+
    +
  • Satisfying the demands of a collaborative web application is definitely = an Open Problem
  • +
  • 93 open tickets
  • +
+
+ +
+

Current goals

+
    +
  • Much better mobile device support
  • +
  • Single portal site that lets you tap into local guides automatically
  • +
  • Better default styling
  • +
  • Some web UI modernisations
  • +
  • Photo integration
  • +
+ +
+

Guide admins

+
    +
  • Local communities
  • +
  • Setting up application on a server you already have
  • +
  • Looking after the content
  • +
+
+ +
+

Content creators

+
    +
  • Local knowledge
  • +
  • If you've used a wiki..
  • +
  • Take a camera and GPS
  • +
+
+ +
+

Get involved

+ +
+ +
+ + + Added: website/preview/talks/yapc-eu-2008/ui/default/blank.gif =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D (Binary files differ) Property changes on: website/preview/talks/yapc-eu-2008/ui/default/blank.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: website/preview/talks/yapc-eu-2008/ui/default/bodybg.gif =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D (Binary files differ) Property changes on: website/preview/talks/yapc-eu-2008/ui/default/bodybg.gif ___________________________________________________________________ Name: svn:executable + * Name: svn:mime-type + application/octet-stream Added: website/preview/talks/yapc-eu-2008/ui/default/framing.css =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- website/preview/talks/yapc-eu-2008/ui/default/framing.css = (rev 0) +++ website/preview/talks/yapc-eu-2008/ui/default/framing.css 2008-08-13 22:4= 4:40 UTC (rev 1205) @@ -0,0 +1,23 @@ +/* The following styles size, place, and layer the slide components. + Edit these if you want to change the overall slide layout. + The commented lines can be uncommented (and modified, if necessary)=20 + to help you with the rearrangement process. */ + +/* target =3D 1024x768 */ + +div#header, div#footer, .slide {width: 100%; top: 0; left: 0;} +div#header {top: 0; height: 3em; z-index: 1;} +div#footer {top: auto; bottom: 0; height: 2.5em; z-index: 5;} +.slide {top: 0; width: 92%; padding: 3.5em 4% 4%; z-index: 2; list-style: n= one;} +div#controls {left: 50%; bottom: 0; width: 50%; z-index: 100;} +div#controls form {position: absolute; bottom: 0; right: 0; width: 100%; + margin: 0;} +#currentSlide {position: absolute; width: 10%; left: 45%; bottom: 1em; z-ind= ex: 10;} +html>body #currentSlide {position: fixed;} + +/* +div#header {background: #FCC;} +div#footer {background: #CCF;} +div#controls {background: #BBD;} +div#currentSlide {background: #FFC;} +*/ Added: website/preview/talks/yapc-eu-2008/ui/default/iepngfix.htc =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- website/preview/talks/yapc-eu-2008/ui/default/iepngfix.htc = (rev 0) +++ website/preview/talks/yapc-eu-2008/ui/default/iepngfix.htc 2008-08-13 22:= 44:40 UTC (rev 1205) @@ -0,0 +1,42 @@ + + + + + \ No newline at end of file Added: website/preview/talks/yapc-eu-2008/ui/default/opera.css =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- website/preview/talks/yapc-eu-2008/ui/default/opera.css = (rev 0) +++ website/preview/talks/yapc-eu-2008/ui/default/opera.css 2008-08-13 22:44:= 40 UTC (rev 1205) @@ -0,0 +1,7 @@ +/* DO NOT CHANGE THESE unless you really want to break Opera Show */ +.slide { + visibility: visible !important; + position: static !important; + page-break-before: always; +} +#slide0 {page-break-before: avoid;} Added: website/preview/talks/yapc-eu-2008/ui/default/outline.css =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- website/preview/talks/yapc-eu-2008/ui/default/outline.css = (rev 0) +++ website/preview/talks/yapc-eu-2008/ui/default/outline.css 2008-08-13 22:4= 4:40 UTC (rev 1205) @@ -0,0 +1,15 @@ +/* don't change this unless you want the layout stuff to show up in the outl= ine view! */ + +.layout div, #footer *, #controlForm * {display: none;} +#footer, #controls, #controlForm, #navLinks, #toggle { + display: block; visibility: visible; margin: 0; padding: 0;} +#toggle {float: right; padding: 0.5em;} +html>body #toggle {position: fixed; top: 0; right: 0;} + +/* making the outline look pretty-ish */ + +#slide0 h1, #slide0 h2, #slide0 h3, #slide0 h4 {border: none; margin: 0;} +#slide0 h1 {padding-top: 1.5em;} +.slide h1 {margin: 1.5em 0 0; padding-top: 0.25em; + border-top: 1px solid #888; border-bottom: 1px solid #AAA;} +#toggle {border: 1px solid; border-width: 0 0 1px 1px; background: #FFF;} Added: website/preview/talks/yapc-eu-2008/ui/default/pretty.css =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- website/preview/talks/yapc-eu-2008/ui/default/pretty.css = (rev 0) +++ website/preview/talks/yapc-eu-2008/ui/default/pretty.css 2008-08-13 22:44= :40 UTC (rev 1205) @@ -0,0 +1,86 @@ +/* Following are the presentation styles -- edit away! */ + +body {background: #FFF url(bodybg.gif) -16px 0 no-repeat; color: #000; font-= size: 2em;} +:link, :visited {text-decoration: none; color: #00C;} +#controls :active {color: #88A !important;} +#controls :focus {outline: 1px dotted #227;} +h1, h2, h3, h4 {font-size: 100%; margin: 0; padding: 0; font-weight: inherit= ;} +ul, pre {margin: 0; line-height: 1em;} +html, body {margin: 0; padding: 0;} + +blockquote, q {font-style: italic;} +blockquote {padding: 0 2em 0.5em; margin: 0 1.5em 0.5em; text-align: center;= font-size: 1em;} +blockquote p {margin: 0;} +blockquote i {font-style: normal;} +blockquote b {display: block; margin-top: 0.5em; font-weight: normal; font-s= ize: smaller; font-style: normal;} +blockquote b i {font-style: italic;} + +kbd {font-weight: bold; font-size: 1em;} +sup {font-size: smaller; line-height: 1px;} + +.slide code {padding: 2px 0.25em; font-weight: bold; color: #533;} +.slide code.bad, code del {color: red;} +.slide code.old {color: silver;} +.slide pre {padding: 0; margin: 0.25em 0 0.5em 0.5em; color: #533; font-size= : 90%;} +.slide pre code {display: block;} +.slide ul {margin-left: 5%; margin-right: 7%; list-style: disc;} +.slide li {margin-top: 0.75em; margin-right: 0;} +.slide ul ul {line-height: 1;} +.slide ul ul li {margin: .2em; font-size: 85%; list-style: square;} +.slide img.leader {display: block; margin: 0 auto;} + +div#header, div#footer {background: #005; color: #AAB; + font-family: Verdana, Helvetica, sans-serif;} +div#header {background: #005 url(bodybg.gif) -16px 0 no-repeat; + line-height: 1px;} +div#footer {font-size: 0.5em; font-weight: bold; padding: 1em 0;} +#footer h1, #footer h2 {display: block; padding: 0 1em;} +#footer h2 {font-style: italic;} + +div.long {font-size: 0.75em;} +.slide h1 {position: absolute; top: 0.7em; left: 87px; z-index: 1; + margin: 0; padding: 0.3em 0 0 50px; white-space: nowrap; + font: bold 150%/1em Helvetica, sans-serif; text-transform: capitalize; + color: #DDE; background: #005;} +.slide h3 {font-size: 130%;} +h1 abbr {font-variant: small-caps;} + +div#controls {position: absolute; left: 50%; bottom: 0; + width: 50%; + text-align: right; font: bold 0.9em Verdana, Helvetica, sans-serif;} +html>body div#controls {position: fixed; padding: 0 0 1em 0; + top: auto;} +div#controls form {position: absolute; bottom: 0; right: 0; width: 100%; + margin: 0; padding: 0;} +#controls #navLinks a {padding: 0; margin: 0 0.5em;=20 + background: #005; border: none; color: #779;=20 + cursor: pointer;} +#controls #navList {height: 1em;} +#controls #navList #jumplist {position: absolute; bottom: 0; right: 0; backg= round: #DDD; color: #227;} + +#currentSlide {text-align: center; font-size: 0.5em; color: #449;} + +#slide0 {padding-top: 3.5em; font-size: 90%;} +#slide0 h1 {position: static; margin: 1em 0 0; padding: 0; + font: bold 2em Helvetica, sans-serif; white-space: normal; + color: #000; background: transparent;} +#slide0 h2 {font: bold italic 1em Helvetica, sans-serif; margin: 0.25em;} +#slide0 h3 {margin-top: 1.5em; font-size: 1.5em;} +#slide0 h4 {margin-top: 0; font-size: 1em;} + +ul.urls {list-style: none; display: inline; margin: 0;} +.urls li {display: inline; margin: 0;} +.note {display: none;} +.external {border-bottom: 1px dotted gray;} +html>body .external {border-bottom: none;} +.external:after {content: " \274F"; font-size: smaller; color: #77B;} + +.incremental, .incremental *, .incremental *:after {color: #DDE; visibility:= visible;} +img.incremental {visibility: hidden;} +.slide .current {color: #B02;} + + +/* diagnostics + +li:after {content: " [" attr(class) "]"; color: #F88;} + */ \ No newline at end of file Added: website/preview/talks/yapc-eu-2008/ui/default/print.css =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- website/preview/talks/yapc-eu-2008/ui/default/print.css = (rev 0) +++ website/preview/talks/yapc-eu-2008/ui/default/print.css 2008-08-13 22:44:= 40 UTC (rev 1205) @@ -0,0 +1,24 @@ +/* The following rule is necessary to have all slides appear in print! DO NO= T REMOVE IT! */ +.slide, ul {page-break-inside: avoid; visibility: visible !important;} +h1 {page-break-after: avoid;} + +body {font-size: 12pt; background: white;} +* {color: black;} + +#slide0 h1 {font-size: 200%; border: none; margin: 0.5em 0 0.25em;} +#slide0 h3 {margin: 0; padding: 0;} +#slide0 h4 {margin: 0 0 0.5em; padding: 0;} +#slide0 {margin-bottom: 3em;} + +h1 {border-top: 2pt solid gray; border-bottom: 1px dotted silver;} +.extra {background: transparent !important;} +div.extra, pre.extra, .example {font-size: 10pt; color: #333;} +ul.extra a {font-weight: bold;} +p.example {display: none;} + +#header {display: none;} +#footer h1 {margin: 0; border-bottom: 1px solid; color: gray; font-style: it= alic;} +#footer h2, #controls {display: none;} + +/* The following rule keeps the layout stuff out of print. Remove at your o= wn risk! */ +.layout, .layout * {display: none !important;} Added: website/preview/talks/yapc-eu-2008/ui/default/s5-core.css =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- website/preview/talks/yapc-eu-2008/ui/default/s5-core.css = (rev 0) +++ website/preview/talks/yapc-eu-2008/ui/default/s5-core.css 2008-08-13 22:4= 4:40 UTC (rev 1205) @@ -0,0 +1,9 @@ +/* Do not edit or override these styles! The system will likely break if you= do. */ + +div#header, div#footer, div#controls, .slide {position: absolute;} +html>body div#header, html>body div#footer,=20 + html>body div#controls, html>body .slide {position: fixed;} +.handout {display: none;} +.layout {display: block;} +.slide, .hideme, .incremental {visibility: hidden;} +#slide0 {visibility: visible;} Added: website/preview/talks/yapc-eu-2008/ui/default/slides.css =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- website/preview/talks/yapc-eu-2008/ui/default/slides.css = (rev 0) +++ website/preview/talks/yapc-eu-2008/ui/default/slides.css 2008-08-13 22:44= :40 UTC (rev 1205) @@ -0,0 +1,3 @@ +(a)import url(s5-core.css); /* required to make the slide show run at all */ +(a)import url(framing.css); /* sets basic placement and size of slide compon= ents */ +(a)import url(pretty.css); /* stuff that makes the slides look better than = blah */ \ No newline at end of file Added: website/preview/talks/yapc-eu-2008/ui/default/slides.js =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- website/preview/talks/yapc-eu-2008/ui/default/slides.js = (rev 0) +++ website/preview/talks/yapc-eu-2008/ui/default/slides.js 2008-08-13 22:44:= 40 UTC (rev 1205) @@ -0,0 +1,553 @@ +// S5 v1.1 slides.js -- released into the Public Domain +// +// Please see http://www.meyerweb.com/eric/tools/s5/credits.html for informa= tion=20 +// about all the wonderful and talented contributors to this code! + +var undef; +var slideCSS =3D ''; +var snum =3D 0; +var smax =3D 1; +var incpos =3D 0; +var number =3D undef; +var s5mode =3D true; +var defaultView =3D 'slideshow'; +var controlVis =3D 'visible'; + +var isIE =3D navigator.appName =3D=3D 'Microsoft Internet Explorer' && navig= ator.userAgent.indexOf('Opera') < 1 ? 1 : 0; +var isOp =3D navigator.userAgent.indexOf('Opera') > -1 ? 1 : 0; +var isGe =3D navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgen= t.indexOf('Safari') < 1 ? 1 : 0; + +function hasClass(object, className) { + if (!object.className) return false; + return (object.className.search('(^|\\s)' + className + '(\\s|$)') !=3D -1); +} + +function hasValue(object, value) { + if (!object) return false; + return (object.search('(^|\\s)' + value + '(\\s|$)') !=3D -1); +} + +function removeClass(object,className) { + if (!object) return; + object.className =3D object.className.replace(new RegExp('(^|\\s)'+classNam= e+'(\\s|$)'), RegExp.$1+RegExp.$2); +} + +function addClass(object,className) { + if (!object || hasClass(object, className)) return; + if (object.className) { + object.className +=3D ' '+className; + } else { + object.className =3D className; + } +} + +function GetElementsWithClassName(elementName,className) { + var allElements =3D document.getElementsByTagName(elementName); + var elemColl =3D new Array(); + for (var i =3D 0; i< allElements.length; i++) { + if (hasClass(allElements[i], className)) { + elemColl[elemColl.length] =3D allElements[i]; + } + } + return elemColl; +} + +function isParentOrSelf(element, id) { + if (element =3D=3D null || element.nodeName=3D=3D'BODY') return false; + else if (element.id =3D=3D id) return true; + else return isParentOrSelf(element.parentNode, id); +} + +function nodeValue(node) { + var result =3D ""; + if (node.nodeType =3D=3D 1) { + var children =3D node.childNodes; + for (var i =3D 0; i < children.length; ++i) { + result +=3D nodeValue(children[i]); + } =09 + } + else if (node.nodeType =3D=3D 3) { + result =3D node.nodeValue; + } + return(result); +} + +function slideLabel() { + var slideColl =3D GetElementsWithClassName('*','slide'); + var list =3D document.getElementById('jumplist'); + smax =3D slideColl.length; + for (var n =3D 0; n < smax; n++) { + var obj =3D slideColl[n]; + + var did =3D 'slide' + n.toString(); + obj.setAttribute('id',did); + if (isOp) continue; + + var otext =3D ''; + var menu =3D obj.firstChild; + if (!menu) continue; // to cope with empty slides + while (menu && menu.nodeType =3D=3D 3) { + menu =3D menu.nextSibling; + } + if (!menu) continue; // to cope with slides with only text nodes + + var menunodes =3D menu.childNodes; + for (var o =3D 0; o < menunodes.length; o++) { + otext +=3D nodeValue(menunodes[o]); + } + list.options[list.length] =3D new Option(n + ' : ' + otext, n); + } +} + +function currentSlide() { + var cs; + if (document.getElementById) { + cs =3D document.getElementById('currentSlide'); + } else { + cs =3D document.currentSlide; + } + cs.innerHTML =3D '' + snum + '<\/span> ' +=20 + '\/<\/span> ' +=20 + '' + (smax-1) + '<\/span>'; + if (snum =3D=3D 0) { + cs.style.visibility =3D 'hidden'; + } else { + cs.style.visibility =3D 'visible'; + } +} + +function go(step) { + if (document.getElementById('slideProj').disabled || step =3D=3D 0) return; + var jl =3D document.getElementById('jumplist'); + var cid =3D 'slide' + snum; + var ce =3D document.getElementById(cid); + if (incrementals[snum].length > 0) { + for (var i =3D 0; i < incrementals[snum].length; i++) { + removeClass(incrementals[snum][i], 'current'); + removeClass(incrementals[snum][i], 'incremental'); + } + } + if (step !=3D 'j') { + snum +=3D step; + lmax =3D smax - 1; + if (snum > lmax) snum =3D lmax; + if (snum < 0) snum =3D 0; + } else + snum =3D parseInt(jl.value); + var nid =3D 'slide' + snum; + var ne =3D document.getElementById(nid); + if (!ne) { + ne =3D document.getElementById('slide0'); + snum =3D 0; + } + if (step < 0) {incpos =3D incrementals[snum].length} else {incpos =3D 0;} + if (incrementals[snum].length > 0 && incpos =3D=3D 0) { + for (var i =3D 0; i < incrementals[snum].length; i++) { + if (hasClass(incrementals[snum][i], 'current')) + incpos =3D i + 1; + else + addClass(incrementals[snum][i], 'incremental'); + } + } + if (incrementals[snum].length > 0 && incpos > 0) + addClass(incrementals[snum][incpos - 1], 'current'); + ce.style.visibility =3D 'hidden'; + ne.style.visibility =3D 'visible'; + jl.selectedIndex =3D snum; + currentSlide(); + number =3D 0; +} + +function goTo(target) { + if (target >=3D smax || target =3D=3D snum) return; + go(target - snum); +} + +function subgo(step) { + if (step > 0) { + removeClass(incrementals[snum][incpos - 1],'current'); + removeClass(incrementals[snum][incpos], 'incremental'); + addClass(incrementals[snum][incpos],'current'); + incpos++; + } else { + incpos--; + removeClass(incrementals[snum][incpos],'current'); + addClass(incrementals[snum][incpos], 'incremental'); + addClass(incrementals[snum][incpos - 1],'current'); + } +} + +function toggle() { + var slideColl =3D GetElementsWithClassName('*','slide'); + var slides =3D document.getElementById('slideProj'); + var outline =3D document.getElementById('outlineStyle'); + if (!slides.disabled) { + slides.disabled =3D true; + outline.disabled =3D false; + s5mode =3D false; + fontSize('1em'); + for (var n =3D 0; n < smax; n++) { + var slide =3D slideColl[n]; + slide.style.visibility =3D 'visible'; + } + } else { + slides.disabled =3D false; + outline.disabled =3D true; + s5mode =3D true; + fontScale(); + for (var n =3D 0; n < smax; n++) { + var slide =3D slideColl[n]; + slide.style.visibility =3D 'hidden'; + } + slideColl[snum].style.visibility =3D 'visible'; + } +} + +function showHide(action) { + var obj =3D GetElementsWithClassName('*','hideme')[0]; + switch (action) { + case 's': obj.style.visibility =3D 'visible'; break; + case 'h': obj.style.visibility =3D 'hidden'; break; + case 'k': + if (obj.style.visibility !=3D 'visible') { + obj.style.visibility =3D 'visible'; + } else { + obj.style.visibility =3D 'hidden'; + } + break; + } +} + +// 'keys' code adapted from MozPoint (http://mozpoint.mozdev.org/) +function keys(key) { + if (!key) { + key =3D event; + key.which =3D key.keyCode; + } + if (key.which =3D=3D 84) { + toggle(); + return; + } + if (s5mode) { + switch (key.which) { + case 10: // return + case 13: // enter + if (window.event && isParentOrSelf(window.event.srcElement, 'controls'))= return; + if (key.target && isParentOrSelf(key.target, 'controls')) return; + if(number !=3D undef) { + goTo(number); + break; + } + case 32: // spacebar + case 34: // page down + case 39: // rightkey + case 40: // downkey + if(number !=3D undef) { + go(number); + } else if (!incrementals[snum] || incpos >=3D incrementals[snum].length)= { + go(1); + } else { + subgo(1); + } + break; + case 33: // page up + case 37: // leftkey + case 38: // upkey + if(number !=3D undef) { + go(-1 * number); + } else if (!incrementals[snum] || incpos <=3D 0) { + go(-1); + } else { + subgo(-1); + } + break; + case 36: // home + goTo(0); + break; + case 35: // end + goTo(smax-1); + break; + case 67: // c + showHide('k'); + break; + } + if (key.which < 48 || key.which > 57) { + number =3D undef; + } else { + if (window.event && isParentOrSelf(window.event.srcElement, 'controls')) = return; + if (key.target && isParentOrSelf(key.target, 'controls')) return; + number =3D (((number !=3D undef) ? number : 0) * 10) + (key.which - 48); + } + } + return false; +} + +function clicker(e) { + number =3D undef; + var target; + if (window.event) { + target =3D window.event.srcElement; + e =3D window.event; + } else target =3D e.target; + if (target.getAttribute('href') !=3D null || hasValue(target.rel, 'external= ') || isParentOrSelf(target, 'controls') || isParentOrSelf(target,'embed') ||= isParentOrSelf(target,'object')) return true; + if (!e.which || e.which =3D=3D 1) { + if (!incrementals[snum] || incpos >=3D incrementals[snum].length) { + go(1); + } else { + subgo(1); + } + } +} + +function findSlide(hash) { + var target =3D null; + var slides =3D GetElementsWithClassName('*','slide'); + for (var i =3D 0; i < slides.length; i++) { + var targetSlide =3D slides[i]; + if ( (targetSlide.name && targetSlide.name =3D=3D hash) + || (targetSlide.id && targetSlide.id =3D=3D hash) ) { + target =3D targetSlide; + break; + } + } + while(target !=3D null && target.nodeName !=3D 'BODY') { + if (hasClass(target, 'slide')) { + return parseInt(target.id.slice(5)); + } + target =3D target.parentNode; + } + return null; +} + +function slideJump() { + if (window.location.hash =3D=3D null) return; + var sregex =3D /^#slide(\d+)$/; + var matches =3D sregex.exec(window.location.hash); + var dest =3D null; + if (matches !=3D null) { + dest =3D parseInt(matches[1]); + } else { + dest =3D findSlide(window.location.hash.slice(1)); + } + if (dest !=3D null) + go(dest - snum); +} + +function fixLinks() { + var thisUri =3D window.location.href; + thisUri =3D thisUri.slice(0, thisUri.length - window.location.hash.length); + var aelements =3D document.getElementsByTagName('A'); + for (var i =3D 0; i < aelements.length; i++) { + var a =3D aelements[i].href; + var slideID =3D a.match('\#slide[0-9]{1,2}'); + if ((slideID) && (slideID[0].slice(0,1) =3D=3D '#')) { + var dest =3D findSlide(slideID[0].slice(1)); + if (dest !=3D null) { + if (aelements[i].addEventListener) { + aelements[i].addEventListener("click", new Function("e", + "if (document.getElementById('slideProj').disabled) return;" + + "go("+dest+" - snum); " + + "if (e.preventDefault) e.preventDefault();"), true); + } else if (aelements[i].attachEvent) { + aelements[i].attachEvent("onclick", new Function("", + "if (document.getElementById('slideProj').disabled) return;" + + "go("+dest+" - snum); " + + "event.returnValue =3D false;")); + } + } + } + } +} + +function externalLinks() { + if (!document.getElementsByTagName) return; + var anchors =3D document.getElementsByTagName('a'); + for (var i=3D0; i' + + '
' + + 'Ø<\/a>= ' + + '«<\/a>' + + '»<\/a>' + + '