changeset 400:be66c85821ff

simplyfications
author hertzhaft
date Thu, 08 Dec 2005 13:16:43 +0100
parents d20d75e6f143
children dbeb240fa170
files client/digitallibrary/greyskin/diginew.jsp client/digitallibrary/greyskin/dllib.js client/digitallibrary/greyskin/down.png client/digitallibrary/greyskin/down.svg client/digitallibrary/greyskin/left.svg client/digitallibrary/greyskin/options.png client/digitallibrary/greyskin/options.svg client/digitallibrary/greyskin/right.svg client/digitallibrary/greyskin/up.png client/digitallibrary/greyskin/up.svg
diffstat 10 files changed, 1563 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/digitallibrary/greyskin/diginew.jsp	Thu Dec 08 13:16:43 2005 +0100
@@ -0,0 +1,551 @@
+<%@ page language="java" %><%!
+	// -- JSP init -------------
+	
+	// create DocumentBean instance for all JSP requests
+	digilib.servlet.DocumentBean docBean = new digilib.servlet.DocumentBean();
+	
+	// initialize DocumentBean instance in JSP init
+	public void jspInit() {
+	    try {
+		// set servlet init-parameter
+		docBean.setConfig(getServletConfig());
+	    } catch (javax.servlet.ServletException e) {
+		System.out.println(e);
+	    }
+	}
+	// -- end of JSP init -------------
+%>
+
+<%
+	// -- JSP request -------------
+	
+	// parsing the query
+	// -----------------
+	digilib.servlet.DigilibRequest dlRequest = new digilib.servlet.DigilibRequest(request);
+	docBean.setRequest(dlRequest);
+	// check if authentication is needed and redirect if necessary
+	docBean.doAuthentication(response);
+	// add number of pages
+	dlRequest.setValue("pt", docBean.getNumPages());
+	// store objects for jsp:include
+	pageContext.setAttribute("docBean", docBean, pageContext.REQUEST_SCOPE);
+%>
+
+<html>
+
+<head>
+	<title>Digital Document Library NG</title>
+	
+	<style type="text/css">
+
+		body		{ background-color: #E0E0E0; color: black; font-size: 8pt }
+		code		{ font-family: monospace; color: blue; }
+		pre		{ color: #006060; }
+
+		a.icon		{ margin: 0px; padding: 0px; }
+
+		img.png 	{ border: none; }
+		img.mark 	{ border: none; }
+
+		div.button	{ padding: 0px; }
+		div.dot		{ position: absolute; left: -20; top: 100; visibility: hidden }	
+		div#scaler-table { padding-right: 40px; }
+
+		div#buttons	{ position: absolute; right: 5px; top: 5px; background-color: #E0E0E0; }
+		div#dloptions	{ position: absolute; right: 5px; top: 5px; background-color: #E0E0E0; visibility: hidden; }
+		div#zoom	{ position: absolute; border: 2px solid #f0cccc; visibility: hidden; }
+		
+	</style>
+	
+	<script type="text/javascript" src="baselib.js"></script>
+	
+	<script type="text/javascript" src="dllib.js"></script>
+
+	<script language="JavaScript">
+		var isOptionDivVisible = false;
+		var dlTarget = window.name;
+		var baseUrl = '<%= dlRequest.getAsString("base.url") %>';
+		var toolbarEnabledURL = window.location.href;
+
+		function resetParams() {
+			newParameter('fn', '', 1);
+			newParameter('pn', '1', 1);
+			newParameter('ws', '1.0', 1);
+			newParameter('mo', '', 1);
+			newParameter('mk', '', 3);
+			newParameter('wx', '0.0', 2);
+			newParameter('wy', '0.0', 2);
+			newParameter('ww', '1.0', 2);
+			newParameter('wh', '1.0', 2);
+			newParameter('pt', '<%= dlRequest.getAsString("pt") %>', 1);
+			newParameter('brgt', '0.0', 1);
+			newParameter('cont', '0.0', 1);
+			newParameter('rot', '0.0', 1);
+			newParameter('rgba', '', 1);
+			newParameter('rgbm', '', 1);
+			newParameter('ddpix', '', 1);
+			newParameter('ddpiy', '', 1);
+			document.id='digilib';
+			}
+		
+
+		function toggleOptionDiv() {
+			isOptionDivVisible = !isOptionDivVisible;
+			showOptions(isOptionDivVisible);
+			}
+
+		function highlightPNG(id, on) {
+			var img = document.getElementById(id);
+			var a = img.parentNode
+			var div = a.parentNode;
+			var src = img.src;
+			// FIXME: IE - transparente PNGs offenbar nicht nachladbar
+			
+			// if (browserType.isIE)
+			//	img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "');"
+			div.style.backgroundImage = on 
+				? "url('corona.png')"
+				: "";
+		}
+
+		// initialize image; called by body.onload
+		function onBodyLoaded() {
+			var scaler = getElement('scaler');
+			var pic = getElement('pic');
+			var ps = bestPicSize(scaler, 50);
+			var src = "../servlet/Scaler?" + getQueryString() + "&dw=" + ps.width + "&dh=" + ps.height;
+			pic.src = src;
+			dl_init();	// dl_init braucht die endgültigen Maße des pic Elements
+			}
+		
+		base_init();		// browser recognition
+		resetParams();		// default values
+		dl_param_init();	// parse parameter values
+			
+	</script>
+</head>
+
+<body onload="onBodyLoaded();">
+
+ <!-- slot for the scaled image -->
+ <div id="scaler-table">
+ 	<div id="scaler" style="visibility:visible">
+		<img id="pic"></img>
+	</div>
+ </div>
+
+ <!-- slot for the zoom -->
+ <div id="zoom">
+ </div>
+
+ <!-- marks as dynamically created divs with numbers or text? -->
+ <div id="dot0" class="dot"><img class="mark" src="../img/mark1.gif" ></div>
+ <div id="dot1" class="dot"><img class="mark" src="../img/mark2.gif" ></div>
+ <div id="dot2" class="dot"><img class="mark" src="../img/mark3.gif" ></div>
+ <div id="dot3" class="dot"><img class="mark" src="../img/mark4.gif" ></div>
+ <div id="dot4" class="dot"><img class="mark" src="../img/mark5.gif" ></div>
+ <div id="dot5" class="dot"><img class="mark" src="../img/mark6.gif" ></div>
+ <div id="dot6" class="dot"><img class="mark" src="../img/mark7.gif" ></div>
+ <div id="dot7" class="dot"><img class="mark" src="../img/mark8.gif" ></div>
+
+ <div id="buttons">
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:getRefWin()"
+			>
+
+			<img
+				class="png"
+				id="reference"
+				onmouseover="highlightPNG('reference', 1)"
+				onmouseout="highlightPNG('reference', 0)"
+				title="get a reference URL"
+				src="reference.png"
+			>
+		</a> 
+	</div>
+	
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:zoomBy(1.4)"
+			>
+
+			<img
+				class="png"
+				id="zoom-in"
+				onmouseover="highlightPNG('zoom-in', 1)"
+				onmouseout="highlightPNG('zoom-in', 0)"
+				title="zoom in"
+				src="zoom-in.png"
+			>
+	</a> 
+	</div>
+	
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:zoomBy(0.7)"
+			>
+
+			<img
+				class="png"
+				id="zoom-out"
+				onmouseover="highlightPNG('zoom-out', 1)"
+				onmouseout="highlightPNG('zoom-out', 0)"
+				title="zoom out"
+				src="zoom-out.png"
+			>
+	</a> 
+	</div>
+	
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:showOptions(0);zoomArea()"
+			>
+
+			<img
+				class="png"
+				id="zoom-area"
+				onmouseover="highlightPNG('zoom-area', 1)"
+				onmouseout="highlightPNG('zoom-area', 0)"
+				title="zoom area"
+				src="zoom-area.png"
+			>
+		</a> 
+	</div>
+	
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:zoomFullpage()"
+			>
+
+			<img
+				class="png"
+				id="zoom-full"
+				onmouseover="highlightPNG('zoom-full', 1)"
+				onmouseout="highlightPNG('zoom-full', 0)"
+				title="view the whole image"
+				src="zoom-full.png"
+			>
+	</a> 
+	</div>
+
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:gotoPage('-1')"
+			>
+
+			<img
+				class="png"
+				id="back"
+				onmouseover="highlightPNG('back', 1)"
+				onmouseout="highlightPNG('back', 0)"
+				title="goto previous image"
+				src="back.png"
+			>
+	</a>
+	</div>
+	
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:gotoPage('+1')"
+			>
+
+			<img
+				class="png"
+				id="fwd"
+				onmouseover="highlightPNG('fwd', 1)"
+				onmouseout="highlightPNG('fwd', 0)"
+				title="goto next image"
+				src="fwd.png"
+			>
+	</a>
+	</div>
+	
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:help()"
+			>
+
+			<img
+				class="png"
+				id="help"
+				onmouseover="highlightPNG('help', 1)"
+				onmouseout="highlightPNG('help', 0)"
+				title="help"
+				src="help.png"
+			>
+		</a>
+	</div>
+
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:toggleOptionDiv()"
+			>
+
+			<img
+				class="png"
+				id="options"
+				onmouseover="highlightPNG('options', 1)"
+				onmouseout="highlightPNG('options', 0)"
+				title="more options"
+				src="options.png"
+			>
+		</a>
+	</div>
+
+</div>
+
+<!-- options div -->
+
+<div id="dloptions">
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:showOptions(0);setMark()"
+			>
+
+			<img
+				class="png"
+				id="mark"
+				onmouseover="highlightPNG('mark', 1)"
+				onmouseout="highlightPNG('mark', 0)"
+				title="set a mark"
+				src="mark.png"
+			>
+		</a> 
+	</div>
+	
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:removeMark()"
+			>
+
+			<img
+				class="png"
+				id="delmark"
+				onmouseover="highlightPNG('delmark', 1)"
+				onmouseout="highlightPNG('delmark', 0)"
+				title="delete the last mark"
+				src="delmark.png"
+				>
+		</a> 
+	</div>
+	
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:mirror('h')"
+			>
+
+			<img
+				class="png"
+				id="mirror-h"
+				onmouseover="highlightPNG('mirror-h', 1)"
+				onmouseout="highlightPNG('mirror-h', 0)"
+				title="mirror horizontally"
+				src="mirror-horizontal.png"
+			>
+		</a>
+	</div>
+	
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:mirror('v')"
+			>
+
+			<img
+				class="png"
+				id="mirror-v"
+				onmouseover="highlightPNG('mirror-v', 1)"
+				onmouseout="highlightPNG('mirror-v', 0)"
+				title="mirror vertically"
+				src="mirror-vertical.png"
+			>
+		</a>
+	</div>
+	
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:setParamWin('rot', 'Rotate (0..360) clockwise')"
+			>
+
+			<img
+				class="png"
+				id="rotate"
+				onmouseover="highlightPNG('rotate', 1)"
+				onmouseout="highlightPNG('rotate', 0)"
+				title="rotate image"
+				src="rotate.png"
+			>
+		</a>
+	</div>
+	
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:setParamWin('brgt', 'Brightness (-255..255)')"
+			>
+
+			<img
+				class="png"
+				id="brightness"
+				onmouseover="highlightPNG('brightness', 1)"
+				onmouseout="highlightPNG('brightness', 0)"
+				title="set brightness"
+				src="brightness.png"
+			>
+		</a>
+	</div>
+	
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:setParamWin('cont', 'Contrast (0..8)')"
+			>
+
+			<img
+				class="png"
+				id="contrast"
+				onmouseover="highlightPNG('contrast', 1)"
+				onmouseout="highlightPNG('contrast', 0)"
+				title="set contrast"
+				src="contrast.png"
+			>
+		</a>
+	</div>
+	
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:setParamWin('rgb', '...')"
+			>
+
+			<img
+				class="png"
+				id="rgb"
+				onmouseover="highlightPNG('rgb', 1)"
+				onmouseout="highlightPNG('rgb', 0)"
+				title="set rgb values"
+				src="rgb.png"
+			>
+		</a>
+	</div>
+	
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:setParamWin('size', '...')"
+			>
+
+			<img
+				class="png"
+				id="size"
+				onmouseover="highlightPNG('size', 1)"
+				onmouseout="highlightPNG('size', 0)"
+				title="resize page"
+				src="size.png"
+			>
+		</a>
+	</div>
+	
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:setQualityWin('Quality (0..2)')"
+			>
+
+			<img
+				class="png"
+				id="quality"
+				onmouseover="highlightPNG('quality', 1)"
+				onmouseout="highlightPNG('quality', 0)"
+				title="set image quality"
+				src="quality.png"
+			>
+		</a>
+	</div>
+	
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:gotoPageWin()"
+			>
+
+			<img
+				class="png"
+				id="page"
+				onmouseover="highlightPNG('page', 1)"
+				onmouseout="highlightPNG('page', 0)"
+				title="specify image"
+				src="page.png"
+			>
+	</a>
+	</div>
+	
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:pixelByPixel()"
+			>
+
+			<img
+				class="png"
+				id="pixel-by-pixel"
+				onmouseover="highlightPNG('pixel-by-pixel', 1)"
+				onmouseout="highlightPNG('pixel-by-pixel', 0)"
+				title="view image pixel by pixel"
+				src="pixel-by-pixel.png"
+			>
+		</a>
+	</div>
+
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:originalSize()"
+			>
+
+			<img
+				class="png"
+				id="original-size"
+				onmouseover="highlightPNG('original-size', 1)"
+				onmouseout="highlightPNG('original-size', 0)"
+				title="view image in original size"
+				src="original-size.png"
+			>
+		</a>
+	</div>
+
+	<div class="button">
+		<a
+			class="icon"
+			href="javascript:toggleOptionDiv()"
+			>
+
+			<img
+				class="png"
+				id="options-1"
+				onmouseover="highlightPNG('options-1', 1)"
+				onmouseout="highlightPNG('options-1', 0)"
+				title="hide options"
+				src="options.png"
+			>
+		</a>
+	</div>
+</div>
+
+</body>
+
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/digitallibrary/greyskin/dllib.js	Thu Dec 08 13:16:43 2005 +0100
@@ -0,0 +1,591 @@
+/* Copyright (C) 2003,2004 IT-Group MPIWG, WTWG Uni Bern and others
+ 
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+ 
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+ 
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
+ 
+Authors:
+  Christian Luginbuehl, 01.05.2003 (first version)
+  DW 24.03.2004 (Changed for digiLib in Zope)
+  Robert Casties, 8.11.2005
+
+  ! Requires baselib.js !
+
+*/
+
+
+function identify() {
+        // used for identifying a digilib instance
+        // Relato uses that function - lugi
+        return "Digilib 0.6";
+}
+/*
+ * more parameter handling
+ */
+
+function parseArea() {
+    // returns area Rectangle from current parameters
+    return new Rectangle(getParameter("wx"), getParameter("wy"), getParameter("ww"), getParameter("wh"));
+}
+
+function setParamFromArea(rect) {
+    // sets digilib wx etc. from rect
+    setParameter("wx", cropFloat(rect.x));
+    setParameter("wy", cropFloat(rect.y));
+    setParameter("ww", cropFloat(rect.width));
+    setParameter("wh", cropFloat(rect.height));
+    return true;
+}
+
+function parseTrafo(elem) {
+    // returns Transform from current dlArea and picsize
+    var picsize = getElementRect(elem);
+    var trafo = new Transform();
+    // subtract area offset and size
+    trafo.concat(getTranslation(new Position(-dlArea.x, -dlArea.y)));
+    trafo.concat(getScale(new Size(1/dlArea.width, 1/dlArea.height)));
+    // scale to screen size
+    trafo.concat(getScale(picsize));
+    trafo.concat(getTranslation(picsize));
+    // rotate
+    //trafo.concat(getRotation(- getParameter("rot"), new Position(0.5*picsize.width, 0.5*picsize.height)));
+    // mirror
+    //if (hasFlag("hmir")) {
+    //trafo.m00 = - trafo.m00;
+    //}
+    //if (hasFlag("vmir")) {
+    //trafo.m11 = - trafo.m11;
+    //}
+    return trafo;
+}
+
+
+function parseMarks() {
+    // returns marks array from current parameters
+    var marks = new Array();
+    var ma;
+    var mk = getParameter("mk");
+    if (mk.indexOf(";") >= 0) {
+        // old format with ";"
+        ma = mk.split(";");
+    } else {
+        ma = mk.split(",");
+    }
+    for (var i = 0; i < ma.length ; i++) {
+        var pos = ma[i].split("/");
+        if (pos.length > 1) {
+            marks.push(new Position(pos[0], pos[1]));
+        }
+    }
+    return marks;
+}
+
+function getAllMarks() {
+    // returns a string with all marks in query format
+    var marks = new Array();
+    for (var i = 0; i < dlMarks.length; i++) {
+        marks.push(cropFloat(dlMarks[i].x) + "/" + cropFloat(dlMarks[i].y));
+    }
+    return marks.join(",");
+}
+
+function addMark(pos) {
+    // add a mark
+    dlMarks.push(pos);
+    setParameter("mk", getAllMarks());
+    return true;
+}
+
+function deleteMark() {
+    // delete the last mark
+    dlMarks.pop();
+    setParameter("mk", getAllMarks());
+    return true;
+}
+
+function hasFlag(mode) {
+    // returns if mode flag is set
+    return (dlFlags[mode]);
+}
+
+function addFlag(mode) {
+    // add a mode flag
+    dlFlags[mode] = mode;
+    setParameter("mo", getAllFlags());
+    return true;
+}
+
+function removeFlag(mode) {
+    // remove a mode flag
+    if (dlFlags[mode]) {
+        delete dlFlags[mode];
+    }
+    setParameter("mo", getAllFlags());
+    return true;
+}
+
+function toggleFlag(mode) {
+    // change a mode flag
+    if (dlFlags[mode]) {
+        delete dlFlags[mode];
+    } else {
+        dlFlags[mode] = mode;
+    }
+    setParameter("mo", getAllFlags());
+    return true;
+}
+
+function getAllFlags() {
+    // returns a string with all flags in query format
+    var fa = new Array();
+    for (var f in dlFlags) {
+        if ((f != "")&&(dlFlags[f] != null)) {
+            fa.push(f);
+        }
+    }
+    return fa.join(",");
+}
+
+function parseFlags() {
+    // sets dlFlags from the current parameters
+    var flags = new Object();
+    var fa = getParameter("mo").split(",");
+    for (var i = 0; i < fa.length ; i++) {
+        var f = fa[i];
+        if (f != "") {
+            flags[f] = f;
+        }
+    }
+    return flags;
+}    
+
+
+function bestPicSize(elem, inset) {
+    // returns a Size with the best image size for the given element
+    if (! defined(inset)) {
+        inset = 25;
+    }
+    var ws = getWinSize();
+    var es = getElementPosition(elem);
+    if (es) {
+        ws.width = ws.width - es.x - inset;
+        ws.height = ws.height - es.y - inset;
+    }
+    return ws;
+}
+
+function setDLParam(e, s, relative) {
+	// sets parameter based on HTML event
+	var nam;
+    var val;
+    if (s.type && (s.type == "select-one")) {
+        nam = s.name;
+        val = s.options[s.selectedIndex].value;
+    } else if (s.name && s.value) {
+        nam = s.name;
+        val = s.value;
+    }
+    if (nam && val) {
+        setParameter(nam, val, relative);
+        display();
+    } else {
+        alert("ERROR: unable to process event!");
+    }
+    return true;
+}
+
+
+/* **********************************************
+ *     digilib specific routines
+ * ******************************************** */
+
+
+function dl_param_init() {
+    // parameter initialisation before onload
+    if (!baseScriptVersion) {
+        base_init();
+    }
+    dlScriptVersion = "1.2b";
+    dlArea = new Rectangle(0.0, 0.0, 1.0, 1.0);
+    dlMaxArea = new Rectangle(0.0, 0.0, 1.0, 1.0);
+    dlTrafo = new Transform();
+    dlMarks = new Array();
+    dlFlags = new Object();
+    elemScaler = null;
+    picElem = null;
+    ZOOMFACTOR = Math.sqrt(2);
+
+    // put the query parameters (sans "?") in the parameters array
+    parseParameters(location.search.slice(1));
+    // treat special parameters
+    dlMarks = parseMarks();
+    dlArea = parseArea();
+    dlFlags = parseFlags();
+}
+
+
+function dl_init() {
+    // initalisation on load
+    if (!dlScriptVersion) {
+        dl_param_init();
+    }
+    elemScaler = getElement("scaler", true);
+    picElem = getElement("pic", true);
+    if (picElem == null && elemScaler) {
+        // in N4 pic is in the scaler layer
+        picElem = elemScaler.document.images[0];
+    }
+    if (!elemScaler) {
+        alert("Digilib problem: No element with id 'scaler' found");
+        return false;
+	}
+    if (!picElem) {
+        alert("Digilib problem: No element with id 'pic' found");
+        return false;
+	}
+    // give a name to the window containing digilib
+    if (defined(dlTarget) && (dlTarget)) {
+        window.name = dlTarget;
+    } else {
+        window.name = "digilib";
+    }
+    // put the query parameters (sans "?") in the parameters array
+    parseParameters(location.search.slice(1));
+    // treat special parameters
+    dlMarks = parseMarks();
+    dlArea = parseArea();
+    dlFlags = parseFlags();
+    // wait for image to load and display marks
+    renderMarks();
+    // done
+    focus();
+    return;
+}
+
+
+function display(detail) {
+    // redisplay the page
+    if (! detail) {
+        detail = 255;
+    }
+    var queryString = getAllParameters(detail);
+    location.href = location.protocol + "//" + location.host + location.pathname + "?" + queryString;
+}
+
+
+/* **********************************************
+ *     interactive digilib functions
+ * ******************************************** */
+
+// TO BE CHANGED
+function renderMarks() {
+    // put the visible marks on the image
+    var mark_count = dlMarks.length;
+    // make shure the image is loaded so we know its size
+    if (defined(picElem.complete) && picElem.complete == false && ! browserType.isN4 ) {
+        setTimeout("renderMarks()", 100);
+    } else {
+        dlTrafo = parseTrafo(picElem);
+        for (var i = 0; i < 8; i++) {
+            var me = getElement("dot"+i);
+            if (i < mark_count) {
+                if (dlArea.containsPosition(dlMarks[i])) {
+                    var mpos = dlTrafo.transform(dlMarks[i]);
+                    // suboptimal to place -5 pixels and not half size of mark-image
+                    mpos.x = mpos.x -5;
+                    mpos.y = mpos.y -5;
+                    moveElement(me, mpos);
+                    showElement(me, true);
+                }
+            } else {
+                // hide the other marks
+                showElement(me, false);
+            }
+        }
+    }
+}
+
+
+function setMark(reload) {
+    // add a mark where clicked
+    if ( dlMarks.length > 7 ) {
+        alert("Only 8 marks are possible at the moment!");
+        return;
+    }
+    window.focus();
+
+    function markEvent(evt) {
+        // event handler adding a new mark
+        unregisterEvent("mousedown", elemScaler, markEvent);
+        var p = dlTrafo.invtransform(evtPosition(evt));
+        addMark(p);
+        if (defined(reload)&&(!reload)) {
+            // don't redisplay
+            renderMarks();
+            return;
+        }
+        display();
+    }
+
+    // starting event capture
+    registerEvent("mousedown", elemScaler, markEvent);
+}
+
+
+function removeMark(reload) {
+    // remove the last mark
+    deleteMark();
+    if (defined(reload)&&(!reload)) {
+        // don't redisplay
+        renderMarks();
+        return;
+    }
+    display();
+}
+
+
+function zoomArea() {
+    var click = 1;
+    var pt1, pt2;
+    window.focus();
+    var zoomdiv = getElement("zoom");
+
+    function zoomClick(evt) {
+        // mouse click handler
+        if (click == 1) {
+            // first click -- start moving
+            click = 2;
+            pt1 = evtPosition(evt);
+            moveElement(zoomdiv, Rectangle(pt1.x, pt1.y, 0, 0));
+            showElement(zoomdiv, true);
+            // show moving
+            registerEvent("mousemove", elemScaler, zoomMove);
+            registerEvent("mousemove", zoomdiv, zoomMove);
+            // enable drag-to-zoom
+            registerEvent("mouseup", elemScaler, zoomClick);
+            registerEvent("mouseup", zoomdiv, zoomClick);
+        } else {
+            // second click -- end moving
+            pt2 = evtPosition(evt);
+            showElement(zoomdiv, false);
+            unregisterEvent("mousemove", elemScaler, zoomMove);
+            unregisterEvent("mousemove", zoomdiv, zoomMove);
+            unregisterEvent("mousedown", elemScaler, zoomClick);
+            unregisterEvent("mousedown", zoomdiv, zoomClick);
+            var p1 = dlTrafo.invtransform(pt1);
+            var p2 = dlTrafo.invtransform(pt2);
+            var ww = p2.x-p1.x;
+            var wh = p2.y-p1.y;
+            if ((ww > 0)&&(wh > 0)) {
+                setParameter("wx", cropFloat(p1.x));
+                setParameter("wy", cropFloat(p1.y));
+                setParameter("ww", cropFloat(ww));
+                setParameter("wh", cropFloat(wh));
+                parseArea();
+                // zoomed is always fit
+                setParameter("ws", 1);
+                display();
+            }
+        }
+    }
+
+    function zoomMove(evt) {
+        // mouse move handler
+        pt2 = evtPosition(evt);
+        // restrict marks to move right and down
+        moveElement(zoomdiv, Rectangle(pt1.x, pt1.y, Math.abs(pt1.x - pt2.x), Math.abs(pt1.y - pt2.y)));
+    }
+
+    // starting event capture
+    registerEvent("mousedown", elemScaler, zoomClick);
+    registerEvent("mousedown", zoomdiv, zoomClick);
+}
+
+function zoomBy(factor) {
+    // zooms by the given factor
+    var newarea = dlArea.copy();
+    newarea.width /= factor;
+    newarea.height /= factor;
+    newarea.x -= 0.5 * (newarea.width - dlArea.width);
+    newarea.y -= 0.5 * (newarea.height - dlArea.height);
+    newarea = dlMaxArea.fit(newarea);
+    setParamFromArea(newarea);
+    display();
+}
+
+
+function zoomFullpage() {
+    // zooms out to show the whole image
+    setParameter("wx", 0.0);
+    setParameter("wy", 0.0);
+    setParameter("ww", 1.0);
+    setParameter("wh", 1.0);
+    display();
+}
+
+
+function moveCenter() {
+    // move visible area so that it's centered around the clicked point
+    if ( (dlArea.width == 1.0) && (dlArea.height == 1.0) ) {
+        // nothing to do
+        return;
+    }
+    window.focus();
+
+    function moveCenterEvent(evt) {
+        // move to handler
+        unregisterEvent("mousedown", elemScaler, moveCenterEvent);
+        var pt = dlTrafo.invtransform(evtPosition(evt));
+        var newarea = new Rectangle(pt.x-0.5*dlArea.width, pt.y-0.5*dlArea.height, dlArea.width, dlArea.height);
+        newarea = dlMaxArea.fit(newarea);
+        // set parameters
+        setParamFromArea(newarea);
+        parseArea();
+        display();
+    }
+
+    // starting event capture
+    registerEvent("mousedown", elemScaler, moveCenterEvent);
+}
+
+function moveBy(movx, movy) {
+    // move visible area by movx and movy (in units of ww, wh)
+    if ((dlArea.width == 1.0)&&(dlArea.height == 1.0)) {
+        // nothing to do
+        return;
+    }
+    var newarea = dlArea.copy();
+    newarea.x += parseFloat(movx)*dlArea.width;
+    newarea.y += parseFloat(movy)*dlArea.height;
+    newarea = dlMaxArea.fit(newarea);
+    // set parameters
+    setParamFromArea(newarea);
+    parseArea();
+    display();
+}
+
+function getRef() {
+    // returns a reference to the current digilib set
+    if (! baseUrl) {
+        var baseUrl = location.protocol + "//" + location.host + location.pathname;
+    }
+    var hyperlinkRef = baseUrl;
+    var par = getAllParameters(7+16); // all without ddpi, pt
+    if (par.length > 0) {
+        hyperlinkRef += "?" + par;
+    }
+    return hyperlinkRef;
+}
+
+function getRefWin(type, msg) {
+    // shows an alert with a reference to the current digilib set
+    if (! msg) {
+        msg = "Link for HTML documents";
+    }
+    prompt(msg, getRef());
+}
+
+function getQuality() {
+	// returns the current q setting
+    for (var i = 0; i < 3; i++) {
+        if (hasFlag("q"+i)) {
+        	return i;
+        }
+    }
+    return 1
+}
+
+function setQuality(qual) {
+    // set the image quality
+    for (var i = 0; i < 3; i++) {
+        removeFlag("q"+i);
+        if (i == qual) {
+            addFlag("q"+i);
+        }
+    }
+    setParameter("mo", getAllFlags());
+    display();
+}    
+
+function setQualityWin(msg) {
+	// dialog for setting quality
+	if (! msg) {
+		msg = "Quality (0..2)";
+	}
+	var q = getQuality();
+	var newq = window.prompt(msg, q);
+	if (newq) {
+		setQuality(newq);
+	}
+}
+
+function mirror(dir) {
+    // mirror the image horizontally or vertically
+    if (dir == "h") {
+        toggleFlag("hmir");
+    } else {
+        toggleFlag("vmir");
+    }
+    setParameter("mo", getAllFlags());
+    display();
+}
+
+function gotoPage(gopage, keep) {
+	// goto given page nr (+/-: relative)
+	var oldpn = parseInt(getParameter("pn"));
+	setParameter("pn", gopage, true);
+	var pn = parseInt(getParameter("pn"));
+	if (pn < 1) {
+		alert("No such page! (Page number too low)");
+		setParameter("pn", oldpn);
+		return;
+	}
+	if (hasParameter("pt")) {
+		pt = parseInt(getParameter("pt"))
+		if (pn > pt) {
+			alert("No such page! (Page number too high)");
+			setParameter("pn", oldpn);
+			return;
+		}
+	}
+	if (keep) {
+		display(15+32); // all, no mark
+	} else {	
+		display(3+32); // fn, pn, ws, mo + pt
+	}
+}
+
+function gotoPageWin() {
+	// dialog to ask for new page nr
+	var pn = getParameter("pn");
+	var gopage = window.prompt("Go to page", pn);
+	if (gopage) {
+		gotoPage(gopage);
+	}
+}
+
+function setParamWin(param, text, relative) {
+	// dialog to ask for new parameter value
+	var val = getParameter(param);
+	var newval = window.prompt(text, val);
+	if (newval) {
+		setParameter(param, newval, relative);
+		display();
+	}
+}
+
+function showOptions(show) {
+	// show or hide option div
+	var elem = getElement("dloptions");
+	showElement(elem, show);
+}
\ No newline at end of file
Binary file client/digitallibrary/greyskin/down.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/digitallibrary/greyskin/down.svg	Thu Dec 08 13:16:43 2005 +0100
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48"
+   height="48"
+   id="svg2388"
+   sodipodi:version="0.32"
+   inkscape:version="0.43"
+   sodipodi:docbase="C:\src\ECHO\digilib\client\digitallibrary\greyskin"
+   sodipodi:docname="down.svg"
+   inkscape:export-filename="C:\src\ECHO\digilib\client\digitallibrary\greyskin\down.png"
+   inkscape:export-xdpi="60.000000"
+   inkscape:export-ydpi="60.000000"
+   version="1.0">
+  <defs
+     id="defs2390">
+    <linearGradient
+       id="linearGradient3124">
+      <stop
+         id="stop7644"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.19587629;" />
+      <stop
+         style="stop-color:#545454;stop-opacity:0.22680412;"
+         offset="0.50000000"
+         id="stop7646" />
+      <stop
+         style="stop-color:#5f5f5f;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3128" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="7"
+     inkscape:cx="24"
+     inkscape:cy="30.235294"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="830"
+     inkscape:window-height="540"
+     inkscape:window-x="17"
+     inkscape:window-y="22" />
+  <metadata
+     id="metadata2393">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     style="display:inline">
+    <path
+       style="opacity:1;fill:#707070;fill-opacity:0.35526315;fill-rule:evenodd;stroke:#000000;stroke-width:0.52918273;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.50331128"
+       d="M 23.6875,42.214557 C 13.517688,41.821426 5.3749998,33.298347 5.375,22.870807 C 5.375,12.193005 13.927192,3.5270576 24.4375,3.5270566 C 31.499113,3.5270566 37.650231,7.4400376 40.9375,13.245807 L 24.5,13.245807 L 8,13.245807 L 16.25,27.527057 L 24.5,41.808307 L 32.75,27.527057 L 40.96875,13.308307 C 42.552395,16.129468 43.46875,19.392821 43.46875,22.870807 C 43.46875,33.548609 34.947807,42.214557 24.4375,42.214557 C 24.191165,42.214557 23.931575,42.223992 23.6875,42.214557 z "
+       id="path2396" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/digitallibrary/greyskin/left.svg	Thu Dec 08 13:16:43 2005 +0100
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48"
+   height="48"
+   id="svg2388"
+   sodipodi:version="0.32"
+   inkscape:version="0.43"
+   sodipodi:docbase="C:\src\ECHO\digilib\client\digitallibrary\greyskin"
+   sodipodi:docname="left.svg"
+   inkscape:export-filename="C:\src\ECHO\digilib\client\digitallibrary\greyskin\left.png"
+   inkscape:export-xdpi="60.000000"
+   inkscape:export-ydpi="60.000000"
+   version="1.0">
+  <defs
+     id="defs2390">
+    <linearGradient
+       id="linearGradient3124">
+      <stop
+         id="stop7644"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.19587629;" />
+      <stop
+         style="stop-color:#545454;stop-opacity:0.22680412;"
+         offset="0.50000000"
+         id="stop7646" />
+      <stop
+         style="stop-color:#5f5f5f;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3128" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="7"
+     inkscape:cx="24"
+     inkscape:cy="30.235294"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="830"
+     inkscape:window-height="540"
+     inkscape:window-x="17"
+     inkscape:window-y="22" />
+  <metadata
+     id="metadata2393">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     style="display:inline">
+    <path
+       style="opacity:1;fill:#707070;fill-opacity:0.35526315;fill-rule:evenodd;stroke:#000000;stroke-width:0.52918273;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.50331128"
+       d="M 5.0802215,22.138528 C 5.4733525,11.968716 13.996431,3.8260283 24.423971,3.8260285 C 35.101773,3.8260285 43.767721,12.37822 43.767722,22.888528 C 43.767722,29.950141 39.854741,36.101259 34.048971,39.388528 L 34.048971,22.951028 L 34.048971,6.4510285 L 19.767721,14.701028 L 5.4864715,22.951028 L 19.767721,31.201028 L 33.986471,39.419778 C 31.16531,41.003423 27.901957,41.919778 24.423971,41.919778 C 13.746169,41.919778 5.0802215,33.398835 5.0802215,22.888528 C 5.0802215,22.642193 5.0707865,22.382603 5.0802215,22.138528 z "
+       id="path2396" />
+  </g>
+</svg>
Binary file client/digitallibrary/greyskin/options.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/digitallibrary/greyskin/options.svg	Thu Dec 08 13:16:43 2005 +0100
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48px"
+   height="48px"
+   id="svg2388"
+   sodipodi:version="0.32"
+   inkscape:version="0.43"
+   sodipodi:docbase="C:\src\ECHO\digilib\client\digitallibrary\greyskin"
+   sodipodi:docname="options.svg"
+   inkscape:export-filename="C:\src\ECHO\digilib\client\digitallibrary\greyskin\options.png"
+   inkscape:export-xdpi="60.000000"
+   inkscape:export-ydpi="60.000000">
+  <defs
+     id="defs2390">
+    <linearGradient
+       id="linearGradient3124">
+      <stop
+         id="stop7644"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.19587629;" />
+      <stop
+         style="stop-color:#545454;stop-opacity:0.22680412;"
+         offset="0.50000000"
+         id="stop7646" />
+      <stop
+         style="stop-color:#5f5f5f;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3128" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="7"
+     inkscape:cx="24"
+     inkscape:cy="20"
+     inkscape:current-layer="layer3"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="830"
+     inkscape:window-height="540"
+     inkscape:window-x="17"
+     inkscape:window-y="22" />
+  <metadata
+     id="metadata2393">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       sodipodi:type="arc"
+       style="opacity:1.0000000;fill:#707070;fill-opacity:0.35526314;fill-rule:evenodd;stroke:#000000;stroke-width:0.52918273;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:0.50331128"
+       id="path2396"
+       sodipodi:cx="30.214285"
+       sodipodi:cy="26.214285"
+       sodipodi:rx="17.928572"
+       sodipodi:ry="18.214285"
+       d="M 48.142857 26.214285 A 17.928572 18.214285 0 1 1  12.285713,26.214285 A 17.928572 18.214285 0 1 1  48.142857 26.214285 z"
+       transform="matrix(1.062015,0.000000,0.000000,1.062015,-7.659466,-4.965116)" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="l2"
+     style="display:none">
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.23305082;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 16.866525,15.295096 L 16.866525,31.383475 L 30.841102,23.163136 L 16.866525,15.295096 z "
+       id="path7614" />
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 33,13.571429 L 33,32.428571"
+       id="path1367" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="l3"
+     style="display:inline" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/digitallibrary/greyskin/right.svg	Thu Dec 08 13:16:43 2005 +0100
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48"
+   height="48"
+   id="svg2388"
+   sodipodi:version="0.32"
+   inkscape:version="0.43"
+   sodipodi:docbase="C:\src\ECHO\digilib\client\digitallibrary\greyskin"
+   sodipodi:docname="right.svg"
+   inkscape:export-filename="C:\src\ECHO\digilib\client\digitallibrary\greyskin\right.png"
+   inkscape:export-xdpi="60.000000"
+   inkscape:export-ydpi="60.000000"
+   version="1.0">
+  <defs
+     id="defs2390">
+    <linearGradient
+       id="linearGradient3124">
+      <stop
+         id="stop7644"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.19587629;" />
+      <stop
+         style="stop-color:#545454;stop-opacity:0.22680412;"
+         offset="0.50000000"
+         id="stop7646" />
+      <stop
+         style="stop-color:#5f5f5f;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3128" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="7"
+     inkscape:cx="24"
+     inkscape:cy="30.235294"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="830"
+     inkscape:window-height="540"
+     inkscape:window-x="17"
+     inkscape:window-y="22" />
+  <metadata
+     id="metadata2393">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     style="display:inline">
+    <path
+       style="opacity:1;fill:#707070;fill-opacity:0.35526315;fill-rule:evenodd;stroke:#000000;stroke-width:0.52918273;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.50331128"
+       d="M 43.763529,23.607278 C 43.370398,33.77709 34.847319,41.919778 24.419779,41.919778 C 13.741977,41.919778 5.0760293,33.367586 5.0760283,22.857278 C 5.0760283,15.795665 8.9890093,9.644547 14.794779,6.3572783 L 14.794779,22.794778 L 14.794779,39.294778 L 29.076029,31.044778 L 43.357279,22.794778 L 29.076029,14.544778 L 14.857279,6.3260283 C 17.67844,4.7423833 20.941793,3.8260283 24.419779,3.8260283 C 35.097581,3.8260283 43.763529,12.346971 43.763529,22.857278 C 43.763529,23.103613 43.772964,23.363203 43.763529,23.607278 z "
+       id="path2396"
+       inkscape:export-filename="C:\src\ECHO\digilib\client\digitallibrary\greyskin\right.png"
+       inkscape:export-xdpi="60"
+       inkscape:export-ydpi="60" />
+  </g>
+</svg>
Binary file client/digitallibrary/greyskin/up.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/digitallibrary/greyskin/up.svg	Thu Dec 08 13:16:43 2005 +0100
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48"
+   height="48"
+   id="svg2388"
+   sodipodi:version="0.32"
+   inkscape:version="0.43"
+   sodipodi:docbase="C:\src\ECHO\digilib\client\digitallibrary\greyskin"
+   sodipodi:docname="up.svg"
+   inkscape:export-filename="C:\src\ECHO\digilib\client\digitallibrary\greyskin\up.png"
+   inkscape:export-xdpi="60.000000"
+   inkscape:export-ydpi="60.000000"
+   version="1.0">
+  <defs
+     id="defs2390">
+    <linearGradient
+       id="linearGradient3124">
+      <stop
+         id="stop7644"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.19587629;" />
+      <stop
+         style="stop-color:#545454;stop-opacity:0.22680412;"
+         offset="0.50000000"
+         id="stop7646" />
+      <stop
+         style="stop-color:#5f5f5f;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3128" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="7"
+     inkscape:cx="24"
+     inkscape:cy="30.235294"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="830"
+     inkscape:window-height="540"
+     inkscape:window-x="17"
+     inkscape:window-y="22" />
+  <metadata
+     id="metadata2393">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     style="display:inline">
+    <path
+       style="opacity:1;fill:#707070;fill-opacity:0.35526315;fill-rule:evenodd;stroke:#000000;stroke-width:0.52918273;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.50331128"
+       d="M 23.6875 3.53125 C 13.517688 3.9243803 5.3749998 12.44746 5.375 22.875 C 5.375 33.552802 13.927192 42.218749 24.4375 42.21875 C 31.499113 42.21875 37.650231 38.305769 40.9375 32.5 L 24.5 32.5 L 8 32.5 L 16.25 18.21875 L 24.5 3.9375 L 32.75 18.21875 L 40.96875 32.4375 C 42.552395 29.616339 43.46875 26.352986 43.46875 22.875 C 43.46875 12.197198 34.947807 3.53125 24.4375 3.53125 C 24.191165 3.53125 23.931575 3.5218149 23.6875 3.53125 z "
+       id="path2396" />
+  </g>
+</svg>