# HG changeset patch
# User robcast
# Date 1361814756 -3600
# Node ID de9c762ef86bd7b0845b9b090ddab007f9b28a33
# Parent 1246eb4e60e7d1090b41c4e70736c422197f9158
more cleanup. more license headers.
diff -r 1246eb4e60e7 -r de9c762ef86b pom.xml
--- a/pom.xml Mon Feb 25 15:21:48 2013 +0100
+++ b/pom.xml Mon Feb 25 18:52:36 2013 +0100
@@ -23,7 +23,7 @@
robcast
Robert Casties
robcast@berlios.de
- Max Planck Institute for the History of Science
+ Max Planck Institute for the History of Science (MPIWG)
http://www.mpiwg-berlin.mpg.de
@@ -80,23 +80,6 @@
lgpl_v3
-
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/pom.xml
--- a/webapp/pom.xml Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/pom.xml Mon Feb 25 18:52:36 2013 +0100
@@ -1,157 +1,167 @@
- 4.0.0
-
- digilib
- digilib
- 2.1-SNAPSHOT
-
- digilib-webapp
- digilib-webapp
- The Digital Image Library - web application server and HTML and JS clients
- http://digilib.berlios.de
- war
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ 4.0.0
+
+ digilib
+ digilib
+ 2.1-SNAPSHOT
+
+ digilib-webapp
+ digilib-webapp
+ The Digital Image Library - web application server and HTML and JS clients.
+ http://digilib.berlios.de
+ war
-
- UTF-8
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-war-plugin
- 2.1.1
-
-
-
-
+
+ UTF-8
+
-
-
- servlet2
-
- true
-
- servletapi
- 2
-
-
-
-
- digilib
- digilib-servlet2
- jar
- compile
-
-
-
-
-
- org.apache.maven.plugins
- maven-war-plugin
-
- ${basedir}/src/main/webapp/WEB-INF/web-2.3.xml
- srv2
-
-
-
-
-
-
- servlet3
-
-
- servletapi
- 3
-
-
-
-
- digilib
- digilib-servlet3
- jar
- compile
-
-
-
-
-
- org.apache.maven.plugins
- maven-war-plugin
-
- ${basedir}/src/main/webapp/WEB-INF/web-3.0.xml
- srv3
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
- 1.6
- 1.6
-
-
-
-
-
-
- pdf
-
-
- digilib
- digilib-pdf
- jar
- compile
-
-
-
-
- text
-
-
- digilib
- digilib-text
- jar
- compile
-
-
-
-
- codec-jai
-
-
- digilib
- digilib-common-jai
- jar
- compile
-
-
-
-
- codec-imagej
-
-
- digilib
- digilib-common-imagej
- jar
- compile
-
-
-
-
- codec-bioformats
-
-
- digilib
- digilib-common-bioformats
- jar
- compile
-
-
-
-
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ 2.1.1
+
+
+ org.codehaus.mojo
+ license-maven-plugin
+ 1.4
+
+
+ **/*digilib*.js
+ **/*.jsp
+
+
+
+
+
+
+
+
+ servlet2
+
+ true
+
+ servletapi
+ 2
+
+
+
+
+ digilib
+ digilib-servlet2
+ jar
+ compile
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+
+ ${basedir}/src/main/webapp/WEB-INF/web-2.3.xml
+ srv2
+
+
+
+
+
+
+ servlet3
+
+
+ servletapi
+ 3
+
+
+
+
+ digilib
+ digilib-servlet3
+ jar
+ compile
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+
+ ${basedir}/src/main/webapp/WEB-INF/web-3.0.xml
+ srv3
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 1.6
+ 1.6
+
+
+
+
+
+
+ pdf
+
+
+ digilib
+ digilib-pdf
+ jar
+ compile
+
+
+
+
+ text
+
+
+ digilib
+ digilib-text
+ jar
+ compile
+
+
+
+
+ codec-jai
+
+
+ digilib
+ digilib-common-jai
+ jar
+ compile
+
+
+
+
+ codec-imagej
+
+
+ digilib
+ digilib-common-imagej
+ jar
+ compile
+
+
+
+
+ codec-bioformats
+
+
+ digilib
+ digilib-common-bioformats
+ jar
+ compile
+
+
+
+
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/ImgInfo-json.jsp
--- a/webapp/src/main/webapp/ImgInfo-json.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/ImgInfo-json.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,25 @@
-<%@page language="java"
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2003 - 2013 MPIWG Berlin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ Author: Robert Casties (robcast@berlios.de)
+ --%><%@page language="java"
import="digilib.io.FileOps, digilib.io.ImageFileSet, digilib.io.ImageFile, digilib.util.ImageSize, digilib.servlet.DigilibConfiguration"
contentType="application/json"%><%!
// create DocumentBean instance for all JSP requests
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/api/ImgInfo-json.jsp
--- a/webapp/src/main/webapp/api/ImgInfo-json.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/api/ImgInfo-json.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,25 @@
-<%@page language="java"
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2003 - 2013 MPIWG Berlin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ Author: Robert Casties (robcast@berlios.de)
+ --%><%@page language="java"
import="digilib.io.FileOps, digilib.io.ImageFileSet, digilib.io.ImageFile, digilib.util.ImageSize, digilib.servlet.DigilibConfiguration"
contentType="application/json"%><%!
// create DocumentBean instance for all JSP requests
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/api/dirInfo-xml.jsp
--- a/webapp/src/main/webapp/api/dirInfo-xml.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/api/dirInfo-xml.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,25 @@
-<%@page import="digilib.io.FileOps"%><%@ page language="java" %><%!
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2004 - 2013 MPIWG Berlin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ Author: Robert Casties (robcast@berlios.de)
+ --%><%@page import="digilib.io.FileOps"%><%@ page language="java" %><%!
// create DocumentBean instance for all JSP requests
digilib.servlet.DocumentBean docBean = new digilib.servlet.DocumentBean();
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/api/dlContext-xml.jsp
--- a/webapp/src/main/webapp/api/dlContext-xml.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/api/dlContext-xml.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,25 @@
-<%@ page language="java" %><%!
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2004 - 2013 MPIWG Berlin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ Author: Robert Casties (robcast@berlios.de)
+ --%><%@ page language="java" %><%!
// create DocumentBean instance for all JSP requests
digilib.servlet.DocumentBean docBean = new digilib.servlet.DocumentBean();
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/api/dlInfo-json.jsp
--- a/webapp/src/main/webapp/api/dlInfo-json.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/api/dlInfo-json.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,5 +1,25 @@
-<%@ page language="java" %>
-<%!
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2004 - 2013 MPIWG Berlin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ Author: Robert Casties (robcast@berlios.de)
+ --%><%@ page language="java" %><%!
// create DocumentBean instance for all JSP requests
digilib.servlet.DocumentBean docBean = new digilib.servlet.DocumentBean();
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/api/dlInfo-xml.jsp
--- a/webapp/src/main/webapp/api/dlInfo-xml.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/api/dlInfo-xml.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,25 @@
-<%@ page language="java" %><%!
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2004 - 2013 MPIWG Berlin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ Author: Robert Casties (robcast@berlios.de)
+ --%><%@ page language="java" %><%!
// create DocumentBean instance for all JSP requests
digilib.servlet.DocumentBean docBean = new digilib.servlet.DocumentBean();
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/digilib.jsp
--- a/webapp/src/main/webapp/digilib.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/digilib.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,25 @@
-
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2013 MPIWG Berlin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ Author: Robert Casties (robcast@berlios.de)
+ --%>
Digital Library Redirect
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/dirInfo-xml.jsp
--- a/webapp/src/main/webapp/dirInfo-xml.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/dirInfo-xml.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,25 @@
-<%@page import="digilib.io.FileOps"%><%@ page language="java" %><%!
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2004 - 2013 MPIWG Berlin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ Author: Robert Casties (robcast@berlios.de)
+ --%><%@page import="digilib.io.FileOps"%><%@ page language="java" %><%!
// create DocumentBean instance for all JSP requests
digilib.servlet.DocumentBean docBean = new digilib.servlet.DocumentBean();
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/dlContext-xml.jsp
--- a/webapp/src/main/webapp/dlContext-xml.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/dlContext-xml.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,25 @@
-<%@ page language="java" %><%!
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2004 - 2013 MPIWG Berlin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ Author: Robert Casties (robcast@berlios.de)
+ --%><%@ page language="java" %><%!
// create DocumentBean instance for all JSP requests
digilib.servlet.DocumentBean docBean = new digilib.servlet.DocumentBean();
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/dlInfo-json.jsp
--- a/webapp/src/main/webapp/dlInfo-json.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/dlInfo-json.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,5 +1,25 @@
-<%@ page language="java" %>
-<%!
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2004 - 2013 MPIWG Berlin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ Author: Robert Casties (robcast@berlios.de)
+ --%><%@ page language="java" %><%!
// create DocumentBean instance for all JSP requests
digilib.servlet.DocumentBean docBean = new digilib.servlet.DocumentBean();
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/dlInfo-xml.jsp
--- a/webapp/src/main/webapp/dlInfo-xml.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/dlInfo-xml.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,25 @@
-<%@ page language="java" %><%!
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2004 - 2013 MPIWG Berlin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ Author: Robert Casties (robcast@berlios.de)
+ --%><%@ page language="java" %><%!
// create DocumentBean instance for all JSP requests
digilib.servlet.DocumentBean docBean = new digilib.servlet.DocumentBean();
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/greyskin/baselib.js
--- a/webapp/src/main/webapp/greyskin/baselib.js Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/greyskin/baselib.js Mon Feb 25 18:52:36 2013 +0100
@@ -1,25 +1,29 @@
-/* Copyright (C) 2003-2006 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, 2.11.2004 (almost complete rewrite)
- Martin Raspe, 12.12.2005 (changes for Digilib NG)
- Robert Casties, 3.9.2009
+/*
+ * #%L
+ * digilib-webapp
+ * %%
+ * Copyright (C) 2003 - 2013 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 Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * .
+ * #L%
+ * Authors:
+ * Christian Luginbuehl, 01.05.2003 (first version)
+ * DW 24.03.2004 (Changed for digiLib in Zope)
+ * Robert Casties, 2.11.2004 (almost complete rewrite)
+ * Martin Raspe, 12.12.2005 (changes for Digilib NG)
+ * Robert Casties, 3.9.2009
*/
// was: function base_init() {
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/greyskin/diginew.jsp
--- a/webapp/src/main/webapp/greyskin/diginew.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/greyskin/diginew.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,24 @@
-.
+ #L%
+ --%>
<%@ page language="java" pageEncoding="UTF-8"%><%!
// -- JSP init -------------
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/greyskin/dllib.js
--- a/webapp/src/main/webapp/greyskin/dllib.js Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/greyskin/dllib.js Mon Feb 25 18:52:36 2013 +0100
@@ -1,27 +1,31 @@
-/* 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
- Martin Raspe , 12.12.2005
- Robert Casties, 4.9.2009
-
- ! Requires baselib.js !
+/*
+ * #%L
+ * digilib-webapp
+ * %%
+ * Copyright (C) 2003 - 2013 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 Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * .
+ * #L%
+ * Authors:
+ * Christian Luginbuehl, 01.05.2003 (first version)
+ * DW 24.03.2004 (Changed for digiLib in Zope)
+ * Robert Casties, 8.11.2005
+ * Martin Raspe , 12.12.2005
+ * Robert Casties, 4.9.2009
+ *
+ * ! Requires baselib.js !
*/
digilibVersion = "Digilib NG";
dllibVersion = "2.042";
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/combiner-0.0.1.jar
Binary file webapp/src/main/webapp/jquery/combiner-0.0.1.jar has changed
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/dlGeometry.js
--- a/webapp/src/main/webapp/jquery/dlGeometry.js Mon Feb 25 15:21:48 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,486 +0,0 @@
-/* digilib geometry classes
- * should be integrated into jquery.digilib.js
- */
-
-var dlGeometry = function() {
- /*
- * Size class
- */
- var size = function(w, h) {
- var that;
- if (typeof w === "object") {
- // assume its size
- that = {
- width : w.width,
- height : w.height
- };
- } else {
- that = {
- width : parseFloat(w),
- height : parseFloat(h)
- };
- }
- that.equals = function(other) {
- return (this.width === other.width && this.height === other.height);
- };
- that.toString = function() {
- return (this.width + "x" + this.height);
- };
- return that;
- };
-
- /*
- * Position class
- */
- var position = function(x, y) {
- var that;
- if (typeof x === "object") {
- if (x instanceof jQuery) {
- // jQuery object
- var pos = x.offset();
- that = {
- x : pos.left,
- y : pos.top
- };
- } else {
- if (x.x != null) {
- // position object
- that = {
- x : x.x,
- y : x.y
- };
- }
- if (x.pageX != null) {
- // event object
- that = {
- x : x.pageX,
- y : x.pageY
- };
- }
- }
- } else {
- that = {
- x : parseFloat(x),
- y : parseFloat(y)
- };
- }
- that.equals = function(other) {
- return (this.x === other.x && this.y === other.y);
- };
- // add position other to this
- that.add = function(other) {
- this.x += other.x;
- this.y += other.y;
- return this;
- };
- // returns negative position
- that.neg = function() {
- return position({
- x : -this.x,
- y : -this.y
- });
- };
- // returns new position that is the difference between this and other
- that.delta = function(other) {
- return position({
- x : other.x - this.x,
- y : other.y - this.y
- });
- };
- // adjusts position $elem to this position
- that.adjustDiv = function($elem) {
- $elem.offset({
- left : this.x,
- top : this.y
- });
- };
- // returns distance of this position to pos (length if pos == null)
- that.distance = function(pos) {
- if (pos == null) {
- pos = {
- x : 0,
- y : 0
- };
- }
- var dx = pos.x - this.x;
- var dy = pos.y - this.y;
- return Math.sqrt(dx * dx + dy * dy);
- };
- that.toString = function() {
- return (this.x + "," + this.y);
- };
- return that;
- };
- /*
- * Rectangle class
- */
- var rectangle = function(x, y, w, h) {
- var that = {};
- if (typeof x === "object") {
- if (x instanceof jQuery) {
- // jQuery object
- var pos = x.offset();
- that = {
- x : pos.left,
- y : pos.top,
- width : x.width(),
- height : x.height()
- };
- } else if (y == null) {
- // assume x is rectangle
- that = {
- x : x.x,
- y : x.y,
- width : x.width,
- height : x.height
- };
- } else {
- // assume x and y are Position
- that = {
- x : Math.min(x.x, y.x),
- y : Math.min(x.y, y.y),
- width : Math.abs(y.x - x.x),
- height : Math.abs(y.y - x.y)
- };
- }
- } else {
- that = {
- x : parseFloat(x),
- y : parseFloat(y),
- width : parseFloat(w),
- height : parseFloat(h)
- };
- }
- // returns a copy of this Rectangle
- that.copy = function() {
- return rectangle(this);
- };
- // returns the position of this Rectangle
- that.getPosition = function() {
- return position(this);
- };
- // returns the size of this Rectangle
- that.getSize = function() {
- return size(this);
- };
- // returns the upper left corner position
- that.getPt1 = that.getPosition;
- // returns the lower right corner position of this Rectangle
- that.getPt2 = function() {
- return position({
- x : this.x + this.width,
- y : this.y + this.height
- });
- };
- // sets the upper left corner position to pos
- that.setPosition = function(pos) {
- this.x = pos.x;
- this.y = pos.y;
- return this;
- };
- that.setPt1 = that.setPosition; // TODO: not really the same
- // adds pos to the position
- that.addPosition = function(pos) {
- this.x += pos.x;
- this.y += pos.y;
- return this;
- };
- // sets the lower right corner to position pos
- that.setPt2 = function(pos) {
- this.width = pos.x - this.x;
- this.height = pos.y - this.y;
- return this;
- };
- // returns the center position of this Rectangle
- that.getCenter = function() {
- return position({
- x : this.x + this.width / 2,
- y : this.y + this.height / 2
- });
- };
- // moves this Rectangle's center to position pos
- that.setCenter = function(pos) {
- this.x = pos.x - this.width / 2;
- this.y = pos.y - this.height / 2;
- return this;
- };
- that.equals = function(other) {
- // equal props
- var eq = (this.x === other.x && this.y === other.y && this.width === other.width);
- return eq;
- };
- // returns the area of this Rectangle
- that.getArea = function() {
- return (this.width * this.height);
- };
- // eliminates negative width and height
- that.normalize = function() {
- var p = this.getPt2();
- this.x = Math.min(this.x, p.x);
- this.y = Math.min(this.y, p.y);
- this.width = Math.abs(this.width);
- this.height = Math.abs(this.height);
- return this;
- };
- // returns if Position "pos" lies inside of this rectangle
- that.containsPosition = function(pos) {
- var ct = ((pos.x >= this.x) && (pos.y >= this.y)
- && (pos.x <= this.x + this.width) && (pos.y <= this.y
- + this.height));
- return ct;
- };
- // returns if rectangle "rect" is contained in this rectangle
- that.containsRect = function(rect) {
- return (this.containsPosition(rect.getPt1()) && this
- .containsPosition(rect.getPt2()));
- };
- // changes this rectangle's x/y values so it stays inside of rectangle
- // rect
- // keeping the proportions
- that.stayInside = function(rect) {
- if (this.x < rect.x) {
- this.x = rect.x;
- }
- if (this.y < rect.y) {
- this.y = rect.y;
- }
- if (this.x + this.width > rect.x + rect.width) {
- this.x = rect.x + rect.width - this.width;
- }
- if (this.y + this.height > rect.y + rect.height) {
- this.y = rect.y + rect.height - this.height;
- }
- return this;
- };
- // clips this rectangle so it stays inside of rectangle rect
- that.clipTo = function(rect) {
- var p1 = rect.getPt1();
- var p2 = rect.getPt2();
- var this2 = this.getPt2();
- this.setPosition(position(Math.max(this.x, p1.x), Math.max(this.y, p1.y)));
- this.setPt2(position(Math.min(this2.x, p2.x), Math.min(this2.y, p2.y)));
- return this;
- };
- // returns the intersection of the given Rectangle and this one
- that.intersect = function(rect) {
- // FIX ME: not really, it should return null if there is no overlap
- var sec = rect.copy();
- if (sec.x < this.x) {
- sec.width = sec.width - (this.x - sec.x);
- sec.x = this.x;
- }
- if (sec.y < this.y) {
- sec.height = sec.height - (this.y - sec.y);
- sec.y = this.y;
- }
- if (sec.x + sec.width > this.x + this.width) {
- sec.width = (this.x + this.width) - sec.x;
- }
- if (sec.y + sec.height > this.y + this.height) {
- sec.height = (this.y + this.height) - sec.y;
- }
- return sec;
- };
- // returns a Rectangle that fits into this one (by moving first)
- that.fit = function(rect) {
- var sec = rect.copy();
- sec.x = Math.max(sec.x, this.x);
- sec.y = Math.max(sec.y, this.x);
- if (sec.x + sec.width > this.x + this.width) {
- sec.x = this.x + this.width - sec.width;
- }
- if (sec.y + sec.height > this.y + this.height) {
- sec.y = this.y + this.height - sec.height;
- }
- return sec.intersect(this);
- };
- // adjusts position and size of $elem to this rectangle
- that.adjustDiv = function($elem) {
- $elem.offset({
- left : this.x,
- top : this.y
- });
- $elem.width(this.width).height(this.height);
- };
- // returns size and position in css-compatible format
- that.getAsCss = function() {
- return {
- left : this.x,
- top : this.y,
- width : this.width,
- height : this.height
- };
- };
- that.toString = function() {
- return this.width + "x" + this.height + "@" + this.x + "," + this.y;
- };
- return that;
- };
-
- /*
- * Transform class
- *
- * defines a class of affine transformations
- */
- var transform = function(spec) {
- var that = {
- m00 : 1.0,
- m01 : 0.0,
- m02 : 0.0,
- m10 : 0.0,
- m11 : 1.0,
- m12 : 0.0,
- m20 : 0.0,
- m21 : 0.0,
- m22 : 1.0
- };
- if (spec) {
- jQuery.extend(that, spec);
- }
- ;
- that.concat = function(trafA) {
- // add Transform trafA to this Transform (i.e. this = trafC = trafA
- // * this)
- var trafC = {};
- for ( var i = 0; i < 3; i++) {
- for ( var j = 0; j < 3; j++) {
- var c = 0.0;
- for ( var k = 0; k < 3; k++) {
- c += trafA["m" + i + k] * this["m" + k + j];
- }
- trafC["m" + i + j] = c;
- }
- }
- jQuery.extend(this, trafC);
- return this;
- };
- that.transform = function(rect) {
- // returns transformed Rectangle or Position with this Transform
- // applied
- var x = this.m00 * rect.x + this.m01 * rect.y + this.m02;
- var y = this.m10 * rect.x + this.m11 * rect.y + this.m12;
- var pt = position(x, y);
- if (rect.width) {
- // transform the other corner point
- var pt2 = this.transform(rect.getPt2());
- return rectangle(pt, pt2);
- }
- return pt;
- };
- that.invtransform = function(rect) {
- // returns transformed Rectangle or Position with the inverse of
- // this Transform applied
- var det = this.m00 * this.m11 - this.m01 * this.m10;
- var x = (this.m11 * rect.x - this.m01 * rect.y - this.m11
- * this.m02 + this.m01 * this.m12)
- / det;
- var y = (-this.m10 * rect.x + this.m00 * rect.y + this.m10
- * this.m02 - this.m00 * this.m12)
- / det;
- var pt = position(x, y);
- if (rect.width) {
- // transform the other corner point
- var pt2 = this.invtransform(rect.getPt2());
- return rectangle(pt, pt2);
- }
- return pt;
- };
- that.toString = function(pretty) {
- var s = '[';
- if (pretty)
- s += '\n';
- for ( var i = 0; i < 3; ++i) {
- s += '[';
- for ( var j = 0; j < 3; ++j) {
- if (j)
- s += ',';
- s += this['m' + i + j];
- }
- s += ']';
- if (pretty)
- s += '\n';
- }
- s += ']';
- if (pretty)
- s += '\n';
- return s;
- };
- // add class methods to instance
- that.getRotation = transform.getRotation;
- that.getRotationAround = transform.getRotationAround;
- that.getTranslation = transform.getTranslation;
- that.getMirror = transform.getMirror;
- that.getScale = transform.getScale;
-
- return that;
- };
-
- transform.getRotation = function(angle) {
- // returns a Transform that is a rotation by angle degrees around [0,0]
- if (angle !== 0) {
- var t = Math.PI * parseFloat(angle) / 180.0;
- var cost = Math.cos(t);
- var sint = Math.sin(t);
- var traf = {
- m00 : cost,
- m01 : -sint,
- m10 : sint,
- m11 : cost
- };
- return transform(traf);
- }
- return transform();
- };
-
- transform.getRotationAround = function(angle, pos) {
- // returns a Transform that is a rotation by angle degrees around pos
- var traf = transform.getTranslation(pos.neg());
- traf.concat(transform.getRotation(angle));
- traf.concat(transform.getTranslation(pos));
- return traf;
- };
-
- transform.getTranslation = function(pos) {
- // returns a Transform that is a translation by [pos.x, pos,y]
- var traf = {
- m02 : pos.x,
- m12 : pos.y
- };
- return transform(traf);
- };
-
- transform.getMirror = function(type) {
- // returns a Transform that is a mirror about the axis type
- if (type === 'x') {
- var traf = {
- m00 : 1,
- m11 : -1
- };
- } else {
- var traf = {
- m00 : -1,
- m11 : 1
- };
- }
- return transform(traf);
- };
-
- transform.getScale = function(size) {
- // returns a Transform that is a scale by [size.width, size.height]
- var traf = {
- m00 : size.width,
- m11 : size.height
- };
- return transform(traf);
- };
-
- // export functions
- var that = {
- size : size,
- position : position,
- rectangle : rectangle,
- transform : transform
- };
-
- return that;
-};
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/jquery.digilib.annotator.js
--- a/webapp/src/main/webapp/jquery/jquery.digilib.annotator.js Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.annotator.js Mon Feb 25 18:52:36 2013 +0100
@@ -1,3 +1,25 @@
+/*
+ * #%L
+ * digilib plugin for annotations.
+ * %%
+ * Copyright (C) 2012 - 2013 MPIWG Berlin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * .
+ * #L%
+ * Authors: Robert Casties
+ */
/**
digilib plugin for annotations.
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/jquery.digilib.arrows.js
--- a/webapp/src/main/webapp/jquery/jquery.digilib.arrows.js Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.arrows.js Mon Feb 25 18:52:36 2013 +0100
@@ -1,3 +1,25 @@
+/*
+ * #%L
+ * digilib-webapp
+ * %%
+ * Copyright (C) 2011 - 2013 MPIWG Berlin, Bibliotheca Hertziana
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * .
+ * #L%
+ * Authors: Robert Casties, Martin Raspe
+ */
/**
* digilib pan arrows for scrolling the zoomed area.
*/
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/jquery.digilib.birdseye.js
--- a/webapp/src/main/webapp/jquery/jquery.digilib.birdseye.js Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.birdseye.js Mon Feb 25 18:52:36 2013 +0100
@@ -1,3 +1,25 @@
+/*
+ * #%L
+ * digilib bird's eye view plugin
+ * %%
+ * Copyright (C) 2011 - 2013 Bibliotheca Hertziana, MPIWG Berlin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * .
+ * #L%
+ * Authors: Martin Raspe, Robert Casties
+ */
/**
digilib bird's eye view plugin
*/
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/jquery.digilib.buttons.js
--- a/webapp/src/main/webapp/jquery/jquery.digilib.buttons.js Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.buttons.js Mon Feb 25 18:52:36 2013 +0100
@@ -1,3 +1,25 @@
+/*
+ * #%L
+ * digilib buttons plugin
+ * %%
+ * Copyright (C) 2011 - 2013 Bibliotheca Hertziana, MPIWG Berlin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * .
+ * #L%
+ * Authors: Martin Raspe, Robert Casties
+ */
/**
digilib buttons plugin
*/
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/jquery.digilib.dialogs.js
--- a/webapp/src/main/webapp/jquery/jquery.digilib.dialogs.js Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.dialogs.js Mon Feb 25 18:52:36 2013 +0100
@@ -1,3 +1,25 @@
+/*
+ * #%L
+ * digilib dialogs plugin
+ * %%
+ * Copyright (C) 2011 - 2013 Bibliotheca Hertziana, MPIWG Berlin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * .
+ * #L%
+ * Authors: Martin Raspe, Robert Casties
+ */
/**
digilib dialogs plugin
*/
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/jquery.digilib.geometry.js
--- a/webapp/src/main/webapp/jquery/jquery.digilib.geometry.js Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.geometry.js Mon Feb 25 18:52:36 2013 +0100
@@ -1,3 +1,25 @@
+/*
+ * #%L
+ * required digilib geometry plugin
+ * %%
+ * Copyright (C) 2011 - 2013 MPIWG Berlin, Bibliotheca Hertziana
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * .
+ * #L%
+ * Authors: Robert Casties, Martin Raspe
+ */
/** required digilib geometry plugin
*/
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/jquery.digilib.js
--- a/webapp/src/main/webapp/jquery/jquery.digilib.js Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.js Mon Feb 25 18:52:36 2013 +0100
@@ -1,21 +1,25 @@
-/* Copyright (c) 2011 Martin Raspe, Robert Casties
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with this program. If not, see .
-
-Authors:
- Martin Raspe, Robert Casties, 11.1.2011
-*/
+/*
+ * #%L
+ * digilib-webapp
+ * %%
+ * Copyright (C) 2011 - 2013 MPIWG Berlin, Bibliotheca Hertziana
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * .
+ * #L%
+ * Authors: Martin Raspe, Robert Casties, 11.1.2011
+ */
/**
* digilib jQuery plugin
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/jquery.digilib.marks.js
--- a/webapp/src/main/webapp/jquery/jquery.digilib.marks.js Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.marks.js Mon Feb 25 18:52:36 2013 +0100
@@ -1,3 +1,25 @@
+/*
+ * #%L
+ * digilib marks plugin
+ * %%
+ * Copyright (C) 2011 - 2013 MPIWG Berlin, Bibliotheca Hertziana
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * .
+ * #L%
+ * Authors: Robert Casties, Martin Raspe
+ */
/**
* digilib marks plugin
*/
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/jquery.digilib.pluginstub.js
--- a/webapp/src/main/webapp/jquery/jquery.digilib.pluginstub.js Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.pluginstub.js Mon Feb 25 18:52:36 2013 +0100
@@ -1,3 +1,25 @@
+/*
+ * #%L
+ * digilib plugin stub
+ * %%
+ * Copyright (C) 2011 - 2013 Bibliotheca Hertziana, MPIWG Berlin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * .
+ * #L%
+ * Authors: Robert Casties, Martin Raspe
+ */
/**
digilib plugin stub
*/
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/jquery.digilib.regions.js
--- a/webapp/src/main/webapp/jquery/jquery.digilib.regions.js Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.regions.js Mon Feb 25 18:52:36 2013 +0100
@@ -1,3 +1,25 @@
+/*
+ * #%L
+ * optional digilib regions plugin
+ * %%
+ * Copyright (C) 2011 - 2013 Bibliotheca Hertziana, MPIWG Berlin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * .
+ * #L%
+ * Authors: Martin Raspe, Robert Casties
+ */
/** optional digilib regions plugin
Mark up a digilib image with rectangular regions.
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/jquery.digilib.sliders.js
--- a/webapp/src/main/webapp/jquery/jquery.digilib.sliders.js Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.sliders.js Mon Feb 25 18:52:36 2013 +0100
@@ -1,3 +1,25 @@
+/*
+ * #%L
+ * digilib sliders plugin
+ * %%
+ * Copyright (C) 2011 - 2013 Bibliotheca Hertziana, MPIWG Berlin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * .
+ * #L%
+ * Authors: Martin Raspe, Robert Casties
+ */
/**
digilib sliders plugin
*/
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/jquery.digilib.svg.js
--- a/webapp/src/main/webapp/jquery/jquery.digilib.svg.js Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.svg.js Mon Feb 25 18:52:36 2013 +0100
@@ -1,22 +1,25 @@
-/* Copyright (c) 2011 Martin Raspe, Robert Casties
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with this program. If not, see .
-
-Authors:
- Martin Raspe, Robert Casties, 26.3.2012
-*/
-
+/*
+ * #%L
+ * digilib SVG plugin
+ * %%
+ * Copyright (C) 2012 - 2013 Bibliotheca Hertziana, MPIWG Berlin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * .
+ * #L%
+ * Authors: Martin Raspe, Robert Casties, 26.3.2012
+ */
/**
* digilib SVG plugin (display a SVG on top if scaler image and zoom/rotate/mirror etc.)
**/
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/images/ui-bg_flat_0_aaaaaa_40x100.png
Binary file webapp/src/main/webapp/jquery/ui/images/ui-bg_flat_0_aaaaaa_40x100.png has changed
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/images/ui-bg_flat_75_ffffff_40x100.png
Binary file webapp/src/main/webapp/jquery/ui/images/ui-bg_flat_75_ffffff_40x100.png has changed
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/images/ui-bg_glass_55_fbf9ee_1x400.png
Binary file webapp/src/main/webapp/jquery/ui/images/ui-bg_glass_55_fbf9ee_1x400.png has changed
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/images/ui-bg_glass_65_ffffff_1x400.png
Binary file webapp/src/main/webapp/jquery/ui/images/ui-bg_glass_65_ffffff_1x400.png has changed
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/images/ui-bg_glass_75_dadada_1x400.png
Binary file webapp/src/main/webapp/jquery/ui/images/ui-bg_glass_75_dadada_1x400.png has changed
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/images/ui-bg_glass_75_e6e6e6_1x400.png
Binary file webapp/src/main/webapp/jquery/ui/images/ui-bg_glass_75_e6e6e6_1x400.png has changed
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/images/ui-bg_glass_95_fef1ec_1x400.png
Binary file webapp/src/main/webapp/jquery/ui/images/ui-bg_glass_95_fef1ec_1x400.png has changed
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png
Binary file webapp/src/main/webapp/jquery/ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png has changed
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/images/ui-icons_222222_256x240.png
Binary file webapp/src/main/webapp/jquery/ui/images/ui-icons_222222_256x240.png has changed
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/images/ui-icons_2e83ff_256x240.png
Binary file webapp/src/main/webapp/jquery/ui/images/ui-icons_2e83ff_256x240.png has changed
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/images/ui-icons_454545_256x240.png
Binary file webapp/src/main/webapp/jquery/ui/images/ui-icons_454545_256x240.png has changed
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/images/ui-icons_888888_256x240.png
Binary file webapp/src/main/webapp/jquery/ui/images/ui-icons_888888_256x240.png has changed
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/images/ui-icons_cd0a0a_256x240.png
Binary file webapp/src/main/webapp/jquery/ui/images/ui-icons_cd0a0a_256x240.png has changed
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/jquery-test-embedded.SLIDER.html
--- a/webapp/src/main/webapp/jquery/ui/jquery-test-embedded.SLIDER.html Mon Feb 25 15:21:48 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-
-
-
- Digilib jQuery Test: embedded
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- DEBUG
-
-
-
-
-
-
-
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/jquery-test-full.SLIDER.html
--- a/webapp/src/main/webapp/jquery/ui/jquery-test-full.SLIDER.html Mon Feb 25 15:21:48 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-
-
-
-
- Digilib jQuery Test: fullscreen
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/jquery-ui-1.8.9.custom.css
--- a/webapp/src/main/webapp/jquery/ui/jquery-ui-1.8.9.custom.css Mon Feb 25 15:21:48 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,573 +0,0 @@
-/*
- * jQuery UI CSS Framework 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden { display: none; }
-.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
-.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
-.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
-.ui-helper-clearfix { display: inline-block; }
-/* required comment for clearfix to work in Opera \*/
-* html .ui-helper-clearfix { height:1%; }
-.ui-helper-clearfix { display:block; }
-/* end clearfix */
-.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled { cursor: default !important; }
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
-
-
-/*
- * jQuery UI CSS Framework 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
- */
-
-
-/* Component containers
-----------------------------------*/
-.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
-.ui-widget .ui-widget { font-size: 1em; }
-.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
-.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
-.ui-widget-content a { color: #222222; }
-.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
-.ui-widget-header a { color: #222222; }
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
-.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
-.ui-widget :active { outline: none; }
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
-.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
-.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
-.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
-.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
-.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
-.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
-
-/* positioning */
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-off { background-position: -96px -144px; }
-.ui-icon-radio-on { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; }
-.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
-.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
-.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
-.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
-.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
-.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
-.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
-.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; }
-
-/* Overlays */
-.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
-.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
- * jQuery UI Resizable 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
- * jQuery UI Selectable 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
-/*
- * jQuery UI Accordion 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion#theming
- */
-/* IE/Win - Fix animation bug - #4615 */
-.ui-accordion { width: 100%; }
-.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
-.ui-accordion .ui-accordion-li-fix { display: inline; }
-.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
-.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
-.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
-.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }
-/*
- * jQuery UI Autocomplete 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-
-/*
- * jQuery UI Menu 1.8.9
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Menu#theming
- */
-.ui-menu {
- list-style:none;
- padding: 2px;
- margin: 0;
- display:block;
- float: left;
-}
-.ui-menu .ui-menu {
- margin-top: -3px;
-}
-.ui-menu .ui-menu-item {
- margin:0;
- padding: 0;
- zoom: 1;
- float: left;
- clear: left;
- width: 100%;
-}
-.ui-menu .ui-menu-item a {
- text-decoration:none;
- display:block;
- padding:.2em .4em;
- line-height:1.5;
- zoom:1;
-}
-.ui-menu .ui-menu-item a.ui-state-hover,
-.ui-menu .ui-menu-item a.ui-state-active {
- font-weight: normal;
- margin: -1px;
-}
-/*
- * jQuery UI Button 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button#theming
- */
-.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
-.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
-button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; }
-button.ui-button-icons-only { width: 3.7em; }
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 1.4; }
-.ui-button-text-only .ui-button-text { padding: .4em 1em; }
-.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
-.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-/*
- * jQuery UI Dialog 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
-.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
-.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
-.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
-.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
-.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
-.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
-.ui-draggable .ui-dialog-titlebar { cursor: move; }
-/*
- * jQuery UI Slider 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider#theming
- */
-.ui-slider { position: relative; text-align: left; }
-.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
-.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
-
-.ui-slider-horizontal { height: .8em; }
-.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
-.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
-.ui-slider-horizontal .ui-slider-range-min { left: 0; }
-.ui-slider-horizontal .ui-slider-range-max { right: 0; }
-
-.ui-slider-vertical { width: .8em; height: 100px; }
-.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
-.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
-.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
-.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
- * jQuery UI Tabs 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs#theming
- */
-.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
-.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
-.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
-.ui-tabs .ui-tabs-hide { display: none !important; }
-/*
- * jQuery UI Datepicker 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker#theming
- */
-.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
-.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
-.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
-.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month,
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
- display: none; /*sorry for IE5*/
- display/**/: block; /*sorry for IE5*/
- position: absolute; /*must have*/
- z-index: -1; /*must have*/
- filter: mask(); /*must have*/
- top: -4px; /*must have*/
- left: -4px; /*must have*/
- width: 200px; /*must have*/
- height: 200px; /*must have*/
-}/*
- * jQuery UI Progressbar 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar#theming
- */
-.ui-progressbar { height:2em; text-align: left; }
-.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/jquery.digilib.SLIDER.js
--- a/webapp/src/main/webapp/jquery/ui/jquery.digilib.SLIDER.js Mon Feb 25 15:21:48 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1613 +0,0 @@
-/* Copyright (c) 2011 Martin Raspe, Robert Casties
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with this program. If not, see .
-
-Authors:
- Martin Raspe, Robert Casties, 11.1.2011
-*/
-
-/**
- * digilib jQuery plugin
-**/
-
-
-/* jslint browser: true, debug: true, forin: true
-*/
-
-// fallback for console.log calls
-if (typeof(console) === 'undefined') {
- var console = {
- log : function(){},
- debug : function(){},
- error : function(){}
- };
- var customConsole = true;
-}
-
-(function($) {
- var buttons = {
- reference : {
- onclick : "reference",
- tooltip : "get a reference URL",
- img : "reference.png"
- },
- zoomin : {
- onclick : ["zoomBy", 1.4],
- tooltip : "zoom in",
- img : "zoom-in.png"
- },
- zoomout : {
- onclick : ["zoomBy", 0.7],
- tooltip : "zoom out",
- img : "zoom-out.png"
- },
- zoomarea : {
- onclick : "zoomArea",
- tooltip : "zoom area",
- img : "zoom-area.png"
- },
- zoomfull : {
- onclick : "zoomFull",
- tooltip : "view the whole image",
- img : "zoom-full.png"
- },
- pagewidth : {
- onclick : ["zoomFull", "width"],
- tooltip : "page width",
- img : "pagewidth.png"
- },
- back : {
- onclick : ["gotoPage", "-1"],
- tooltip : "goto previous image",
- img : "back.png"
- },
- fwd : {
- onclick : ["gotoPage", "+1"],
- tooltip : "goto next image",
- img : "fwd.png"
- },
- page : {
- onclick : "gotoPage",
- tooltip : "goto image number",
- img : "page.png"
- },
- bird : {
- onclick : "showBirdDiv",
- tooltip : "show bird's eye view",
- img : "birds-eye.png"
- },
- help : {
- onclick : "showAboutDiv",
- tooltip : "about Digilib",
- img : "help.png"
- },
- reset : {
- onclick : "reset",
- tooltip : "reset image",
- img : "reset.png"
- },
- mark : {
- onclick : "setMark",
- tooltip : "set a mark",
- img : "mark.png"
- },
- delmark : {
- onclick : "removeMark",
- tooltip : "delete the last mark",
- img : "delmark.png"
- },
- hmir : {
- onclick : ["mirror", "h"],
- tooltip : "mirror horizontally",
- img : "mirror-horizontal.png"
- },
- vmir : {
- onclick : ["mirror", "v"],
- tooltip : "mirror vertically",
- img : "mirror-vertical.png"
- },
- rot : {
- onclick : "rotate",
- tooltip : "rotate image",
- img : "rotate.png"
- },
- brgt : {
- onclick : "brightness",
- tooltip : "set brightness",
- img : "brightness.png"
- },
- cont : {
- onclick : "contrast",
- tooltip : "set contrast",
- img : "contrast.png"
- },
- rgb : {
- onclick : "javascript:setParamWin('rgb', '...')",
- tooltip : "set rgb values",
- img : "rgb.png"
- },
- quality : {
- onclick : "setQuality",
- tooltip : "set image quality",
- img : "quality.png"
- },
- size : {
- onclick : "javascript:toggleSizeMenu()",
- tooltip : "set page size",
- img : "size.png"
- },
- calibrationx : {
- onclick : "javascript:calibrate('x')",
- tooltip : "calibrate screen x-ratio",
- img : "calibration-x.png"
- },
- scale : {
- onclick : "javascript:toggleScaleMenu()",
- tooltip : "change image scale",
- img : "original-size.png"
- },
- toggleoptions : {
- onclick : "moreButtons",
- tooltip : "more options",
- img : "options.png"
- },
- moreoptions : {
- onclick : ["moreButtons", "+1"],
- tooltip : "more options",
- img : "options.png"
- },
- lessoptions : {
- onclick : ["moreButtons", "-1"],
- tooltip : "less options",
- img : "options.png"
- },
- SEP : {
- img : "sep.png"
- }
- };
-
- var defaults = {
- // version of this script
- 'version' : 'jquery.digilib.js 0.9',
- // logo url
- 'logoUrl' : '../img/digilib-logo-text1.png',
- // homepage url (behind logo)
- 'homeUrl' : 'http://digilib.berlios.de',
- // base URL to digilib viewer (for reference URLs)
- 'digilibBaseUrl' : null,
- // base URL to Scaler servlet
- 'scalerBaseUrl' : null,
- // list of Scaler parameters
- 'scalerParamNames' : ['fn','pn','dw','dh','ww','wh','wx','wy','ws','mo',
- 'rot','cont','brgt','rgbm','rgba','ddpi','ddpix','ddpiy'],
- // Scaler parameter defaults
- 'pn' : 1,
- 'ww' : 1.0,
- 'wh' : 1.0,
- 'wx' : 0.0,
- 'wy' : 0.0,
- 'ws' : 1.0,
- 'mo' : '',
- 'rot' : 0,
- 'cont' : 0,
- 'brgt' : 0,
- 'rgbm' : '0/0/0',
- 'rgba' : '0/0/0',
- 'ddpi' : null,
- 'ddpix' : null,
- 'ddpiy' : null,
- // list of digilib parameters
- 'digilibParamNames' : ['fn','pn','ww','wh','wx','wy','ws','mo','rot','cont','brgt','rgbm','rgba','mk','clop'],
- // digilib parameter defaults
- 'mk' : '',
- 'clop' : '',
- // mode of operation:
- // fullscreen = take parameters from page URL, keep state in page URL
- // embedded = take parameters from Javascript options, keep state inside object
- 'interactionMode' : 'fullscreen',
- // buttons
- 'buttons' : buttons,
- // defaults for digilib buttons
- 'buttonSettings' : {
- 'fullscreen' : {
- // path to button images (must end with a slash)
- 'imagePath' : 'img/fullscreen/',
- 'standardSet' : ["reference","zoomin","zoomout","zoomarea","zoomfull","pagewidth","back","fwd","page","bird","help","reset","toggleoptions"],
- 'specialSet' : ["mark","delmark","hmir","vmir","rot","brgt","cont","rgb","quality","size","calibrationx","scale","toggleoptions"],
- 'buttonSets' : ['standardSet', 'specialSet']
- },
- 'embedded' : {
- 'imagePath' : 'img/embedded/16/',
- 'standardSet' : ["reference","zoomin","zoomout","zoomarea","zoomfull","bird","help","reset","toggleoptions"],
- 'specialSet' : ["mark","delmark","hmir","vmir","rot","brgt","cont","rgb","quality","toggleoptions"],
- 'buttonSets' : ['standardSet', 'specialSet']
- }
- },
- // number of visible button groups
- 'visibleButtonSets' : 1,
- // is birdView shown?
- 'isBirdDivVisible' : false,
- // dimensions of bird's eye div
- 'birdDivWidth' : 200,
- 'birdDivHeight' : 200,
- // parameters used by bird's eye div
- 'birdDivParams' : ['fn','pn','dw','dh'],
- // style of the zoom area indicator in the bird's eye div
- 'birdIndicatorStyle' : {'border' : '2px solid #ff0000' },
- // style of zoom area "rubber band"
- 'zoomrectStyle' : {'border' : '2px solid #ff0000' },
- // is the "about" window shown?
- 'isAboutDivVisible' : false,
- // maximum width of background image for drag-scroll
- 'maxBgSize' : 10000
-
- };
-
- // affine geometry classes
- var geom = dlGeometry();
-
- var FULL_AREA = geom.rectangle(0, 0, 1, 1);
-
- var actions = {
- // init: digilib initialization
- init : function(options) {
- // settings for this digilib instance are merged from defaults and options
- var settings = $.extend({}, defaults, options);
- var isFullscreen = settings.interactionMode === 'fullscreen';
- var queryParams = {};
- if (isFullscreen) {
- queryParams = parseQueryParams();
- // check scalerBaseUrl
- if (settings.scalerBaseUrl == null) {
- // try the host this came from
- var h = window.location.host;
- if (window.location.host) {
- var url = window.location.href;
- // assume the page lives in [webapp]/jquery/
- var pos = url.indexOf('jquery/');
- if (pos > 0) {
- settings.scalerBaseUrl = url.substring(0, pos) + 'servlet/Scaler';
- }
- }
- }
- }
- return this.each(function() {
- var $elem = $(this);
- var data = $elem.data('digilib');
- var params, elemSettings;
- // if the plugin hasn't been initialized yet
- if (!data) {
- // merge query parameters
- if (isFullscreen) {
- params = queryParams;
- } else {
- params = parseImgParams($elem);
- if (jQuery.cookie) {
- // retrieve params from cookie
- var ck = "digilib-embed:fn:" + escape(params.fn) + ":pn:" + (params.pn || '1');
- var cs = jQuery.cookie(ck);
- console.debug("get cookie=", ck, " value=", cs);
- if (cs) {
- var cp = parseQueryString(cs);
- // ignore fn and pn from cookie TODO: should we keep pn?
- delete cp.fn;
- delete cp.pn;
- jQuery.extend(params, cp);
- }
- }
- }
- // store $(this) element in the settings
- elemSettings = jQuery.extend({}, settings, params);
- data = {
- $elem : $elem,
- settings : elemSettings,
- queryParams : params
- };
- // store in data element
- $elem.data('digilib', data);
- }
- unpackParams(data);
- // check if browser knows *background-size
- for (var bs in {'':1, '-moz-':1, '-webkit-':1, '-o-':1}) {
- if ($elem.css(bs+'background-size')) {
- data.hasBgSize = true;
- data.bgSizeName = bs+'background-size';
- break;
- }
- }
- // check digilib base URL
- if (elemSettings.digilibBaseUrl == null) {
- if (isFullscreen) {
- // take current host
- var url = window.location.toString();
- var pos = url.indexOf('?');
- elemSettings.digilibBaseUrl = url.substring(0, pos);
- } else {
- var url = elemSettings.scalerBaseUrl;
- if (url) {
- // build it from scaler URL
- var bp = url.indexOf('/servlet/Scaler');
- elemSettings.digilibBaseUrl = url.substring(0, bp) + '/digilib.jsp';
- }
- }
- }
- // create HTML structure for scaler
- setupScalerDiv(data);
- // add buttons
- for (var i = 0; i < elemSettings.visibleButtonSets; ++i) {
- showButtons(data, true, i);
- }
- // bird's eye view creation
- if (elemSettings.isBirdDivVisible) {
- setupBirdDiv(data);
- data.$birdDiv.show();
- }
- // about window creation - TODO: could be deferred? restrict to only one item?
- setupAboutDiv(data);
- // drag zoom area around in scaler div
- setupZoomDrag(data);
- // dialog for brightness, rotate etc.
- setupDialogDiv(data);
- });
- },
-
- // destroy: clean up digilib
- destroy : function(data) {
- return this.each(function(){
- var $elem = $(this);
- $(window).unbind('.digilib'); // unbind all digilibs(?)
- data.digilib.remove();
- $elem.removeData('digilib');
- });
- },
-
- // show or hide the 'about' window
- showAboutDiv : function(data, show) {
- data.settings.isAboutDivVisible = showDiv(data.settings.isAboutDivVisible, data.$aboutDiv, show);
- },
-
- // event handler: toggles the visibility of the bird's eye window
- showBirdDiv : function (data, show) {
- var settings = data.settings;
- if (data.$birdDiv == null) {
- // no bird div -> create
- setupBirdDiv(data);
- }
- settings.isBirdDivVisible = showDiv(settings.isBirdDivVisible, data.$birdDiv, show);
- updateBirdDiv(data);
- storeOptions(data);
- // data.$birdImg.triggerHandler('load'); // TODO: we shouldn't do that
- },
-
- // goto given page nr (+/-: relative)
- gotoPage : function (data, pageNr) {
- var settings = data.settings;
- var oldpn = settings.pn;
- if (pageNr == null) {
- pageNr = window.prompt("Goto page number", oldpn);
- }
- var pn = setNumValue(settings, "pn", pageNr);
- if (pn == null) return false; // nothing happened
- if (pn < 1) {
- alert("no such page (page number too low)");
- settings.pn = oldpn;
- return false;
- }
- if (settings.pt) {
- if (pn > settings.pt) {
- alert("no such page (page number too high)");
- settings.pn = oldpn;
- return false;
- }
- }
- // reset mk and others(?)
- data.marks = [];
- data.zoomArea = FULL_AREA;
- // then reload
- redisplay(data);
- },
-
- // zoom by a given factor
- zoomBy : function (data, factor) {
- zoomBy(data, factor);
- },
-
- // zoom interactively
- zoomArea : function (data) {
- zoomArea(data);
- },
-
- // zoom out to full page
- zoomFull : function (data, mode) {
- data.zoomArea = FULL_AREA;
- if (mode === 'width') {
- data.dlOpts.fitwidth = 1;
- delete data.dlOpts.fitheight;
- } else if (mode === 'height') {
- data.dlOpts.fitheight = 1;
- delete data.dlOpts.fitwidth;
- } else {
- delete data.dlOpts.fitwidth;
- delete data.dlOpts.fitheight;
- }
- redisplay(data);
- },
-
- // set a mark by clicking (or giving a position)
- setMark : function (data, mpos) {
- if (mpos == null) {
- // interactive
- setMark(data);
- } else {
- // use position
- data.marks.push(pos);
- redisplay(data);
- }
- },
-
- // remove the last mark
- removeMark : function (data) {
- data.marks.pop();
- redisplay(data);
- },
-
- // mirror the image
- mirror : function (data, mode) {
- var flags = data.scalerFlags;
- if (mode === 'h') {
- if (flags.hmir) {
- delete flags.hmir;
- } else {
- flags.hmir = 1;
- }
- } else {
- if (flags.vmir) {
- delete flags.vmir;
- } else {
- flags.vmir = 1;
- }
- }
- redisplay(data);
- },
-
- // rotate the image
- rotate : function (data, angle) {
- var rot = data.settings.rot;
- if (angle == null) {
- // angle = window.prompt("Rotation angle:", rot);
- var $slider = data.$slider;
- $slider.slider('enable');
- var $dialog = data.$dialog;
- $dialog.text('Set the slider');
- $dialog.dialog('option', {
- 'title' : 'set rotation angle',
- });
- $dialog.dialog('open');
- }
- //data.settings.rot = angle;
- //redisplay(data);
- },
-
- // change brightness
- brightness : function (data, factor) {
- var brgt = data.settings.brgt;
- if (factor == null) {
- factor = window.prompt("Brightness (-255..255)", brgt);
- }
- data.settings.brgt = factor;
- redisplay(data);
- },
-
- // change contrast
- contrast : function (data, factor) {
- var cont = data.settings.cont;
- if (factor == null) {
- factor = window.prompt("Contrast (-8, 8)", cont);
- }
- data.settings.cont = factor;
- redisplay(data);
- },
-
- // display more (or less) button sets
- moreButtons : function (data, more) {
- var settings = data.settings;
- if (more == null) {
- // toggle more or less (only works for 2 sets)
- var maxbtns = settings.buttonSettings[settings.interactionMode].buttonSets.length;
- if (settings.visibleButtonSets >= maxbtns) {
- more = '-1';
- } else {
- more = '+1';
- }
- }
- if (more === '-1') {
- // remove set
- var setIdx = settings.visibleButtonSets - 1;
- if (showButtons(data, false, setIdx, true)) {
- settings.visibleButtonSets--;
- }
- } else {
- // add set
- var setIdx = settings.visibleButtonSets;
- if (showButtons(data, true, setIdx, true)) {
- settings.visibleButtonSets++;
- }
- }
- // persist setting
- storeOptions(data);
- },
-
- // reset image parameters to defaults
- reset : function (data) {
- var settings = data.settings;
- var paramNames = settings.digilibParamNames;
- var params = data.queryParams;
- // delete all digilib parameters
- for (var i = 0; i < paramNames.length; i++) {
- var paramName = paramNames[i];
- delete settings[paramName];
- }
- settings.fn = params.fn || ''; // no default defined
- settings.pn = params.pn || defaults.pn;
- settings.dw = params.dw;
- settings.dh = params.dh;
- settings.isBirdDivVisible = false;
- settings.visibleButtonSets = 1;
- // resets zoomArea, marks, scalerflags
- data.zoomArea = FULL_AREA;
- data.marks = [];
- data.scalerFlags = {};
- delete data.dlOpts.fitwidth;
- delete data.dlOpts.fitheight;
- redisplay(data);
- },
-
- // presents a reference url (returns value if noprompt)
- reference : function (data, noprompt) {
- var settings = data.settings;
- var url = getDigilibUrl(data);
- if (noprompt == null) {
- window.prompt("URL reference to the current view", url);
- }
- return url;
- },
-
- // set image quality
- setQuality : function (data, qual) {
- var oldq = getQuality(data);
- if (qual == null) {
- qual = window.prompt("Image quality (0..2)", oldq);
- }
- qual = parseInt(qual, 10);
- if (qual >= 0 && qual <= 2) {
- setQuality(data, qual);
- redisplay(data);
- }
- }
- };
-
- // returns parameters from page url
- var parseQueryParams = function() {
- return parseQueryString(window.location.search.slice(1));
- };
-
- // returns parameters from embedded img-element
- var parseImgParams = function($elem) {
- var src = $elem.find('img').first().attr('src');
- if (!src) return null;
- var pos = src.indexOf('?');
- var query = (pos < 0) ? '' : src.substring(pos + 1);
- var scalerUrl = src.substring(0, pos);
- var params = parseQueryString(query);
- params.scalerBaseUrl = scalerUrl;
- return params;
- };
-
- // parses query parameter string into parameter object
- var parseQueryString = function(query) {
- var params = {};
- if (query == null) return params;
- var pairs = query.split("&");
- //var keys = [];
- for (var i = 0; i < pairs.length; i++) {
- var pair = pairs[i].split("=");
- if (pair.length === 2) {
- params[pair[0]] = pair[1];
- //keys.push(pair[0]);
- }
- }
- return params;
- };
-
- // returns a query string from key names from a parameter hash (ignoring if the same value is in defaults)
- var getParamString = function (settings, keys, defaults) {
- var paramString = '';
- var nx = false;
- for (i = 0; i < keys.length; ++i) {
- var key = keys[i];
- if ((settings[key] != null) && ((defaults == null) || (settings[key] != defaults[key]))) {
- // first param gets no '&'
- if (nx) {
- paramString += '&';
- } else {
- nx = true;
- }
- // add parm=val
- paramString += key + '=' + settings[key];
- }
- }
- return paramString;
- };
-
- // returns URL and query string for Scaler
- var getScalerUrl = function (data) {
- packParams(data);
- var settings = data.settings;
- if (settings.scalerBaseUrl == null) {
- alert("ERROR: URL of digilib Scaler servlet missing!");
- }
- var keys = settings.scalerParamNames;
- var queryString = getParamString(settings, keys, defaults);
- var url = settings.scalerBaseUrl + '?' + queryString;
- return url;
- };
-
- // returns URL for bird's eye view image
- var getBirdImgUrl = function (data, moreParams) {
- var settings = data.settings;
- var birdDivOptions = {
- dw : settings.birdDivWidth,
- dh : settings.birdDivHeight
- };
- var birdSettings = jQuery.extend({}, settings, birdDivOptions);
- // use only the relevant parameters
- if (moreParams == null) {
- var params = getParamString(birdSettings, settings.birdDivParams, defaults);
- } else {
- var params = getParamString(birdSettings,
- settings.birdDivParams.concat(moreParams), defaults);
- }
- var url = settings.scalerBaseUrl + '?' + params;
- return url;
- };
-
- // returns URL and query string for current digilib
- var getDigilibUrl = function (data) {
- packParams(data);
- var settings = data.settings;
- var queryString = getParamString(settings, settings.digilibParamNames, defaults);
- return settings.digilibBaseUrl + '?' + queryString;
- };
-
- // processes some parameters into objects and stuff
- var unpackParams = function (data) {
- var settings = data.settings;
- // zoom area
- var zoomArea = geom.rectangle(settings.wx, settings.wy, settings.ww, settings.wh);
- data.zoomArea = zoomArea;
- // marks
- var marks = [];
- if (settings.mk) {
- var mk = settings.mk;
- if (mk.indexOf(";") >= 0) {
- var pa = mk.split(";"); // old format with ";"
- } else {
- var pa = mk.split(","); // new format
- }
- for (var i = 0; i < pa.length ; i++) {
- var pos = pa[i].split("/");
- if (pos.length > 1) {
- marks.push(geom.position(pos[0], pos[1]));
- }
- }
- }
- data.marks = marks;
- // mo (Scaler flags)
- var flags = {};
- if (settings.mo) {
- var pa = settings.mo.split(",");
- for (var i = 0; i < pa.length ; i++) {
- flags[pa[i]] = pa[i];
- }
- }
- data.scalerFlags = flags;
- retrieveOptions(data);
- };
-
- // put objects back into parameters
- var packParams = function (data) {
- var settings = data.settings;
- // zoom area
- if (data.zoomArea) {
- settings.wx = cropFloat(data.zoomArea.x);
- settings.wy = cropFloat(data.zoomArea.y);
- settings.ww = cropFloat(data.zoomArea.width);
- settings.wh = cropFloat(data.zoomArea.height);
- }
- // marks
- if (data.marks) {
- settings.mk = '';
- for (var i = 0; i < data.marks.length; i++) {
- if (i) {
- settings.mk += ',';
- }
- settings.mk += cropFloat(data.marks[i].x).toString() +
- '/' + cropFloat(data.marks[i].y).toString();
- }
- }
- // Scaler flags
- if (data.scalerFlags) {
- var mo = '';
- for (var f in data.scalerFlags) {
- if (mo) {
- mo += ',';
- }
- mo += f;
- }
- settings.mo = mo;
- }
- // user interface options
- storeOptions(data);
- };
-
- var storeOptions = function (data) {
- // save digilib options in cookie
- var settings = data.settings;
- if (data.dlOpts) {
- // save digilib settings in options
- data.dlOpts.birdview = settings.isBirdDivVisible ? 1 : 0;
- data.dlOpts.buttons = settings.visibleButtonSets;
- var clop = '';
- for (var o in data.dlOpts) {
- if (clop) {
- clop += '&';
- }
- clop += o + '=' + data.dlOpts[o];
- }
- if (jQuery.cookie) {
- var ck = "digilib:fn:" + escape(settings.fn) + ":pn:" + settings.pn;
- console.debug("set cookie=", ck, " value=", clop);
- jQuery.cookie(ck, clop);
- }
- }
- if (settings.interactionMode !== 'fullscreen' && jQuery.cookie) {
- // store normal parameters in cookie for embedded mode
- var qs = getParamString(settings, settings.digilibParamNames, defaults);
- var ck = "digilib-embed:fn:" + escape(settings.fn) + ":pn:" + settings.pn;
- console.debug("set cookie=", ck, " value=", qs);
- jQuery.cookie(ck, qs);
- }
- };
-
- var retrieveOptions = function (data) {
- // clop (digilib options)
- var opts = {};
- var settings = data.settings;
- if (jQuery.cookie) {
- // read from cookie
- var ck = "digilib:fn:" + escape(settings.fn) + ":pn:" + settings.pn;
- var cp = jQuery.cookie(ck);
- console.debug("get cookie=", ck, " value=", cp);
- // in query string format
- opts = parseQueryString(cp);
- }
- data.dlOpts = opts;
- // birdview option
- if (opts.birdview != null) {
- settings.isBirdDivVisible = opts.birdview === '1';
- }
- // visible button sets
- if (opts.buttons != null) {
- settings.visibleButtonSets = opts.buttons;
- }
- };
-
- // (re)load the img from a new scaler URL
- var redisplay = function (data) {
- var settings = data.settings;
- if (settings.interactionMode === 'fullscreen') {
- // update location.href (browser URL) in fullscreen mode
- var url = getDigilibUrl(data);
- var history = window.history;
- if (typeof(history.pushState) === 'function') {
- console.debug("we could modify history, but we don't...");
- }
- window.location = url;
- } else {
- // embedded mode -- just change img src
- var url = getScalerUrl(data);
- data.$img.attr('src', url);
- // redisplay bird img
- updateBirdDiv(data);
- }
- };
-
- // returns maximum size for scaler img in fullscreen mode
- var getFullscreenImgSize = function($elem) {
- var $win = $(window);
- var winH = $win.height();
- var winW = $win.width();
- // TODO: account for borders?
- return geom.size(winW, winH);
- };
-
- // creates HTML structure for digilib in elem
- var setupScalerDiv = function (data) {
- var settings = data.settings;
- var $elem = data.$elem;
- $elem.addClass('digilib');
- var $img;
- var scalerUrl;
- if (settings.interactionMode === 'fullscreen') {
- // fullscreen
- $elem.addClass('dl_fullscreen');
- var imgSize = getFullscreenImgSize($elem);
- // fitwidth/height omits destination height/width
- if (data.dlOpts.fitheight == null) {
- settings.dw = imgSize.width;
- }
- if (data.dlOpts.fitwidth == null) {
- settings.dh = imgSize.height;
- }
- scalerUrl = getScalerUrl(data);
- $img = $(' ');
- } else {
- // embedded mode -- try to keep img tag
- $elem.addClass('dl_embedded');
- scalerUrl = getScalerUrl(data);
- $img = $elem.find('img');
- if ($img.length > 0) {
- oldUrl = $img.attr('src');
- if (oldUrl === scalerUrl) {
- console.debug("img detach:", $img);
- $img.detach();
- } else {
- $img = $(' ');
- }
- } else {
- $img = $(' ');
- }
- }
- // create new html
- $elem.empty(); // TODO: should we keep stuff for customization?
- var $scaler = $('
');
- $elem.append($scaler);
- $scaler.append($img);
- $img.addClass('pic');
- data.$scaler = $scaler;
- data.$img = $img;
- // setup image load handler before setting the src attribute (IE bug)
- $img.load(scalerImgLoadedHandler(data));
- $img.attr('src', scalerUrl);
- };
-
- // creates HTML structure for buttons in elem
- var createButtons = function (data, buttonSetIdx) {
- var $elem = data.$elem;
- var settings = data.settings;
- var mode = settings.interactionMode;
- var buttonSettings = settings.buttonSettings[mode];
- var buttonGroup = buttonSettings.buttonSets[buttonSetIdx];
- if (buttonGroup == null) {
- // no buttons here
- return;
- }
- var $buttonsDiv = $('
');
- var buttonNames = buttonSettings[buttonGroup];
- for (var i = 0; i < buttonNames.length; i++) {
- var buttonName = buttonNames[i];
- var buttonConfig = settings.buttons[buttonName];
- // construct the button html
- var $button = $('
');
- var $a = $(' ');
- var $img = $(' ');
- $buttonsDiv.append($button);
- $button.append($a);
- $a.append($img);
- // add attributes and bindings
- $button.attr('title', buttonConfig.tooltip);
- $button.addClass('button-' + buttonName);
- // create handler for the buttons
- $a.bind('click.digilib', (function () {
- // we create a new closure to capture the value of action
- var action = buttonConfig.onclick;
- if ($.isArray(action)) {
- // the handler function calls digilib with action and parameters
- return function (evt) {
- console.debug('click action=', action, ' evt=', evt);
- $elem.digilib.apply($elem, action);
- return false;
- };
- } else {
- // the handler function calls digilib with action
- return function (evt) {
- console.debug('click action=', action, ' evt=', evt);
- $elem.digilib(action);
- return false;
- };
- }
- })());
- $img.attr('src', buttonSettings.imagePath + buttonConfig.img);
- }
- // make buttons div scroll if too large for window
- if ($buttonsDiv.height() > $(window).height() - 10) {
- $buttonsDiv.css('position', 'absolute');
- }
- // buttons hidden at first
- $buttonsDiv.hide();
- $elem.append($buttonsDiv);
- if (data.$buttonSets == null) {
- // first button set
- data.$buttonSets = [$buttonsDiv];
- } else {
- $elem.append($buttonsDiv);
- data.$buttonSets[buttonSetIdx] = $buttonsDiv;
- }
- return $buttonsDiv;
- };
-
- // creates HTML structure for the bird's eye view in elem
- var setupBirdDiv = function (data) {
- var $elem = data.$elem;
- // the bird's eye div
- var $birdDiv = $('
');
- // the detail indicator frame
- var $birdZoom = $('
');
- // the small image
- var $birdImg = $(' ');
- data.$birdDiv = $birdDiv;
- data.$birdZoom = $birdZoom;
- data.$birdImg = $birdImg;
- $elem.append($birdDiv);
- $birdDiv.append($birdZoom);
- $birdDiv.append($birdImg);
- $birdZoom.css(data.settings.birdIndicatorStyle);
- var birdUrl = getBirdImgUrl(data);
- $birdImg.load(birdImgLoadedHandler(data));
- $birdImg.attr('src', birdUrl);
- };
-
- // update bird's eye view
- var updateBirdDiv = function (data) {
- if (!data.settings.isBirdDivVisible) return;
- var $birdImg = data.$birdImg;
- var oldsrc = $birdImg.attr('src');
- var newsrc = getBirdImgUrl(data);
- if (oldsrc !== newsrc) {
- $birdImg.attr('src', newsrc);
- // onload handler re-renders
- } else {
- // re-render
- renderBirdArea(data);
- // enable click and drag
- setupBirdDrag(data);
- }
- };
-
- // creates HTML structure for the dialog
- var setupDialogDiv = function (data) {
- var $elem = data.$elem;
- var settings = data.settings;
- var $dialogDiv = $('
');
- var $sliderDiv = $('
');
- $dialogDiv.append($sliderDiv);
- $dialogDiv.dialog({
- 'autoOpen' : false,
- 'buttons': {
- "Ok": function() {
- $(this).dialog("close");
- },
- "Cancel": function() {
- $(this).dialog("close");
- }
- }
- });
- $sliderDiv.slider({
- 'range' : true,
- 'min' : 0,
- 'max' : 500,
- 'values' : [ 75, 300 ]
- });
- data.$dialog = $dialogDiv;
- data.$slider = $sliderDiv;
- };
-
- // creates HTML structure for the about view in elem
- var setupAboutDiv = function (data) {
- var $elem = data.$elem;
- var settings = data.settings;
- var $aboutDiv = $('
');
- var $header = $('Digilib Graphic Viewer
');
- var $link = $(' ');
- var $logo = $(' ');
- var $content = $('
');
- $elem.append($aboutDiv);
- $aboutDiv.append($header);
- $aboutDiv.append($link);
- $aboutDiv.append($content);
- $link.append($logo);
- $logo.attr('src', settings.logoUrl);
- $link.attr('href', settings.homeUrl);
- $content.text('Version: ' + settings.version);
- // click hides
- $aboutDiv.bind('click.digilib', function () {
- settings.isAboutDivVisible = showDiv(settings.isAboutDivVisible, $aboutDiv, 0);
- return false;
- });
- data.$aboutDiv = $aboutDiv;
- };
-
- // shows some window e.g. 'about' (toggle visibility if show is null)
- var showDiv = function (isVisible, $div, show) {
- if (show == null) {
- // toggle visibility
- isVisible = !isVisible;
- } else {
- // set visibility
- isVisible = show;
- }
- if (isVisible) {
- $div.fadeIn();
- } else {
- $div.fadeOut();
- }
- return isVisible;
- };
-
- // display more (or less) button sets
- var showButtons = function (data, more, setIdx, animated) {
- var atime = animated ? 'fast': 0;
- if (more) {
- // add set
- var $otherSets = data.$elem.find('div.buttons:visible');
- var $set;
- if (data.$buttonSets && data.$buttonSets[setIdx]) {
- // set exists
- $set = data.$buttonSets[setIdx];
- } else {
- $set = createButtons(data, setIdx);
- }
- if ($set == null) return false;
- var btnWidth = $set.width();
- // move remaining sets left and show new set
- if ($otherSets.length > 0) {
- $otherSets.animate({right : '+='+btnWidth+'px'}, atime,
- function () {$set.show();});
- } else {
- $set.show();
- }
- } else {
- // remove set
- var $set = data.$buttonSets[setIdx];
- if ($set == null) return false;
- var btnWidth = $set.width();
- // hide last set
- $set.hide();
- // take remaining sets and move right
- var $otherSets = data.$elem.find('div.buttons:visible');
- $otherSets.animate({right : '-='+btnWidth+'px'}, atime);
- }
- return true;
- };
-
- // create Transform from area and $img
- var getImgTrafo = function ($img, area, rot, hmir, vmir) {
- var picrect = geom.rectangle($img);
- var trafo = geom.transform();
- // move zoom area offset to center
- trafo.concat(trafo.getTranslation(geom.position(-area.x, -area.y)));
- // scale zoom area size to [1,1]
- trafo.concat(trafo.getScale(geom.size(1/area.width, 1/area.height)));
- // rotate and mirror (around transformed image center i.e. [0.5,0.5])
- if (rot || hmir || vmir) {
- // move [0.5,0.5] to center
- trafo.concat(trafo.getTranslation(geom.position(-0.5, -0.5)));
- if (hmir) {
- // mirror about center
- trafo.concat(trafo.getMirror('y'));
- }
- if (vmir) {
- // mirror about center
- trafo.concat(trafo.getMirror('x'));
- }
- if (rot) {
- // rotate around center
- trafo.concat(trafo.getRotation(parseFloat(rot)));
- }
- // move back
- trafo.concat(trafo.getTranslation(geom.position(0.5, 0.5)));
- }
- // scale to screen position and size
- trafo.concat(trafo.getScale(picrect));
- trafo.concat(trafo.getTranslation(picrect));
- return trafo;
- };
-
- // returns function for load event of scaler img
- var scalerImgLoadedHandler = function (data) {
- return function () {
- var $img = $(this);
- var $scaler = data.$scaler;
- // create Transform from current area and picsize
- data.imgTrafo = getImgTrafo($img, data.zoomArea,
- data.settings.rot, data.scalerFlags.hmir, data.scalerFlags.vmir);
- console.debug("imgTrafo=", data.imgTrafo);
- // adjust scaler div size
- var imgRect = geom.rectangle($img);
- console.debug("imgrect=", imgRect);
- imgRect.adjustDiv($scaler);
- // show image in case it was hidden (for example in zoomDrag)
- $img.css('visibility', 'visible');
- $scaler.css({'opacity' : '1', 'background-image' : 'none'});
- // display marks
- renderMarks(data);
- // enable drag-to-scroll
- setupZoomDrag(data);
- // TODO: digilib.showArrows(); // show arrow overlays for zoom navigation
- };
- };
-
- // returns function for load event of bird's eye view img
- var birdImgLoadedHandler = function (data) {
- return function () {
- var $img = $(this);
- console.debug("birdimg loaded! this=", this, " data=", data);
- // create Transform from current area and picsize
- data.birdTrafo = getImgTrafo($img, FULL_AREA);
- // display red indicator around zoomarea
- renderBirdArea(data);
- // enable click and drag
- setupBirdDrag(data);
- };
- };
-
- // place marks on the image
- var renderMarks = function (data) {
- var $elem = data.$elem;
- var marks = data.marks;
- // clear marks
- $elem.find('div.mark').remove();
- for (var i = 0; i < marks.length; i++) {
- var mark = marks[i];
- if (data.zoomArea.containsPosition(mark)) {
- var mpos = data.imgTrafo.transform(mark);
- console.debug("renderMarks: mpos=",mpos);
- // create mark
- var html = ''+(i+1)+'
';
- var $mark = $(html);
- $elem.append($mark);
- mpos.adjustDiv($mark);
- }
- }
- };
-
- // show zoom area indicator on bird's eye view
- var renderBirdArea = function (data) {
- var $birdZoom = data.$birdZoom;
- var zoomArea = data.zoomArea;
- var normalSize = isFullArea(zoomArea);
- if (normalSize) {
- $birdZoom.hide();
- return;
- } else {
- $birdZoom.show();
- }
- // position may have changed
- data.birdTrafo = getImgTrafo(data.$birdImg, FULL_AREA);
- var zoomRect = data.birdTrafo.transform(zoomArea);
- // acount for border width
- zoomRect.addPosition({x : -2, y : -2});
- if (data.settings.interactionMode === 'fullscreen') {
- // no animation for fullscreen
- zoomRect.adjustDiv($birdZoom);
- } else {
- // nice animation for embedded mode :-)
- // correct offsetParent because animate doesn't use offset
- var ppos = $birdZoom.offsetParent().offset();
- var dest = {
- left : (zoomRect.x - ppos.left) + 'px',
- top : (zoomRect.y - ppos.top) + 'px',
- width : zoomRect.width,
- height : zoomRect.height};
- $birdZoom.animate(dest);
- }
- };
-
- // zooms by the given factor
- var zoomBy = function(data, factor) {
- var area = data.zoomArea;
- var newarea = area.copy();
- // scale
- newarea.width /= factor;
- newarea.height /= factor;
- // and recenter
- newarea.x -= 0.5 * (newarea.width - area.width);
- newarea.y -= 0.5 * (newarea.height - area.height);
- newarea = FULL_AREA.fit(newarea);
- data.zoomArea = newarea;
- redisplay(data);
- };
-
- // add a mark where clicked
- var setMark = function (data) {
- var $scaler = data.$scaler;
- // unbind other handler
- $scaler.unbind(".dlZoomDrag");
- // start event capturing
- $scaler.one('mousedown.dlSetMark', function (evt) {
- // event handler adding a new mark
- console.log("setmark at=", evt);
- var mpos = geom.position(evt);
- var pos = data.imgTrafo.invtransform(mpos);
- data.marks.push(pos);
- redisplay(data);
- return false;
- });
- };
-
- // zoom to the area around two clicked points
- var zoomArea = function(data) {
- $elem = data.$elem;
- $scaler = data.$scaler;
- var pt1, pt2;
- var $zoomDiv = $('
');
- $elem.append($zoomDiv);
- $zoomDiv.css(data.settings.zoomrectStyle);
- var picRect = geom.rectangle($scaler);
- // FIX ME: is there a way to query the border width from CSS info?
- // rect.x -= 2; // account for overlay borders
- // rect.y -= 2;
-
- var zoomStart = function (evt) {
- pt1 = geom.position(evt);
- // setup and show zoom div
- pt1.adjustDiv($zoomDiv);
- $zoomDiv.width(0).height(0);
- $zoomDiv.show();
- // register events
- $elem.bind("mousemove.dlZoomArea", zoomMove);
- $elem.bind("mouseup.dlZoomArea", zoomEnd);
- return false;
- };
-
- // mouse move handler
- var zoomMove = function (evt) {
- pt2 = geom.position(evt);
- var rect = geom.rectangle(pt1, pt2);
- rect.clipTo(picRect);
- // update zoom div
- rect.adjustDiv($zoomDiv);
- return false;
- };
-
- // mouseup handler: end moving
- var zoomEnd = function (evt) {
- pt2 = geom.position(evt);
- // assume a click and continue if the area is too small
- var clickRect = geom.rectangle(pt1, pt2);
- if (clickRect.getArea() <= 5) return false;
- // hide zoom div
- $zoomDiv.remove();
- // unregister events
- $elem.unbind("mousemove.dlZoomArea", zoomMove);
- $elem.unbind("mouseup.dlZoomArea", zoomEnd);
- // clip and transform
- clickRect.clipTo(picRect);
- var area = data.imgTrafo.invtransform(clickRect);
- data.zoomArea = area;
- // zoomed is always fit
- data.settings.ws = 1;
- delete data.dlOpts.fitwidth;
- delete data.dlOpts.fitheight;
- redisplay(data);
- return false;
- };
-
- // clear old handler (also ZoomDrag)
- $scaler.unbind('.dlZoomArea');
- $scaler.unbind(".dlZoomDrag");
- $elem.unbind('.dlZoomArea');
- // bind start zoom handler
- $scaler.one('mousedown.dlZoomArea', zoomStart);
- };
-
- // bird's eye view zoom area click and drag handler
- var setupBirdDrag = function(data) {
- var $birdImg = data.$birdImg;
- var $birdZoom = data.$birdZoom;
- var $document = $(document);
- var $scaler = data.$scaler;
- var startPos, newRect, birdImgRect, birdZoomRect, fullRect, scalerPos;
-
- // mousedown handler: start dragging bird zoom to a new position
- var birdZoomStartDrag = function(evt) {
- startPos = geom.position(evt);
- // position may have changed
- data.birdTrafo = getImgTrafo($birdImg, FULL_AREA);
- birdImgRect = geom.rectangle($birdImg);
- birdZoomRect = geom.rectangle($birdZoom);
- scalerPos = geom.position($scaler);
- newRect = null;
- fullRect = setZoomBG(data); // setup zoom background image
- $document.bind("mousemove.dlBirdMove", birdZoomMove);
- $document.bind("mouseup.dlBirdMove", birdZoomEndDrag);
- return false;
- };
-
- // mousemove handler: drag
- var birdZoomMove = function(evt) {
- var pos = geom.position(evt);
- var delta = startPos.delta(pos);
- // move birdZoom div, keeping size
- newRect = birdZoomRect.copy();
- newRect.addPosition(delta);
- newRect.stayInside(birdImgRect);
- // reflect birdview zoom position in scaler image
- var area = data.birdTrafo.invtransform(newRect);
- var imgArea = data.imgTrafo.transform(area);
- var offset = imgArea.getPosition().neg();
- offset.add(scalerPos);
- console.log('offset', offset);
- if (fullRect) {
- var bgPos = fullRect.getPosition().add(offset);
- } else {
- var bgPos = offset;
- }
- // move the background image to the new position
- data.$scaler.css({
- 'background-position' : bgPos.x + "px " + bgPos.y + "px"
- });
- // acount for border width
- newRect.addPosition({x : -2, y : -2});
- newRect.adjustDiv($birdZoom);
- return false;
- };
-
- // mouseup handler: reload page
- var birdZoomEndDrag = function(evt) {
- var settings = data.settings;
- $document.unbind("mousemove.dlBirdMove", birdZoomMove);
- $document.unbind("mouseup.dlBirdMove", birdZoomEndDrag);
- if (newRect == null) {
- // no movement happened - set center to click position
- startPos = birdZoomRect.getCenter();
- birdZoomMove(evt);
- }
- // ugly, but needed to prevent double border width compensation
- newRect.addPosition({x : +2, y : +2});
- var newArea = data.birdTrafo.invtransform(newRect);
- data.zoomArea = newArea;
- redisplay(data);
- return false;
- };
-
- // clear old handler
- $document.unbind(".dlBirdMove");
- $birdImg.unbind(".dlBirdMove");
- $birdZoom.unbind(".dlBirdMove");
- if (! isFullArea(data.zoomArea)) {
- // set new handler
- $birdImg.bind("mousedown.dlBirdMove", birdZoomStartDrag);
- $birdZoom.bind("mousedown.dlBirdMove", birdZoomStartDrag);
- }
- };
-
- // move bird zoom indicator to reflect zoomed detail area
- var setBirdZoom = function(data, rect) {
- var part = data.imgTrafo.invtransform(rect);
- // area = FULL_AREA.fit(part); // no, we want to see where we transcend the borders
- birdTrafo = getImgTrafo(data.$birdImg, FULL_AREA);
- var birdRect = birdTrafo.transform(part);
- // acount for border width
- birdRect.addPosition({x : -2, y : -2});
- birdRect.adjustDiv(data.$birdZoom);
- };
-
- // set zoom background
- var setZoomBG = function(data) {
- var $scaler = data.$scaler;
- var $img = data.$img;
- var fullRect = null;
- // hide the scaler img, show background of div instead
- $img.css('visibility', 'hidden');
- var scalerCss = {
- 'background-image' : 'url(' + $img.attr('src') + ')',
- 'background-repeat' : 'no-repeat',
- 'background-position' : 'left top',
- 'opacity' : '0.5',
- 'cursor' : 'move'
- };
- if (data.hasBgSize) {
- // full-size background using CSS3-background-size
- fullRect = data.imgTrafo.transform(FULL_AREA);
- if (fullRect.height < data.settings.maxBgSize && fullRect.width < data.settings.maxBgSize) {
- // correct offset because background is relative
- var scalerPos = geom.position($scaler);
- fullRect.addPosition(scalerPos.neg());
- var url = getBirdImgUrl(data, ['rot', 'mo']);
- scalerCss['background-image'] = 'url(' + url + ')';
- scalerCss[data.bgSizeName] = fullRect.width + 'px ' + fullRect.height + 'px';
- scalerCss['background-position'] = fullRect.x + 'px '+ fullRect.y + 'px';
- } else {
- // too big
- fullRect = null;
- }
- }
- $scaler.css(scalerCss);
- // isBgReady = true;
- return fullRect;
- };
-
- // setup handlers for dragging the zoomed image
- var setupZoomDrag = function(data) {
- var startPos, delta, fullRect;
- var $document = $(document);
- var $elem = data.$elem;
- var $scaler = data.$scaler;
- var $img = data.$img;
-
- // drag the image and load a new detail on mouse up
- var dragStart = function (evt) {
- console.debug("dragstart at=",evt);
- // don't start dragging if not zoomed
- if (isFullArea(data.zoomArea)) return false;
- startPos = geom.position(evt);
- delta = null;
- // set low res background immediately on mousedown
- fullRect = setZoomBG(data);
- $document.bind("mousemove.dlZoomDrag", dragMove);
- $document.bind("mouseup.dlZoomDrag", dragEnd);
- return false;
- };
-
- // mousemove handler: drag zoomed image
- var dragMove = function (evt) {
- var pos = geom.position(evt);
- delta = startPos.delta(pos);
- if (fullRect) {
- var bgPos = fullRect.getPosition().add(delta);
- } else {
- var bgPos = delta;
- }
- // move the background image to the new position
- $scaler.css({
- 'background-position' : bgPos.x + "px " + bgPos.y + "px"
- });
- // set birdview indicator to reflect new zoom position
- var za = geom.rectangle($img);
- za.addPosition(delta.neg());
- setBirdZoom(data, za);
- return false;
- };
-
- // mouseup handler: reload zoomed image in new position
- var dragEnd = function (evt) {
- $scaler.css('cursor', 'auto');
- $document.unbind("mousemove.dlZoomDrag", dragMove);
- $document.unbind("mouseup.dlZoomDrag", dragEnd);
- if (delta == null || delta.distance() < 2) {
- // no movement
- $img.css('visibility', 'visible');
- $scaler.css({'opacity' : '1', 'background-image' : 'none'});
- return false;
- }
- // get old zoom area (screen coordinates)
- var za = geom.rectangle($img);
- // move
- za.addPosition(delta.neg());
- // transform back
- var newArea = data.imgTrafo.invtransform(za);
- data.zoomArea = FULL_AREA.fit(newArea);
- redisplay(data);
- return false;
- };
-
- // clear old handler
- $document.unbind(".dlZoomDrag");
- $scaler.unbind(".dlZoomDrag");
- if (! isFullArea(data.zoomArea)) {
- // set handler
- $scaler.bind("mousedown.dlZoomDrag", dragStart);
- }
- };
-
- // get image quality as a number (0..2)
- var getQuality = function (data) {
- var flags = data.scalerFlags;
- var q = flags.q2 || flags.q1 || 'q0'; // assume q0 as default
- return parseInt(q[1], 10);
- };
-
- // set image quality as a number (0..2)
- var setQuality = function (data, qual) {
- var flags = data.scalerFlags;
- // clear flags
- for (var i = 0; i < 3; ++i) {
- delete flags['q'+i];
- }
- flags['q'+qual] = 'q'+qual;
- };
-
- // sets a key to a value (relative values with +/- if relative=true)
- var setNumValue = function(settings, key, value) {
- if (value == null) return null;
- if (isNumber(value)) {
- settings[key] = value;
- return value;
- }
- var sign = value[0];
- if (sign === '+' || sign === '-') {
- if (settings[key] == null) {
- // this isn't perfect but still...
- settings[key] = 0;
- }
- settings[key] = parseFloat(settings[key]) + parseFloat(value);
- } else {
- settings[key] = value;
- }
- return settings[key];
- };
-
- // auxiliary function (from old dllib.js)
- var isFullArea = function(area) {
- return (area.width === 1.0) && (area.height === 1.0);
- };
-
- // auxiliary function (from Douglas Crockford, A.10)
- var isNumber = function isNumber(value) {
- return typeof value === 'number' && isFinite(value);
- };
-
- // auxiliary function to crop senseless precision
- var cropFloat = function (x) {
- return parseInt(10000 * x, 10) / 10000;
- };
-
- // fallback for console.log calls
- if (customConsole) {
- var logFunction = function(type) {
- return function(){
- var $debug = $('#debug'); // debug div
- if (!$debug) return;
- var args = Array.prototype.slice.call(arguments);
- var argtext = args.join(' ');
- var $logDiv = $('
');
- $logDiv.addClass(type);
- $logDiv.text(argtext);
- $debug.append($logDiv);
- };
- };
- console.log = logFunction('_log');
- console.debug = logFunction('_debug');
- console.error = logFunction('_error');
- }
-
- // hook plugin into jquery
- $.fn.digilib = function(action) {
- if (actions[action]) {
- // call action on this with the remaining arguments (inserting data as first argument)
- var $elem = $(this);
- var data = $elem.data('digilib');
- var args = Array.prototype.slice.call(arguments, 1);
- args.unshift(data);
- return actions[action].apply(this, args);
- } else if (typeof(action) === 'object' || !action) {
- // call init on this
- return actions.init.apply(this, arguments);
- } else {
- $.error('action ' + action + ' does not exist on jQuery.digilib');
- }
- };
-
-})(jQuery);
\ No newline at end of file
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/jquery.ui.button.js
--- a/webapp/src/main/webapp/jquery/ui/jquery.ui.button.js Mon Feb 25 15:21:48 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,373 +0,0 @@
-/*
- * jQuery UI Button 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-var lastActive,
- baseClasses = "ui-button ui-widget ui-state-default ui-corner-all",
- stateClasses = "ui-state-hover ui-state-active ",
- typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",
- formResetHandler = function( event ) {
- $( ":ui-button", event.target.form ).each(function() {
- var inst = $( this ).data( "button" );
- setTimeout(function() {
- inst.refresh();
- }, 1 );
- });
- },
- radioGroup = function( radio ) {
- var name = radio.name,
- form = radio.form,
- radios = $( [] );
- if ( name ) {
- if ( form ) {
- radios = $( form ).find( "[name='" + name + "']" );
- } else {
- radios = $( "[name='" + name + "']", radio.ownerDocument )
- .filter(function() {
- return !this.form;
- });
- }
- }
- return radios;
- };
-
-$.widget( "ui.button", {
- options: {
- disabled: null,
- text: true,
- label: null,
- icons: {
- primary: null,
- secondary: null
- }
- },
- _create: function() {
- this.element.closest( "form" )
- .unbind( "reset.button" )
- .bind( "reset.button", formResetHandler );
-
- if ( typeof this.options.disabled !== "boolean" ) {
- this.options.disabled = this.element.attr( "disabled" );
- }
-
- this._determineButtonType();
- this.hasTitle = !!this.buttonElement.attr( "title" );
-
- var self = this,
- options = this.options,
- toggleButton = this.type === "checkbox" || this.type === "radio",
- hoverClass = "ui-state-hover" + ( !toggleButton ? " ui-state-active" : "" ),
- focusClass = "ui-state-focus";
-
- if ( options.label === null ) {
- options.label = this.buttonElement.html();
- }
-
- if ( this.element.is( ":disabled" ) ) {
- options.disabled = true;
- }
-
- this.buttonElement
- .addClass( baseClasses )
- .attr( "role", "button" )
- .bind( "mouseenter.button", function() {
- if ( options.disabled ) {
- return;
- }
- $( this ).addClass( "ui-state-hover" );
- if ( this === lastActive ) {
- $( this ).addClass( "ui-state-active" );
- }
- })
- .bind( "mouseleave.button", function() {
- if ( options.disabled ) {
- return;
- }
- $( this ).removeClass( hoverClass );
- })
- .bind( "focus.button", function() {
- // no need to check disabled, focus won't be triggered anyway
- $( this ).addClass( focusClass );
- })
- .bind( "blur.button", function() {
- $( this ).removeClass( focusClass );
- });
-
- if ( toggleButton ) {
- this.element.bind( "change.button", function() {
- self.refresh();
- });
- }
-
- if ( this.type === "checkbox" ) {
- this.buttonElement.bind( "click.button", function() {
- if ( options.disabled ) {
- return false;
- }
- $( this ).toggleClass( "ui-state-active" );
- self.buttonElement.attr( "aria-pressed", self.element[0].checked );
- });
- } else if ( this.type === "radio" ) {
- this.buttonElement.bind( "click.button", function() {
- if ( options.disabled ) {
- return false;
- }
- $( this ).addClass( "ui-state-active" );
- self.buttonElement.attr( "aria-pressed", true );
-
- var radio = self.element[ 0 ];
- radioGroup( radio )
- .not( radio )
- .map(function() {
- return $( this ).button( "widget" )[ 0 ];
- })
- .removeClass( "ui-state-active" )
- .attr( "aria-pressed", false );
- });
- } else {
- this.buttonElement
- .bind( "mousedown.button", function() {
- if ( options.disabled ) {
- return false;
- }
- $( this ).addClass( "ui-state-active" );
- lastActive = this;
- $( document ).one( "mouseup", function() {
- lastActive = null;
- });
- })
- .bind( "mouseup.button", function() {
- if ( options.disabled ) {
- return false;
- }
- $( this ).removeClass( "ui-state-active" );
- })
- .bind( "keydown.button", function(event) {
- if ( options.disabled ) {
- return false;
- }
- if ( event.keyCode == $.ui.keyCode.SPACE || event.keyCode == $.ui.keyCode.ENTER ) {
- $( this ).addClass( "ui-state-active" );
- }
- })
- .bind( "keyup.button", function() {
- $( this ).removeClass( "ui-state-active" );
- });
-
- if ( this.buttonElement.is("a") ) {
- this.buttonElement.keyup(function(event) {
- if ( event.keyCode === $.ui.keyCode.SPACE ) {
- // TODO pass through original event correctly (just as 2nd argument doesn't work)
- $( this ).click();
- }
- });
- }
- }
-
- // TODO: pull out $.Widget's handling for the disabled option into
- // $.Widget.prototype._setOptionDisabled so it's easy to proxy and can
- // be overridden by individual plugins
- this._setOption( "disabled", options.disabled );
- },
-
- _determineButtonType: function() {
-
- if ( this.element.is(":checkbox") ) {
- this.type = "checkbox";
- } else {
- if ( this.element.is(":radio") ) {
- this.type = "radio";
- } else {
- if ( this.element.is("input") ) {
- this.type = "input";
- } else {
- this.type = "button";
- }
- }
- }
-
- if ( this.type === "checkbox" || this.type === "radio" ) {
- // we don't search against the document in case the element
- // is disconnected from the DOM
- this.buttonElement = this.element.parents().last()
- .find( "label[for=" + this.element.attr("id") + "]" );
- this.element.addClass( "ui-helper-hidden-accessible" );
-
- var checked = this.element.is( ":checked" );
- if ( checked ) {
- this.buttonElement.addClass( "ui-state-active" );
- }
- this.buttonElement.attr( "aria-pressed", checked );
- } else {
- this.buttonElement = this.element;
- }
- },
-
- widget: function() {
- return this.buttonElement;
- },
-
- destroy: function() {
- this.element
- .removeClass( "ui-helper-hidden-accessible" );
- this.buttonElement
- .removeClass( baseClasses + " " + stateClasses + " " + typeClasses )
- .removeAttr( "role" )
- .removeAttr( "aria-pressed" )
- .html( this.buttonElement.find(".ui-button-text").html() );
-
- if ( !this.hasTitle ) {
- this.buttonElement.removeAttr( "title" );
- }
-
- $.Widget.prototype.destroy.call( this );
- },
-
- _setOption: function( key, value ) {
- $.Widget.prototype._setOption.apply( this, arguments );
- if ( key === "disabled" ) {
- if ( value ) {
- this.element.attr( "disabled", true );
- } else {
- this.element.removeAttr( "disabled" );
- }
- }
- this._resetButton();
- },
-
- refresh: function() {
- var isDisabled = this.element.is( ":disabled" );
- if ( isDisabled !== this.options.disabled ) {
- this._setOption( "disabled", isDisabled );
- }
- if ( this.type === "radio" ) {
- radioGroup( this.element[0] ).each(function() {
- if ( $( this ).is( ":checked" ) ) {
- $( this ).button( "widget" )
- .addClass( "ui-state-active" )
- .attr( "aria-pressed", true );
- } else {
- $( this ).button( "widget" )
- .removeClass( "ui-state-active" )
- .attr( "aria-pressed", false );
- }
- });
- } else if ( this.type === "checkbox" ) {
- if ( this.element.is( ":checked" ) ) {
- this.buttonElement
- .addClass( "ui-state-active" )
- .attr( "aria-pressed", true );
- } else {
- this.buttonElement
- .removeClass( "ui-state-active" )
- .attr( "aria-pressed", false );
- }
- }
- },
-
- _resetButton: function() {
- if ( this.type === "input" ) {
- if ( this.options.label ) {
- this.element.val( this.options.label );
- }
- return;
- }
- var buttonElement = this.buttonElement.removeClass( typeClasses ),
- buttonText = $( " " )
- .addClass( "ui-button-text" )
- .html( this.options.label )
- .appendTo( buttonElement.empty() )
- .text(),
- icons = this.options.icons,
- multipleIcons = icons.primary && icons.secondary;
- if ( icons.primary || icons.secondary ) {
- buttonElement.addClass( "ui-button-text-icon" +
- ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) );
- if ( icons.primary ) {
- buttonElement.prepend( " " );
- }
- if ( icons.secondary ) {
- buttonElement.append( " " );
- }
- if ( !this.options.text ) {
- buttonElement
- .addClass( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" )
- .removeClass( "ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary" );
- if ( !this.hasTitle ) {
- buttonElement.attr( "title", buttonText );
- }
- }
- } else {
- buttonElement.addClass( "ui-button-text-only" );
- }
- }
-});
-
-$.widget( "ui.buttonset", {
- options: {
- items: ":button, :submit, :reset, :checkbox, :radio, a, :data(button)"
- },
-
- _create: function() {
- this.element.addClass( "ui-buttonset" );
- },
-
- _init: function() {
- this.refresh();
- },
-
- _setOption: function( key, value ) {
- if ( key === "disabled" ) {
- this.buttons.button( "option", key, value );
- }
-
- $.Widget.prototype._setOption.apply( this, arguments );
- },
-
- refresh: function() {
- this.buttons = this.element.find( this.options.items )
- .filter( ":ui-button" )
- .button( "refresh" )
- .end()
- .not( ":ui-button" )
- .button()
- .end()
- .map(function() {
- return $( this ).button( "widget" )[ 0 ];
- })
- .removeClass( "ui-corner-all ui-corner-left ui-corner-right" )
- .filter( ":first" )
- .addClass( "ui-corner-left" )
- .end()
- .filter( ":last" )
- .addClass( "ui-corner-right" )
- .end()
- .end();
- },
-
- destroy: function() {
- this.element.removeClass( "ui-buttonset" );
- this.buttons
- .map(function() {
- return $( this ).button( "widget" )[ 0 ];
- })
- .removeClass( "ui-corner-left ui-corner-right" )
- .end()
- .button( "destroy" );
-
- $.Widget.prototype.destroy.call( this );
- }
-});
-
-}( jQuery ) );
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/jquery.ui.core.js
--- a/webapp/src/main/webapp/jquery/ui/jquery.ui.core.js Mon Feb 25 15:21:48 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,308 +0,0 @@
-/*!
- * jQuery UI 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI
- */
-(function( $, undefined ) {
-
-// prevent duplicate loading
-// this is only a problem because we proxy existing functions
-// and we don't want to double proxy them
-$.ui = $.ui || {};
-if ( $.ui.version ) {
- return;
-}
-
-$.extend( $.ui, {
- version: "1.8.9",
-
- keyCode: {
- ALT: 18,
- BACKSPACE: 8,
- CAPS_LOCK: 20,
- COMMA: 188,
- COMMAND: 91,
- COMMAND_LEFT: 91, // COMMAND
- COMMAND_RIGHT: 93,
- CONTROL: 17,
- DELETE: 46,
- DOWN: 40,
- END: 35,
- ENTER: 13,
- ESCAPE: 27,
- HOME: 36,
- INSERT: 45,
- LEFT: 37,
- MENU: 93, // COMMAND_RIGHT
- NUMPAD_ADD: 107,
- NUMPAD_DECIMAL: 110,
- NUMPAD_DIVIDE: 111,
- NUMPAD_ENTER: 108,
- NUMPAD_MULTIPLY: 106,
- NUMPAD_SUBTRACT: 109,
- PAGE_DOWN: 34,
- PAGE_UP: 33,
- PERIOD: 190,
- RIGHT: 39,
- SHIFT: 16,
- SPACE: 32,
- TAB: 9,
- UP: 38,
- WINDOWS: 91 // COMMAND
- }
-});
-
-// plugins
-$.fn.extend({
- _focus: $.fn.focus,
- focus: function( delay, fn ) {
- return typeof delay === "number" ?
- this.each(function() {
- var elem = this;
- setTimeout(function() {
- $( elem ).focus();
- if ( fn ) {
- fn.call( elem );
- }
- }, delay );
- }) :
- this._focus.apply( this, arguments );
- },
-
- scrollParent: function() {
- var scrollParent;
- if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
- scrollParent = this.parents().filter(function() {
- return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
- }).eq(0);
- } else {
- scrollParent = this.parents().filter(function() {
- return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
- }).eq(0);
- }
-
- return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
- },
-
- zIndex: function( zIndex ) {
- if ( zIndex !== undefined ) {
- return this.css( "zIndex", zIndex );
- }
-
- if ( this.length ) {
- var elem = $( this[ 0 ] ), position, value;
- while ( elem.length && elem[ 0 ] !== document ) {
- // Ignore z-index if position is set to a value where z-index is ignored by the browser
- // This makes behavior of this function consistent across browsers
- // WebKit always returns auto if the element is positioned
- position = elem.css( "position" );
- if ( position === "absolute" || position === "relative" || position === "fixed" ) {
- // IE returns 0 when zIndex is not specified
- // other browsers return a string
- // we ignore the case of nested elements with an explicit value of 0
- //
- value = parseInt( elem.css( "zIndex" ), 10 );
- if ( !isNaN( value ) && value !== 0 ) {
- return value;
- }
- }
- elem = elem.parent();
- }
- }
-
- return 0;
- },
-
- disableSelection: function() {
- return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
- ".ui-disableSelection", function( event ) {
- event.preventDefault();
- });
- },
-
- enableSelection: function() {
- return this.unbind( ".ui-disableSelection" );
- }
-});
-
-$.each( [ "Width", "Height" ], function( i, name ) {
- var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
- type = name.toLowerCase(),
- orig = {
- innerWidth: $.fn.innerWidth,
- innerHeight: $.fn.innerHeight,
- outerWidth: $.fn.outerWidth,
- outerHeight: $.fn.outerHeight
- };
-
- function reduce( elem, size, border, margin ) {
- $.each( side, function() {
- size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0;
- if ( border ) {
- size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0;
- }
- if ( margin ) {
- size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0;
- }
- });
- return size;
- }
-
- $.fn[ "inner" + name ] = function( size ) {
- if ( size === undefined ) {
- return orig[ "inner" + name ].call( this );
- }
-
- return this.each(function() {
- $( this ).css( type, reduce( this, size ) + "px" );
- });
- };
-
- $.fn[ "outer" + name] = function( size, margin ) {
- if ( typeof size !== "number" ) {
- return orig[ "outer" + name ].call( this, size );
- }
-
- return this.each(function() {
- $( this).css( type, reduce( this, size, true, margin ) + "px" );
- });
- };
-});
-
-// selectors
-function visible( element ) {
- return !$( element ).parents().andSelf().filter(function() {
- return $.curCSS( this, "visibility" ) === "hidden" ||
- $.expr.filters.hidden( this );
- }).length;
-}
-
-$.extend( $.expr[ ":" ], {
- data: function( elem, i, match ) {
- return !!$.data( elem, match[ 3 ] );
- },
-
- focusable: function( element ) {
- var nodeName = element.nodeName.toLowerCase(),
- tabIndex = $.attr( element, "tabindex" );
- if ( "area" === nodeName ) {
- var map = element.parentNode,
- mapName = map.name,
- img;
- if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
- return false;
- }
- img = $( "img[usemap=#" + mapName + "]" )[0];
- return !!img && visible( img );
- }
- return ( /input|select|textarea|button|object/.test( nodeName )
- ? !element.disabled
- : "a" == nodeName
- ? element.href || !isNaN( tabIndex )
- : !isNaN( tabIndex ))
- // the element and all of its ancestors must be visible
- && visible( element );
- },
-
- tabbable: function( element ) {
- var tabIndex = $.attr( element, "tabindex" );
- return ( isNaN( tabIndex ) || tabIndex >= 0 ) && $( element ).is( ":focusable" );
- }
-});
-
-// support
-$(function() {
- var body = document.body,
- div = body.appendChild( div = document.createElement( "div" ) );
-
- $.extend( div.style, {
- minHeight: "100px",
- height: "auto",
- padding: 0,
- borderWidth: 0
- });
-
- $.support.minHeight = div.offsetHeight === 100;
- $.support.selectstart = "onselectstart" in div;
-
- // set display to none to avoid a layout bug in IE
- // http://dev.jquery.com/ticket/4014
- body.removeChild( div ).style.display = "none";
-});
-
-
-
-
-
-// deprecated
-$.extend( $.ui, {
- // $.ui.plugin is deprecated. Use the proxy pattern instead.
- plugin: {
- add: function( module, option, set ) {
- var proto = $.ui[ module ].prototype;
- for ( var i in set ) {
- proto.plugins[ i ] = proto.plugins[ i ] || [];
- proto.plugins[ i ].push( [ option, set[ i ] ] );
- }
- },
- call: function( instance, name, args ) {
- var set = instance.plugins[ name ];
- if ( !set || !instance.element[ 0 ].parentNode ) {
- return;
- }
-
- for ( var i = 0; i < set.length; i++ ) {
- if ( instance.options[ set[ i ][ 0 ] ] ) {
- set[ i ][ 1 ].apply( instance.element, args );
- }
- }
- }
- },
-
- // will be deprecated when we switch to jQuery 1.4 - use jQuery.contains()
- contains: function( a, b ) {
- return document.compareDocumentPosition ?
- a.compareDocumentPosition( b ) & 16 :
- a !== b && a.contains( b );
- },
-
- // only used by resizable
- hasScroll: function( el, a ) {
-
- //If overflow is hidden, the element might have extra content, but the user wants to hide it
- if ( $( el ).css( "overflow" ) === "hidden") {
- return false;
- }
-
- var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
- has = false;
-
- if ( el[ scroll ] > 0 ) {
- return true;
- }
-
- // TODO: determine which cases actually cause this to happen
- // if the element doesn't have the scroll set, see if it's possible to
- // set the scroll
- el[ scroll ] = 1;
- has = ( el[ scroll ] > 0 );
- el[ scroll ] = 0;
- return has;
- },
-
- // these are odd functions, fix the API or move into individual plugins
- isOverAxis: function( x, reference, size ) {
- //Determines when x coordinate is over "b" element axis
- return ( x > reference ) && ( x < ( reference + size ) );
- },
- isOver: function( y, x, top, left, height, width ) {
- //Determines when x, y coordinates is over "b" element
- return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width );
- }
-});
-
-})( jQuery );
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/jquery.ui.dialog.js
--- a/webapp/src/main/webapp/jquery/ui/jquery.ui.dialog.js Mon Feb 25 15:21:48 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,857 +0,0 @@
-/*
- * jQuery UI Dialog 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- * jquery.ui.button.js
- * jquery.ui.draggable.js
- * jquery.ui.mouse.js
- * jquery.ui.position.js
- * jquery.ui.resizable.js
- */
-(function( $, undefined ) {
-
-var uiDialogClasses =
- 'ui-dialog ' +
- 'ui-widget ' +
- 'ui-widget-content ' +
- 'ui-corner-all ',
- sizeRelatedOptions = {
- buttons: true,
- height: true,
- maxHeight: true,
- maxWidth: true,
- minHeight: true,
- minWidth: true,
- width: true
- },
- resizableRelatedOptions = {
- maxHeight: true,
- maxWidth: true,
- minHeight: true,
- minWidth: true
- };
-
-$.widget("ui.dialog", {
- options: {
- autoOpen: true,
- buttons: {},
- closeOnEscape: true,
- closeText: 'close',
- dialogClass: '',
- draggable: true,
- hide: null,
- height: 'auto',
- maxHeight: false,
- maxWidth: false,
- minHeight: 150,
- minWidth: 150,
- modal: false,
- position: {
- my: 'center',
- at: 'center',
- collision: 'fit',
- // ensure that the titlebar is never outside the document
- using: function(pos) {
- var topOffset = $(this).css(pos).offset().top;
- if (topOffset < 0) {
- $(this).css('top', pos.top - topOffset);
- }
- }
- },
- resizable: true,
- show: null,
- stack: true,
- title: '',
- width: 300,
- zIndex: 1000
- },
-
- _create: function() {
- this.originalTitle = this.element.attr('title');
- // #5742 - .attr() might return a DOMElement
- if ( typeof this.originalTitle !== "string" ) {
- this.originalTitle = "";
- }
-
- this.options.title = this.options.title || this.originalTitle;
- var self = this,
- options = self.options,
-
- title = options.title || ' ',
- titleId = $.ui.dialog.getTitleId(self.element),
-
- uiDialog = (self.uiDialog = $('
'))
- .appendTo(document.body)
- .hide()
- .addClass(uiDialogClasses + options.dialogClass)
- .css({
- zIndex: options.zIndex
- })
- // setting tabIndex makes the div focusable
- // setting outline to 0 prevents a border on focus in Mozilla
- .attr('tabIndex', -1).css('outline', 0).keydown(function(event) {
- if (options.closeOnEscape && event.keyCode &&
- event.keyCode === $.ui.keyCode.ESCAPE) {
-
- self.close(event);
- event.preventDefault();
- }
- })
- .attr({
- role: 'dialog',
- 'aria-labelledby': titleId
- })
- .mousedown(function(event) {
- self.moveToTop(false, event);
- }),
-
- uiDialogContent = self.element
- .show()
- .removeAttr('title')
- .addClass(
- 'ui-dialog-content ' +
- 'ui-widget-content')
- .appendTo(uiDialog),
-
- uiDialogTitlebar = (self.uiDialogTitlebar = $('
'))
- .addClass(
- 'ui-dialog-titlebar ' +
- 'ui-widget-header ' +
- 'ui-corner-all ' +
- 'ui-helper-clearfix'
- )
- .prependTo(uiDialog),
-
- uiDialogTitlebarClose = $(' ')
- .addClass(
- 'ui-dialog-titlebar-close ' +
- 'ui-corner-all'
- )
- .attr('role', 'button')
- .hover(
- function() {
- uiDialogTitlebarClose.addClass('ui-state-hover');
- },
- function() {
- uiDialogTitlebarClose.removeClass('ui-state-hover');
- }
- )
- .focus(function() {
- uiDialogTitlebarClose.addClass('ui-state-focus');
- })
- .blur(function() {
- uiDialogTitlebarClose.removeClass('ui-state-focus');
- })
- .click(function(event) {
- self.close(event);
- return false;
- })
- .appendTo(uiDialogTitlebar),
-
- uiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $(' '))
- .addClass(
- 'ui-icon ' +
- 'ui-icon-closethick'
- )
- .text(options.closeText)
- .appendTo(uiDialogTitlebarClose),
-
- uiDialogTitle = $(' ')
- .addClass('ui-dialog-title')
- .attr('id', titleId)
- .html(title)
- .prependTo(uiDialogTitlebar);
-
- //handling of deprecated beforeclose (vs beforeClose) option
- //Ticket #4669 http://dev.jqueryui.com/ticket/4669
- //TODO: remove in 1.9pre
- if ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) {
- options.beforeClose = options.beforeclose;
- }
-
- uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();
-
- if (options.draggable && $.fn.draggable) {
- self._makeDraggable();
- }
- if (options.resizable && $.fn.resizable) {
- self._makeResizable();
- }
-
- self._createButtons(options.buttons);
- self._isOpen = false;
-
- if ($.fn.bgiframe) {
- uiDialog.bgiframe();
- }
- },
-
- _init: function() {
- if ( this.options.autoOpen ) {
- this.open();
- }
- },
-
- destroy: function() {
- var self = this;
-
- if (self.overlay) {
- self.overlay.destroy();
- }
- self.uiDialog.hide();
- self.element
- .unbind('.dialog')
- .removeData('dialog')
- .removeClass('ui-dialog-content ui-widget-content')
- .hide().appendTo('body');
- self.uiDialog.remove();
-
- if (self.originalTitle) {
- self.element.attr('title', self.originalTitle);
- }
-
- return self;
- },
-
- widget: function() {
- return this.uiDialog;
- },
-
- close: function(event) {
- var self = this,
- maxZ, thisZ;
-
- if (false === self._trigger('beforeClose', event)) {
- return;
- }
-
- if (self.overlay) {
- self.overlay.destroy();
- }
- self.uiDialog.unbind('keypress.ui-dialog');
-
- self._isOpen = false;
-
- if (self.options.hide) {
- self.uiDialog.hide(self.options.hide, function() {
- self._trigger('close', event);
- });
- } else {
- self.uiDialog.hide();
- self._trigger('close', event);
- }
-
- $.ui.dialog.overlay.resize();
-
- // adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
- if (self.options.modal) {
- maxZ = 0;
- $('.ui-dialog').each(function() {
- if (this !== self.uiDialog[0]) {
- thisZ = $(this).css('z-index');
- if(!isNaN(thisZ)) {
- maxZ = Math.max(maxZ, thisZ);
- }
- }
- });
- $.ui.dialog.maxZ = maxZ;
- }
-
- return self;
- },
-
- isOpen: function() {
- return this._isOpen;
- },
-
- // the force parameter allows us to move modal dialogs to their correct
- // position on open
- moveToTop: function(force, event) {
- var self = this,
- options = self.options,
- saveScroll;
-
- if ((options.modal && !force) ||
- (!options.stack && !options.modal)) {
- return self._trigger('focus', event);
- }
-
- if (options.zIndex > $.ui.dialog.maxZ) {
- $.ui.dialog.maxZ = options.zIndex;
- }
- if (self.overlay) {
- $.ui.dialog.maxZ += 1;
- self.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ);
- }
-
- //Save and then restore scroll since Opera 9.5+ resets when parent z-Index is changed.
- // http://ui.jquery.com/bugs/ticket/3193
- saveScroll = { scrollTop: self.element.attr('scrollTop'), scrollLeft: self.element.attr('scrollLeft') };
- $.ui.dialog.maxZ += 1;
- self.uiDialog.css('z-index', $.ui.dialog.maxZ);
- self.element.attr(saveScroll);
- self._trigger('focus', event);
-
- return self;
- },
-
- open: function() {
- if (this._isOpen) { return; }
-
- var self = this,
- options = self.options,
- uiDialog = self.uiDialog;
-
- self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null;
- self._size();
- self._position(options.position);
- uiDialog.show(options.show);
- self.moveToTop(true);
-
- // prevent tabbing out of modal dialogs
- if (options.modal) {
- uiDialog.bind('keypress.ui-dialog', function(event) {
- if (event.keyCode !== $.ui.keyCode.TAB) {
- return;
- }
-
- var tabbables = $(':tabbable', this),
- first = tabbables.filter(':first'),
- last = tabbables.filter(':last');
-
- if (event.target === last[0] && !event.shiftKey) {
- first.focus(1);
- return false;
- } else if (event.target === first[0] && event.shiftKey) {
- last.focus(1);
- return false;
- }
- });
- }
-
- // set focus to the first tabbable element in the content area or the first button
- // if there are no tabbable elements, set focus on the dialog itself
- $(self.element.find(':tabbable').get().concat(
- uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(
- uiDialog.get()))).eq(0).focus();
-
- self._isOpen = true;
- self._trigger('open');
-
- return self;
- },
-
- _createButtons: function(buttons) {
- var self = this,
- hasButtons = false,
- uiDialogButtonPane = $('
')
- .addClass(
- 'ui-dialog-buttonpane ' +
- 'ui-widget-content ' +
- 'ui-helper-clearfix'
- ),
- uiButtonSet = $( "
" )
- .addClass( "ui-dialog-buttonset" )
- .appendTo( uiDialogButtonPane );
-
- // if we already have a button pane, remove it
- self.uiDialog.find('.ui-dialog-buttonpane').remove();
-
- if (typeof buttons === 'object' && buttons !== null) {
- $.each(buttons, function() {
- return !(hasButtons = true);
- });
- }
- if (hasButtons) {
- $.each(buttons, function(name, props) {
- props = $.isFunction( props ) ?
- { click: props, text: name } :
- props;
- var button = $(' ')
- .attr( props, true )
- .unbind('click')
- .click(function() {
- props.click.apply(self.element[0], arguments);
- })
- .appendTo(uiButtonSet);
- if ($.fn.button) {
- button.button();
- }
- });
- uiDialogButtonPane.appendTo(self.uiDialog);
- }
- },
-
- _makeDraggable: function() {
- var self = this,
- options = self.options,
- doc = $(document),
- heightBeforeDrag;
-
- function filteredUi(ui) {
- return {
- position: ui.position,
- offset: ui.offset
- };
- }
-
- self.uiDialog.draggable({
- cancel: '.ui-dialog-content, .ui-dialog-titlebar-close',
- handle: '.ui-dialog-titlebar',
- containment: 'document',
- start: function(event, ui) {
- heightBeforeDrag = options.height === "auto" ? "auto" : $(this).height();
- $(this).height($(this).height()).addClass("ui-dialog-dragging");
- self._trigger('dragStart', event, filteredUi(ui));
- },
- drag: function(event, ui) {
- self._trigger('drag', event, filteredUi(ui));
- },
- stop: function(event, ui) {
- options.position = [ui.position.left - doc.scrollLeft(),
- ui.position.top - doc.scrollTop()];
- $(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag);
- self._trigger('dragStop', event, filteredUi(ui));
- $.ui.dialog.overlay.resize();
- }
- });
- },
-
- _makeResizable: function(handles) {
- handles = (handles === undefined ? this.options.resizable : handles);
- var self = this,
- options = self.options,
- // .ui-resizable has position: relative defined in the stylesheet
- // but dialogs have to use absolute or fixed positioning
- position = self.uiDialog.css('position'),
- resizeHandles = (typeof handles === 'string' ?
- handles :
- 'n,e,s,w,se,sw,ne,nw'
- );
-
- function filteredUi(ui) {
- return {
- originalPosition: ui.originalPosition,
- originalSize: ui.originalSize,
- position: ui.position,
- size: ui.size
- };
- }
-
- self.uiDialog.resizable({
- cancel: '.ui-dialog-content',
- containment: 'document',
- alsoResize: self.element,
- maxWidth: options.maxWidth,
- maxHeight: options.maxHeight,
- minWidth: options.minWidth,
- minHeight: self._minHeight(),
- handles: resizeHandles,
- start: function(event, ui) {
- $(this).addClass("ui-dialog-resizing");
- self._trigger('resizeStart', event, filteredUi(ui));
- },
- resize: function(event, ui) {
- self._trigger('resize', event, filteredUi(ui));
- },
- stop: function(event, ui) {
- $(this).removeClass("ui-dialog-resizing");
- options.height = $(this).height();
- options.width = $(this).width();
- self._trigger('resizeStop', event, filteredUi(ui));
- $.ui.dialog.overlay.resize();
- }
- })
- .css('position', position)
- .find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se');
- },
-
- _minHeight: function() {
- var options = this.options;
-
- if (options.height === 'auto') {
- return options.minHeight;
- } else {
- return Math.min(options.minHeight, options.height);
- }
- },
-
- _position: function(position) {
- var myAt = [],
- offset = [0, 0],
- isVisible;
-
- if (position) {
- // deep extending converts arrays to objects in jQuery <= 1.3.2 :-(
- // if (typeof position == 'string' || $.isArray(position)) {
- // myAt = $.isArray(position) ? position : position.split(' ');
-
- if (typeof position === 'string' || (typeof position === 'object' && '0' in position)) {
- myAt = position.split ? position.split(' ') : [position[0], position[1]];
- if (myAt.length === 1) {
- myAt[1] = myAt[0];
- }
-
- $.each(['left', 'top'], function(i, offsetPosition) {
- if (+myAt[i] === myAt[i]) {
- offset[i] = myAt[i];
- myAt[i] = offsetPosition;
- }
- });
-
- position = {
- my: myAt.join(" "),
- at: myAt.join(" "),
- offset: offset.join(" ")
- };
- }
-
- position = $.extend({}, $.ui.dialog.prototype.options.position, position);
- } else {
- position = $.ui.dialog.prototype.options.position;
- }
-
- // need to show the dialog to get the actual offset in the position plugin
- isVisible = this.uiDialog.is(':visible');
- if (!isVisible) {
- this.uiDialog.show();
- }
- this.uiDialog
- // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
- .css({ top: 0, left: 0 })
- .position($.extend({ of: window }, position));
- if (!isVisible) {
- this.uiDialog.hide();
- }
- },
-
- _setOptions: function( options ) {
- var self = this,
- resizableOptions = {},
- resize = false;
-
- $.each( options, function( key, value ) {
- self._setOption( key, value );
-
- if ( key in sizeRelatedOptions ) {
- resize = true;
- }
- if ( key in resizableRelatedOptions ) {
- resizableOptions[ key ] = value;
- }
- });
-
- if ( resize ) {
- this._size();
- }
- if ( this.uiDialog.is( ":data(resizable)" ) ) {
- this.uiDialog.resizable( "option", resizableOptions );
- }
- },
-
- _setOption: function(key, value){
- var self = this,
- uiDialog = self.uiDialog;
-
- switch (key) {
- //handling of deprecated beforeclose (vs beforeClose) option
- //Ticket #4669 http://dev.jqueryui.com/ticket/4669
- //TODO: remove in 1.9pre
- case "beforeclose":
- key = "beforeClose";
- break;
- case "buttons":
- self._createButtons(value);
- break;
- case "closeText":
- // ensure that we always pass a string
- self.uiDialogTitlebarCloseText.text("" + value);
- break;
- case "dialogClass":
- uiDialog
- .removeClass(self.options.dialogClass)
- .addClass(uiDialogClasses + value);
- break;
- case "disabled":
- if (value) {
- uiDialog.addClass('ui-dialog-disabled');
- } else {
- uiDialog.removeClass('ui-dialog-disabled');
- }
- break;
- case "draggable":
- var isDraggable = uiDialog.is( ":data(draggable)" );
- if ( isDraggable && !value ) {
- uiDialog.draggable( "destroy" );
- }
-
- if ( !isDraggable && value ) {
- self._makeDraggable();
- }
- break;
- case "position":
- self._position(value);
- break;
- case "resizable":
- // currently resizable, becoming non-resizable
- var isResizable = uiDialog.is( ":data(resizable)" );
- if (isResizable && !value) {
- uiDialog.resizable('destroy');
- }
-
- // currently resizable, changing handles
- if (isResizable && typeof value === 'string') {
- uiDialog.resizable('option', 'handles', value);
- }
-
- // currently non-resizable, becoming resizable
- if (!isResizable && value !== false) {
- self._makeResizable(value);
- }
- break;
- case "title":
- // convert whatever was passed in o a string, for html() to not throw up
- $(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || ' '));
- break;
- }
-
- $.Widget.prototype._setOption.apply(self, arguments);
- },
-
- _size: function() {
- /* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
- * divs will both have width and height set, so we need to reset them
- */
- var options = this.options,
- nonContentHeight,
- minContentHeight,
- isVisible = this.uiDialog.is( ":visible" );
-
- // reset content sizing
- this.element.show().css({
- width: 'auto',
- minHeight: 0,
- height: 0
- });
-
- if (options.minWidth > options.width) {
- options.width = options.minWidth;
- }
-
- // reset wrapper sizing
- // determine the height of all the non-content elements
- nonContentHeight = this.uiDialog.css({
- height: 'auto',
- width: options.width
- })
- .height();
- minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
-
- if ( options.height === "auto" ) {
- // only needed for IE6 support
- if ( $.support.minHeight ) {
- this.element.css({
- minHeight: minContentHeight,
- height: "auto"
- });
- } else {
- this.uiDialog.show();
- var autoHeight = this.element.css( "height", "auto" ).height();
- if ( !isVisible ) {
- this.uiDialog.hide();
- }
- this.element.height( Math.max( autoHeight, minContentHeight ) );
- }
- } else {
- this.element.height( Math.max( options.height - nonContentHeight, 0 ) );
- }
-
- if (this.uiDialog.is(':data(resizable)')) {
- this.uiDialog.resizable('option', 'minHeight', this._minHeight());
- }
- }
-});
-
-$.extend($.ui.dialog, {
- version: "1.8.9",
-
- uuid: 0,
- maxZ: 0,
-
- getTitleId: function($el) {
- var id = $el.attr('id');
- if (!id) {
- this.uuid += 1;
- id = this.uuid;
- }
- return 'ui-dialog-title-' + id;
- },
-
- overlay: function(dialog) {
- this.$el = $.ui.dialog.overlay.create(dialog);
- }
-});
-
-$.extend($.ui.dialog.overlay, {
- instances: [],
- // reuse old instances due to IE memory leak with alpha transparency (see #5185)
- oldInstances: [],
- maxZ: 0,
- events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),
- function(event) { return event + '.dialog-overlay'; }).join(' '),
- create: function(dialog) {
- if (this.instances.length === 0) {
- // prevent use of anchors and inputs
- // we use a setTimeout in case the overlay is created from an
- // event that we're going to be cancelling (see #2804)
- setTimeout(function() {
- // handle $(el).dialog().dialog('close') (see #4065)
- if ($.ui.dialog.overlay.instances.length) {
- $(document).bind($.ui.dialog.overlay.events, function(event) {
- // stop events if the z-index of the target is < the z-index of the overlay
- // we cannot return true when we don't want to cancel the event (#3523)
- if ($(event.target).zIndex() < $.ui.dialog.overlay.maxZ) {
- return false;
- }
- });
- }
- }, 1);
-
- // allow closing by pressing the escape key
- $(document).bind('keydown.dialog-overlay', function(event) {
- if (dialog.options.closeOnEscape && event.keyCode &&
- event.keyCode === $.ui.keyCode.ESCAPE) {
-
- dialog.close(event);
- event.preventDefault();
- }
- });
-
- // handle window resize
- $(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize);
- }
-
- var $el = (this.oldInstances.pop() || $('
').addClass('ui-widget-overlay'))
- .appendTo(document.body)
- .css({
- width: this.width(),
- height: this.height()
- });
-
- if ($.fn.bgiframe) {
- $el.bgiframe();
- }
-
- this.instances.push($el);
- return $el;
- },
-
- destroy: function($el) {
- var indexOf = $.inArray($el, this.instances);
- if (indexOf != -1){
- this.oldInstances.push(this.instances.splice(indexOf, 1)[0]);
- }
-
- if (this.instances.length === 0) {
- $([document, window]).unbind('.dialog-overlay');
- }
-
- $el.remove();
-
- // adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
- var maxZ = 0;
- $.each(this.instances, function() {
- maxZ = Math.max(maxZ, this.css('z-index'));
- });
- this.maxZ = maxZ;
- },
-
- height: function() {
- var scrollHeight,
- offsetHeight;
- // handle IE 6
- if ($.browser.msie && $.browser.version < 7) {
- scrollHeight = Math.max(
- document.documentElement.scrollHeight,
- document.body.scrollHeight
- );
- offsetHeight = Math.max(
- document.documentElement.offsetHeight,
- document.body.offsetHeight
- );
-
- if (scrollHeight < offsetHeight) {
- return $(window).height() + 'px';
- } else {
- return scrollHeight + 'px';
- }
- // handle "good" browsers
- } else {
- return $(document).height() + 'px';
- }
- },
-
- width: function() {
- var scrollWidth,
- offsetWidth;
- // handle IE 6
- if ($.browser.msie && $.browser.version < 7) {
- scrollWidth = Math.max(
- document.documentElement.scrollWidth,
- document.body.scrollWidth
- );
- offsetWidth = Math.max(
- document.documentElement.offsetWidth,
- document.body.offsetWidth
- );
-
- if (scrollWidth < offsetWidth) {
- return $(window).width() + 'px';
- } else {
- return scrollWidth + 'px';
- }
- // handle "good" browsers
- } else {
- return $(document).width() + 'px';
- }
- },
-
- resize: function() {
- /* If the dialog is draggable and the user drags it past the
- * right edge of the window, the document becomes wider so we
- * need to stretch the overlay. If the user then drags the
- * dialog back to the left, the document will become narrower,
- * so we need to shrink the overlay to the appropriate size.
- * This is handled by shrinking the overlay before setting it
- * to the full document size.
- */
- var $overlays = $([]);
- $.each($.ui.dialog.overlay.instances, function() {
- $overlays = $overlays.add(this);
- });
-
- $overlays.css({
- width: 0,
- height: 0
- }).css({
- width: $.ui.dialog.overlay.width(),
- height: $.ui.dialog.overlay.height()
- });
- }
-});
-
-$.extend($.ui.dialog.overlay.prototype, {
- destroy: function() {
- $.ui.dialog.overlay.destroy(this.$el);
- }
-});
-
-}(jQuery));
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/jquery.ui.draggable.js
--- a/webapp/src/main/webapp/jquery/ui/jquery.ui.draggable.js Mon Feb 25 15:21:48 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,797 +0,0 @@
-/*
- * jQuery UI Draggable 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Draggables
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.mouse.js
- * jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.draggable", $.ui.mouse, {
- widgetEventPrefix: "drag",
- options: {
- addClasses: true,
- appendTo: "parent",
- axis: false,
- connectToSortable: false,
- containment: false,
- cursor: "auto",
- cursorAt: false,
- grid: false,
- handle: false,
- helper: "original",
- iframeFix: false,
- opacity: false,
- refreshPositions: false,
- revert: false,
- revertDuration: 500,
- scope: "default",
- scroll: true,
- scrollSensitivity: 20,
- scrollSpeed: 20,
- snap: false,
- snapMode: "both",
- snapTolerance: 20,
- stack: false,
- zIndex: false
- },
- _create: function() {
-
- if (this.options.helper == 'original' && !(/^(?:r|a|f)/).test(this.element.css("position")))
- this.element[0].style.position = 'relative';
-
- (this.options.addClasses && this.element.addClass("ui-draggable"));
- (this.options.disabled && this.element.addClass("ui-draggable-disabled"));
-
- this._mouseInit();
-
- },
-
- destroy: function() {
- if(!this.element.data('draggable')) return;
- this.element
- .removeData("draggable")
- .unbind(".draggable")
- .removeClass("ui-draggable"
- + " ui-draggable-dragging"
- + " ui-draggable-disabled");
- this._mouseDestroy();
-
- return this;
- },
-
- _mouseCapture: function(event) {
-
- var o = this.options;
-
- // among others, prevent a drag on a resizable-handle
- if (this.helper || o.disabled || $(event.target).is('.ui-resizable-handle'))
- return false;
-
- //Quit if we're not on a valid handle
- this.handle = this._getHandle(event);
- if (!this.handle)
- return false;
-
- return true;
-
- },
-
- _mouseStart: function(event) {
-
- var o = this.options;
-
- //Create and append the visible helper
- this.helper = this._createHelper(event);
-
- //Cache the helper size
- this._cacheHelperProportions();
-
- //If ddmanager is used for droppables, set the global draggable
- if($.ui.ddmanager)
- $.ui.ddmanager.current = this;
-
- /*
- * - Position generation -
- * This block generates everything position related - it's the core of draggables.
- */
-
- //Cache the margins of the original element
- this._cacheMargins();
-
- //Store the helper's css position
- this.cssPosition = this.helper.css("position");
- this.scrollParent = this.helper.scrollParent();
-
- //The element's absolute position on the page minus margins
- this.offset = this.positionAbs = this.element.offset();
- this.offset = {
- top: this.offset.top - this.margins.top,
- left: this.offset.left - this.margins.left
- };
-
- $.extend(this.offset, {
- click: { //Where the click happened, relative to the element
- left: event.pageX - this.offset.left,
- top: event.pageY - this.offset.top
- },
- parent: this._getParentOffset(),
- relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper
- });
-
- //Generate the original position
- this.originalPosition = this.position = this._generatePosition(event);
- this.originalPageX = event.pageX;
- this.originalPageY = event.pageY;
-
- //Adjust the mouse offset relative to the helper if 'cursorAt' is supplied
- (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
-
- //Set a containment if given in the options
- if(o.containment)
- this._setContainment();
-
- //Trigger event + callbacks
- if(this._trigger("start", event) === false) {
- this._clear();
- return false;
- }
-
- //Recache the helper size
- this._cacheHelperProportions();
-
- //Prepare the droppable offsets
- if ($.ui.ddmanager && !o.dropBehaviour)
- $.ui.ddmanager.prepareOffsets(this, event);
-
- this.helper.addClass("ui-draggable-dragging");
- this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
- return true;
- },
-
- _mouseDrag: function(event, noPropagation) {
-
- //Compute the helpers position
- this.position = this._generatePosition(event);
- this.positionAbs = this._convertPositionTo("absolute");
-
- //Call plugins and callbacks and use the resulting position if something is returned
- if (!noPropagation) {
- var ui = this._uiHash();
- if(this._trigger('drag', event, ui) === false) {
- this._mouseUp({});
- return false;
- }
- this.position = ui.position;
- }
-
- if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px';
- if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px';
- if($.ui.ddmanager) $.ui.ddmanager.drag(this, event);
-
- return false;
- },
-
- _mouseStop: function(event) {
-
- //If we are using droppables, inform the manager about the drop
- var dropped = false;
- if ($.ui.ddmanager && !this.options.dropBehaviour)
- dropped = $.ui.ddmanager.drop(this, event);
-
- //if a drop comes from outside (a sortable)
- if(this.dropped) {
- dropped = this.dropped;
- this.dropped = false;
- }
-
- //if the original element is removed, don't bother to continue if helper is set to "original"
- if((!this.element[0] || !this.element[0].parentNode) && this.options.helper == "original")
- return false;
-
- if((this.options.revert == "invalid" && !dropped) || (this.options.revert == "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) {
- var self = this;
- $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
- if(self._trigger("stop", event) !== false) {
- self._clear();
- }
- });
- } else {
- if(this._trigger("stop", event) !== false) {
- this._clear();
- }
- }
-
- return false;
- },
-
- cancel: function() {
-
- if(this.helper.is(".ui-draggable-dragging")) {
- this._mouseUp({});
- } else {
- this._clear();
- }
-
- return this;
-
- },
-
- _getHandle: function(event) {
-
- var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false;
- $(this.options.handle, this.element)
- .find("*")
- .andSelf()
- .each(function() {
- if(this == event.target) handle = true;
- });
-
- return handle;
-
- },
-
- _createHelper: function(event) {
-
- var o = this.options;
- var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper == 'clone' ? this.element.clone() : this.element);
-
- if(!helper.parents('body').length)
- helper.appendTo((o.appendTo == 'parent' ? this.element[0].parentNode : o.appendTo));
-
- if(helper[0] != this.element[0] && !(/(fixed|absolute)/).test(helper.css("position")))
- helper.css("position", "absolute");
-
- return helper;
-
- },
-
- _adjustOffsetFromHelper: function(obj) {
- if (typeof obj == 'string') {
- obj = obj.split(' ');
- }
- if ($.isArray(obj)) {
- obj = {left: +obj[0], top: +obj[1] || 0};
- }
- if ('left' in obj) {
- this.offset.click.left = obj.left + this.margins.left;
- }
- if ('right' in obj) {
- this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
- }
- if ('top' in obj) {
- this.offset.click.top = obj.top + this.margins.top;
- }
- if ('bottom' in obj) {
- this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
- }
- },
-
- _getParentOffset: function() {
-
- //Get the offsetParent and cache its position
- this.offsetParent = this.helper.offsetParent();
- var po = this.offsetParent.offset();
-
- // This is a special case where we need to modify a offset calculated on start, since the following happened:
- // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
- // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
- // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
- if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) {
- po.left += this.scrollParent.scrollLeft();
- po.top += this.scrollParent.scrollTop();
- }
-
- if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information
- || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix
- po = { top: 0, left: 0 };
-
- return {
- top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),
- left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)
- };
-
- },
-
- _getRelativeOffset: function() {
-
- if(this.cssPosition == "relative") {
- var p = this.element.position();
- return {
- top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),
- left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft()
- };
- } else {
- return { top: 0, left: 0 };
- }
-
- },
-
- _cacheMargins: function() {
- this.margins = {
- left: (parseInt(this.element.css("marginLeft"),10) || 0),
- top: (parseInt(this.element.css("marginTop"),10) || 0)
- };
- },
-
- _cacheHelperProportions: function() {
- this.helperProportions = {
- width: this.helper.outerWidth(),
- height: this.helper.outerHeight()
- };
- },
-
- _setContainment: function() {
-
- var o = this.options;
- if(o.containment == 'parent') o.containment = this.helper[0].parentNode;
- if(o.containment == 'document' || o.containment == 'window') this.containment = [
- (o.containment == 'document' ? 0 : $(window).scrollLeft()) - this.offset.relative.left - this.offset.parent.left,
- (o.containment == 'document' ? 0 : $(window).scrollTop()) - this.offset.relative.top - this.offset.parent.top,
- (o.containment == 'document' ? 0 : $(window).scrollLeft()) + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,
- (o.containment == 'document' ? 0 : $(window).scrollTop()) + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
- ];
-
- if(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) {
- var ce = $(o.containment)[0]; if(!ce) return;
- var co = $(o.containment).offset();
- var over = ($(ce).css("overflow") != 'hidden');
-
- this.containment = [
- co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left,
- co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top,
- co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left,
- co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top
- ];
- } else if(o.containment.constructor == Array) {
- this.containment = o.containment;
- }
-
- },
-
- _convertPositionTo: function(d, pos) {
-
- if(!pos) pos = this.position;
- var mod = d == "absolute" ? 1 : -1;
- var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
-
- return {
- top: (
- pos.top // The absolute mouse position
- + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent
- + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border)
- - ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)
- ),
- left: (
- pos.left // The absolute mouse position
- + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent
- + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border)
- - ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)
- )
- };
-
- },
-
- _generatePosition: function(event) {
-
- var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
- var pageX = event.pageX;
- var pageY = event.pageY;
-
- /*
- * - Position constraining -
- * Constrain the position to a mix of grid, containment.
- */
-
- if(this.originalPosition) { //If we are not dragging yet, we won't check for options
-
- if(this.containment) {
- if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left;
- if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top;
- if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left;
- if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top;
- }
-
- if(o.grid) {
- var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];
- pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
-
- var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];
- pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
- }
-
- }
-
- return {
- top: (
- pageY // The absolute mouse position
- - this.offset.click.top // Click offset (relative to the element)
- - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent
- - this.offset.parent.top // The offsetParent's offset without borders (offset + border)
- + ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))
- ),
- left: (
- pageX // The absolute mouse position
- - this.offset.click.left // Click offset (relative to the element)
- - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent
- - this.offset.parent.left // The offsetParent's offset without borders (offset + border)
- + ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))
- )
- };
-
- },
-
- _clear: function() {
- this.helper.removeClass("ui-draggable-dragging");
- if(this.helper[0] != this.element[0] && !this.cancelHelperRemoval) this.helper.remove();
- //if($.ui.ddmanager) $.ui.ddmanager.current = null;
- this.helper = null;
- this.cancelHelperRemoval = false;
- },
-
- // From now on bulk stuff - mainly helpers
-
- _trigger: function(type, event, ui) {
- ui = ui || this._uiHash();
- $.ui.plugin.call(this, type, [event, ui]);
- if(type == "drag") this.positionAbs = this._convertPositionTo("absolute"); //The absolute position has to be recalculated after plugins
- return $.Widget.prototype._trigger.call(this, type, event, ui);
- },
-
- plugins: {},
-
- _uiHash: function(event) {
- return {
- helper: this.helper,
- position: this.position,
- originalPosition: this.originalPosition,
- offset: this.positionAbs
- };
- }
-
-});
-
-$.extend($.ui.draggable, {
- version: "1.8.9"
-});
-
-$.ui.plugin.add("draggable", "connectToSortable", {
- start: function(event, ui) {
-
- var inst = $(this).data("draggable"), o = inst.options,
- uiSortable = $.extend({}, ui, { item: inst.element });
- inst.sortables = [];
- $(o.connectToSortable).each(function() {
- var sortable = $.data(this, 'sortable');
- if (sortable && !sortable.options.disabled) {
- inst.sortables.push({
- instance: sortable,
- shouldRevert: sortable.options.revert
- });
- sortable._refreshItems(); //Do a one-time refresh at start to refresh the containerCache
- sortable._trigger("activate", event, uiSortable);
- }
- });
-
- },
- stop: function(event, ui) {
-
- //If we are still over the sortable, we fake the stop event of the sortable, but also remove helper
- var inst = $(this).data("draggable"),
- uiSortable = $.extend({}, ui, { item: inst.element });
-
- $.each(inst.sortables, function() {
- if(this.instance.isOver) {
-
- this.instance.isOver = 0;
-
- inst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance
- this.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work)
-
- //The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: 'valid/invalid'
- if(this.shouldRevert) this.instance.options.revert = true;
-
- //Trigger the stop of the sortable
- this.instance._mouseStop(event);
-
- this.instance.options.helper = this.instance.options._helper;
-
- //If the helper has been the original item, restore properties in the sortable
- if(inst.options.helper == 'original')
- this.instance.currentItem.css({ top: 'auto', left: 'auto' });
-
- } else {
- this.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance
- this.instance._trigger("deactivate", event, uiSortable);
- }
-
- });
-
- },
- drag: function(event, ui) {
-
- var inst = $(this).data("draggable"), self = this;
-
- var checkPos = function(o) {
- var dyClick = this.offset.click.top, dxClick = this.offset.click.left;
- var helperTop = this.positionAbs.top, helperLeft = this.positionAbs.left;
- var itemHeight = o.height, itemWidth = o.width;
- var itemTop = o.top, itemLeft = o.left;
-
- return $.ui.isOver(helperTop + dyClick, helperLeft + dxClick, itemTop, itemLeft, itemHeight, itemWidth);
- };
-
- $.each(inst.sortables, function(i) {
-
- //Copy over some variables to allow calling the sortable's native _intersectsWith
- this.instance.positionAbs = inst.positionAbs;
- this.instance.helperProportions = inst.helperProportions;
- this.instance.offset.click = inst.offset.click;
-
- if(this.instance._intersectsWith(this.instance.containerCache)) {
-
- //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
- if(!this.instance.isOver) {
-
- this.instance.isOver = 1;
- //Now we fake the start of dragging for the sortable instance,
- //by cloning the list group item, appending it to the sortable and using it as inst.currentItem
- //We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one)
- this.instance.currentItem = $(self).clone().appendTo(this.instance.element).data("sortable-item", true);
- this.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it
- this.instance.options.helper = function() { return ui.helper[0]; };
-
- event.target = this.instance.currentItem[0];
- this.instance._mouseCapture(event, true);
- this.instance._mouseStart(event, true, true);
-
- //Because the browser event is way off the new appended portlet, we modify a couple of variables to reflect the changes
- this.instance.offset.click.top = inst.offset.click.top;
- this.instance.offset.click.left = inst.offset.click.left;
- this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left;
- this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top;
-
- inst._trigger("toSortable", event);
- inst.dropped = this.instance.element; //draggable revert needs that
- //hack so receive/update callbacks work (mostly)
- inst.currentItem = inst.element;
- this.instance.fromOutside = inst;
-
- }
-
- //Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable
- if(this.instance.currentItem) this.instance._mouseDrag(event);
-
- } else {
-
- //If it doesn't intersect with the sortable, and it intersected before,
- //we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval
- if(this.instance.isOver) {
-
- this.instance.isOver = 0;
- this.instance.cancelHelperRemoval = true;
-
- //Prevent reverting on this forced stop
- this.instance.options.revert = false;
-
- // The out event needs to be triggered independently
- this.instance._trigger('out', event, this.instance._uiHash(this.instance));
-
- this.instance._mouseStop(event, true);
- this.instance.options.helper = this.instance.options._helper;
-
- //Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size
- this.instance.currentItem.remove();
- if(this.instance.placeholder) this.instance.placeholder.remove();
-
- inst._trigger("fromSortable", event);
- inst.dropped = false; //draggable revert needs that
- }
-
- };
-
- });
-
- }
-});
-
-$.ui.plugin.add("draggable", "cursor", {
- start: function(event, ui) {
- var t = $('body'), o = $(this).data('draggable').options;
- if (t.css("cursor")) o._cursor = t.css("cursor");
- t.css("cursor", o.cursor);
- },
- stop: function(event, ui) {
- var o = $(this).data('draggable').options;
- if (o._cursor) $('body').css("cursor", o._cursor);
- }
-});
-
-$.ui.plugin.add("draggable", "iframeFix", {
- start: function(event, ui) {
- var o = $(this).data('draggable').options;
- $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
- $('
')
- .css({
- width: this.offsetWidth+"px", height: this.offsetHeight+"px",
- position: "absolute", opacity: "0.001", zIndex: 1000
- })
- .css($(this).offset())
- .appendTo("body");
- });
- },
- stop: function(event, ui) {
- $("div.ui-draggable-iframeFix").each(function() { this.parentNode.removeChild(this); }); //Remove frame helpers
- }
-});
-
-$.ui.plugin.add("draggable", "opacity", {
- start: function(event, ui) {
- var t = $(ui.helper), o = $(this).data('draggable').options;
- if(t.css("opacity")) o._opacity = t.css("opacity");
- t.css('opacity', o.opacity);
- },
- stop: function(event, ui) {
- var o = $(this).data('draggable').options;
- if(o._opacity) $(ui.helper).css('opacity', o._opacity);
- }
-});
-
-$.ui.plugin.add("draggable", "scroll", {
- start: function(event, ui) {
- var i = $(this).data("draggable");
- if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') i.overflowOffset = i.scrollParent.offset();
- },
- drag: function(event, ui) {
-
- var i = $(this).data("draggable"), o = i.options, scrolled = false;
-
- if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') {
-
- if(!o.axis || o.axis != 'x') {
- if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)
- i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed;
- else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity)
- i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed;
- }
-
- if(!o.axis || o.axis != 'y') {
- if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)
- i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed;
- else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity)
- i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed;
- }
-
- } else {
-
- if(!o.axis || o.axis != 'x') {
- if(event.pageY - $(document).scrollTop() < o.scrollSensitivity)
- scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
- else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)
- scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
- }
-
- if(!o.axis || o.axis != 'y') {
- if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)
- scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
- else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
- scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
- }
-
- }
-
- if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)
- $.ui.ddmanager.prepareOffsets(i, event);
-
- }
-});
-
-$.ui.plugin.add("draggable", "snap", {
- start: function(event, ui) {
-
- var i = $(this).data("draggable"), o = i.options;
- i.snapElements = [];
-
- $(o.snap.constructor != String ? ( o.snap.items || ':data(draggable)' ) : o.snap).each(function() {
- var $t = $(this); var $o = $t.offset();
- if(this != i.element[0]) i.snapElements.push({
- item: this,
- width: $t.outerWidth(), height: $t.outerHeight(),
- top: $o.top, left: $o.left
- });
- });
-
- },
- drag: function(event, ui) {
-
- var inst = $(this).data("draggable"), o = inst.options;
- var d = o.snapTolerance;
-
- var x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,
- y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;
-
- for (var i = inst.snapElements.length - 1; i >= 0; i--){
-
- var l = inst.snapElements[i].left, r = l + inst.snapElements[i].width,
- t = inst.snapElements[i].top, b = t + inst.snapElements[i].height;
-
- //Yes, I know, this is insane ;)
- if(!((l-d < x1 && x1 < r+d && t-d < y1 && y1 < b+d) || (l-d < x1 && x1 < r+d && t-d < y2 && y2 < b+d) || (l-d < x2 && x2 < r+d && t-d < y1 && y1 < b+d) || (l-d < x2 && x2 < r+d && t-d < y2 && y2 < b+d))) {
- if(inst.snapElements[i].snapping) (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
- inst.snapElements[i].snapping = false;
- continue;
- }
-
- if(o.snapMode != 'inner') {
- var ts = Math.abs(t - y2) <= d;
- var bs = Math.abs(b - y1) <= d;
- var ls = Math.abs(l - x2) <= d;
- var rs = Math.abs(r - x1) <= d;
- if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
- if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top;
- if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left;
- if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left;
- }
-
- var first = (ts || bs || ls || rs);
-
- if(o.snapMode != 'outer') {
- var ts = Math.abs(t - y1) <= d;
- var bs = Math.abs(b - y2) <= d;
- var ls = Math.abs(l - x1) <= d;
- var rs = Math.abs(r - x2) <= d;
- if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top;
- if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
- if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left;
- if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left;
- }
-
- if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first))
- (inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
- inst.snapElements[i].snapping = (ts || bs || ls || rs || first);
-
- };
-
- }
-});
-
-$.ui.plugin.add("draggable", "stack", {
- start: function(event, ui) {
-
- var o = $(this).data("draggable").options;
-
- var group = $.makeArray($(o.stack)).sort(function(a,b) {
- return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
- });
- if (!group.length) { return; }
-
- var min = parseInt(group[0].style.zIndex) || 0;
- $(group).each(function(i) {
- this.style.zIndex = min + i;
- });
-
- this[0].style.zIndex = min + group.length;
-
- }
-});
-
-$.ui.plugin.add("draggable", "zIndex", {
- start: function(event, ui) {
- var t = $(ui.helper), o = $(this).data("draggable").options;
- if(t.css("zIndex")) o._zIndex = t.css("zIndex");
- t.css('zIndex', o.zIndex);
- },
- stop: function(event, ui) {
- var o = $(this).data("draggable").options;
- if(o._zIndex) $(ui.helper).css('zIndex', o._zIndex);
- }
-});
-
-})(jQuery);
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/jquery.ui.mouse.js
--- a/webapp/src/main/webapp/jquery/ui/jquery.ui.mouse.js Mon Feb 25 15:21:48 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-/*!
- * jQuery UI Mouse 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Mouse
- *
- * Depends:
- * jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.mouse", {
- options: {
- cancel: ':input,option',
- distance: 1,
- delay: 0
- },
- _mouseInit: function() {
- var self = this;
-
- this.element
- .bind('mousedown.'+this.widgetName, function(event) {
- return self._mouseDown(event);
- })
- .bind('click.'+this.widgetName, function(event) {
- if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) {
- $.removeData(event.target, self.widgetName + '.preventClickEvent');
- event.stopImmediatePropagation();
- return false;
- }
- });
-
- this.started = false;
- },
-
- // TODO: make sure destroying one instance of mouse doesn't mess with
- // other instances of mouse
- _mouseDestroy: function() {
- this.element.unbind('.'+this.widgetName);
- },
-
- _mouseDown: function(event) {
- // don't let more than one widget handle mouseStart
- // TODO: figure out why we have to use originalEvent
- event.originalEvent = event.originalEvent || {};
- if (event.originalEvent.mouseHandled) { return; }
-
- // we may have missed mouseup (out of window)
- (this._mouseStarted && this._mouseUp(event));
-
- this._mouseDownEvent = event;
-
- var self = this,
- btnIsLeft = (event.which == 1),
- elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false);
- if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
- return true;
- }
-
- this.mouseDelayMet = !this.options.delay;
- if (!this.mouseDelayMet) {
- this._mouseDelayTimer = setTimeout(function() {
- self.mouseDelayMet = true;
- }, this.options.delay);
- }
-
- if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
- this._mouseStarted = (this._mouseStart(event) !== false);
- if (!this._mouseStarted) {
- event.preventDefault();
- return true;
- }
- }
-
- // these delegates are required to keep context
- this._mouseMoveDelegate = function(event) {
- return self._mouseMove(event);
- };
- this._mouseUpDelegate = function(event) {
- return self._mouseUp(event);
- };
- $(document)
- .bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
- .bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
-
- event.preventDefault();
- event.originalEvent.mouseHandled = true;
- return true;
- },
-
- _mouseMove: function(event) {
- // IE mouseup check - mouseup happened when mouse was out of window
- if ($.browser.msie && !(document.documentMode >= 9) && !event.button) {
- return this._mouseUp(event);
- }
-
- if (this._mouseStarted) {
- this._mouseDrag(event);
- return event.preventDefault();
- }
-
- if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
- this._mouseStarted =
- (this._mouseStart(this._mouseDownEvent, event) !== false);
- (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
- }
-
- return !this._mouseStarted;
- },
-
- _mouseUp: function(event) {
- $(document)
- .unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
- .unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);
-
- if (this._mouseStarted) {
- this._mouseStarted = false;
-
- if (event.target == this._mouseDownEvent.target) {
- $.data(event.target, this.widgetName + '.preventClickEvent', true);
- }
-
- this._mouseStop(event);
- }
-
- return false;
- },
-
- _mouseDistanceMet: function(event) {
- return (Math.max(
- Math.abs(this._mouseDownEvent.pageX - event.pageX),
- Math.abs(this._mouseDownEvent.pageY - event.pageY)
- ) >= this.options.distance
- );
- },
-
- _mouseDelayMet: function(event) {
- return this.mouseDelayMet;
- },
-
- // These are placeholder methods, to be overriden by extending plugin
- _mouseStart: function(event) {},
- _mouseDrag: function(event) {},
- _mouseStop: function(event) {},
- _mouseCapture: function(event) { return true; }
-});
-
-})(jQuery);
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/jquery.ui.position.js
--- a/webapp/src/main/webapp/jquery/ui/jquery.ui.position.js Mon Feb 25 15:21:48 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,252 +0,0 @@
-/*
- * jQuery UI Position 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Position
- */
-(function( $, undefined ) {
-
-$.ui = $.ui || {};
-
-var horizontalPositions = /left|center|right/,
- verticalPositions = /top|center|bottom/,
- center = "center",
- _position = $.fn.position,
- _offset = $.fn.offset;
-
-$.fn.position = function( options ) {
- if ( !options || !options.of ) {
- return _position.apply( this, arguments );
- }
-
- // make a copy, we don't want to modify arguments
- options = $.extend( {}, options );
-
- var target = $( options.of ),
- targetElem = target[0],
- collision = ( options.collision || "flip" ).split( " " ),
- offset = options.offset ? options.offset.split( " " ) : [ 0, 0 ],
- targetWidth,
- targetHeight,
- basePosition;
-
- if ( targetElem.nodeType === 9 ) {
- targetWidth = target.width();
- targetHeight = target.height();
- basePosition = { top: 0, left: 0 };
- // TODO: use $.isWindow() in 1.9
- } else if ( targetElem.setTimeout ) {
- targetWidth = target.width();
- targetHeight = target.height();
- basePosition = { top: target.scrollTop(), left: target.scrollLeft() };
- } else if ( targetElem.preventDefault ) {
- // force left top to allow flipping
- options.at = "left top";
- targetWidth = targetHeight = 0;
- basePosition = { top: options.of.pageY, left: options.of.pageX };
- } else {
- targetWidth = target.outerWidth();
- targetHeight = target.outerHeight();
- basePosition = target.offset();
- }
-
- // force my and at to have valid horizontal and veritcal positions
- // if a value is missing or invalid, it will be converted to center
- $.each( [ "my", "at" ], function() {
- var pos = ( options[this] || "" ).split( " " );
- if ( pos.length === 1) {
- pos = horizontalPositions.test( pos[0] ) ?
- pos.concat( [center] ) :
- verticalPositions.test( pos[0] ) ?
- [ center ].concat( pos ) :
- [ center, center ];
- }
- pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : center;
- pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : center;
- options[ this ] = pos;
- });
-
- // normalize collision option
- if ( collision.length === 1 ) {
- collision[ 1 ] = collision[ 0 ];
- }
-
- // normalize offset option
- offset[ 0 ] = parseInt( offset[0], 10 ) || 0;
- if ( offset.length === 1 ) {
- offset[ 1 ] = offset[ 0 ];
- }
- offset[ 1 ] = parseInt( offset[1], 10 ) || 0;
-
- if ( options.at[0] === "right" ) {
- basePosition.left += targetWidth;
- } else if ( options.at[0] === center ) {
- basePosition.left += targetWidth / 2;
- }
-
- if ( options.at[1] === "bottom" ) {
- basePosition.top += targetHeight;
- } else if ( options.at[1] === center ) {
- basePosition.top += targetHeight / 2;
- }
-
- basePosition.left += offset[ 0 ];
- basePosition.top += offset[ 1 ];
-
- return this.each(function() {
- var elem = $( this ),
- elemWidth = elem.outerWidth(),
- elemHeight = elem.outerHeight(),
- marginLeft = parseInt( $.curCSS( this, "marginLeft", true ) ) || 0,
- marginTop = parseInt( $.curCSS( this, "marginTop", true ) ) || 0,
- collisionWidth = elemWidth + marginLeft +
- ( parseInt( $.curCSS( this, "marginRight", true ) ) || 0 ),
- collisionHeight = elemHeight + marginTop +
- ( parseInt( $.curCSS( this, "marginBottom", true ) ) || 0 ),
- position = $.extend( {}, basePosition ),
- collisionPosition;
-
- if ( options.my[0] === "right" ) {
- position.left -= elemWidth;
- } else if ( options.my[0] === center ) {
- position.left -= elemWidth / 2;
- }
-
- if ( options.my[1] === "bottom" ) {
- position.top -= elemHeight;
- } else if ( options.my[1] === center ) {
- position.top -= elemHeight / 2;
- }
-
- // prevent fractions (see #5280)
- position.left = Math.round( position.left );
- position.top = Math.round( position.top );
-
- collisionPosition = {
- left: position.left - marginLeft,
- top: position.top - marginTop
- };
-
- $.each( [ "left", "top" ], function( i, dir ) {
- if ( $.ui.position[ collision[i] ] ) {
- $.ui.position[ collision[i] ][ dir ]( position, {
- targetWidth: targetWidth,
- targetHeight: targetHeight,
- elemWidth: elemWidth,
- elemHeight: elemHeight,
- collisionPosition: collisionPosition,
- collisionWidth: collisionWidth,
- collisionHeight: collisionHeight,
- offset: offset,
- my: options.my,
- at: options.at
- });
- }
- });
-
- if ( $.fn.bgiframe ) {
- elem.bgiframe();
- }
- elem.offset( $.extend( position, { using: options.using } ) );
- });
-};
-
-$.ui.position = {
- fit: {
- left: function( position, data ) {
- var win = $( window ),
- over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft();
- position.left = over > 0 ? position.left - over : Math.max( position.left - data.collisionPosition.left, position.left );
- },
- top: function( position, data ) {
- var win = $( window ),
- over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop();
- position.top = over > 0 ? position.top - over : Math.max( position.top - data.collisionPosition.top, position.top );
- }
- },
-
- flip: {
- left: function( position, data ) {
- if ( data.at[0] === center ) {
- return;
- }
- var win = $( window ),
- over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft(),
- myOffset = data.my[ 0 ] === "left" ?
- -data.elemWidth :
- data.my[ 0 ] === "right" ?
- data.elemWidth :
- 0,
- atOffset = data.at[ 0 ] === "left" ?
- data.targetWidth :
- -data.targetWidth,
- offset = -2 * data.offset[ 0 ];
- position.left += data.collisionPosition.left < 0 ?
- myOffset + atOffset + offset :
- over > 0 ?
- myOffset + atOffset + offset :
- 0;
- },
- top: function( position, data ) {
- if ( data.at[1] === center ) {
- return;
- }
- var win = $( window ),
- over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(),
- myOffset = data.my[ 1 ] === "top" ?
- -data.elemHeight :
- data.my[ 1 ] === "bottom" ?
- data.elemHeight :
- 0,
- atOffset = data.at[ 1 ] === "top" ?
- data.targetHeight :
- -data.targetHeight,
- offset = -2 * data.offset[ 1 ];
- position.top += data.collisionPosition.top < 0 ?
- myOffset + atOffset + offset :
- over > 0 ?
- myOffset + atOffset + offset :
- 0;
- }
- }
-};
-
-// offset setter from jQuery 1.4
-if ( !$.offset.setOffset ) {
- $.offset.setOffset = function( elem, options ) {
- // set position first, in-case top/left are set even on static elem
- if ( /static/.test( $.curCSS( elem, "position" ) ) ) {
- elem.style.position = "relative";
- }
- var curElem = $( elem ),
- curOffset = curElem.offset(),
- curTop = parseInt( $.curCSS( elem, "top", true ), 10 ) || 0,
- curLeft = parseInt( $.curCSS( elem, "left", true ), 10) || 0,
- props = {
- top: (options.top - curOffset.top) + curTop,
- left: (options.left - curOffset.left) + curLeft
- };
-
- if ( 'using' in options ) {
- options.using.call( elem, props );
- } else {
- curElem.css( props );
- }
- };
-
- $.fn.offset = function( options ) {
- var elem = this[ 0 ];
- if ( !elem || !elem.ownerDocument ) { return null; }
- if ( options ) {
- return this.each(function() {
- $.offset.setOffset( this, options );
- });
- }
- return _offset.call( this );
- };
-}
-
-}( jQuery ));
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/jquery.ui.resizable.js
--- a/webapp/src/main/webapp/jquery/ui/jquery.ui.resizable.js Mon Feb 25 15:21:48 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,812 +0,0 @@
-/*
- * jQuery UI Resizable 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizables
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.mouse.js
- * jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.resizable", $.ui.mouse, {
- widgetEventPrefix: "resize",
- options: {
- alsoResize: false,
- animate: false,
- animateDuration: "slow",
- animateEasing: "swing",
- aspectRatio: false,
- autoHide: false,
- containment: false,
- ghost: false,
- grid: false,
- handles: "e,s,se",
- helper: false,
- maxHeight: null,
- maxWidth: null,
- minHeight: 10,
- minWidth: 10,
- zIndex: 1000
- },
- _create: function() {
-
- var self = this, o = this.options;
- this.element.addClass("ui-resizable");
-
- $.extend(this, {
- _aspectRatio: !!(o.aspectRatio),
- aspectRatio: o.aspectRatio,
- originalElement: this.element,
- _proportionallyResizeElements: [],
- _helper: o.helper || o.ghost || o.animate ? o.helper || 'ui-resizable-helper' : null
- });
-
- //Wrap the element if it cannot hold child nodes
- if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) {
-
- //Opera fix for relative positioning
- if (/relative/.test(this.element.css('position')) && $.browser.opera)
- this.element.css({ position: 'relative', top: 'auto', left: 'auto' });
-
- //Create a wrapper element and set the wrapper to the new current internal element
- this.element.wrap(
- $('
').css({
- position: this.element.css('position'),
- width: this.element.outerWidth(),
- height: this.element.outerHeight(),
- top: this.element.css('top'),
- left: this.element.css('left')
- })
- );
-
- //Overwrite the original this.element
- this.element = this.element.parent().data(
- "resizable", this.element.data('resizable')
- );
-
- this.elementIsWrapper = true;
-
- //Move margins to the wrapper
- this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") });
- this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0});
-
- //Prevent Safari textarea resize
- this.originalResizeStyle = this.originalElement.css('resize');
- this.originalElement.css('resize', 'none');
-
- //Push the actual element to our proportionallyResize internal array
- this._proportionallyResizeElements.push(this.originalElement.css({ position: 'static', zoom: 1, display: 'block' }));
-
- // avoid IE jump (hard set the margin)
- this.originalElement.css({ margin: this.originalElement.css('margin') });
-
- // fix handlers offset
- this._proportionallyResize();
-
- }
-
- this.handles = o.handles || (!$('.ui-resizable-handle', this.element).length ? "e,s,se" : { n: '.ui-resizable-n', e: '.ui-resizable-e', s: '.ui-resizable-s', w: '.ui-resizable-w', se: '.ui-resizable-se', sw: '.ui-resizable-sw', ne: '.ui-resizable-ne', nw: '.ui-resizable-nw' });
- if(this.handles.constructor == String) {
-
- if(this.handles == 'all') this.handles = 'n,e,s,w,se,sw,ne,nw';
- var n = this.handles.split(","); this.handles = {};
-
- for(var i = 0; i < n.length; i++) {
-
- var handle = $.trim(n[i]), hname = 'ui-resizable-'+handle;
- var axis = $('
');
-
- // increase zIndex of sw, se, ne, nw axis
- //TODO : this modifies original option
- if(/sw|se|ne|nw/.test(handle)) axis.css({ zIndex: ++o.zIndex });
-
- //TODO : What's going on here?
- if ('se' == handle) {
- axis.addClass('ui-icon ui-icon-gripsmall-diagonal-se');
- };
-
- //Insert into internal handles object and append to element
- this.handles[handle] = '.ui-resizable-'+handle;
- this.element.append(axis);
- }
-
- }
-
- this._renderAxis = function(target) {
-
- target = target || this.element;
-
- for(var i in this.handles) {
-
- if(this.handles[i].constructor == String)
- this.handles[i] = $(this.handles[i], this.element).show();
-
- //Apply pad to wrapper element, needed to fix axis position (textarea, inputs, scrolls)
- if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {
-
- var axis = $(this.handles[i], this.element), padWrapper = 0;
-
- //Checking the correct pad and border
- padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth();
-
- //The padding type i have to apply...
- var padPos = [ 'padding',
- /ne|nw|n/.test(i) ? 'Top' :
- /se|sw|s/.test(i) ? 'Bottom' :
- /^e$/.test(i) ? 'Right' : 'Left' ].join("");
-
- target.css(padPos, padWrapper);
-
- this._proportionallyResize();
-
- }
-
- //TODO: What's that good for? There's not anything to be executed left
- if(!$(this.handles[i]).length)
- continue;
-
- }
- };
-
- //TODO: make renderAxis a prototype function
- this._renderAxis(this.element);
-
- this._handles = $('.ui-resizable-handle', this.element)
- .disableSelection();
-
- //Matching axis name
- this._handles.mouseover(function() {
- if (!self.resizing) {
- if (this.className)
- var axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);
- //Axis, default = se
- self.axis = axis && axis[1] ? axis[1] : 'se';
- }
- });
-
- //If we want to auto hide the elements
- if (o.autoHide) {
- this._handles.hide();
- $(this.element)
- .addClass("ui-resizable-autohide")
- .hover(function() {
- $(this).removeClass("ui-resizable-autohide");
- self._handles.show();
- },
- function(){
- if (!self.resizing) {
- $(this).addClass("ui-resizable-autohide");
- self._handles.hide();
- }
- });
- }
-
- //Initialize the mouse interaction
- this._mouseInit();
-
- },
-
- destroy: function() {
-
- this._mouseDestroy();
-
- var _destroy = function(exp) {
- $(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing")
- .removeData("resizable").unbind(".resizable").find('.ui-resizable-handle').remove();
- };
-
- //TODO: Unwrap at same DOM position
- if (this.elementIsWrapper) {
- _destroy(this.element);
- var wrapper = this.element;
- wrapper.after(
- this.originalElement.css({
- position: wrapper.css('position'),
- width: wrapper.outerWidth(),
- height: wrapper.outerHeight(),
- top: wrapper.css('top'),
- left: wrapper.css('left')
- })
- ).remove();
- }
-
- this.originalElement.css('resize', this.originalResizeStyle);
- _destroy(this.originalElement);
-
- return this;
- },
-
- _mouseCapture: function(event) {
- var handle = false;
- for (var i in this.handles) {
- if ($(this.handles[i])[0] == event.target) {
- handle = true;
- }
- }
-
- return !this.options.disabled && handle;
- },
-
- _mouseStart: function(event) {
-
- var o = this.options, iniPos = this.element.position(), el = this.element;
-
- this.resizing = true;
- this.documentScroll = { top: $(document).scrollTop(), left: $(document).scrollLeft() };
-
- // bugfix for http://dev.jquery.com/ticket/1749
- if (el.is('.ui-draggable') || (/absolute/).test(el.css('position'))) {
- el.css({ position: 'absolute', top: iniPos.top, left: iniPos.left });
- }
-
- //Opera fixing relative position
- if ($.browser.opera && (/relative/).test(el.css('position')))
- el.css({ position: 'relative', top: 'auto', left: 'auto' });
-
- this._renderProxy();
-
- var curleft = num(this.helper.css('left')), curtop = num(this.helper.css('top'));
-
- if (o.containment) {
- curleft += $(o.containment).scrollLeft() || 0;
- curtop += $(o.containment).scrollTop() || 0;
- }
-
- //Store needed variables
- this.offset = this.helper.offset();
- this.position = { left: curleft, top: curtop };
- this.size = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
- this.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
- this.originalPosition = { left: curleft, top: curtop };
- this.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() };
- this.originalMousePosition = { left: event.pageX, top: event.pageY };
-
- //Aspect Ratio
- this.aspectRatio = (typeof o.aspectRatio == 'number') ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1);
-
- var cursor = $('.ui-resizable-' + this.axis).css('cursor');
- $('body').css('cursor', cursor == 'auto' ? this.axis + '-resize' : cursor);
-
- el.addClass("ui-resizable-resizing");
- this._propagate("start", event);
- return true;
- },
-
- _mouseDrag: function(event) {
-
- //Increase performance, avoid regex
- var el = this.helper, o = this.options, props = {},
- self = this, smp = this.originalMousePosition, a = this.axis;
-
- var dx = (event.pageX-smp.left)||0, dy = (event.pageY-smp.top)||0;
- var trigger = this._change[a];
- if (!trigger) return false;
-
- // Calculate the attrs that will be change
- var data = trigger.apply(this, [event, dx, dy]), ie6 = $.browser.msie && $.browser.version < 7, csdif = this.sizeDiff;
-
- if (this._aspectRatio || event.shiftKey)
- data = this._updateRatio(data, event);
-
- data = this._respectSize(data, event);
-
- // plugins callbacks need to be called first
- this._propagate("resize", event);
-
- el.css({
- top: this.position.top + "px", left: this.position.left + "px",
- width: this.size.width + "px", height: this.size.height + "px"
- });
-
- if (!this._helper && this._proportionallyResizeElements.length)
- this._proportionallyResize();
-
- this._updateCache(data);
-
- // calling the user callback at the end
- this._trigger('resize', event, this.ui());
-
- return false;
- },
-
- _mouseStop: function(event) {
-
- this.resizing = false;
- var o = this.options, self = this;
-
- if(this._helper) {
- var pr = this._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName),
- soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height,
- soffsetw = ista ? 0 : self.sizeDiff.width;
-
- var s = { width: (self.size.width - soffsetw), height: (self.size.height - soffseth) },
- left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null,
- top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null;
-
- if (!o.animate)
- this.element.css($.extend(s, { top: top, left: left }));
-
- self.helper.height(self.size.height);
- self.helper.width(self.size.width);
-
- if (this._helper && !o.animate) this._proportionallyResize();
- }
-
- $('body').css('cursor', 'auto');
-
- this.element.removeClass("ui-resizable-resizing");
-
- this._propagate("stop", event);
-
- if (this._helper) this.helper.remove();
- return false;
-
- },
-
- _updateCache: function(data) {
- var o = this.options;
- this.offset = this.helper.offset();
- if (isNumber(data.left)) this.position.left = data.left;
- if (isNumber(data.top)) this.position.top = data.top;
- if (isNumber(data.height)) this.size.height = data.height;
- if (isNumber(data.width)) this.size.width = data.width;
- },
-
- _updateRatio: function(data, event) {
-
- var o = this.options, cpos = this.position, csize = this.size, a = this.axis;
-
- if (data.height) data.width = (csize.height * this.aspectRatio);
- else if (data.width) data.height = (csize.width / this.aspectRatio);
-
- if (a == 'sw') {
- data.left = cpos.left + (csize.width - data.width);
- data.top = null;
- }
- if (a == 'nw') {
- data.top = cpos.top + (csize.height - data.height);
- data.left = cpos.left + (csize.width - data.width);
- }
-
- return data;
- },
-
- _respectSize: function(data, event) {
-
- var el = this.helper, o = this.options, pRatio = this._aspectRatio || event.shiftKey, a = this.axis,
- ismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height),
- isminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height);
-
- if (isminw) data.width = o.minWidth;
- if (isminh) data.height = o.minHeight;
- if (ismaxw) data.width = o.maxWidth;
- if (ismaxh) data.height = o.maxHeight;
-
- var dw = this.originalPosition.left + this.originalSize.width, dh = this.position.top + this.size.height;
- var cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a);
-
- if (isminw && cw) data.left = dw - o.minWidth;
- if (ismaxw && cw) data.left = dw - o.maxWidth;
- if (isminh && ch) data.top = dh - o.minHeight;
- if (ismaxh && ch) data.top = dh - o.maxHeight;
-
- // fixing jump error on top/left - bug #2330
- var isNotwh = !data.width && !data.height;
- if (isNotwh && !data.left && data.top) data.top = null;
- else if (isNotwh && !data.top && data.left) data.left = null;
-
- return data;
- },
-
- _proportionallyResize: function() {
-
- var o = this.options;
- if (!this._proportionallyResizeElements.length) return;
- var element = this.helper || this.element;
-
- for (var i=0; i < this._proportionallyResizeElements.length; i++) {
-
- var prel = this._proportionallyResizeElements[i];
-
- if (!this.borderDif) {
- var b = [prel.css('borderTopWidth'), prel.css('borderRightWidth'), prel.css('borderBottomWidth'), prel.css('borderLeftWidth')],
- p = [prel.css('paddingTop'), prel.css('paddingRight'), prel.css('paddingBottom'), prel.css('paddingLeft')];
-
- this.borderDif = $.map(b, function(v, i) {
- var border = parseInt(v,10)||0, padding = parseInt(p[i],10)||0;
- return border + padding;
- });
- }
-
- if ($.browser.msie && !(!($(element).is(':hidden') || $(element).parents(':hidden').length)))
- continue;
-
- prel.css({
- height: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0,
- width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0
- });
-
- };
-
- },
-
- _renderProxy: function() {
-
- var el = this.element, o = this.options;
- this.elementOffset = el.offset();
-
- if(this._helper) {
-
- this.helper = this.helper || $('
');
-
- // fix ie6 offset TODO: This seems broken
- var ie6 = $.browser.msie && $.browser.version < 7, ie6offset = (ie6 ? 1 : 0),
- pxyoffset = ( ie6 ? 2 : -1 );
-
- this.helper.addClass(this._helper).css({
- width: this.element.outerWidth() + pxyoffset,
- height: this.element.outerHeight() + pxyoffset,
- position: 'absolute',
- left: this.elementOffset.left - ie6offset +'px',
- top: this.elementOffset.top - ie6offset +'px',
- zIndex: ++o.zIndex //TODO: Don't modify option
- });
-
- this.helper
- .appendTo("body")
- .disableSelection();
-
- } else {
- this.helper = this.element;
- }
-
- },
-
- _change: {
- e: function(event, dx, dy) {
- return { width: this.originalSize.width + dx };
- },
- w: function(event, dx, dy) {
- var o = this.options, cs = this.originalSize, sp = this.originalPosition;
- return { left: sp.left + dx, width: cs.width - dx };
- },
- n: function(event, dx, dy) {
- var o = this.options, cs = this.originalSize, sp = this.originalPosition;
- return { top: sp.top + dy, height: cs.height - dy };
- },
- s: function(event, dx, dy) {
- return { height: this.originalSize.height + dy };
- },
- se: function(event, dx, dy) {
- return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
- },
- sw: function(event, dx, dy) {
- return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
- },
- ne: function(event, dx, dy) {
- return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
- },
- nw: function(event, dx, dy) {
- return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
- }
- },
-
- _propagate: function(n, event) {
- $.ui.plugin.call(this, n, [event, this.ui()]);
- (n != "resize" && this._trigger(n, event, this.ui()));
- },
-
- plugins: {},
-
- ui: function() {
- return {
- originalElement: this.originalElement,
- element: this.element,
- helper: this.helper,
- position: this.position,
- size: this.size,
- originalSize: this.originalSize,
- originalPosition: this.originalPosition
- };
- }
-
-});
-
-$.extend($.ui.resizable, {
- version: "1.8.9"
-});
-
-/*
- * Resizable Extensions
- */
-
-$.ui.plugin.add("resizable", "alsoResize", {
-
- start: function (event, ui) {
- var self = $(this).data("resizable"), o = self.options;
-
- var _store = function (exp) {
- $(exp).each(function() {
- var el = $(this);
- el.data("resizable-alsoresize", {
- width: parseInt(el.width(), 10), height: parseInt(el.height(), 10),
- left: parseInt(el.css('left'), 10), top: parseInt(el.css('top'), 10),
- position: el.css('position') // to reset Opera on stop()
- });
- });
- };
-
- if (typeof(o.alsoResize) == 'object' && !o.alsoResize.parentNode) {
- if (o.alsoResize.length) { o.alsoResize = o.alsoResize[0]; _store(o.alsoResize); }
- else { $.each(o.alsoResize, function (exp) { _store(exp); }); }
- }else{
- _store(o.alsoResize);
- }
- },
-
- resize: function (event, ui) {
- var self = $(this).data("resizable"), o = self.options, os = self.originalSize, op = self.originalPosition;
-
- var delta = {
- height: (self.size.height - os.height) || 0, width: (self.size.width - os.width) || 0,
- top: (self.position.top - op.top) || 0, left: (self.position.left - op.left) || 0
- },
-
- _alsoResize = function (exp, c) {
- $(exp).each(function() {
- var el = $(this), start = $(this).data("resizable-alsoresize"), style = {},
- css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
-
- $.each(css, function (i, prop) {
- var sum = (start[prop]||0) + (delta[prop]||0);
- if (sum && sum >= 0)
- style[prop] = sum || null;
- });
-
- // Opera fixing relative position
- if ($.browser.opera && /relative/.test(el.css('position'))) {
- self._revertToRelativePosition = true;
- el.css({ position: 'absolute', top: 'auto', left: 'auto' });
- }
-
- el.css(style);
- });
- };
-
- if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
- $.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); });
- }else{
- _alsoResize(o.alsoResize);
- }
- },
-
- stop: function (event, ui) {
- var self = $(this).data("resizable"), o = self.options;
-
- var _reset = function (exp) {
- $(exp).each(function() {
- var el = $(this);
- // reset position for Opera - no need to verify it was changed
- el.css({ position: el.data("resizable-alsoresize").position });
- });
- };
-
- if (self._revertToRelativePosition) {
- self._revertToRelativePosition = false;
- if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
- $.each(o.alsoResize, function (exp) { _reset(exp); });
- }else{
- _reset(o.alsoResize);
- }
- }
-
- $(this).removeData("resizable-alsoresize");
- }
-});
-
-$.ui.plugin.add("resizable", "animate", {
-
- stop: function(event, ui) {
- var self = $(this).data("resizable"), o = self.options;
-
- var pr = self._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName),
- soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height,
- soffsetw = ista ? 0 : self.sizeDiff.width;
-
- var style = { width: (self.size.width - soffsetw), height: (self.size.height - soffseth) },
- left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null,
- top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null;
-
- self.element.animate(
- $.extend(style, top && left ? { top: top, left: left } : {}), {
- duration: o.animateDuration,
- easing: o.animateEasing,
- step: function() {
-
- var data = {
- width: parseInt(self.element.css('width'), 10),
- height: parseInt(self.element.css('height'), 10),
- top: parseInt(self.element.css('top'), 10),
- left: parseInt(self.element.css('left'), 10)
- };
-
- if (pr && pr.length) $(pr[0]).css({ width: data.width, height: data.height });
-
- // propagating resize, and updating values for each animation step
- self._updateCache(data);
- self._propagate("resize", event);
-
- }
- }
- );
- }
-
-});
-
-$.ui.plugin.add("resizable", "containment", {
-
- start: function(event, ui) {
- var self = $(this).data("resizable"), o = self.options, el = self.element;
- var oc = o.containment, ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc;
- if (!ce) return;
-
- self.containerElement = $(ce);
-
- if (/document/.test(oc) || oc == document) {
- self.containerOffset = { left: 0, top: 0 };
- self.containerPosition = { left: 0, top: 0 };
-
- self.parentData = {
- element: $(document), left: 0, top: 0,
- width: $(document).width(), height: $(document).height() || document.body.parentNode.scrollHeight
- };
- }
-
- // i'm a node, so compute top, left, right, bottom
- else {
- var element = $(ce), p = [];
- $([ "Top", "Right", "Left", "Bottom" ]).each(function(i, name) { p[i] = num(element.css("padding" + name)); });
-
- self.containerOffset = element.offset();
- self.containerPosition = element.position();
- self.containerSize = { height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) };
-
- var co = self.containerOffset, ch = self.containerSize.height, cw = self.containerSize.width,
- width = ($.ui.hasScroll(ce, "left") ? ce.scrollWidth : cw ), height = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch);
-
- self.parentData = {
- element: ce, left: co.left, top: co.top, width: width, height: height
- };
- }
- },
-
- resize: function(event, ui) {
- var self = $(this).data("resizable"), o = self.options,
- ps = self.containerSize, co = self.containerOffset, cs = self.size, cp = self.position,
- pRatio = self._aspectRatio || event.shiftKey, cop = { top:0, left:0 }, ce = self.containerElement;
-
- if (ce[0] != document && (/static/).test(ce.css('position'))) cop = co;
-
- if (cp.left < (self._helper ? co.left : 0)) {
- self.size.width = self.size.width + (self._helper ? (self.position.left - co.left) : (self.position.left - cop.left));
- if (pRatio) self.size.height = self.size.width / o.aspectRatio;
- self.position.left = o.helper ? co.left : 0;
- }
-
- if (cp.top < (self._helper ? co.top : 0)) {
- self.size.height = self.size.height + (self._helper ? (self.position.top - co.top) : self.position.top);
- if (pRatio) self.size.width = self.size.height * o.aspectRatio;
- self.position.top = self._helper ? co.top : 0;
- }
-
- self.offset.left = self.parentData.left+self.position.left;
- self.offset.top = self.parentData.top+self.position.top;
-
- var woset = Math.abs( (self._helper ? self.offset.left - cop.left : (self.offset.left - cop.left)) + self.sizeDiff.width ),
- hoset = Math.abs( (self._helper ? self.offset.top - cop.top : (self.offset.top - co.top)) + self.sizeDiff.height );
-
- var isParent = self.containerElement.get(0) == self.element.parent().get(0),
- isOffsetRelative = /relative|absolute/.test(self.containerElement.css('position'));
-
- if(isParent && isOffsetRelative) woset -= self.parentData.left;
-
- if (woset + self.size.width >= self.parentData.width) {
- self.size.width = self.parentData.width - woset;
- if (pRatio) self.size.height = self.size.width / self.aspectRatio;
- }
-
- if (hoset + self.size.height >= self.parentData.height) {
- self.size.height = self.parentData.height - hoset;
- if (pRatio) self.size.width = self.size.height * self.aspectRatio;
- }
- },
-
- stop: function(event, ui){
- var self = $(this).data("resizable"), o = self.options, cp = self.position,
- co = self.containerOffset, cop = self.containerPosition, ce = self.containerElement;
-
- var helper = $(self.helper), ho = helper.offset(), w = helper.outerWidth() - self.sizeDiff.width, h = helper.outerHeight() - self.sizeDiff.height;
-
- if (self._helper && !o.animate && (/relative/).test(ce.css('position')))
- $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });
-
- if (self._helper && !o.animate && (/static/).test(ce.css('position')))
- $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });
-
- }
-});
-
-$.ui.plugin.add("resizable", "ghost", {
-
- start: function(event, ui) {
-
- var self = $(this).data("resizable"), o = self.options, cs = self.size;
-
- self.ghost = self.originalElement.clone();
- self.ghost
- .css({ opacity: .25, display: 'block', position: 'relative', height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 })
- .addClass('ui-resizable-ghost')
- .addClass(typeof o.ghost == 'string' ? o.ghost : '');
-
- self.ghost.appendTo(self.helper);
-
- },
-
- resize: function(event, ui){
- var self = $(this).data("resizable"), o = self.options;
- if (self.ghost) self.ghost.css({ position: 'relative', height: self.size.height, width: self.size.width });
- },
-
- stop: function(event, ui){
- var self = $(this).data("resizable"), o = self.options;
- if (self.ghost && self.helper) self.helper.get(0).removeChild(self.ghost.get(0));
- }
-
-});
-
-$.ui.plugin.add("resizable", "grid", {
-
- resize: function(event, ui) {
- var self = $(this).data("resizable"), o = self.options, cs = self.size, os = self.originalSize, op = self.originalPosition, a = self.axis, ratio = o._aspectRatio || event.shiftKey;
- o.grid = typeof o.grid == "number" ? [o.grid, o.grid] : o.grid;
- var ox = Math.round((cs.width - os.width) / (o.grid[0]||1)) * (o.grid[0]||1), oy = Math.round((cs.height - os.height) / (o.grid[1]||1)) * (o.grid[1]||1);
-
- if (/^(se|s|e)$/.test(a)) {
- self.size.width = os.width + ox;
- self.size.height = os.height + oy;
- }
- else if (/^(ne)$/.test(a)) {
- self.size.width = os.width + ox;
- self.size.height = os.height + oy;
- self.position.top = op.top - oy;
- }
- else if (/^(sw)$/.test(a)) {
- self.size.width = os.width + ox;
- self.size.height = os.height + oy;
- self.position.left = op.left - ox;
- }
- else {
- self.size.width = os.width + ox;
- self.size.height = os.height + oy;
- self.position.top = op.top - oy;
- self.position.left = op.left - ox;
- }
- }
-
-});
-
-var num = function(v) {
- return parseInt(v, 10) || 0;
-};
-
-var isNumber = function(value) {
- return !isNaN(parseInt(value, 10));
-};
-
-})(jQuery);
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/jquery.ui.slider.js
--- a/webapp/src/main/webapp/jquery/ui/jquery.ui.slider.js Mon Feb 25 15:21:48 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,682 +0,0 @@
-/*
- * jQuery UI Slider 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.mouse.js
- * jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-// number of pages in a slider
-// (how many times can you page up/down to go through the whole range)
-var numPages = 5;
-
-$.widget( "ui.slider", $.ui.mouse, {
-
- widgetEventPrefix: "slide",
-
- options: {
- animate: false,
- distance: 0,
- max: 100,
- min: 0,
- orientation: "horizontal",
- range: false,
- step: 1,
- value: 0,
- values: null
- },
-
- _create: function() {
- var self = this,
- o = this.options;
-
- this._keySliding = false;
- this._mouseSliding = false;
- this._animateOff = true;
- this._handleIndex = null;
- this._detectOrientation();
- this._mouseInit();
-
- this.element
- .addClass( "ui-slider" +
- " ui-slider-" + this.orientation +
- " ui-widget" +
- " ui-widget-content" +
- " ui-corner-all" );
-
- if ( o.disabled ) {
- this.element.addClass( "ui-slider-disabled ui-disabled" );
- }
-
- this.range = $([]);
-
- if ( o.range ) {
- if ( o.range === true ) {
- this.range = $( "
" );
- if ( !o.values ) {
- o.values = [ this._valueMin(), this._valueMin() ];
- }
- if ( o.values.length && o.values.length !== 2 ) {
- o.values = [ o.values[0], o.values[0] ];
- }
- } else {
- this.range = $( "
" );
- }
-
- this.range
- .appendTo( this.element )
- .addClass( "ui-slider-range" );
-
- if ( o.range === "min" || o.range === "max" ) {
- this.range.addClass( "ui-slider-range-" + o.range );
- }
-
- // note: this isn't the most fittingly semantic framework class for this element,
- // but worked best visually with a variety of themes
- this.range.addClass( "ui-widget-header" );
- }
-
- if ( $( ".ui-slider-handle", this.element ).length === 0 ) {
- $( " " )
- .appendTo( this.element )
- .addClass( "ui-slider-handle" );
- }
-
- if ( o.values && o.values.length ) {
- while ( $(".ui-slider-handle", this.element).length < o.values.length ) {
- $( " " )
- .appendTo( this.element )
- .addClass( "ui-slider-handle" );
- }
- }
-
- this.handles = $( ".ui-slider-handle", this.element )
- .addClass( "ui-state-default" +
- " ui-corner-all" );
-
- this.handle = this.handles.eq( 0 );
-
- this.handles.add( this.range ).filter( "a" )
- .click(function( event ) {
- event.preventDefault();
- })
- .hover(function() {
- if ( !o.disabled ) {
- $( this ).addClass( "ui-state-hover" );
- }
- }, function() {
- $( this ).removeClass( "ui-state-hover" );
- })
- .focus(function() {
- if ( !o.disabled ) {
- $( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" );
- $( this ).addClass( "ui-state-focus" );
- } else {
- $( this ).blur();
- }
- })
- .blur(function() {
- $( this ).removeClass( "ui-state-focus" );
- });
-
- this.handles.each(function( i ) {
- $( this ).data( "index.ui-slider-handle", i );
- });
-
- this.handles
- .keydown(function( event ) {
- var ret = true,
- index = $( this ).data( "index.ui-slider-handle" ),
- allowed,
- curVal,
- newVal,
- step;
-
- if ( self.options.disabled ) {
- return;
- }
-
- switch ( event.keyCode ) {
- case $.ui.keyCode.HOME:
- case $.ui.keyCode.END:
- case $.ui.keyCode.PAGE_UP:
- case $.ui.keyCode.PAGE_DOWN:
- case $.ui.keyCode.UP:
- case $.ui.keyCode.RIGHT:
- case $.ui.keyCode.DOWN:
- case $.ui.keyCode.LEFT:
- ret = false;
- if ( !self._keySliding ) {
- self._keySliding = true;
- $( this ).addClass( "ui-state-active" );
- allowed = self._start( event, index );
- if ( allowed === false ) {
- return;
- }
- }
- break;
- }
-
- step = self.options.step;
- if ( self.options.values && self.options.values.length ) {
- curVal = newVal = self.values( index );
- } else {
- curVal = newVal = self.value();
- }
-
- switch ( event.keyCode ) {
- case $.ui.keyCode.HOME:
- newVal = self._valueMin();
- break;
- case $.ui.keyCode.END:
- newVal = self._valueMax();
- break;
- case $.ui.keyCode.PAGE_UP:
- newVal = self._trimAlignValue( curVal + ( (self._valueMax() - self._valueMin()) / numPages ) );
- break;
- case $.ui.keyCode.PAGE_DOWN:
- newVal = self._trimAlignValue( curVal - ( (self._valueMax() - self._valueMin()) / numPages ) );
- break;
- case $.ui.keyCode.UP:
- case $.ui.keyCode.RIGHT:
- if ( curVal === self._valueMax() ) {
- return;
- }
- newVal = self._trimAlignValue( curVal + step );
- break;
- case $.ui.keyCode.DOWN:
- case $.ui.keyCode.LEFT:
- if ( curVal === self._valueMin() ) {
- return;
- }
- newVal = self._trimAlignValue( curVal - step );
- break;
- }
-
- self._slide( event, index, newVal );
-
- return ret;
-
- })
- .keyup(function( event ) {
- var index = $( this ).data( "index.ui-slider-handle" );
-
- if ( self._keySliding ) {
- self._keySliding = false;
- self._stop( event, index );
- self._change( event, index );
- $( this ).removeClass( "ui-state-active" );
- }
-
- });
-
- this._refreshValue();
-
- this._animateOff = false;
- },
-
- destroy: function() {
- this.handles.remove();
- this.range.remove();
-
- this.element
- .removeClass( "ui-slider" +
- " ui-slider-horizontal" +
- " ui-slider-vertical" +
- " ui-slider-disabled" +
- " ui-widget" +
- " ui-widget-content" +
- " ui-corner-all" )
- .removeData( "slider" )
- .unbind( ".slider" );
-
- this._mouseDestroy();
-
- return this;
- },
-
- _mouseCapture: function( event ) {
- var o = this.options,
- position,
- normValue,
- distance,
- closestHandle,
- self,
- index,
- allowed,
- offset,
- mouseOverHandle;
-
- if ( o.disabled ) {
- return false;
- }
-
- this.elementSize = {
- width: this.element.outerWidth(),
- height: this.element.outerHeight()
- };
- this.elementOffset = this.element.offset();
-
- position = { x: event.pageX, y: event.pageY };
- normValue = this._normValueFromMouse( position );
- distance = this._valueMax() - this._valueMin() + 1;
- self = this;
- this.handles.each(function( i ) {
- var thisDistance = Math.abs( normValue - self.values(i) );
- if ( distance > thisDistance ) {
- distance = thisDistance;
- closestHandle = $( this );
- index = i;
- }
- });
-
- // workaround for bug #3736 (if both handles of a range are at 0,
- // the first is always used as the one with least distance,
- // and moving it is obviously prevented by preventing negative ranges)
- if( o.range === true && this.values(1) === o.min ) {
- index += 1;
- closestHandle = $( this.handles[index] );
- }
-
- allowed = this._start( event, index );
- if ( allowed === false ) {
- return false;
- }
- this._mouseSliding = true;
-
- self._handleIndex = index;
-
- closestHandle
- .addClass( "ui-state-active" )
- .focus();
-
- offset = closestHandle.offset();
- mouseOverHandle = !$( event.target ).parents().andSelf().is( ".ui-slider-handle" );
- this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {
- left: event.pageX - offset.left - ( closestHandle.width() / 2 ),
- top: event.pageY - offset.top -
- ( closestHandle.height() / 2 ) -
- ( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) -
- ( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) +
- ( parseInt( closestHandle.css("marginTop"), 10 ) || 0)
- };
-
- if ( !this.handles.hasClass( "ui-state-hover" ) ) {
- this._slide( event, index, normValue );
- }
- this._animateOff = true;
- return true;
- },
-
- _mouseStart: function( event ) {
- return true;
- },
-
- _mouseDrag: function( event ) {
- var position = { x: event.pageX, y: event.pageY },
- normValue = this._normValueFromMouse( position );
-
- this._slide( event, this._handleIndex, normValue );
-
- return false;
- },
-
- _mouseStop: function( event ) {
- this.handles.removeClass( "ui-state-active" );
- this._mouseSliding = false;
-
- this._stop( event, this._handleIndex );
- this._change( event, this._handleIndex );
-
- this._handleIndex = null;
- this._clickOffset = null;
- this._animateOff = false;
-
- return false;
- },
-
- _detectOrientation: function() {
- this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal";
- },
-
- _normValueFromMouse: function( position ) {
- var pixelTotal,
- pixelMouse,
- percentMouse,
- valueTotal,
- valueMouse;
-
- if ( this.orientation === "horizontal" ) {
- pixelTotal = this.elementSize.width;
- pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 );
- } else {
- pixelTotal = this.elementSize.height;
- pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 );
- }
-
- percentMouse = ( pixelMouse / pixelTotal );
- if ( percentMouse > 1 ) {
- percentMouse = 1;
- }
- if ( percentMouse < 0 ) {
- percentMouse = 0;
- }
- if ( this.orientation === "vertical" ) {
- percentMouse = 1 - percentMouse;
- }
-
- valueTotal = this._valueMax() - this._valueMin();
- valueMouse = this._valueMin() + percentMouse * valueTotal;
-
- return this._trimAlignValue( valueMouse );
- },
-
- _start: function( event, index ) {
- var uiHash = {
- handle: this.handles[ index ],
- value: this.value()
- };
- if ( this.options.values && this.options.values.length ) {
- uiHash.value = this.values( index );
- uiHash.values = this.values();
- }
- return this._trigger( "start", event, uiHash );
- },
-
- _slide: function( event, index, newVal ) {
- var otherVal,
- newValues,
- allowed;
-
- if ( this.options.values && this.options.values.length ) {
- otherVal = this.values( index ? 0 : 1 );
-
- if ( ( this.options.values.length === 2 && this.options.range === true ) &&
- ( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) )
- ) {
- newVal = otherVal;
- }
-
- if ( newVal !== this.values( index ) ) {
- newValues = this.values();
- newValues[ index ] = newVal;
- // A slide can be canceled by returning false from the slide callback
- allowed = this._trigger( "slide", event, {
- handle: this.handles[ index ],
- value: newVal,
- values: newValues
- } );
- otherVal = this.values( index ? 0 : 1 );
- if ( allowed !== false ) {
- this.values( index, newVal, true );
- }
- }
- } else {
- if ( newVal !== this.value() ) {
- // A slide can be canceled by returning false from the slide callback
- allowed = this._trigger( "slide", event, {
- handle: this.handles[ index ],
- value: newVal
- } );
- if ( allowed !== false ) {
- this.value( newVal );
- }
- }
- }
- },
-
- _stop: function( event, index ) {
- var uiHash = {
- handle: this.handles[ index ],
- value: this.value()
- };
- if ( this.options.values && this.options.values.length ) {
- uiHash.value = this.values( index );
- uiHash.values = this.values();
- }
-
- this._trigger( "stop", event, uiHash );
- },
-
- _change: function( event, index ) {
- if ( !this._keySliding && !this._mouseSliding ) {
- var uiHash = {
- handle: this.handles[ index ],
- value: this.value()
- };
- if ( this.options.values && this.options.values.length ) {
- uiHash.value = this.values( index );
- uiHash.values = this.values();
- }
-
- this._trigger( "change", event, uiHash );
- }
- },
-
- value: function( newValue ) {
- if ( arguments.length ) {
- this.options.value = this._trimAlignValue( newValue );
- this._refreshValue();
- this._change( null, 0 );
- }
-
- return this._value();
- },
-
- values: function( index, newValue ) {
- var vals,
- newValues,
- i;
-
- if ( arguments.length > 1 ) {
- this.options.values[ index ] = this._trimAlignValue( newValue );
- this._refreshValue();
- this._change( null, index );
- }
-
- if ( arguments.length ) {
- if ( $.isArray( arguments[ 0 ] ) ) {
- vals = this.options.values;
- newValues = arguments[ 0 ];
- for ( i = 0; i < vals.length; i += 1 ) {
- vals[ i ] = this._trimAlignValue( newValues[ i ] );
- this._change( null, i );
- }
- this._refreshValue();
- } else {
- if ( this.options.values && this.options.values.length ) {
- return this._values( index );
- } else {
- return this.value();
- }
- }
- } else {
- return this._values();
- }
- },
-
- _setOption: function( key, value ) {
- var i,
- valsLength = 0;
-
- if ( $.isArray( this.options.values ) ) {
- valsLength = this.options.values.length;
- }
-
- $.Widget.prototype._setOption.apply( this, arguments );
-
- switch ( key ) {
- case "disabled":
- if ( value ) {
- this.handles.filter( ".ui-state-focus" ).blur();
- this.handles.removeClass( "ui-state-hover" );
- this.handles.attr( "disabled", "disabled" );
- this.element.addClass( "ui-disabled" );
- } else {
- this.handles.removeAttr( "disabled" );
- this.element.removeClass( "ui-disabled" );
- }
- break;
- case "orientation":
- this._detectOrientation();
- this.element
- .removeClass( "ui-slider-horizontal ui-slider-vertical" )
- .addClass( "ui-slider-" + this.orientation );
- this._refreshValue();
- break;
- case "value":
- this._animateOff = true;
- this._refreshValue();
- this._change( null, 0 );
- this._animateOff = false;
- break;
- case "values":
- this._animateOff = true;
- this._refreshValue();
- for ( i = 0; i < valsLength; i += 1 ) {
- this._change( null, i );
- }
- this._animateOff = false;
- break;
- }
- },
-
- //internal value getter
- // _value() returns value trimmed by min and max, aligned by step
- _value: function() {
- var val = this.options.value;
- val = this._trimAlignValue( val );
-
- return val;
- },
-
- //internal values getter
- // _values() returns array of values trimmed by min and max, aligned by step
- // _values( index ) returns single value trimmed by min and max, aligned by step
- _values: function( index ) {
- var val,
- vals,
- i;
-
- if ( arguments.length ) {
- val = this.options.values[ index ];
- val = this._trimAlignValue( val );
-
- return val;
- } else {
- // .slice() creates a copy of the array
- // this copy gets trimmed by min and max and then returned
- vals = this.options.values.slice();
- for ( i = 0; i < vals.length; i+= 1) {
- vals[ i ] = this._trimAlignValue( vals[ i ] );
- }
-
- return vals;
- }
- },
-
- // returns the step-aligned value that val is closest to, between (inclusive) min and max
- _trimAlignValue: function( val ) {
- if ( val <= this._valueMin() ) {
- return this._valueMin();
- }
- if ( val >= this._valueMax() ) {
- return this._valueMax();
- }
- var step = ( this.options.step > 0 ) ? this.options.step : 1,
- valModStep = (val - this._valueMin()) % step;
- alignValue = val - valModStep;
-
- if ( Math.abs(valModStep) * 2 >= step ) {
- alignValue += ( valModStep > 0 ) ? step : ( -step );
- }
-
- // Since JavaScript has problems with large floats, round
- // the final value to 5 digits after the decimal point (see #4124)
- return parseFloat( alignValue.toFixed(5) );
- },
-
- _valueMin: function() {
- return this.options.min;
- },
-
- _valueMax: function() {
- return this.options.max;
- },
-
- _refreshValue: function() {
- var oRange = this.options.range,
- o = this.options,
- self = this,
- animate = ( !this._animateOff ) ? o.animate : false,
- valPercent,
- _set = {},
- lastValPercent,
- value,
- valueMin,
- valueMax;
-
- if ( this.options.values && this.options.values.length ) {
- this.handles.each(function( i, j ) {
- valPercent = ( self.values(i) - self._valueMin() ) / ( self._valueMax() - self._valueMin() ) * 100;
- _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
- $( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
- if ( self.options.range === true ) {
- if ( self.orientation === "horizontal" ) {
- if ( i === 0 ) {
- self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate );
- }
- if ( i === 1 ) {
- self.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
- }
- } else {
- if ( i === 0 ) {
- self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate );
- }
- if ( i === 1 ) {
- self.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
- }
- }
- }
- lastValPercent = valPercent;
- });
- } else {
- value = this.value();
- valueMin = this._valueMin();
- valueMax = this._valueMax();
- valPercent = ( valueMax !== valueMin ) ?
- ( value - valueMin ) / ( valueMax - valueMin ) * 100 :
- 0;
- _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
- this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
-
- if ( oRange === "min" && this.orientation === "horizontal" ) {
- this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate );
- }
- if ( oRange === "max" && this.orientation === "horizontal" ) {
- this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
- }
- if ( oRange === "min" && this.orientation === "vertical" ) {
- this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate );
- }
- if ( oRange === "max" && this.orientation === "vertical" ) {
- this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
- }
- }
- }
-
-});
-
-$.extend( $.ui.slider, {
- version: "1.8.9"
-});
-
-}(jQuery));
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/jquery/ui/jquery.ui.widget.js
--- a/webapp/src/main/webapp/jquery/ui/jquery.ui.widget.js Mon Feb 25 15:21:48 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,262 +0,0 @@
-/*!
- * jQuery UI Widget 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Widget
- */
-(function( $, undefined ) {
-
-// jQuery 1.4+
-if ( $.cleanData ) {
- var _cleanData = $.cleanData;
- $.cleanData = function( elems ) {
- for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
- $( elem ).triggerHandler( "remove" );
- }
- _cleanData( elems );
- };
-} else {
- var _remove = $.fn.remove;
- $.fn.remove = function( selector, keepData ) {
- return this.each(function() {
- if ( !keepData ) {
- if ( !selector || $.filter( selector, [ this ] ).length ) {
- $( "*", this ).add( [ this ] ).each(function() {
- $( this ).triggerHandler( "remove" );
- });
- }
- }
- return _remove.call( $(this), selector, keepData );
- });
- };
-}
-
-$.widget = function( name, base, prototype ) {
- var namespace = name.split( "." )[ 0 ],
- fullName;
- name = name.split( "." )[ 1 ];
- fullName = namespace + "-" + name;
-
- if ( !prototype ) {
- prototype = base;
- base = $.Widget;
- }
-
- // create selector for plugin
- $.expr[ ":" ][ fullName ] = function( elem ) {
- return !!$.data( elem, name );
- };
-
- $[ namespace ] = $[ namespace ] || {};
- $[ namespace ][ name ] = function( options, element ) {
- // allow instantiation without initializing for simple inheritance
- if ( arguments.length ) {
- this._createWidget( options, element );
- }
- };
-
- var basePrototype = new base();
- // we need to make the options hash a property directly on the new instance
- // otherwise we'll modify the options hash on the prototype that we're
- // inheriting from
-// $.each( basePrototype, function( key, val ) {
-// if ( $.isPlainObject(val) ) {
-// basePrototype[ key ] = $.extend( {}, val );
-// }
-// });
- basePrototype.options = $.extend( true, {}, basePrototype.options );
- $[ namespace ][ name ].prototype = $.extend( true, basePrototype, {
- namespace: namespace,
- widgetName: name,
- widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name,
- widgetBaseClass: fullName
- }, prototype );
-
- $.widget.bridge( name, $[ namespace ][ name ] );
-};
-
-$.widget.bridge = function( name, object ) {
- $.fn[ name ] = function( options ) {
- var isMethodCall = typeof options === "string",
- args = Array.prototype.slice.call( arguments, 1 ),
- returnValue = this;
-
- // allow multiple hashes to be passed on init
- options = !isMethodCall && args.length ?
- $.extend.apply( null, [ true, options ].concat(args) ) :
- options;
-
- // prevent calls to internal methods
- if ( isMethodCall && options.charAt( 0 ) === "_" ) {
- return returnValue;
- }
-
- if ( isMethodCall ) {
- this.each(function() {
- var instance = $.data( this, name ),
- methodValue = instance && $.isFunction( instance[options] ) ?
- instance[ options ].apply( instance, args ) :
- instance;
- // TODO: add this back in 1.9 and use $.error() (see #5972)
-// if ( !instance ) {
-// throw "cannot call methods on " + name + " prior to initialization; " +
-// "attempted to call method '" + options + "'";
-// }
-// if ( !$.isFunction( instance[options] ) ) {
-// throw "no such method '" + options + "' for " + name + " widget instance";
-// }
-// var methodValue = instance[ options ].apply( instance, args );
- if ( methodValue !== instance && methodValue !== undefined ) {
- returnValue = methodValue;
- return false;
- }
- });
- } else {
- this.each(function() {
- var instance = $.data( this, name );
- if ( instance ) {
- instance.option( options || {} )._init();
- } else {
- $.data( this, name, new object( options, this ) );
- }
- });
- }
-
- return returnValue;
- };
-};
-
-$.Widget = function( options, element ) {
- // allow instantiation without initializing for simple inheritance
- if ( arguments.length ) {
- this._createWidget( options, element );
- }
-};
-
-$.Widget.prototype = {
- widgetName: "widget",
- widgetEventPrefix: "",
- options: {
- disabled: false
- },
- _createWidget: function( options, element ) {
- // $.widget.bridge stores the plugin instance, but we do it anyway
- // so that it's stored even before the _create function runs
- $.data( element, this.widgetName, this );
- this.element = $( element );
- this.options = $.extend( true, {},
- this.options,
- this._getCreateOptions(),
- options );
-
- var self = this;
- this.element.bind( "remove." + this.widgetName, function() {
- self.destroy();
- });
-
- this._create();
- this._trigger( "create" );
- this._init();
- },
- _getCreateOptions: function() {
- return $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ];
- },
- _create: function() {},
- _init: function() {},
-
- destroy: function() {
- this.element
- .unbind( "." + this.widgetName )
- .removeData( this.widgetName );
- this.widget()
- .unbind( "." + this.widgetName )
- .removeAttr( "aria-disabled" )
- .removeClass(
- this.widgetBaseClass + "-disabled " +
- "ui-state-disabled" );
- },
-
- widget: function() {
- return this.element;
- },
-
- option: function( key, value ) {
- var options = key;
-
- if ( arguments.length === 0 ) {
- // don't return a reference to the internal hash
- return $.extend( {}, this.options );
- }
-
- if (typeof key === "string" ) {
- if ( value === undefined ) {
- return this.options[ key ];
- }
- options = {};
- options[ key ] = value;
- }
-
- this._setOptions( options );
-
- return this;
- },
- _setOptions: function( options ) {
- var self = this;
- $.each( options, function( key, value ) {
- self._setOption( key, value );
- });
-
- return this;
- },
- _setOption: function( key, value ) {
- this.options[ key ] = value;
-
- if ( key === "disabled" ) {
- this.widget()
- [ value ? "addClass" : "removeClass"](
- this.widgetBaseClass + "-disabled" + " " +
- "ui-state-disabled" )
- .attr( "aria-disabled", value );
- }
-
- return this;
- },
-
- enable: function() {
- return this._setOption( "disabled", false );
- },
- disable: function() {
- return this._setOption( "disabled", true );
- },
-
- _trigger: function( type, event, data ) {
- var callback = this.options[ type ];
-
- event = $.Event( event );
- event.type = ( type === this.widgetEventPrefix ?
- type :
- this.widgetEventPrefix + type ).toLowerCase();
- data = data || {};
-
- // copy original event properties over to the new event
- // this would happen if we could call $.event.fix instead of $.Event
- // but we don't have a way to force an event to be fixed multiple times
- if ( event.originalEvent ) {
- for ( var i = $.event.props.length, prop; i; ) {
- prop = $.event.props[ --i ];
- event[ prop ] = event.originalEvent[ prop ];
- }
- }
-
- this.element.trigger( event, data );
-
- return !( $.isFunction(callback) &&
- callback.call( this.element[0], event, data ) === false ||
- event.isDefaultPrevented() );
- }
-};
-
-})( jQuery );
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/oldskin/baselib.js
--- a/webapp/src/main/webapp/oldskin/baselib.js Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/oldskin/baselib.js Mon Feb 25 18:52:36 2013 +0100
@@ -1,25 +1,28 @@
-/* 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, 22.1.2008
-
-*/
+/*
+ * #%L
+ * digilib base library
+ * %%
+ * Copyright (C) 2003 - 2013 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 Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * .
+ * #L%
+ * Authors:
+ * Christian Luginbuehl, 01.05.2003 (first version)
+ * DW 24.03.2004 (Changed for digiLib in Zope)
+ * Robert Casties, 22.1.2008
+ */
function base_init() {
// init function
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/oldskin/buttons/menu.js
--- a/webapp/src/main/webapp/oldskin/buttons/menu.js Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/oldskin/buttons/menu.js Mon Feb 25 18:52:36 2013 +0100
@@ -237,4 +237,4 @@
// variable containing the contextwindow
-var helpWindow = '';
\ No newline at end of file
+var helpWindow = '';
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/oldskin/dcMain.jsp
--- a/webapp/src/main/webapp/oldskin/dcMain.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/oldskin/dcMain.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,27 @@
-<%@ page language="java" %><%!
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2001 - 2013 WTWG Uni Bern, MPIWG Berlin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ Authors:
+ Christian Luginbuehl,
+ Robert Casties
+ --%><%@ page language="java" %><%!
// authentication stuff - robert
// -----------------------------
// create DocumentBean instance for all JSP requests
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/oldskin/dclib.js
--- a/webapp/src/main/webapp/oldskin/dclib.js Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/oldskin/dclib.js Mon Feb 25 18:52:36 2013 +0100
@@ -1,28 +1,30 @@
/*
-Copyright (C) 2003-2004 WTWG Uni Bern, MPIWG Berlin
-
-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
-
-Author:
- Christian Luginbuehl, 07.04.2004 , Version Alcatraz 0.6
- Robert Casties, 28.10.2004
- Martin Raspe, 28.12.2011
-
-!! requires baselib.js !!
-
-*/
+ * #%L
+ * digicat base library
+ * %%
+ * Copyright (C) 2004 - 2013 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 Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * .
+ * #L%
+ * Authors:
+ * Christian Luginbuehl, 07.04.2004 , Version Alcatraz 0.6
+ * Robert Casties, 28.10.2004
+ * Martin Raspe, 28.12.2011
+ *
+ * !! requires baselib.js !!
+ */
function identify() {
return 'Digicat v0.4';
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/oldskin/digicat.jsp
--- a/webapp/src/main/webapp/oldskin/digicat.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/oldskin/digicat.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,24 @@
-<%@ page language="java" %><%!
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2001 - 2013 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 Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ --%><%@ page language="java" %><%!
// authentication stuff - robert
// -----------------------------
// create DocumentBean instance for all JSP requests
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/oldskin/digilib.jsp
--- a/webapp/src/main/webapp/oldskin/digilib.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/oldskin/digilib.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,27 @@
-<%@ page language="java" %><%!
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2001 - 2013 WTWG Uni Bern, MPIWG Berlin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ Authors:
+ Christian Luginbuehl,
+ Robert Casties
+ --%><%@ page language="java" %><%!
// authentication stuff - robert
// -----------------------------
// create DocumentBean instance for all JSP requests
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/oldskin/digimage.jsp
--- a/webapp/src/main/webapp/oldskin/digimage.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/oldskin/digimage.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,24 @@
-<%@ page language="java" %><%!
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2001 - 2013 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 Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ --%><%@ page language="java" %><%!
// -- JSP init -------------
// create DocumentBean instance for all JSP requests
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/oldskin/digimage_img_inc.jsp
--- a/webapp/src/main/webapp/oldskin/digimage_img_inc.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/oldskin/digimage_img_inc.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,24 @@
-<%@ page language="java" %><%
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2001 - 2013 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 Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ --%><%@ page language="java" %><%
// retrieve objects from context
digilib.servlet.DocumentBean docBean = (digilib.servlet.DocumentBean) pageContext.getAttribute("docBean", pageContext.REQUEST_SCOPE);
digilib.servlet.DigilibServletRequest dlRequest = docBean.getRequest();
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/oldskin/digimage_tbl_inc.jsp
--- a/webapp/src/main/webapp/oldskin/digimage_tbl_inc.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/oldskin/digimage_tbl_inc.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,24 @@
-<%@ page language="java" %><%
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2001 - 2013 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 Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ --%><%@ page language="java" %><%
// retrieve objects from context
digilib.servlet.DocumentBean docBean = (digilib.servlet.DocumentBean) pageContext.getAttribute("docBean", PageContext.REQUEST_SCOPE);
digilib.servlet.DigilibServletRequest dlRequest = docBean.getRequest();
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/oldskin/dllib.js
--- a/webapp/src/main/webapp/oldskin/dllib.js Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/oldskin/dllib.js Mon Feb 25 18:52:36 2013 +0100
@@ -1,28 +1,30 @@
-/* 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 !
-
-*/
-
+/*
+ * #%L
+ * digilib library
+ * %%
+ * 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 Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * .
+ * #L%
+ * 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
@@ -613,4 +615,4 @@
// show or hide option div
var elem = getElement("dloptions");
showElement(elem, show);
-}
\ No newline at end of file
+}
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/pdf/error.jsp
--- a/webapp/src/main/webapp/pdf/error.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/pdf/error.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,24 @@
-<%@ page language="java" contentType="text/html; charset=UTF-8"
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2009 - 2013 MPIWG Berlin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ --%><%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="ISO-8859-1"%>
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/pdf/wip.jsp
--- a/webapp/src/main/webapp/pdf/wip.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/pdf/wip.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,24 @@
-<%@ page language="java" contentType="text/html; charset=UTF-8"
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2009 - 2013 MPIWG Berlin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ --%><%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="ISO-8859-1"%>
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/server/dlConfig.jsp
--- a/webapp/src/main/webapp/server/dlConfig.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/server/dlConfig.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,4 +1,25 @@
-<%@page language="java" import="digilib.util.DigilibJobCenter"%>
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2003 - 2013 MPIWG Berlin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ Author: Robert Casties (robcast@berlios.de)
+ --%><%@page language="java" import="digilib.util.DigilibJobCenter"%>
<%!
// authentication stuff - robert
// -----------------------------
diff -r 1246eb4e60e7 -r de9c762ef86b webapp/src/main/webapp/server/dlRequest.jsp
--- a/webapp/src/main/webapp/server/dlRequest.jsp Mon Feb 25 15:21:48 2013 +0100
+++ b/webapp/src/main/webapp/server/dlRequest.jsp Mon Feb 25 18:52:36 2013 +0100
@@ -1,6 +1,25 @@
-<%@ page language="java" %>
-
-<%!
+<%--
+ #%L
+ digilib-webapp
+ %%
+ Copyright (C) 2003 - 2013 MPIWG Berlin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ .
+ #L%
+ Author: Robert Casties (robcast@berlios.de)
+ --%><%@ page language="java" %><%!
// authentication stuff - robert
// -----------------------------
// create DocumentBean instance for all JSP requests