package Spork::S5ThemePixel;
use Spork::S5Theme -Base;
our $VERSION = '0.01';

__DATA__

=head1 NAME

  Spork::S5ThemePixel - Pixel Theme for Spork::S5

=head1 DESCRIPTION

Pixel Theme for Spork::S5 written by Martin Hense

=head1 COPYRIGHT

Copyright 2005 by Florian Merges <fmerges@cpan.org>

This program is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

See <http://www.perl.com/perl/misc/Artistic.html>

=cut

__ui/framing.css__
/* The following styles size and place the slide components.
   Edit them if you want to change the overall slide layout.
   The commented lines can be uncommented (and modified, if necessary) 
    to help you with the rearrangement process. */

div#header, div#footer, div.slide {width: 100%; top: 0; left: 0;}
div#header {top: 0; height: 1em;}
div#footer {top: auto; bottom: 0; height: 2.5em;}
div.slide {top: 0; width: 92%; padding: 3.5em 4% 4%;}
/*div#controls {left: 50%; top: 0; width: 50%; height: 100%;}
#footer>*/
div#controls {bottom: 0; top: auto; height: auto;}

div#controls form {position: absolute; bottom: 0; right: 0; width: 100%;
  margin: 0;}
div#currentSlide {position: absolute; left: -500px; bottom: 1em; width: 130px; z-index: 10;}
/*html>body 
#currentSlide {position: fixed;}*/

/*
div#header {background: #FCC;}
div#footer {background: #CCF;}
div#controls {background: #BBD;}
div#currentSlide {background: #FFC;}
*/
__ui/opera.css__
/* DO NOT CHANGE THESE unless you really want to break Opera Show */
div.slide {
	visibility: visible !important;
	position: static !important;
	page-break-before: always;
}
#slide0 {page-break-before: avoid;}
__ui/pretty.css__
/* Pixel Theme 2004 by Martin Hense ::: www.lounge7.de */

/* Following are the presentation styles -- edit away!
   Note that the 'body' font size may have to be changed if the resolution is
    different than expected. */

body {background: transparent url(pixelbg.gif) repeat-y; color: #08093F; font-size: 1.8em;}
:link, :visited {text-decoration: none;}
#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-size: smaller; font-style: normal;}
blockquote b i {font-style: italic;}

kbd {font-weight: bold; font-size: 1em;}
sup {font-size: smaller; line-height: 1px;}

code {padding: 2px 0.25em; font-weight: bold; color: #533;}
code.bad, code del {color: red;}
code.old {color: silver;}
pre {padding: 0; margin: 0.25em 0 0.5em 0.5em; color: #533; font-size: 90%;}
pre code {display: block;}
ul {margin-right: 7%; margin-left: 50px; list-style: square;}
li {margin-top: 0.75em; margin-right: 0;}
ul ul {line-height: 1;}
ul ul li {margin: .2em; font-size: 85%; list-style: square;}
img.leader {display: block; margin: 0 auto;}

div#header, div#footer {background: #005; color: #646587;
  font-family: Verdana, Helvetica, sans-serif;}
div#header {background: transparent url(pixelheader.jpg) 0 0 no-repeat; height: 75px;}
div#footer {font-size: 0.5em; font-weight: bold; padding: 1em 0; border-top: 1px solid #08093F; background: #fff;}
#footer h1, #footer h2 {display: block; padding: 0 1em;}
#footer h2 {font-style: italic;}

div.long {font-size: 0.75em;}
.slide {font-family: Verdana, Helvetica, Arial, sans-serif;}
.slide h1 {position: absolute; z-index: 1;
  margin: 0; padding: 0.3em 0 0 50px; white-space: nowrap;
  font: bold 150%/1em Helvetica, sans-serif; text-transform: capitalize;
  top: 1.4em; left: 2%;
  color: #08093F; background: transparent;}
.slide h3 {font-size: 130%;}
h1 abbr {font-variant: small-caps;}

div#controls {position: absolute; z-index: 1; left: 50%; top: 0;
  width: 50%; height: 100%;
  text-align: right;}
#footer>div#controls {position: fixed; bottom: 0; padding: 1em 0;
  top: auto; height: auto;}
div#controls form {position: absolute; bottom: 0; right: 0; width: 100%;
  margin: 0; padding: 0;}
div#controls a {font-size: 2em; padding: 0; margin: 0 0.5em; 
  border: none;
  cursor: pointer;
  background: #fff; color: #646587;}
div#controls select {visibility: hidden; background: #DDD; color: #227;}
div#controls div:hover select {visibility: visible;}

#currentSlide {text-align: center; font-size: 0.5em; color: #646587;
   font-family: Verdana, Helvetica, sans-serif; font-weight: bold;}

#slide0 {padding-top: 3.5em; font-size: 90%;}
#slide0 h1 {position: static; white-space: normal;	
	margin: 0; padding: 60px 60px 0 150px; text-align: right;
   font: bold 2em Helvetica, sans-serif; white-space: normal; height: 281px;
   color: #fff; background: transparent url(pixelslide0bg.gif) no-repeat;}
#slide0 h3 {margin-top: 0.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;}
__ui/print.css__
/* The next rule is necessary to have all slides appear in print! DO NOT REMOVE IT! */
div.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;}

#footer h1 {margin: 0; border-bottom: 1px solid; color: gray; font-style: italic;}
#footer h2, #controls {display: none;}
__ui/s5-core.css__
/* Do not edit or override these styles! The system will likely break if you do. */

div#header, div#footer, div.slide {position: absolute;}
html>body div#header, html>body div#footer, html>body div.slide {position: fixed;}
div#header {z-index: 1;}
div.slide  {z-index: 2; visibility: hidden;}
#slide0 {visibility: visible;}
div#footer {z-index: 5;}
div#controls {position: absolute; z-index: 1;}
#footer>div#controls {position: fixed;}
.handout {display: none;}
__ui/slides.css__
@import url(s5-core.css); /* required to make the slide show run at all */
@import url(framing.css); /* sets basic placement and size of slide components */
@import url(pretty.css);  /* stuff that makes the slides look better than blah */
__ui/slides.js__
// S5 slides.js -- released under CC by-sa 2.0 license
//
// Please see http://www.meyerweb.com/eric/tools/s5/credits.html for information 
// about all the wonderful and talented contributors to this code!

var snum = 0;
var smax = 1;
var undef;
var slcss = 1;
var isIE = navigator.appName == 'Microsoft Internet Explorer' ? 1 : 0;
var isOp = navigator.userAgent.indexOf('Opera') > -1 ? 1 : 0;
var isGe = navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('Safari') < 1 ? 1 : 0;
var slideCSS = document.getElementById('slideProj').href;

function isClass(object, className) {
	return (object.className.search('(^|\\s)' + className + '(\\s|$)') != -1);
}

function GetElementsWithClassName(elementName,className) {
	var allElements = document.getElementsByTagName(elementName);
	var elemColl = new Array();
	for (i = 0; i< allElements.length; i++) {
		if (isClass(allElements[i], className)) {
			elemColl[elemColl.length] = allElements[i];
		}
	}
	return elemColl;
}

function isParentOrSelf(element, id) {
	if (element == null || element.nodeName=='BODY') return false;
	else if (element.id == id) return true;
	else return isParentOrSelf(element.parentNode, id);
}

function nodeValue(node) {
	var result = "";
	if (node.nodeType == 1) {
		var children = node.childNodes;
		for ( i = 0; i < children.length; ++i ) {
			result += nodeValue(children[i]);
		}		
	}
	else if (node.nodeType == 3) {
		result = node.nodeValue;
	}
	return(result);
}

function slideLabel() {
	var slideColl = GetElementsWithClassName('div','slide');
	var list = document.getElementById('jumplist');
	smax = slideColl.length;
	for (n = 0; n < smax; n++) {
		var obj = slideColl[n];

		var did = 'slide' + n.toString();
		obj.setAttribute('id',did);
		if(isOp) continue;

		var otext = '';
 		var menu = obj.firstChild;
		if (!menu) continue; // to cope with empty slides
		while (menu && menu.nodeType == 3) {
			menu = menu.nextSibling;
		}
	 	if (!menu) continue; // to cope with slides with only text nodes

		var menunodes = menu.childNodes;
		for (o = 0; o < menunodes.length; o++) {
			otext += nodeValue(menunodes[o]);
		}
		list.options[list.length] = new Option(n+' : ' +otext,n);
	}
}

function currentSlide() {
	var cs;
	if (document.getElementById) {
		cs = document.getElementById('currentSlide');
	} else {
		cs = document.currentSlide;
	}
	cs.innerHTML = '<span id="csHere">' + snum + '<\/span> ' + 
		'<span id="csSep">\/<\/span> ' + 
		'<span id="csTotal">' + (smax-1) + '<\/span>';
	if (snum == 0) {
		cs.style.visibility = 'hidden';
	} else {
		cs.style.visibility = 'visible';
	}
}

function go(inc) {
	if (document.getElementById("slideProj").disabled) return;
	var cid = 'slide' + snum;
	if (inc != 'j') {
		snum += inc;
		lmax = smax - 1;
		if (snum > lmax) snum = 0;
		if (snum < 0) snum = lmax;
	} else {
		snum = parseInt(document.getElementById('jumplist').value);
	}
	var nid = 'slide' + snum;
	var ne = document.getElementById(nid);
	if (!ne) {
		ne = document.getElementById('slide0');
		snum = 0;
	}
	document.getElementById(cid).style.visibility = 'hidden';
	ne.style.visibility = 'visible';
	document.getElementById('jumplist').selectedIndex = snum;
	currentSlide();
}

function toggle() {
    var slideColl = GetElementsWithClassName('div','slide');
    var obj = document.getElementById('slideProj');
    if (!obj.disabled) {
        obj.disabled = true;
        for (n = 0; n < smax; n++) {
            var slide = slideColl[n];
            slide.style.visibility = 'visible';
        }
    } else {
        obj.disabled = false;
        for (n = 0; n < smax; n++) {
            var slide = slideColl[n];
            slide.style.visibility = 'hidden';
        }
        slideColl[snum].style.visibility = 'visible';
    }
}

function showHide(action) {
	var obj = document.getElementById('jumplist');
	switch (action) {
	case 's': obj.style.visibility = 'visible'; break;
	case 'h': obj.style.visibility = 'hidden'; break;
	case 'k':
		if (obj.style.visibility != 'visible') {
			obj.style.visibility = 'visible';
		} else {
			obj.style.visibility = 'hidden';
		}
	break;
	}
}

// 'keys' code adapted from MozPoint (http://mozpoint.mozdev.org/)
function keys(key) {
	if (!key) {
		key = event;
		key.which = key.keyCode;
	}
 	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;
		case 32: // spacebar
		case 34: // page down
		case 39: // rightkey
		case 40: // downkey
			go(1);
			break;
		case 33: // page up
		case 37: // leftkey
		case 38: // upkey
			go(-1);
			break;
		case 84: // t
			toggle();
			break;
		case 67: // c
			showHide('k');
			break;
	}
}

function clicker(e) {
	var target;
	if (window.event) {
		target = window.event.srcElement;
		e = window.event;
	} else target = e.target;
 	if (target.href != null || isParentOrSelf(target, 'controls')) return true;
	if (!e.which || e.which == 1) go(1);
}

function slideJump() {
	if (window.location.hash == null) return;
	var sregex = /^#slide(\d+)$/;
	var matches = sregex.exec(window.location.hash);
	var dest = null;
	if (matches != null) {
		dest = parseInt(matches[1]);
	} else {
		var target = window.location.hash.slice(1);
		var targetElement = null;
		var aelements = document.getElementsByTagName("a");
		for (i = 0; i < aelements.length; i++) {
			var aelement = aelements[i];
			if ( (aelement.name && aelement.name == target)
			 || (aelement.id && aelement.id == target) ) {
				targetElement = aelement;
				break;
			}
		}
		while(targetElement != null && targetElement.nodeName != "body") {
			if (targetElement.className == "slide") break;
			targetElement = targetElement.parentNode;
		}
		if (targetElement != null && targetElement.className == "slide") {
			dest = parseInt(targetElement.id.slice(1));
		}
	}
	if (dest != null)
		go(dest - snum);
 }
 
function createControls() {
	controlsDiv = document.getElementById("controls");
	if (!controlsDiv) return;
	controlsDiv.innerHTML = '<form action="#" id="controlForm">' +
	'<div>' +
	'<a accesskey="t" id="toggle" href="javascript:toggle();">&#216;<\/a>' +
	'<a accesskey="z" id="prev" href="javascript:go(-1);">&laquo;<\/a>' +
	'<a accesskey="x" id="next" href="javascript:go(1);">&raquo;<\/a>' +
	'<\/div>' +
	'<div onmouseover="showHide(\'s\');" onmouseout="showHide(\'h\');"><select id="jumplist" onchange="go(\'j\');"><\/select><\/div>' +
	'<\/form>';
}

function notOperaFix() {
	var obj = document.getElementById('slideProj');
	obj.setAttribute('media','screen');
	if (isGe) {
		obj.setAttribute('href','null');   // Gecko fix
		obj.setAttribute('href',slideCSS); // Gecko fix
	}
}

function startup() {
	if (!isOp) createControls();
	slideLabel();
	if (!isOp) {		
		notOperaFix();
		slideJump();
		document.onkeyup = keys;
		document.onclick = clicker;
	}
}

window.onload = startup;
__ui/pixelbg.gif__
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
ewYlBAA7
__ui/pixelheader.jpg__

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//2Q==
__ui/pixelslide0bg.gif__

