OSDN Git Service

delete unsed libraries
authorinabatch <nobuyuki178jp@yahoo.co.jp>
Sun, 24 May 2009 13:26:38 +0000 (22:26 +0900)
committerinabatch <nobuyuki178jp@yahoo.co.jp>
Sun, 24 May 2009 13:26:38 +0000 (22:26 +0900)
74 files changed:
.classpath
src/jp/sourceforge/manganetwork/WicketApplication.java
src/jp/sourceforge/manganetwork/page/ApplicationPage.java
src/jp/sourceforge/manganetwork/page/HomePage.java
src/jp/sourceforge/manganetwork/page/LoginPage.java
src/log4j.properties
war/WEB-INF/classes/META-INF/jdoconfig.xml [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/WicketApplication.class
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/AdminHomePage.html [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/ApplicationPage.class
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/HomePage.class
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/HomePage.html [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/LoginPage$1.class [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/LoginPage.class
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/LoginPage.html [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/Template.html [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/accordion.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/ajaxHistory.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/balloon.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/barchart.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/calendar.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/datepicker.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/grid.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/grid_resizeEx.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/grid_sortabletableEx.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/inplaceEditorEx.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/menubar.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/navPanel.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/selectableTable.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/sideBarBox.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/sideBarBox_effects.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/sortableTable.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/switcher.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/tabBox.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/timepicker.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/toolbar.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/treeview.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/window.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/window_resizeEx.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/builder.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/controls.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/dragdrop.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/effects.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/json.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/prototype.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/resize.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/scriptaculous.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/slider.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/spinelz_util.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/unittest.js [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/accordion.css [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/balloon.css [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/calendar.css [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/datepicker.css [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/grid.css [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/menubar.css [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/modal.css [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/navPanel.css [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/selectableTable.css [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/sideBarBox.css [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/sortableTable.css [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/switcher.css [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/tabBox.css [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/timepicker.css [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/toolbar.css [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/treeview.css [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/window.css [deleted file]
war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/style.css [deleted file]
war/WEB-INF/classes/log4j.properties [deleted file]
war/WEB-INF/lib/cglib-2.2.jar [deleted file]
war/WEB-INF/lib/guice-1.0.jar [deleted file]
war/WEB-INF/lib/wicket-guice-1.3.5.jar [deleted file]
war/WEB-INF/web.xml
war/index.html [deleted file]

index e70e73e..6ac4349 100644 (file)
@@ -1,23 +1,22 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<classpath>\r
-       <classpathentry kind="src" path="src"/>\r
-       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>\r
-       <classpathentry kind="lib" path="war/WEB-INF/lib/appengine-api-1.0-sdk-1.2.0.jar"/>\r
-       <classpathentry kind="lib" path="war/WEB-INF/lib/cglib-2.2.jar"/>\r
-       <classpathentry kind="lib" path="war/WEB-INF/lib/datanucleus-appengine-1.0.0.final.jar"/>\r
-       <classpathentry kind="lib" path="war/WEB-INF/lib/datanucleus-core-1.1.0.jar"/>\r
-       <classpathentry kind="lib" path="war/WEB-INF/lib/datanucleus-jpa-1.1.0.jar"/>\r
-       <classpathentry kind="lib" path="war/WEB-INF/lib/geronimo-jpa_3.0_spec-1.1.1.jar"/>\r
-       <classpathentry kind="lib" path="war/WEB-INF/lib/geronimo-jta_1.1_spec-1.1.1.jar"/>\r
-       <classpathentry kind="lib" path="war/WEB-INF/lib/guice-1.0.jar"/>\r
-       <classpathentry kind="lib" path="war/WEB-INF/lib/jdo2-api-2.3-SNAPSHOT.jar"/>\r
-       <classpathentry kind="lib" path="war/WEB-INF/lib/logback-classic-0.9.15.jar"/>\r
-       <classpathentry kind="lib" path="war/WEB-INF/lib/logback-core-0.9.15.jar"/>\r
-       <classpathentry kind="lib" path="war/WEB-INF/lib/slf4j-api-1.5.6.jar"/>\r
-       <classpathentry kind="lib" path="war/WEB-INF/lib/wicket-1.3.5.jar"/>\r
-       <classpathentry kind="lib" path="war/WEB-INF/lib/wicket-extensions-1.3.5.jar"/>\r
-       <classpathentry kind="lib" path="war/WEB-INF/lib/wicket-guice-1.3.5.jar"/>\r
-       <classpathentry kind="lib" path="war/WEB-INF/lib/wicket-ioc-1.3.5.jar"/>\r
-       <classpathentry kind="con" path="com.google.appengine.eclipse.core.GAE_CONTAINER"/>\r
-       <classpathentry kind="output" path="war/WEB-INF/classes"/>\r
-</classpath>\r
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="src" path="src"/>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+       <classpathentry kind="lib" path="war/WEB-INF/lib/appengine-api-1.0-sdk-1.2.0.jar"/>
+       <classpathentry kind="lib" path="war/WEB-INF/lib/datanucleus-appengine-1.0.0.final.jar"/>
+       <classpathentry kind="lib" path="war/WEB-INF/lib/datanucleus-core-1.1.0.jar"/>
+       <classpathentry kind="lib" path="war/WEB-INF/lib/datanucleus-jpa-1.1.0.jar"/>
+       <classpathentry kind="lib" path="war/WEB-INF/lib/geronimo-jpa_3.0_spec-1.1.1.jar"/>
+       <classpathentry kind="lib" path="war/WEB-INF/lib/geronimo-jta_1.1_spec-1.1.1.jar"/>
+       <classpathentry kind="lib" path="war/WEB-INF/lib/jdo2-api-2.3-SNAPSHOT.jar"/>
+       <classpathentry kind="lib" path="war/WEB-INF/lib/logback-classic-0.9.15.jar"/>
+       <classpathentry kind="lib" path="war/WEB-INF/lib/logback-core-0.9.15.jar"/>
+       <classpathentry kind="lib" path="war/WEB-INF/lib/slf4j-api-1.5.6.jar"/>
+       <classpathentry kind="lib" path="war/WEB-INF/lib/wicket-1.3.5.jar"/>
+       <classpathentry kind="lib" path="war/WEB-INF/lib/wicket-extensions-1.3.5.jar"/>
+       <classpathentry kind="lib" path="war/WEB-INF/lib/wicket-ioc-1.3.5.jar"/>
+       <classpathentry kind="con" path="com.google.appengine.eclipse.core.GAE_CONTAINER/App Engine (1)"/>
+       <classpathentry kind="lib" path="war/WEB-INF/lib/webbeans-wicket-1.0.0-SNAPSHOT.jar"/>
+       <classpathentry kind="lib" path="war/WEB-INF/lib/webbeans-servlet-1.0.0-SNAPSHOT.jar"/>
+       <classpathentry kind="output" path="war/WEB-INF/classes"/>
+</classpath>
index 3ce2f75..432fae7 100644 (file)
@@ -2,6 +2,8 @@ package jp.sourceforge.manganetwork;
 \r
 import jp.sourceforge.manganetwork.page.AdminHomePage;\r
 import jp.sourceforge.manganetwork.page.LoginPage;\r
+import jp.sourceforge.manganetwork.web.MyWebRequestCycleProcessor;\r
+import jp.sourceforge.manganetwork.web.UserSession;\r
 \r
 import org.apache.wicket.Request;\r
 import org.apache.wicket.RequestCycle;\r
@@ -11,9 +13,10 @@ import org.apache.wicket.protocol.http.HttpSessionStore;
 import org.apache.wicket.protocol.http.WebApplication;\r
 import org.apache.wicket.request.IRequestCycleProcessor;\r
 import org.apache.wicket.session.ISessionStore;\r
+import org.jboss.webbeans.wicket.WebBeansApplication;\r
+\r
+public class WicketApplication extends WebBeansApplication {\r
 \r
-public class WicketApplication extends WebApplication {\r
-       @Override\r
        public Class getHomePage() {\r
                return LoginPage.class;\r
        }\r
@@ -32,11 +35,12 @@ public class WicketApplication extends WebApplication {
        protected IRequestCycleProcessor newRequestCycleProcessor() {\r
                return new MyWebRequestCycleProcessor();\r
        }\r
+\r
        @Override\r
        protected void init() {\r
                super.init();\r
                setEncoding();\r
-\r
+               getResourceSettings().setResourcePollFrequency(null);\r
                mountBookmarkablePage("/admin", AdminHomePage.class);\r
        }\r
 \r
@@ -44,6 +48,5 @@ public class WicketApplication extends WebApplication {
                getRequestCycleSettings().setResponseRequestEncoding("UTF-8");\r
                getMarkupSettings().setDefaultMarkupEncoding("UTF-8");\r
        }\r
-       \r
-       \r
+\r
 }\r
index 8f9b092..8845052 100644 (file)
@@ -1,7 +1,7 @@
 package jp.sourceforge.manganetwork.page;\r
 \r
-import jp.sourceforge.manganetwork.UserSession;\r
 import jp.sourceforge.manganetwork.model.User;\r
+import jp.sourceforge.manganetwork.web.UserSession;\r
 \r
 import org.apache.wicket.markup.html.WebPage;\r
 import org.apache.wicket.markup.html.panel.FeedbackPanel;\r
index 50bd634..d6cd263 100644 (file)
@@ -1,15 +1,18 @@
 package jp.sourceforge.manganetwork.page;\r
 \r
+import javax.inject.Current;\r
+\r
 import org.apache.wicket.markup.html.basic.Label;\r
 \r
 /**\r
  * @author nobu\r
  */\r
 public class HomePage extends MenuApplicationPage {\r
-\r
+       @Current HelloService helloService;\r
+       \r
        public HomePage()\r
        {\r
-               add(new Label("label", "Hello1"));\r
+               add(new Label("label", helloService.say()));\r
        }\r
 }\r
 \r
index b116e69..875f6bf 100644 (file)
@@ -1,7 +1,9 @@
 package jp.sourceforge.manganetwork.page;\r
 \r
-import jp.sourceforge.manganetwork.UserSession;\r
+import javax.inject.Current;\r
+\r
 import jp.sourceforge.manganetwork.model.User;\r
+import jp.sourceforge.manganetwork.web.UserSession;\r
 \r
 import org.apache.wicket.markup.html.form.Form;\r
 import org.apache.wicket.markup.html.form.PasswordTextField;\r
index c1021db..32038b4 100644 (file)
@@ -7,6 +7,7 @@
 log4j.appender.A1=org.apache.log4j.ConsoleAppender\r
 log4j.appender.A1.layout=org.apache.log4j.PatternLayout\r
 log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%c] - %m%n\r
+log4j.rootLogger=debug, A1\r
 \r
 # tighten logging on the DataNucleus Categories\r
 log4j.category.DataNucleus.JDO=WARN, A1\r
diff --git a/war/WEB-INF/classes/META-INF/jdoconfig.xml b/war/WEB-INF/classes/META-INF/jdoconfig.xml
deleted file mode 100644 (file)
index 82ab1a4..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"\r
-   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
-   xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig">\r
-\r
-   <persistence-manager-factory name="transactions-optional">\r
-       <property name="javax.jdo.PersistenceManagerFactoryClass"\r
-           value="org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory"/>\r
-       <property name="javax.jdo.option.ConnectionURL" value="appengine"/>\r
-       <property name="javax.jdo.option.NontransactionalRead" value="true"/>\r
-       <property name="javax.jdo.option.NontransactionalWrite" value="true"/>\r
-       <property name="javax.jdo.option.RetainValues" value="true"/>\r
-       <property name="datanucleus.appengine.autoCreateDatastoreTxns" value="true"/>\r
-   </persistence-manager-factory>\r
-</jdoconfig>\r
index e9693e6..f469f0e 100644 (file)
Binary files a/war/WEB-INF/classes/jp/sourceforge/manganetwork/WicketApplication.class and b/war/WEB-INF/classes/jp/sourceforge/manganetwork/WicketApplication.class differ
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/AdminHomePage.html b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/AdminHomePage.html
deleted file mode 100644 (file)
index 2887fbc..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"\r
-    "http://www.w3.org/TR/html4/loose.dtd">\r
-<html>\r
-       <head>\r
-               <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
-               <link rel="stylesheet" type="text/css" href="layout/style.css">\r
-               <title></title>\r
-    </head>\r
-       <body>\r
-               <div id="header">\r
-                       <h1>マンガネットワーク</h1>\r
-               </div>\r
-               <p />\r
-               <div id="menu">\r
-                       <ul class="menu">\r
-                               <li><a href="/UserListPage">ユーザマスタ管理</a></li>\r
-                               <li>グループマスタ管理</li>\r
-                               <li>マンガマスタ管理</li>\r
-                       </ul>\r
-                       <p style="clear: both;"/>\r
-               </div>\r
-               <hr style="border: #00306b 1px solid;"/>\r
-               <div id="body">                             \r
-               <wicket:child />\r
-               </div>\r
-               <p/>\r
-               <div id="footer">\r
-                       <span style="text-align: center;">powered by Wicket</span>\r
-               </div>\r
-       </body>\r
-</html>
\ No newline at end of file
index f42e3c1..0076b73 100644 (file)
Binary files a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/ApplicationPage.class and b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/ApplicationPage.class differ
index 77af0a1..470c7d1 100644 (file)
Binary files a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/HomePage.class and b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/HomePage.class differ
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/HomePage.html b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/HomePage.html
deleted file mode 100644 (file)
index 41cbd92..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\r
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<body>\r
-  <wicket:extend>\r
-       Home\r
-       <span wicket:id="label" />\r
-  </wicket:extend>\r
-</body>\r
-</html>
\ No newline at end of file
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/LoginPage$1.class b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/LoginPage$1.class
deleted file mode 100644 (file)
index 5ce8fd8..0000000
Binary files a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/LoginPage$1.class and /dev/null differ
index ebd590c..554d278 100644 (file)
Binary files a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/LoginPage.class and b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/LoginPage.class differ
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/LoginPage.html b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/LoginPage.html
deleted file mode 100644 (file)
index 9807693..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\r
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<body>\r
-  <wicket:extend>\r
\r
-       <form wicket:id="form">\r
-       <table border="0">\r
-               <tr>\r
-                       <td>ユーザ名</td>\r
-                       <td><input type="text" wicket:id="userName" /></td>\r
-               </tr>\r
-               <tr>\r
-                       <td>パスワード</td>\r
-                       <td><input type="password" wicket:id="password" /></td>\r
-               </tr>\r
-               <tr>\r
-                       <td colspan="2"><input type="submit" value="ログイン" /></td>\r
-               </tr>\r
-       </table>\r
-       </form> \r
-  </wicket:extend>\r
-</body>\r
-</html>\r
-\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/Template.html b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/Template.html
deleted file mode 100644 (file)
index 47a00b0..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"\r
-    "http://www.w3.org/TR/html4/loose.dtd">\r
-<html>\r
-       <head>\r
-               <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
-               <link rel="stylesheet" type="text/css" href="css/test.css">\r
-               <title></title>\r
-    </head>\r
-       <body>\r
-               <div id="header">\r
-                       <h1>マンガネットワーク</h1>\r
-               </div>\r
-               <div id="menu">\r
-                       <ul class="menu">\r
-                               <li><a href="/UserListPage">ユーザマスタ管理</a></li>\r
-                               <li>グループマスタ管理</li>\r
-                               <li>マンガマスタ管理</li>\r
-                       </ul>\r
-                       <p style="clear: both;"/>\r
-               </div>\r
-               <p />\r
-               <div id="body">                             \r
-               <wicket:child />\r
-               </div>\r
-               \r
-               <div id="footer">\r
-               \r
-               </div>\r
-       </body>\r
-</html>
\ No newline at end of file
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/accordion.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/accordion.js
deleted file mode 100644 (file)
index 7298e55..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-// Copyright (c) 2005 spinelz.org (http://script.spinelz.org)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-\r
-Accordion = Class.create();\r
-Accordion.className = {\r
-  accordion : 'accordion',\r
-  panel: 'accordion_panel',\r
-  tab : 'accordion_tab',\r
-  tabLeftInactive : 'accordion_tabLeftInactive',\r
-  tabLeftActive: 'accordion_tabLeftActive',\r
-  tabMiddleInactive : 'accordion_tabMiddleInactive',\r
-  tabMiddleActive : 'accordion_tabMiddleActive',\r
-  tabRightInactive : 'accordion_tabRightInactive',\r
-  tabRightActive : 'accordion_tabRightActive'\r
-}\r
-\r
-Accordion.prototype = {\r
-  \r
-  initialize: function(element) {\r
-    var options = Object.extend({\r
-      cssPrefix: 'custom_',\r
-      selected: 1,\r
-      duration: 0.5\r
-    }, arguments[1] || {});\r
-    \r
-    this.options = options;\r
-    this.element = $(element);\r
-    Element.setStyle(this.element, {visibility: 'hidden'});\r
-    Element.hide(this.element);\r
-\r
-    var customCss = CssUtil.appendPrefix(this.options.cssPrefix, Accordion.className);\r
-    this.classNames = new CssUtil([Accordion.className, customCss]);\r
-    \r
-    this.classNames.addClassNames(this.element, 'accordion');\r
-    \r
-    this.selected = (this.options.selected > 0) ? this.options.selected - 1 :  0 ;\r
-    this.start();\r
-    \r
-    Element.setStyle(this.element, {visibility: 'visible'});\r
-    Element.show(this.element);\r
-    this.effecting = false;\r
-  },\r
-  \r
-  start: function() {\r
-    this.tabs = [];\r
-    this.panels = [];\r
-    this.panelList = [];\r
-\r
-    this.tabId = this.element.id + '_tab';\r
-    this.tabLeftId = this.tabId + '_left';\r
-    this.tabMiddleId = this.tabId + '_middle';\r
-    this.tabRightId = this.tabId + '_right';\r
-    this.panelId = this.element.id + '_panel';\r
-    \r
-    this.build();  \r
-  },  \r
-  \r
-  build: function() {\r
-    Element.cleanWhitespace(this.element);\r
-    this.panelList = this.element.childNodes;\r
-    \r
-    for (var i = 0; i < this.panelList.length; i++) {\r
-      if (this.panelList[i].nodeType != 1) {\r
-        Element.remove(this.panelList[i]);\r
-        i--;\r
-        continue;\r
-      }\r
-      Element.cleanWhitespace(this.panelList[i]);\r
-      var navSet = this.panelList[i].childNodes;\r
-      this.buildTab(navSet[0], i);\r
-      this.buildPanel(navSet[0], i);\r
-    }\r
-    this.selectTab();\r
-  },\r
-  \r
-  \r
-  buildTab: function(tabTitle, i) { \r
-    var tab = Builder.node('div', {id:this.tabId + i});\r
-    this.classNames.addClassNames(tab, 'tab');    \r
-    var tabLeft = Builder.node('div', {id:this.tabLeftId + i});\r
-    var tabMiddle = Builder.node('div', {id:this.tabMiddleId + i});\r
-    tabMiddle.appendChild(tabTitle);\r
-    var tabRight = Builder.node('div', {id:this.tabRightId + i});\r
-    \r
-    tab.appendChild(tabLeft);\r
-    tab.appendChild(tabMiddle);\r
-    tab.appendChild(tabRight);\r
-    Event.observe(tab, 'click', this.selectTab.bindAsEventListener(this));\r
-\r
-    this.tabs[i] = tab;\r
-    this.setTabInactive(tab);\r
-    this.panelList[i].appendChild(tab);\r
-  },\r
-  \r
-  buildPanel: function(panelContent, i) {\r
-    var panel = Builder.node('div', {id:this.panelId + i});\r
-    this.classNames.addClassNames(panel, 'panel');\r
-    \r
-    panel.appendChild(panelContent);\r
-    Element.hide(panel);\r
-    this.panels[i] = panel;\r
-    this.panelList[i].appendChild(panel);\r
-  },\r
-  \r
-  selectTab: function(e) {\r
-    if (this.effecting) return;\r
-    if (!e) {\r
-      if (!this.panels[this.selected]) this.selected = 0;\r
-      Element.show(this.panels[this.selected]);\r
-      this.setTabActive(this.tabs[this.selected]);\r
-      return;\r
-    }\r
-\r
-    var targetElement = Event.element(e);\r
-    var targetIndex = this.getTargetIndex(targetElement);\r
-    if (targetIndex == this.selected) return;\r
-            \r
-    var currentPanel = this.panels[this.selected];\r
-    var targetPanel = this.panels[targetIndex];\r
-    this.setTabInactive(this.tabs[this.selected]);\r
-    this.setTabActive(this.tabs[targetIndex]);\r
-\r
-    this.effecting = true;\r
-    new Effect.Parallel(\r
-      [\r
-        new Effect.BlindUp(currentPanel, {sync: true}),\r
-        new Effect.BlindDown(targetPanel, {sync: true})\r
-      ],\r
-      {\r
-        duration:    this.options.duration,\r
-        beforeStart: function() { this.effecting = true; }.bind(this),\r
-        afterFinish: function() { this.effecting = false; }.bind(this)\r
-      }\r
-    );\r
-\r
-    this.selected = targetIndex;  \r
-  },\r
-  \r
-  setTabActive: function(tab) {\r
-    var tabChildren = tab.childNodes;\r
-\r
-     this.classNames.refreshClassNames(tabChildren[0], 'tabLeftActive');\r
-     this.classNames.refreshClassNames(tabChildren[1], 'tabMiddleActive');\r
-     this.classNames.refreshClassNames(tabChildren[2], 'tabRightActive');\r
-  },\r
-  \r
-  setTabInactive: function(tab) {\r
-    var tabChildren = tab.childNodes;\r
-    \r
-    this.classNames.refreshClassNames(tabChildren[0], 'tabLeftInactive');\r
-    this.classNames.refreshClassNames(tabChildren[1], 'tabMiddleInactive');\r
-    this.classNames.refreshClassNames(tabChildren[2], 'tabRightInactive');\r
-  },\r
-\r
-  getTargetIndex: function(element) {\r
-    while(element) {\r
-      if (element.id && element.id.indexOf(this.tabId, 0) >= 0) {\r
-        var index = element.id.substring(this.tabId.length);\r
-        if (!isNaN(index)) {\r
-          return index;\r
-        }\r
-      }\r
-      element = element.parentNode;\r
-    }\r
-  }\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/ajaxHistory.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/ajaxHistory.js
deleted file mode 100644 (file)
index 2df093a..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-// Copyright (c) 2005 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-var AjaxHistory = {\r
-  _callback:            null,\r
-  _currentIframeHash:   '',\r
-  _currentLocationHash: '',\r
-  _prefix:              'ajax_history_',\r
-  add: function(hash) {\r
-    AjaxHistoryPageManager.setHash(this._prefix + hash);\r
-  },\r
-  checkIframeHash: function() {\r
-    var iframeHash = AjaxHistoryIframeManager.getHash().substr(this._prefix.length);\r
-    if(this._currentIframeHash != iframeHash) {\r
-      this._currentIframeHash = iframeHash;\r
-      this._currentLocationHash = iframeHash;\r
-      AjaxHistoryPageManager.setHash((iframeHash) ? this._prefix + iframeHash : '');\r
-      this.doEvent(iframeHash);\r
-    } else {\r
-      this.checkLocationHash();\r
-    }\r
-  },\r
-  checkHash: function() {\r
-    if(UserAgent.isIE()) {\r
-      this.checkIframeHash();\r
-    } else {\r
-      this.checkLocationHash();\r
-    }\r
-  },\r
-  checkLocationHash: function() {\r
-    var locationHash = AjaxHistoryPageManager.getHash().substr(this._prefix.length);\r
-    if(this._currentLocationHash != locationHash) {\r
-      this._currentLocationHash = locationHash;\r
-      if(UserAgent.isIE()) {\r
-        AjaxHistoryIframeManager.setHash(this._prefix + locationHash);\r
-      } else {\r
-        this.doEvent(locationHash);\r
-      }\r
-    }\r
-  },\r
-  doEvent: function(hash) {\r
-    if(this._callback) {\r
-      this._callback.call(null, hash);\r
-    }\r
-  },\r
-  init: function(callback) {\r
-    this._callback = callback;\r
-    if(UserAgent.isIE()) {\r
-      AjaxHistoryIframeManager.create();\r
-    }\r
-    var self = this;\r
-    var hashHandler = function() {self.checkHash();}\r
-    setInterval(hashHandler, 100);\r
-  }\r
-}\r
-\r
-var AjaxHistoryIframeManager = {\r
-  _id :         'ajax_history_frame',\r
-  _element:     null,\r
-  _src:         IECover.src,\r
-  create: function() {\r
-    document.write('<iframe id="' + this._id + '" src="' + this._src + '" style="display: none;"></iframe>');\r
-    this._element = $(this._id);\r
-  },\r
-  getHash: function() {\r
-    var iframeDocument = this._element.contentWindow.document;\r
-    return iframeDocument.location.hash.replace(/^#/, '');\r
-  },\r
-  setHash: function(query) {\r
-    var iframeDocument = this._element.contentWindow.document;\r
-    iframeDocument.open();\r
-    iframeDocument.close();\r
-    iframeDocument.location.hash = query;\r
-  }\r
-}\r
-\r
-var AjaxHistoryPageManager = {\r
-  _delimiter:   '#',\r
-  _location:    'window.location.href',\r
-  _query:       '',\r
-  getLocation: function() {\r
-    return eval(this._location);\r
-  },\r
-  getHash: function() {\r
-    var url_elements = this.getLocation().split(this._delimiter);\r
-    return (url_elements.length > 1) ? url_elements[url_elements.length - 1] : this._query;\r
-  },\r
-  getUrl: function() {\r
-    var url_elements = this.getLocation().split(this._delimiter);\r
-    return url_elements[0];\r
-  },\r
-  setHash: function(query) {\r
-    window.location.hash = query;\r
-  }\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/balloon.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/balloon.js
deleted file mode 100644 (file)
index 6c1a8f1..0000000
+++ /dev/null
@@ -1,287 +0,0 @@
-// Copyright (c) 2006 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// This code is substantially based on code from script.aculo.us which has the \r
-// following copyright and permission notice\r
-//\r
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE\r
-\r
-var Balloon = Class.create()\r
-Balloon.classNames = {\r
-  tooltip:         'balloon_tooltip',\r
-  top:             'balloon_top',\r
-  topLeft:         'balloon_top_left',\r
-  topMiddle:       'balloon_top_middle',\r
-  topRight:        'balloon_top_right',\r
-  middle:          'balloon_middle',\r
-  middleLeft:      'balloon_middle_left',\r
-  middleRight:     'balloon_middle_right',\r
-  middleLeftRowT:  'balloon_middle_left_row',\r
-  middleLeftRowB:  'balloon_middle_left_row',\r
-  middleRightRowT: 'balloon_middle_right_row',\r
-  middleRightRowB: 'balloon_middle_right_row',\r
-  leftArrow:       'balloon_left_arrow',\r
-  rightArrow:      'balloon_right_arrow',\r
-  leftUpArrow:     'balloon_left_up_arrow',\r
-  leftDownArrow:   'balloon_left_down_arrow',\r
-  rightUpArrow:    'balloon_right_up_arrow',\r
-  rightDownArrow:  'balloon_right_down_arrow',\r
-  body:            'balloon_body',\r
-  bottom:          'balloon_bottom',\r
-  bottomLeft:      'balloon_bottom_left',\r
-  bottomMiddle:    'balloon_bottom_middle',\r
-  bottomRight:     'balloon_bottom_right'\r
-}\r
-Balloon.allBalloons = [];\r
-Balloon.closeAll = function(){\r
-  Balloon.allBalloons.each(function(b){\r
-    b.close();\r
-  });\r
-}\r
-Balloon.eventSetting = false;\r
-Balloon.prototype = {\r
-  initialize : function (target, message){\r
-    this.target = $(target);\r
-\r
-    this.options = Object.extend({\r
-      cssPrefix: 'custom_',\r
-      trigger:   this.target,\r
-      tipId:     this.target.id + '_balloon',\r
-      events:    ['click'],\r
-      width:     300,\r
-      height:    200\r
-    }, arguments[2] || {});\r
-    \r
-    var customCss = CssUtil.appendPrefix(this.options.cssPrefix, Balloon.classNames);\r
-    this.classNames = new CssUtil([Balloon.classNames, customCss]);\r
-\r
-    this.tipNode = this._buildTipNode(message);\r
-    Element.hide(this.tipNode);\r
-    this._setMessage(message);\r
-    document.body.appendChild(this.tipNode);\r
-    this._setEvent();\r
-    Balloon.allBalloons.push(this)\r
-    this._setSize();\r
-  },\r
-\r
-  _setEvent: function() {\r
-    var self = this;\r
-    this.options.events.each(function(e) {\r
-      Event.observe(self.options.trigger, e, self.open.bindAsEventListener(self));\r
-    });\r
-\r
-    Event.observe(this.tipNode, 'click', this.close.bind(this), true)    \r
-\r
-    if (!Balloon.eventSetting) {\r
-      Event.observe(document, 'click', Balloon.closeAll, true);\r
-      Balloon.eventSetting = true;\r
-    }\r
-  },\r
-\r
-  _buildTipNode : function() {\r
-    var tipNode = Builder.node('div', {id: this.options.tipId});\r
-    this.classNames.addClassNames(tipNode, 'tooltip');\r
-    tipNode.appendChild(this._buildTop());\r
-    tipNode.appendChild(this._buildMiddle());\r
-    tipNode.appendChild(this._buildBottom());\r
-    return tipNode;\r
-  },\r
-\r
-  _setMessage: function(message) {\r
-    var type = message.constructor;\r
-    if (type == String) {\r
-      this.body.innerHTML = message;\r
-    } else if (type == Object) {\r
-      this.body.appendChild(message);\r
-    }\r
-  },\r
-\r
-  _buildTop: function() {\r
-    return this._buildMulti('top', ['topLeft', 'topMiddle', 'topRight'], true);\r
-  },\r
-\r
-  _buildBottom: function() {\r
-    return this._buildMulti('bottom', ['bottomLeft', 'bottomMiddle', 'bottomRight'], true);\r
-  },\r
-\r
-  _buildMiddle: function() {\r
-    this.middle = Builder.node('div');\r
-    this.classNames.addClassNames(this.middle, 'middle');\r
-    this.middle.appendChild(\r
-      this._buildMulti('middleLeft', ['middleLeftRowT', 'leftArrow', 'middleLeftRowB'], true));\r
-    this.middle.appendChild(this._buildMulti('body', [], true));\r
-    this.middle.appendChild(\r
-      this._buildMulti('middleRight', ['middleRightRowT', 'rightArrow', 'middleRightRowB'], true));\r
-    return this.middle;\r
-  },\r
-\r
-  _buildMulti: function(main, subs, hold) {\r
-    var topNode = Builder.node('div');\r
-    this.classNames.addClassNames(topNode, main);\r
-    if (hold) this[main] = topNode;\r
-    var self = this;\r
-    var node = null;\r
-    subs.each(function(s) {\r
-      node = Builder.node('div');\r
-      self.classNames.addClassNames(node, s);\r
-      topNode.appendChild(node);\r
-      if (hold) self[s] = node;\r
-    });\r
-    return topNode;\r
-  },\r
-\r
-  _setPosition: function() {\r
-    var scrollPosition = Position.realOffset(this.tipNode);\r
-    var screenWidth = document.documentElement.clientWidth;\r
-    var screenHeight = document.documentElement.clientHeight;\r
-    \r
-    var positionList = Position.cumulativeOffset(this.target);\r
-    var dimension = Element.getDimensions(this.target);\r
-    var tipNodeLeft = Math.round(positionList[0] + dimension.width);\r
-    var tipDimension = Element.getDimensions(this.tipNode);\r
-    var tipNodeTop = Math.round(positionList[1] - tipDimension.height / 2);\r
-\r
-    var addLR = 'left';\r
-    var remLR = 'right';\r
-\r
-    if((tmpY = tipNodeTop - scrollPosition[1]) < 0) {\r
-      tipNodeTop -= tmpY;\r
-    }\r
-    if( (tipNodeLeft+tipDimension.width) > (screenWidth+scrollPosition[0]) ) {\r
-      tipNodeLeft = Math.round(positionList[0] - tipDimension.width);\r
-      addLR = 'right';\r
-      remLR = 'left';\r
-    }\r
-    \r
-    var y = positionList[1] - tipNodeTop;\r
-    this._setArrow(addLR, y);\r
-    this._unsetArrow(remLR);\r
-\r
-    Element.setStyle(this.tipNode, {\r
-      top: tipNodeTop + 'px',\r
-      left: tipNodeLeft + 'px',\r
-      zIndex: ZindexManager.getIndex()\r
-    });\r
-  },\r
-\r
-  _setArrow: function(lr, y) {\r
-    var headerH = (this.options.height - this.middleH) / 2;\r
-    var topH, bottomH, h, ud;\r
-    var minH = 10; // for ie\r
-    if (lr == 'left') {\r
-      h = this.middleH - this.leftArrowH;\r
-    } else {\r
-      h = this.middleH - this.rightArrowH;\r
-    }\r
-    if (headerH > y) {\r
-      topH = minH;\r
-      bottomH = h - topH;\r
-      ud = 'up';\r
-    } else if ((this.middleH + headerH) < y) {\r
-      bottomH = minH;\r
-      topH = h - bottomH;\r
-      ud = 'down';\r
-    } else {\r
-      topH = y - headerH;\r
-      topH = (topH < minH) ? minH : topH;\r
-      bottomH = h - topH;\r
-      ud = 'up';\r
-    }\r
-    if (lr == 'left') {\r
-      if (ud == 'up') {\r
-        this.classNames.refreshClassNames(this.leftArrow, 'leftUpArrow');\r
-        Element.setStyle(this.leftArrow, {height: this.leftArrowH + 'px'});\r
-        Element.setStyle(this.middleLeftRowT, {height: topH + 'px'});\r
-        Element.setStyle(this.middleLeftRowB, {height: bottomH + 'px'});\r
-      } else {\r
-        this.classNames.refreshClassNames(this.leftArrow, 'leftDownArrow');\r
-        Element.setStyle(this.leftArrow, {height: this.leftArrowH + 'px'});\r
-        Element.setStyle(this.middleLeftRowT, {height: topH + 'px'});\r
-        Element.setStyle(this.middleLeftRowB, {height: bottomH + 'px'});\r
-      }\r
-    } else {\r
-      if (ud == 'up') {\r
-        this.classNames.refreshClassNames(this.rightArrow, 'rightUpArrow');\r
-        Element.setStyle(this.rightArrow, {height: this.rightArrowH + 'px'});\r
-        Element.setStyle(this.middleRightRowT, {height: topH + 'px'});\r
-        Element.setStyle(this.middleRightRowB, {height: bottomH + 'px'});\r
-      } else {\r
-        this.classNames.refreshClassNames(this.rightArrow, 'rightDownArrow');\r
-        Element.setStyle(this.rightArrow, {height: this.rightArrowH + 'px'});\r
-        Element.setStyle(this.middleRightRowT, {height: topH + 'px'});\r
-        Element.setStyle(this.middleRightRowB, {height: bottomH + 'px'});\r
-      }\r
-    }\r
-  },\r
-\r
-  _unsetArrow: function(direction) {\r
-    if (direction == 'left') {\r
-      var h = (this.middleH - this.leftArrowH) / 2;\r
-      this.classNames.refreshClassNames(this.leftArrow, 'middleLeftRowB');\r
-      Element.setStyle(this.leftArrow, {height: this.leftArrowH + 'px'});\r
-      Element.setStyle(this.middleLeftRowT, {height: h + 'px'});\r
-      Element.setStyle(this.middleLeftRowB, {height: h + 'px'});\r
-    } else {\r
-      var h = (this.middleH - this.rightArrowH) / 2;\r
-      this.classNames.refreshClassNames(this.rightArrow, 'middleRightRowB');\r
-      Element.setStyle(this.rightArrow, {height: this.rightArrowH + 'px'});\r
-      Element.setStyle(this.middleRightRowT, {height: h + 'px'});\r
-      Element.setStyle(this.middleRightRowB, {height: h + 'px'});\r
-    }\r
-  },\r
-\r
-  _setSize: function() {\r
-    var width = this.options.width;\r
-    var height = this.options.height;\r
-    Element.setStyle(this.tipNode, {\r
-      width: width + 'px',\r
-      height: height + 'px'\r
-    });\r
-\r
-    var topH = parseInt(Element.getStyle(this.top, 'height'));\r
-    var bottomH = parseInt(Element.getStyle(this.bottom, 'height'));\r
-    var middleH = this.options.height - topH - bottomH;\r
-\r
-    var style = {height: middleH + 'px'};\r
-    Element.setStyle(this.middle, style);\r
-    Element.setStyle(this.middleLeft, style);\r
-    Element.setStyle(this.middleRight, style);\r
-    Element.setStyle(this.body, style);\r
-\r
-    this.leftArrowH = parseInt(Element.getStyle(this.leftArrow, 'height'));\r
-    this.rightArrowH = parseInt(Element.getStyle(this.rightArrow, 'height'));\r
-    this.middleH = middleH;\r
-  },\r
-\r
-  open : function() {\r
-    if (!Element.visible(this.tipNode)) {\r
-      this._setPosition();\r
-      Effect.Appear(this.tipNode);\r
-    }\r
-  },\r
-\r
-  close : function(){\r
-    if (Element.visible(this.tipNode)) {\r
-      this._setPosition();\r
-      Effect.Fade(this.tipNode);\r
-    }\r
-  }\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/barchart.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/barchart.js
deleted file mode 100644 (file)
index 410fa3d..0000000
+++ /dev/null
@@ -1,524 +0,0 @@
-// Copyright (c) 2005 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-var AbstractBarChart = Class.create();\r
-AbstractBarChart.prototype = {\r
-\r
-  initialize: function(element, params) {\r
-    this.options = Object.extend({\r
-      title: '',\r
-      graduation: true,\r
-      graduationMin: 0,\r
-      graduationMax: 30,\r
-      graduationInterval: 10, \r
-      graduationRange: 50,\r
-      titleFont: 'normal bold 20px serif'\r
-    }, arguments[2] || {});\r
-    \r
-    this.fontSize = 'normal normal 12px serif';\r
-    this.graduationLine = '2px solid gray';\r
-    this.element = $(element);\r
-    Element.setStyle(this.element, {visibility: 'hidden'});\r
-    Element.hide(this.element);\r
-    this.params = params;\r
-    \r
-    this.init();\r
-    \r
-    this.hide();\r
-    this.refresh();\r
-    Element.setStyle(this.element, {visibility: 'visible'});\r
-    Element.show(this.element);\r
-  },\r
-  \r
-  build: function() {\r
-    return Builder.node(\r
-              'DIV',\r
-              [this.buildTitle(), this.buildGraduationLine(), this.buildContent()]);\r
-  },\r
-  \r
-  buildTitle: function() {\r
-    return Builder.node(\r
-              'DIV', \r
-              {style: 'font: ' + this.options.titleFont + '; margin-bottom: 5px; text-align: center;'},\r
-              [this.options.title]\r
-            );\r
-  },\r
-  \r
-  show: function() {\r
-    Element.show(this.element);\r
-  }, \r
-  \r
-  hide: function() {\r
-    Element.hide(this.element);\r
-  },\r
-  \r
-  refresh: function(subject) {\r
-    if (this.chart) this.remove();\r
-    \r
-    this.chart = this.build();\r
-    this.element.appendChild(this.chart);\r
-  },\r
-    \r
-  getParam: function(name) {\r
-    return this.params.detect(function(child) {\r
-      return (child.getName() == name);\r
-    });\r
-  },\r
-  \r
-  remove: function() {\r
-    var chart = this.chart;\r
-    var element = this.element;\r
-    \r
-    $A(this.element.childNodes).any(function(child) {\r
-      if (child == chart) {\r
-        element.removeChild(child);\r
-        return true;\r
-      }\r
-      return false;\r
-    });\r
-    \r
-    this.chart = null;\r
-  },\r
-  \r
-  getChartSize: function() {\r
-    return this.getPlusChartSize() + this.getMinusChartSize();\r
-  },\r
-  \r
-  getPlusChartSize: function() {\r
-    if (this.options.graduationMax <= 0) return 0;\r
-    return this.options.graduationMax / this.options.graduationInterval * this.options.graduationRange;\r
-  },\r
-  \r
-  getMinusChartSize: function() {\r
-    if (this.options.graduationMin >= 0) return 0;\r
-    return Math.abs(this.options.graduationMin) / this.options.graduationInterval * this.options.graduationRange;\r
-  },\r
-  \r
-  getBarSize: function(param) {\r
-    var size = param.getValue() / this.options.graduationInterval * this.options.graduationRange;\r
-    return Math.abs(size);\r
-  },\r
-  \r
-  getFontSize: function() {\r
-    var arr = this.fontSize.split(' ');\r
-    if (arr.length == 0) return 0;\r
-    \r
-    var size = arr.detect(function(child) {\r
-      return child.match(/px$/);\r
-    });\r
-    if (!size) return 0;\r
-    \r
-    var index = size.indexOf('px');\r
-    if (index < 1) return 0;\r
-    \r
-    size = size.substring(0, index);\r
-    if (isNaN(size)) return 0;\r
-    \r
-    return parseInt(size);\r
-  }\r
-}\r
-\r
-var HorizontalBarChart = Class.create();\r
-Object.extend(Object.extend(HorizontalBarChart.prototype, AbstractBarChart.prototype), {\r
-  \r
-  init: function() {\r
-    this.nameWidth = 125;\r
-    this.valueWidth = 50;\r
-    this.itemInterval = 35;\r
-    this.adjustWidth = (document.all) ? 5 : 0;\r
-  },\r
-  \r
-  buildGraduationLine: function() {\r
-    if (!this.options.graduation)\r
-      return Builder.node('DIV', {style: 'margin-bottom: 5px; text-align: center;'});\r
-    \r
-    var array = new Array();\r
-    var i = this.options.graduationMin;\r
-    //var width = (document.all) ? this.options.graduationRange : this.options.graduationRange - 2;\r
-    var width = this.options.graduationRange;\r
-    \r
-    var style = new StyleManager();\r
-    style.cache('border-left', this.graduationLine);\r
-    style.cache('height', '5px');\r
-    style.cache('font-size', '5px');\r
-    \r
-    while (i <= this.options.graduationMax) {\r
-            \r
-      var j =  i + this.options.graduationInterval;            \r
-      if (j <= this.options.graduationMax)\r
-        style.add('border-top', this.graduationLine);\r
-        \r
-      var elm = Builder.node(\r
-                  'DIV', \r
-                  {style: 'float: left; font: ' + this.fontSize + '; width: ' + width + 'px;'}, \r
-                  [\r
-                    Builder.node('DIV', [i]),\r
-                    Builder.node('DIV', {style: style.output()})\r
-                  ]\r
-                );\r
-                \r
-      array.push(elm);\r
-      i = j;\r
-      style.clear();\r
-    }\r
-    return Builder.node('DIV', {style: 'margin-left: ' + (this.nameWidth + this.valueWidth) + 'px; padding-bottom: ' + this.itemInterval + 'px;'}, array);\r
-  },\r
-  \r
-  buildContent: function() {\r
-    var nodes = new Array();\r
-    \r
-    var valueStyle = new StyleManager();\r
-    valueStyle.cache('font', this.fontSize);\r
-    valueStyle.cache('text-align', 'right');\r
-    \r
-    for (var i = 0; i < this.params.length; i++) {\r
-      var child = this.params[i];\r
-      \r
-      var maxSize;\r
-      if (child.getValue() > 0) maxSize = this.getPlusChartSize();\r
-      else maxSize = this.getMinusChartSize();\r
-      \r
-      var barSize = this.getBarSize(child);\r
-      barSize = (barSize > maxSize) ? maxSize : barSize;\r
-      \r
-      var barNode;\r
-      if (child.options.image) {\r
-        if (child.getValue() > 0) {\r
-          \r
-          barNode = Builder.node('DIV', \r
-                      [\r
-                        Builder.node(\r
-                          'IMG', \r
-                          {\r
-                            src: child.options.image,\r
-                            alt: 'bar',\r
-                            width: barSize + 'px', \r
-                            height: child.options.imageHeight + 'px', \r
-                            style: 'float: left; margin-left: ' +  (this.getMinusChartSize() + this.valueWidth) + 'px;'\r
-                          }),\r
-                        Builder.node(\r
-                          'DIV', \r
-                          {style: 'font: ' + this.fontSize + ';'}, \r
-                          [child.getValue()])\r
-                      ]);\r
-        } else {\r
-          // IE fix\r
-          var leftMargin = this.getMinusChartSize() - barSize;\r
-          var width;\r
-          if (document.all && leftMargin > 125) {\r
-            width = leftMargin + this.valueWidth;\r
-            leftMargin = 0;\r
-          } else {\r
-            width = this.valueWidth;\r
-          }\r
-          \r
-          valueStyle.add('margin-left', leftMargin + 'px');\r
-          valueStyle.add('width', width + 'px');\r
-          valueStyle.add('float', 'left');\r
-        \r
-          barNode = Builder.node(\r
-                      'DIV', \r
-                      [\r
-                        Builder.node('DIV', {style: valueStyle.output()}, [child.getValue()]),\r
-                        Builder.node('IMG', {src: child.options.image, alt: 'bar', width: barSize + 'px', height: child.options.imageHeight + 'px'})\r
-                      ]);\r
-        }\r
-        \r
-      } else {\r
-        if (child.getValue() > 0) {\r
-          barNode = Builder.node(\r
-                      'DIV', \r
-                      {style: 'font: ' + this.fontSize + '; margin-left: ' + (this.getMinusChartSize() + this.nameWidth + this.valueWidth + this.adjustWidth) + 'px; border-left: ' + barSize + 'px solid ' + child.options.color + ';'},\r
-                      [child.getValue()]\r
-                    );\r
-        } else {\r
-          var width = (document.all) ? (this.valueWidth + barSize) : this.valueWidth;\r
-          \r
-          valueStyle.add('margin-left', (this.nameWidth + this.getMinusChartSize() - barSize) + 'px');\r
-          valueStyle.add('width', width + 'px');\r
-          valueStyle.add('border-right', barSize + 'px solid ' + child.options.color);\r
-          \r
-          barNode = Builder.node(\r
-                      'DIV', \r
-                      [\r
-                        Builder.node('DIV', {style: valueStyle.output()}, [child.getValue()])\r
-                      ]\r
-                    );\r
-        }\r
-      }\r
-      \r
-      var elm = Builder.node(\r
-                  'DIV', \r
-                  {style: 'margin-bottom: 10px;'}, \r
-                  [\r
-                    Builder.node('DIV', {style: 'text-align: right; font: ' + this.fontSize + ';float: left; width: ' + this.nameWidth + 'px;'}, [child.getName()]),\r
-                    barNode\r
-                  ]);\r
-      \r
-      nodes.push(elm);\r
-      valueStyle.clear();\r
-    }\r
-                  \r
-    return nodes;\r
-  }\r
-});\r
-\r
-var VerticalBarChart = Class.create();\r
-Object.extend(Object.extend(VerticalBarChart.prototype, AbstractBarChart.prototype), {\r
-  \r
-  init: function() {\r
-  },\r
-  \r
-  buildGraduationLine: function() {\r
-    if (!this.options.graduation) return Builder.node('DIV');\r
-    \r
-    var numberArray = new Array();\r
-    var lineArray = new Array();\r
-    var i = this.options.graduationMax;\r
-    var next;\r
-    var lineHeight = (document.all) ? this.options.graduationRange : this.options.graduationRange - 2;\r
-    var marginTop = lineHeight - this.getFontSize();\r
-    \r
-    var numberStyle = new StyleManager();\r
-    numberStyle.cache('font', this.fontSize);\r
-        \r
-    var lineStyle = new StyleManager();\r
-    lineStyle.cache('font', this.fontSize);\r
-  \r
-    while (i >= this.options.graduationMin) {\r
-      next = i - this.options.graduationInterval;\r
-      lineHeight = (document.all) ? lineHeight - 0.3: lineHeight - 0.1;\r
-      \r
-      if (i == this.options.graduationMax) {\r
-        lineStyle.add('margin-top', '0px');\r
-      \r
-      } else if (next < this.options.graduationMin) {\r
-        numberStyle.add('margin-top', marginTop + 'px');\r
-        lineStyle.add('border-left', this.graduationLine);\r
-        lineStyle.add('border-top', this.graduationLine);\r
-        lineStyle.add('border-bottom', this.graduationLine)\r
-        lineStyle.add('height', lineHeight + 'px');\r
-        lineStyle.add('width', '100%');\r
-      \r
-      } else {\r
-        numberStyle.add('margin-top', marginTop + 'px');\r
-        lineStyle.add('border-left', this.graduationLine);\r
-        lineStyle.add('border-top', this.graduationLine);\r
-        lineStyle.add('height', lineHeight + 'px');\r
-        lineStyle.add('width', '100%');\r
-      }  \r
-      \r
-      numberArray.push(Builder.node('DIV', {style: numberStyle.output()}, [i]));\r
-      \r
-      if (i == this.options.graduationMax) {\r
-        lineArray.push(Builder.node('DIV', {style: lineStyle.output()}, [Builder.node('BR')]));\r
-      } else {\r
-        lineArray.push(Builder.node('DIV', {style: lineStyle.output()}));\r
-      }\r
-      \r
-      numberStyle.clear();\r
-      lineStyle.clear();\r
-      \r
-      marginTop -= (document.all) ? 0.05 : 0.1; \r
-      i = next;\r
-    }\r
-    \r
-    return [\r
-              Builder.node('DIV', {style: 'float: left; margin-left: 10px; width: 25px; text-align: right;'}, numberArray),\r
-              Builder.node('DIV', {style: 'float: left; margin-right: 10px; margin-left: 10px; width: 5px;'}, lineArray)\r
-            ];\r
-  },\r
-  \r
-  buildContent: function() {\r
-    var nodes = new Array();\r
-    \r
-    for (var i = 0; i < this.params.length; i++) {\r
-      var child = this.params[i];\r
-      \r
-      var maxSize;\r
-      if (child.getValue() > 0) maxSize = this.getPlusChartSize();\r
-      else maxSize = this.getMinusChartSize();\r
-      \r
-      var barSize = this.getBarSize(child);\r
-      barSize = (barSize > maxSize) ? maxSize : barSize;\r
-      \r
-      var bar;\r
-      if (child.options.image) {\r
-        bar = Builder.node('IMG', {src: child.getImage(), alt: 'bar', width: '10px', height: barSize + 'px'});\r
-      } else {\r
-        bar = Builder.node('DIV', {style: 'border-top: ' + barSize + 'px solid ' + child.options.color + '; width: 10px; font-size: 0;'});\r
-      }\r
-      \r
-      var elm;\r
-      if (child.getValue() > 0) {\r
-        elm = Builder.node(\r
-                'DIV', \r
-                {style: 'float: left; margin-right: 10px; width: 25px;'},\r
-                [\r
-                  Builder.node('DIV', {style: 'margin-top: ' + (maxSize - barSize) + 'px; font: ' + this.fontSize + ';'}, [child.getValue()]),\r
-                  bar,\r
-                  Builder.node('DIV', {style: 'margin-top: ' + (this.getMinusChartSize() + 15) + 'px; font: ' + this.fontSize + '; padding-top: 5px; width: 10px;'}, [child.getName()])\r
-                ]);\r
-      } else {\r
-        elm = Builder.node(\r
-                'DIV', \r
-                {style: 'float: left; margin-right: 10px; width: 25px;'},\r
-                [\r
-                  Builder.node('DIV', {style: 'margin-top: ' + (this.getPlusChartSize() + this.getFontSize()) + 'px'}),\r
-                  bar,\r
-                  Builder.node('DIV', {style: 'font: ' + this.fontSize + ';'}, [child.getValue()]),\r
-                  Builder.node('DIV', {style: 'margin-top: ' + (maxSize + 15 - (this.getFontSize() + barSize)) + 'px; font: ' + this.fontSize + '; padding-top: 5px; width: 10px;'}, [child.getName()])\r
-                ]);\r
-      }\r
-      \r
-      nodes.push(elm);\r
-    }\r
-                  \r
-    nodes.push(Builder.node('DIV', {style: 'clear: left;'}));\r
-    return nodes;\r
-  }\r
-});\r
-\r
-var ChartParameter = Class.create();\r
-ChartParameter.prototype = {\r
-\r
-  initialize: function(name, value) {\r
-    if (isNaN(value)) throw '[ChartParameter] value property must be number!(' + value + ')';\r
-    \r
-    this.name = name;\r
-    this.value = value;\r
-    \r
-    this.options = Object.extend({\r
-      color: '#FF0000',\r
-      barHeight: '15',\r
-      image: false,\r
-      imageHeight: '15',\r
-      action: false\r
-    }, arguments[2] || {});\r
-  },\r
-  \r
-  getName: function() {\r
-    return this.name;\r
-  },\r
-  \r
-  getValue: function() {\r
-    return this.value;\r
-  },\r
-  \r
-  setValue: function(value) {\r
-    if (!value || isNaN(value)) this.value = 0;\r
-    else this.value = value;\r
-  },\r
-  \r
-  getImage: function() {\r
-    return this.options.image;\r
-  }\r
-}\r
-\r
-var StyleManager = Class.create();\r
-StyleManager.prototype = {\r
-  \r
-  initialize: function() {\r
-    this.cacheItems = new Array();\r
-    this.items = new Array();\r
-  },\r
-  \r
-  cache: function(style) {\r
-    if (typeof(style) == 'object') \r
-      this.cacheItems.push(style);\r
-    else if (arguments[1])\r
-      this.cacheItems.push(new StyleItem(style, arguments[1]));\r
-  },\r
-  \r
-  add: function(style) {\r
-    if (typeof(style) == 'object') \r
-      this.items.push(style);\r
-    else if (arguments[1]) \r
-      this.items.push(new StyleItem(style, arguments[1]));\r
-  },\r
-  \r
-  get: function(name) {\r
-    return this.items.detect(function(child) {\r
-      return child.getName() == name;\r
-    });\r
-  },\r
-  \r
-  remove: function(name) {\r
-    this.items = this.items.findAll(function(child) {\r
-      return child.getName() != name;\r
-    });\r
-  },\r
-  \r
-  clear: function(name) {\r
-    this.items = new Array();\r
-  },\r
-  \r
-  modify: function(name, value) {\r
-    var item = this.get(name);\r
-    \r
-    if (item) item.setValue(value);\r
-    else this.add(name, value);\r
-  },\r
-  \r
-  output: function() {\r
-    var style = '';\r
-    \r
-    this.cacheItems.each(function(child) {\r
-      style += child.toString();\r
-    });\r
-    \r
-    this.items.each(function(child) {\r
-      style += child.toString();\r
-    });\r
-    \r
-    return style;\r
-  }\r
-}\r
-\r
-var StyleItem = Class.create();\r
-StyleItem.prototype = {\r
-  \r
-  initialize: function(name, value) {\r
-    this.name = name;\r
-    this.value = value;\r
-  },\r
-  \r
-  setName: function(name) {\r
-    this.name = name;\r
-  },\r
-  \r
-  setValue: function(value) {\r
-    this.value = value;\r
-  },\r
-  \r
-  getName: function() {\r
-    return this.name;\r
-  },\r
-  \r
-  getValue: function() {\r
-    return this.value;\r
-  },\r
-  \r
-  toString: function() {\r
-    return this.getName() + ':' + this.getValue() + '; ';\r
-  }\r
-}\r
-\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/calendar.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/calendar.js
deleted file mode 100644 (file)
index ba1ca85..0000000
+++ /dev/null
@@ -1,2957 +0,0 @@
-// Copyright (c) 2006 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-var Calendar = Class.create();\r
-Calendar.className = {\r
-  container:             'calendar',\r
-  header:                'calendar_header',\r
-  preYears:              'calendar_preYears',\r
-  nextYears:             'calendar_nextYears',\r
-  years:                 'calendar_years',\r
-  mark:                  'calendar_mark',\r
-  ym:                    'calendar_ym',\r
-  table:                 'calendar_table',\r
-  thRight:               'right',\r
-  tdRight:               'right',\r
-  tdBottom:              'bottom',\r
-  date:                  'calendar_date',\r
-  holiday:               'calendar_holiday',\r
-  regularHoliday:        'calendar_regularHoliday',\r
-  schedule:              'calendar_schedule',\r
-  highlightDay:          'calendar_highlightDay',\r
-  scheduleListContainer: 'calendar_scheduleListContainer',\r
-  scheduleItem:          'calendar_scheduleItem',\r
-  scheduleTimeArea:      'calendar_scheduleItemTimeArea',\r
-  scheduleHandler:       'calendar_scheduleHandler',\r
-  holidayName:           'calendar_holidayName',\r
-//  holidayContainer:      'calendar_holidayContainer',\r
-  dateContainer:         'calendar_dateContainer',\r
-  tableHeader:           'calendar_tableHeader',\r
-  rowContent:            'calendar_rowContent',\r
-  selected:              'calendar_selected',\r
-\r
-  nextYearMark:          'calendar_nextYearMark',\r
-  nextMonthMark:         'calendar_nextMonthMark',\r
-  nextWeekMark:          'calendar_nextWeekMark',\r
-  preYearMark:           'calendar_preYearMark',\r
-  preMonthMark:          'calendar_preMonthMark',\r
-  preWeekMark:           'calendar_preWeekMark',\r
-  \r
-  weekTable:             'calendar_weekContainerTable',\r
-  weekMainTable:         'calendar_weekMainTable',\r
-  timeLine:              'calendar_timeline',\r
-  timeLineTimeTop:       'calendar_timelineTimeTop',\r
-  timeLineTime:          'calendar_timelineTime',\r
-  headerColumn:          'calendar_headerColumn',\r
-  columnTopDate:         'calendar_columnTopDate',\r
-  columnDate:            'calendar_columnDate',\r
-  columnDateOdd:         'calendar_columnOddDate',\r
-  scheduleItemSamll:     'calendar_scheduleItemSmall',\r
-  scheduleItemLarge:     'calendar_scheduleItemLarge',\r
-  scheduleItemNoBorder:  'calendar_scheduleItemNoBorder',\r
-  scheduleItemSelect:    'calendar_scheduleItemSelect',\r
-  deleteImg:             'calendar_deleteImage',\r
-  privateImg:            'calendar_privateImage',\r
-  scheduleContainer:     'calendar_weekScheduleContainer',\r
-  selector:              'calendar_selector',\r
-  cover:                 'calendar_cover'\r
-}\r
-\r
-Calendar.smallClassName = {\r
-  container: 'calendar_small',\r
-  header:    'calendar_header_small',\r
-  calendar:  'calendar_calendar_small',\r
-  table:     'calendar_tableSmall'\r
-}\r
-\r
-Calendar.size = {\r
-  large: 'large',\r
-  small: 'small'\r
-}\r
-\r
-/**\r
- * Calendar Class\r
- */\r
-Calendar.prototype = {\r
-  \r
-  initialize: function(element) {\r
-    this.building = true;\r
-    this.element = $(element);\r
-    Element.setStyle(this.element, {visibility: 'hidden'});\r
-    Element.hide(this.element);\r
-\r
-    this.options = Object.extend({\r
-      initDate:              new Date(),\r
-      cssPrefix:             'custom_',\r
-      holidays:              [],\r
-      schedules:             [],\r
-      size:                  Calendar.size.large,\r
-      regularHoliday:        [0, 6],\r
-      displayIndexes:        [0, 1, 2, 3, 4, 5, 6],\r
-      displayTime:           [{hour: 0, min: 0}, {hour: 24, min: 0}],\r
-      weekIndex:             0,\r
-      dblclickListener:      null,\r
-      afterSelect:           Prototype.emptyFunction,\r
-      beforeRefresh:         Prototype.emptyFunction,\r
-      changeSchedule:        Prototype.emptyFunction,\r
-      changeCalendar:        Prototype.emptyFunction,\r
-      displayType:           'month',\r
-      highlightDay:          true,\r
-      beforeRemoveSchedule:  function() {return true;},\r
-      dblclickSchedule:      null,\r
-      updateTirm:            Prototype.emptyFunction,\r
-      displayTimeLine:       true,\r
-      clickDateText:         null,\r
-      monthHeaderFormat:     null,\r
-      weekHeaderFormat:      null,\r
-      weekSubHeaderFormat:   null,\r
-      dayHeaderFormat:       null,\r
-      dayOfWeek:             DateUtil.dayOfWeek\r
-    }, arguments[1] || {});\r
-\r
-    this.options.holidays = this.toHolidayHash(this.options.holidays);\r
-//    this.options.schedules = this.toScheduleHash(this.options.schedules);\r
-    \r
-    this.setIndex();\r
-    \r
-    this.classNames = null;\r
-    if (this.options.size == Calendar.size.large) {\r
-      this.classNames = Calendar.className;\r
-    } else {\r
-      this.classNames = $H({}).merge(Calendar.className);\r
-      this.classNames = this.classNames.merge(Calendar.smallClassName);\r
-    }\r
-    var customCss = CssUtil.appendPrefix(this.options.cssPrefix, this.classNames);\r
-    this.classNames = new CssUtil([this.classNames, customCss]);\r
-    \r
-    this.date = this.options.initDate;\r
-    \r
-    this.calendar = this.build();\r
-    this.element.appendChild(this.calendar);\r
-\r
-    Event.observe(document, "mouseup", this.onMouseUp.bindAsEventListener(this));\r
-    Element.setStyle(this.element, {visibility: 'visible'});\r
-    Element.show(this.element);\r
-    this.builder.afterBuild();\r
-    this.windowResize = this.onResize.bind(this);\r
-    if (this.options.size != 'small') Event.observe(window, "resize", this.windowResize);\r
-    this.building = false;\r
-  },\r
-\r
-  onResize: function() {\r
-    try {\r
-      var oldDimentions = this.builder.containerDimensions;\r
-      var dimentions    = Element.getDimensions(this.builder.container);\r
-      if (dimentions.height != oldDimentions.height || dimentions.width != oldDimentions.width) {\r
-        this.refresh();\r
-      }\r
-    } catch(e) {}\r
-  },\r
-\r
-  destroy: function() {\r
-    Event.stopObserving(window, 'resize', this.windowResize);\r
-  },\r
-\r
-  setIndex: function() {\r
-    var options = this.options;\r
-    var bottom  = [];\r
-    var up      = [];\r
-    var index   = null;\r
-    options.displayIndexes.sort();\r
-    options.displayIndexes.each(function(i) {\r
-      if (index == null) {\r
-        if (options.weekIndex <= i) {\r
-          index = i;\r
-          up.push(i);\r
-        } else {\r
-          bottom.push(i);\r
-        }\r
-      } else {\r
-        up.push(i);\r
-      }\r
-    });\r
-    options.displayIndexes = up.concat(bottom);\r
-    this.setLastWday();\r
-  },\r
-\r
-  setLastWday: function() {\r
-    var firstIndex = this.options.weekIndex;\r
-    var sat = 6;\r
-    var sun = 0;\r
-    var week = $R(firstIndex, sat, false).toArray();\r
-    if (firstIndex != sun) {\r
-      week = week.concat($R(sun, firstIndex - 1, false).toArray());\r
-    }\r
-    this.lastWday = week.last();\r
-    this.wdays = week;\r
-  },\r
-  \r
-  build: function() {\r
-    if (this.builder) {\r
-      this.builder.destroy();\r
-    }\r
-    \r
-    if (this.options.displayType == 'week') {\r
-      this.builder = new CalendarWeek(this);\r
-    } else if (this.options.displayType == 'day') {\r
-      this.builder = new CalendarDay(this);\r
-    } else {\r
-      this.builder = new CalendarMonth(this);\r
-    }\r
-\r
-    this.builder.beforeBuild();\r
-    return this.builder.build();\r
-  },\r
-  \r
-  /*** Calendar ***/\r
-  /********************************** public method **********************************/\r
-  undo: function() {\r
-    if (this.cached) {\r
-      this.cached.start = this.cached.start_old;\r
-      this.cached.finish = this.cached.finish_old;\r
-      this.cached = null;\r
-      this.refreshSchedule();\r
-    }\r
-  },\r
-\r
-  hideSatSun: function() {\r
-    var sun = 0;\r
-    var sat = 6;\r
-    this.options.displayIndexes = this.options.displayIndexes.without(sun, sat);\r
-    this.setIndex();\r
-    this.refresh();\r
-  },\r
-\r
-  showSatSun: function() {\r
-    var sun     = 0;\r
-    var sat     = 6;\r
-    var indexes = this.options.displayIndexes;\r
-    if (!indexes.include(sun)) {\r
-      indexes.push(sun);\r
-    }\r
-    if (!indexes.include(sat)) {\r
-      indexes.push(sat);\r
-    }\r
-    this.setIndex();\r
-    this.refresh();\r
-  },\r
-\r
-  changeDisplayIndexes: function(indexes) {\r
-    this.options.displayIndexes = indexes;\r
-    this.setIndex();\r
-    this.refresh();\r
-  },\r
-\r
-  changeDisplayTime: function(time) {\r
-    this.options.displayTime = time;\r
-    this.refresh();\r
-  },\r
-\r
-  refresh: function() {\r
-    try {\r
-      if (!this.building) {\r
-        this.building = true;\r
-        this.options.beforeRefresh(this);\r
-        this.destroy();\r
-        this.selectedBase = null;\r
-        Element.remove(this.calendar);\r
-        this.calendar = this.build();\r
-        this.element.appendChild(this.calendar);\r
-        this.builder.afterBuild();\r
-        if (this.options.size != 'small') Event.observe(window, 'resize', this.windowResize);\r
-        this.building = false;\r
-      }\r
-    } catch (e) {}\r
-  },\r
-  \r
-  changeCalendar: function(event) {\r
-    this.builder.changeCalendar(event);\r
-  },\r
-\r
-  changeDisplayType: function(type) {\r
-    this.options.displayType = type;\r
-    this.refresh();\r
-  },\r
-\r
-  selectDate: function(event) {\r
-    var calendar = this;\r
-    this.abstractSelect(event, function(date, element) {\r
-      if (calendar.selectedBase || calendar.hasSelectedDate()) {\r
-        if (event.ctrlKey) {\r
-          if (Element.hasClassName(element, Calendar.className.selected)) {\r
-            calendar.addSelectedClass(element);\r
-            return;\r
-          }\r
-        } else if (calendar.selectedBase) {\r
-          var selectedId = calendar.selectedBase.id;\r
-          $(selectedId).className = calendar.selectedBase.className;\r
-          calendar.clearSelected();\r
-          if (selectedId == element.id) {\r
-            calendar.selectedBase = null;\r
-            return;\r
-          }\r
-        }\r
-      }\r
-\r
-      calendar.selectedBase = {id: element.id, date: date, className: element.className};\r
-      calendar.addSelectedClass(element);\r
-      if (date && calendar.options.displayType == 'month' && calendar.options.size == Calendar.size.small) {\r
-        calendar.options.afterSelect(date, calendar);\r
-      }\r
-    });\r
-\r
-    if (calendar.options.displayType != 'month' || calendar.options.size != Calendar.size.small) {\r
-      this.mouseDown = true;\r
-    }\r
-  },\r
-\r
-  clearSelect: function() {\r
-    // BETA\r
-    this.selectedBase = null;\r
-    this.clearSelected();\r
-  },\r
-\r
-  showDayOfWeek: function(dayOfWeek) {\r
-    var indexes = this.options.displayIndexes;\r
-    this.recurrence(dayOfWeek, function(d) {\r
-      if (!indexes.include(d)) {\r
-        indexes.push(d);\r
-      }\r
-    });\r
-    this.setIndex();\r
-    this.refresh();\r
-  },\r
-\r
-  hideDayOfWeek: function(dayOfWeek) {\r
-    var indexes = this.options.displayIndexes;\r
-    var self = this;\r
-    this.recurrence(dayOfWeek, function(d) {\r
-      var index = self.findIndex(indexes, d);\r
-      if (index) {\r
-        indexes.remove(index);\r
-      } else if (!index.isNaN) {\r
-        indexes.shift();\r
-      }\r
-    });\r
-    this.refresh();\r
-  },\r
-\r
-  addHoliday: function(object) {\r
-    object = this.inspectArgument(object);\r
-    var newHash = this.toHolidayHash(object);\r
-    this.options.holidays = this.options.holidays.merge(newHash);\r
-    this.refresh();\r
-  },\r
-\r
-  removeHoliday: function(date) {\r
-    var calendar = this;\r
-    date = calendar.inspectDateArgument(date);\r
-    if (!date) return;\r
-\r
-    this.recurrence(date, function(d) {\r
-      var key = d.toDateString();\r
-      if (calendar.options.holidays[key])\r
-        delete calendar.options.holidays[key];\r
-    });\r
-    this.refresh();\r
-  },\r
-\r
-  refreshHoliday: function(object, rebuild) {\r
-    object = this.inspectArgument(object);\r
-    this.options.holidays = this.toHolidayHash(object);\r
-    if (rebuild) this.refresh();\r
-  },\r
-\r
-  clearHoliday: function() {\r
-    this.refreshHoliday([], true);\r
-  },\r
-\r
-  getHoliday: function(date) {\r
-    date = this.inspectDateArgument(date);\r
-    if (!date) return;\r
-\r
-    var calendar = this;\r
-    var holidays = [];\r
-    this.recurrence(date, function(o) {\r
-      var h = calendar.options.holidays[o.toDateString()];\r
-      if (h) holidays.push(h);\r
-    });\r
-\r
-    return holidays; \r
-  },\r
-\r
-  addSchedule: function(schedule) {\r
-    var schedules = this.options.schedules;\r
-    if (schedule.constructor == Array) {\r
-      schedule.each(function(s) {\r
-        var find = schedules.detect(function(tmp) {return s.id == tmp.id});\r
-        if (!find) schedules.push(s);\r
-      });\r
-    } else {\r
-      var find = schedules.detect(function(tmp) {return tmp.id == schedule.id});\r
-      if (!find) schedules.push(schedule);\r
-    }\r
-    this.refreshSchedule();\r
-  },\r
-\r
-  replaceSchedule: function(schedules) {\r
-    this.options.schedules = schedules;\r
-    this.refreshSchedule();\r
-  },\r
-\r
-  removeSchedule: function(ids, refresh) {\r
-    if (ids.constructor != Array) ids = [ids];\r
-    var self = this;\r
-    ids.each(function(id) {\r
-      var index = null;\r
-      self.options.schedules.each(function(s, i) {\r
-        if (s.id == id) {\r
-          index = i;\r
-          throw $break;\r
-        }\r
-      });\r
-\r
-      if (index != null) {\r
-        var schedule = self.options.schedules[index];\r
-        if (schedule) {\r
-          self.options.schedules.remove(index);\r
-        }\r
-      }\r
-    });\r
-    if (refresh) this.refreshSchedule();\r
-  },\r
-\r
-  refreshSchedule: function() {\r
-    this.builder.scheduleNodes.each(function(node) {\r
-      Element.remove(node);\r
-    });\r
-    this.builder.afterBuild();\r
-  },\r
-\r
-  mergeSchedule: function(schedule) {\r
-    var index = -1;\r
-    this.options.schedules.each(function(s, i) {\r
-      if (s.id == schedule.id) {\r
-        index = i;\r
-        throw $break;\r
-      }\r
-    });\r
-    if (index != -1) {\r
-      this.options.schedules[index] = schedule;\r
-      this.refreshSchedule();\r
-    } else {\r
-      this.addSchedule(schedule);\r
-    }\r
-  },\r
-\r
-  clearSchedule: function() {\r
-    this.options.schedules = [];\r
-    this.refreshSchedule();\r
-  },\r
-\r
-  getSchedule: function(object) {\r
-    var result = [];\r
-    var calendar = this;\r
-    object = this.inspectArgument(object || {});\r
-\r
-    this.recurrence(object, function(o) {\r
-      var schedule = calendar.options.schedules[o.date.toDateString()];\r
-      if (!schedule) return;\r
-\r
-      if (o.start) {\r
-        schedule = schedule.detect(function(s) {\r
-          return ((s.start.hour == o.start.hour) && (s.start.min == o.start.min));\r
-        });\r
-        if (schedule) result.push(schedule);\r
-      } else if (o.number) {\r
-        schedule = schedule[o.number];\r
-        if (schedule) result.push(schedule);\r
-      } else {\r
-        result = result.concat(schedule);\r
-      }\r
-    });\r
-\r
-    return result;\r
-  },\r
-\r
-  getSelected: function() {\r
-    return this.element.getElementsByClassName(Calendar.className.selected, this.element);\r
-  },\r
-\r
-  changeSchedule: function() {\r
-    var calendar = this;\r
-    return function(drag, drop) {\r
-      var array = drag.id.split('_');\r
-      var i = array.pop();\r
-      var date = array.pop();\r
-      \r
-      date = calendar.getDate(date);    \r
-      var newDate = calendar.getDate(drop);\r
-      \r
-      var schedule = calendar.getSchedule({date: date, number: i});\r
-      if (schedule.length != 1) return;\r
-\r
-      schedule = schedule.pop();\r
-      schedule.date = newDate;\r
-      calendar.removeSchedule({date: date, number: i}, false);\r
-      calendar.addSchedule(schedule);\r
-\r
-      calendar.options.changeSchedule(schedule);\r
-    }\r
-  },\r
-\r
-  getSelectedDates: function() {\r
-    return this.builder.getSelectedDates();\r
-  },\r
-\r
-  getSelectedTerm: function() {\r
-    return this.builder.getSelectedTerm();\r
-  },\r
-  \r
-  /********************************** private method **********************************/\r
-  abstractSelect: function(event, method) {\r
-    this.builder.abstractSelect(event, method);\r
-  },\r
-\r
-  createRange: function(a, b) {\r
-    var range = null;\r
-    if (a <= b)\r
-      range = $R(a, b);\r
-    else\r
-      range = $R(b, a);\r
-    return range;\r
-  },\r
-\r
-  formatTime: function(time) {\r
-    var hour = (time.hour < 10) ? '0' + time.hour : time.hour;\r
-    var min = (time.min < 10) ? '0' + time.min : time.min;\r
-    return hour + ':' + min;\r
-  },\r
-\r
-  clearSelected: function() {\r
-    var elements = this.getSelected();\r
-    var self = this;\r
-    elements.each(function(e) {\r
-      if (Element.hasClassName(e, Calendar.className.selected))\r
-        self.removeSelectedClass(e);\r
-    });\r
-  },\r
-\r
-  onDblClick: function(event) {\r
-    this.abstractSelect(event, this.options.dblclickListener);\r
-  },\r
-\r
-  onMouseUp: function(event) {\r
-    var e = event || window.event;\r
-    var calendar = this;\r
-    if (calendar.mouseDown) {\r
-      setTimeout(function() {\r
-        calendar.mouseDown = false;\r
-        calendar.options.afterSelect(event);\r
-      }, 10);\r
-    }\r
-  },\r
-\r
-  setRegularHolidayClass: function(node) {\r
-    this.classNames.refreshClassNames(node, 'regularHoliday');\r
-  },\r
-\r
-  setHolidayClass: function(node) {\r
-    this.classNames.refreshClassNames(node, 'holiday');\r
-  },\r
-\r
-  setWorkdayClass: function(node) {\r
-    this.classNames.refreshClassNames(node, 'date');\r
-  },\r
-\r
-  setScheduleClass: function(node) {\r
-    this.classNames.refreshClassNames(node, 'schedule');\r
-  },\r
-\r
-  addHighlightClass: function(node) {\r
-    Element.addClassName(node, Calendar.className.highlightDay);\r
-  },\r
-\r
-  addSelectedClass: function(node) {\r
-    Element.addClassName(node, Calendar.className.selected);\r
-  },\r
-\r
-  removeSelectedClass: function(node) {\r
-    Element.removeClassName(node, Calendar.className.selected);\r
-  },\r
-\r
-  getDatasWithMonthAndYear: function(array) {\r
-    var calendar = this;\r
-    var result =  array.findAll(function(h) {\r
-      return calendar.isSameYearAndMonth(h.date);\r
-    });\r
-\r
-    return result;\r
-  },\r
-\r
-  isSameYearAndMonth: function(a, b) {\r
-    if (a.constructor == Date) {\r
-      if (!b) b = this.date;\r
-      return ((a.getYear() == b.getYear()) && (a.getMonth() == b.getMonth()));\r
-    } else {\r
-      return (a.year == b.year && a.month == b.month && a.day == a.day);\r
-    }\r
-  }, \r
-\r
-  isSameDate: function(a, b) {\r
-    if (a.constructor == Date) {\r
-      if (!b) b = this.date;\r
-      return (this.isSameYearAndMonth(a, b) && (a.getDate() == b.getDate()));\r
-    } else {\r
-      return (this.isSameYearAndMonth(a, b) && a.day == b.day);\r
-    }\r
-  }, \r
-\r
-  isSameTime: function(a, b) {\r
-    return ((a.hour == b.hour) && (a.min == b.min));\r
-  },\r
-\r
-  betweenDate: function(schedule, date) {\r
-    var start  = this.toDateNumber(schedule.start);\r
-    var finish = this.toDateNumber(schedule.finish);\r
-    date = this.toDateNumber(date);\r
-    return start <= date && date <= finish;\r
-  },\r
-\r
-  toDateNumber: function(date) {\r
-    if (date.constructor == Date) {\r
-      return date.getFullYear() * 10000 + date.getMonth() * 100 + date.getDate();\r
-    } else {\r
-      return date.year * 10000 + date.month * 100 + date.day;\r
-    }\r
-  },\r
-\r
-  getTimeDiff: function(a, b) {\r
-    var time = {hour: b.hour - a.hour, min: b.min - a.min};\r
-    if (time.min >= 60) {\r
-      time.hour++;\r
-      time.min -= 60;\r
-    } else if (time.min < 0) {\r
-      time.hour--;\r
-      time.min += 60;\r
-    }\r
-    return time;\r
-  },\r
-\r
-  findIndex: function(array, value) {\r
-    var index = null;\r
-    array.each(function(v, i) {\r
-      if (v == value) {\r
-        index = i;\r
-        throw $break;\r
-      }\r
-    });\r
-    return index;\r
-  },\r
-\r
-  recurrence: function(object, method) {\r
-    var calendar = this;\r
-    if (object.constructor == Array) {\r
-      object.each(function(o) {calendar.recurrence(o, method)});\r
-    } else if (object.keys) {\r
-      object.each(function(pair) {calendar.recurrence(pair[1], method)});\r
-    } else {\r
-      method(object);\r
-    }\r
-  },\r
-\r
-  toHolidayHash: function(object) {\r
-    var calendar = this;\r
-    var hash = {};\r
-\r
-    this.recurrence(object, function(o) {\r
-      if (!o.name) return;\r
-      if (o.date.constructor == Object)\r
-        o.date = new Date(o.date.year, o.date.month, o.date.day);\r
-\r
-      hash[o.date.toDateString()] = o;\r
-    });\r
-    return $H(hash);\r
-  },\r
-\r
-//  toScheduleHash: function(object) {\r
-//    var calendar = this;\r
-//    var hash = {};\r
-//\r
-//    this.recurrence(object, function(o) {\r
-//      if (!o.description) return;\r
-//      if (o.date.constructor == Object)\r
-//        o.date = new Date(o.date.year, o.date.month, o.date.day);\r
-//\r
-//      var date = o.date.toDateString();\r
-//      o.date = date;\r
-//\r
-//      if (hash[date]) {\r
-//        hash[date].push(o);\r
-//        hash[date].sort(calendar.sortSchedule);\r
-//      } else {\r
-//        hash[date] = [o];\r
-//      }\r
-//    });\r
-//    return $H(hash);\r
-//  },\r
-\r
-  inspectArgument: function(object, time) {\r
-    return this.builder.inspectArgument(object, time);\r
-  },\r
-\r
-  inspectDateArgument: function(date) {\r
-    return this.builder.inspectDateArgument(date);\r
-  },\r
-\r
-  sortSchedule: function(a, b) {\r
-    if (a.start.hour == b.start.hour) {\r
-      if (a.start.min == b.start.min)\r
-        return 0;\r
-      if (a.start.min < b.start.min)\r
-        return -1;\r
-      return 1;\r
-    }\r
-    if (a.start.hour < b.start.hour) return -1;\r
-\r
-    return 1;\r
-  },\r
-\r
-  hasSelectedDate: function() {\r
-    return (this.getSelected().length != 0);\r
-  },\r
-\r
-  getDate: function(element) {\r
-    return this.builder.getDate(element);\r
-  },\r
-\r
-  isRegularHoliday: function(day) {\r
-    return this.options.regularHoliday.include(day);\r
-  },\r
-\r
-  isHoliday: function(date) {\r
-    return this.options.holidays[date.toDateString()];\r
-  },\r
-\r
-  isScheduleDay: function(date) {\r
-    return this.options.schedules[date.toDateString()];\r
-  },\r
-\r
-  cacheSchedule: function(schedule) {\r
-    this.cached = schedule;\r
-    schedule.start_old = Object.clone(schedule.start);\r
-    schedule.finish_old = Object.clone(schedule.finish);\r
-  }\r
-}\r
-\r
-\r
-/**\r
- * AbstractCalendar Class\r
- */\r
-var AbstractCalendar = Class.create();\r
-AbstractCalendar.id = {\r
-  container:         'container',\r
-  scheduleContainer: 'scheduleContainer',\r
-  selector:          'selector'\r
-}\r
-AbstractCalendar.prototype = {\r
-  destroy:     Prototype.emptyFunction,\r
-  beforeBuild: Prototype.emptyFunction,\r
-\r
-  build: function() {\r
-    this.header = this.buildHeader();\r
-    var node = Builder.node(\r
-      'DIV', \r
-      {\r
-        id:        this.getContainerId(),\r
-        className: this.calendar.classNames.joinClassNames('container')\r
-      },\r
-      [this.header, this.buildCalendar()]);\r
-\r
-    return node;\r
-  },\r
-\r
-  buildHeader: function() {\r
-    var headerNodes = Builder.node('TR');\r
-    headerNodes.appendChild(this.buildHeaderLeft());\r
-    headerNodes.appendChild(this.buildHeaderCenter());\r
-    headerNodes.appendChild(this.buildHeaderRight());\r
-    \r
-    className = this.calendar.classNames.joinClassNames('header');\r
-    var tbody = Builder.node('TBODY', [headerNodes]);\r
-    return Builder.node('TABLE', {className: className}, [tbody]);\r
-  },\r
-\r
-  buildSelector: function() {\r
-    // create selector\r
-    var selector = Builder.node('DIV', {id: this.getSelectorId()});\r
-    this.calendar.classNames.addClassNames(selector, 'selector');\r
-    Element.setOpacity(selector, 0.6);\r
-    Element.hide(selector);\r
-    Element.setStyle(selector, {zIndex: ZindexManager.getIndex()})\r
-    return selector;\r
-  },\r
-\r
-  buildCover: function() {\r
-    this.cover = Builder.node('div', {id: this.calendar.element.id.appendSuffix('cover')});\r
-    this.calendar.classNames.addClassNames(this.cover, 'cover');\r
-    Event.observe(this.cover, 'mousedown', this.calendar.selectDate.bindAsEventListener(this.calendar));\r
-    if (this.calendar.options.displayType != 'month' || this.calendar.options.size != 'samll') {\r
-      Event.observe(this.cover, 'mousemove', this.multipleSelection.bindAsEventListener(this));\r
-    }\r
-    return this.cover;\r
-  },\r
-\r
-  buildScheduleContainer: function() {\r
-    this.container = Builder.node('DIV', {style: 'position: relative', id: this.getScheduleContainerId()});\r
-    return this.container;\r
-  },\r
-\r
-  // the default is empty.\r
-  // overwride this method.\r
-  setScheduleContainerEvent: Prototype.emptyFunction,\r
-\r
-  changeCalendar: function(event) {\r
-    var element = Event.element(event);\r
-    var date    = this.calendar.date;\r
-    var oldDate = new Date(date.toDateString());\r
-\r
-    if (Element.hasClassName(element, Calendar.className.preYearMark)) {\r
-      date.setFullYear(date.getFullYear() - 1);\r
-    } else if (Element.hasClassName(element, Calendar.className.preMonthMark)) {\r
-      date.setDate(1);\r
-      date.setMonth(date.getMonth() - 1);\r
-    } else if (Element.hasClassName(element, Calendar.className.preWeekMark)) {\r
-      date.setDate(date.getDate() - 7);\r
-    } else if (Element.hasClassName(element, Calendar.className.nextYearMark)) {\r
-      date.setFullYear(date.getFullYear() + 1);\r
-    } else if (Element.hasClassName(element, Calendar.className.nextMonthMark)) {\r
-      date.setDate(1);\r
-      date.setMonth(date.getMonth() + 1);\r
-    } else if (Element.hasClassName(element, Calendar.className.nextWeekMark)) {\r
-      date.setDate(date.getDate() + 7);\r
-    }\r
-\r
-    this.calendar.options.changeCalendar(date, oldDate);\r
-    this.calendar.refresh();\r
-  },\r
-\r
-  clickDeleteImage: function(schedule) {\r
-    if (this.calendar.options.beforeRemoveSchedule(schedule)) {\r
-      this.calendar.removeSchedule(schedule.id, true);\r
-    }\r
-  },\r
-\r
-  showDeleteImage: function(img) {\r
-    Element.show(img);\r
-  },\r
-\r
-  hideDeleteImage: function(img) {\r
-    Element.hide(img);\r
-  },\r
-\r
-  _constrain: function(n, lower, upper) {\r
-    if (n > upper) return upper; \r
-    else if (n < lower) return lower;\r
-    else return n;\r
-  },\r
-\r
-  getContainerId: function() {\r
-    return this.calendar.element.id.appendSuffix(AbstractCalendar.id.container);\r
-  },\r
-\r
-  getScheduleContainerId: function() {\r
-    return this.calendar.element.id.appendSuffix(AbstractCalendar.id.scheduleContainer);\r
-  },\r
-\r
-  setColumnWidth: function() {\r
-    var adjustSize = this.getAdjustSize();\r
-    var container = $(this.getScheduleContainerId()) || this.container;\r
-    var indexes = this.calendar.options.displayIndexes;\r
-    this.column.width = container.offsetWidth / indexes.length - adjustSize;\r
-    if (this.column.width < 0) this.column.width = 0;\r
-  },\r
-\r
-  setCover: function() {\r
-    var container = $(this.getScheduleContainerId()) || this.container;\r
-    if (!this.cover) {\r
-      container.appendChild(this.buildCover());\r
-    }\r
-    Element.setStyle(this.cover, {height: Element.getHeight(container) + 'px'});\r
-  },\r
-\r
-  getDragDistance: function() {\r
-    var adjustSize = this.getAdjustSize();\r
-//    return [this.column.width + adjustSize, this.column.height];\r
-    return [this.column.width + adjustSize, this.column.height / 2];\r
-  },\r
-\r
-  getWeek: function() {\r
-    var date = this.calendar.date;\r
-    var baseDay = date.getDay();\r
-    var baseDayIndex = date.getDay();\r
-    var findBaseDay = false;\r
-\r
-    return this.calendar.options.displayIndexes.map(function(week, i) {\r
-      var diff = week - baseDay;\r
-      if (!findBaseDay && (diff > 0)) diff -= 7;\r
-      if (baseDayIndex == week) findBaseDay = true;\r
-      return DateUtil.afterDays(date, diff);\r
-    });\r
-  },\r
-\r
-  isSameStartDate: function(schedule, date) {\r
-    return ((date.getFullYear() == schedule.start.year) &&\r
-      (date.getMonth() == schedule.start.month) && (date.getDate() == schedule.start.day));\r
-  },\r
-\r
-  isSameFinishDate: function(schedule, date) {\r
-    return ((date.getFullYear() == schedule.finish.year) &&\r
-      (date.getMonth() == schedule.finish.month) && (date.getDate() == schedule.finish.day));\r
-  },\r
-\r
-  getSelectorId: function() {\r
-    return this.calendar.element.id.appendSuffix(AbstractCalendar.id.selector);\r
-  },\r
-\r
-  clickDateText: function(event, date) {\r
-    Event.stop(event);\r
-    this.calendar.date = date;\r
-    this.calendar.options.displayType = 'day';\r
-    this.calendar.refresh();\r
-  },\r
-\r
-  getAdjustSize: function() {\r
-    return UserAgent.isIE() ? 3 : 3;\r
-  },\r
-\r
-  setContainerInfo: function() {\r
-    this.container           = $(this.getScheduleContainerId());\r
-    this.containerDimensions = Element.getDimensions(this.container);\r
-    this.containerOffset     = Position.cumulativeOffset(this.container);\r
-  },\r
-\r
-  mouseOverSubSchedule: function(items) {\r
-    items.each(function(item) {\r
-      Element.addClassName(item, Calendar.className.scheduleItemSelect);\r
-    });\r
-  },\r
-\r
-  mouseOutSubSchedule: function(items) {\r
-    items.each(function(item) {\r
-      Element.removeClassName(item, Calendar.className.scheduleItemSelect);\r
-    });\r
-  },\r
-\r
-  toDate: function(hash) {\r
-    return DateUtil.toDate(hash);\r
-  }\r
-}\r
-\r
-\r
-/**\r
- * CalenderMonth Class\r
- */\r
-var CalendarMonth = Class.create();\r
-CalendarMonth.id = {\r
-  year:              'year',\r
-  month:             'month',\r
-  column:            'column',\r
-  nextYear:          'nextYear',\r
-  nextMonth:         'nextMonth',\r
-  preYear:           'preYear',\r
-  preMonth:          'preMonth',\r
-  calTable:          'calTable',\r
-  scheduleContainer: 'scheduleContainer',\r
-  container:         'container'\r
-}\r
-Object.extend(CalendarMonth.prototype, AbstractCalendar.prototype);\r
-Object.extend(CalendarMonth.prototype, {\r
-\r
-  initialize: function(calendar) {\r
-    this.calendar = calendar;\r
-    this.week     = this.getWeek();\r
-  },\r
-\r
-  /*** Month ***/\r
-  /********************************** build functions **********************************/\r
-  buildHeaderLeft: function() {\r
-    var container = Builder.node('TD');\r
-    this.calendar.classNames.addClassNames(container, 'preYears');\r
-\r
-    var id = this.calendar.element.id.appendSuffix(CalendarMonth.id.preYear);\r
-    var node = Builder.node('DIV', {id: id});\r
-    this.calendar.classNames.addClassNames(node, 'preYearMark');\r
-    Event.observe(node, "click", this.calendar.changeCalendar.bindAsEventListener(this.calendar));\r
-    container.appendChild(node);\r
-\r
-    id = this.calendar.element.id.appendSuffix(CalendarMonth.id.preMonth);\r
-    node = Builder.node('DIV', {id: id});\r
-    this.calendar.classNames.addClassNames(node, 'preMonthMark');\r
-    Event.observe(node, "click", this.calendar.changeCalendar.bindAsEventListener(this.calendar));\r
-    container.appendChild(node);\r
-\r
-    return container;\r
-  },\r
-\r
-  buildHeaderCenter: function() {\r
-    var text = [];\r
-    if (this.calendar.options.monthHeaderFormat) {\r
-      var date = this.calendar.date;\r
-      var templ = new Template(this.calendar.options.monthHeaderFormat);\r
-      text = [templ.evaluate({year: date.getFullYear(), month: date.getMonth() + 1}), ' '];\r
-    }\r
-    var contents = [];\r
-\r
-    var id = this.calendar.element.id.appendSuffix(CalendarMonth.id.month);\r
-    var node = Builder.node('SPAN', {id: id}, [text[0] || DateUtil.months[this.calendar.date.getMonth()]]);\r
-    this.calendar.classNames.addClassNames(node, 'ym');\r
-    contents.push(node);\r
-\r
-    id = this.calendar.element.id.appendSuffix(CalendarMonth.id.year);\r
-    node = Builder.node('SPAN', {id: id}, [text[1] || this.calendar.date.getFullYear()]);\r
-    this.calendar.classNames.addClassNames(node, 'ym');\r
-    contents.push(node);\r
-\r
-    var container = Builder.node('TD', contents);\r
-    this.calendar.classNames.addClassNames(container, 'years');\r
-\r
-    return container;\r
-  },\r
-\r
-  buildHeaderRight: function() {\r
-    var container = Builder.node('TD');\r
-    this.calendar.classNames.addClassNames(container, 'nextYears');\r
-\r
-    var id = this.calendar.element.id.appendSuffix(CalendarMonth.id.nextMonth);\r
-    var node = Builder.node('DIV', {id: id});\r
-    this.calendar.classNames.addClassNames(node, 'nextMonthMark');\r
-    Event.observe(node, "click", this.calendar.changeCalendar.bindAsEventListener(this.calendar));\r
-    container.appendChild(node);\r
-\r
-    id = this.calendar.element.id.appendSuffix(CalendarMonth.id.nextYear);\r
-    node = Builder.node('DIV', {id: id});\r
-    this.calendar.classNames.addClassNames(node, 'nextYearMark');\r
-    Event.observe(node, "click", this.calendar.changeCalendar.bindAsEventListener(this.calendar));\r
-    container.appendChild(node);\r
-\r
-    return container;\r
-  },\r
-  \r
-  buildCalendar: function() {\r
-    var container = Builder.node('DIV');\r
-    var scheduleContainer = Builder.node('DIV',\r
-                              {id: this.getScheduleContainerId(), style: 'position: relative'},\r
-                              [this.buildTableData()]);\r
-    this.setScheduleContainerEvent(scheduleContainer);\r
-\r
-    // create selector\r
-    var selector = this.buildSelector();\r
-    scheduleContainer.appendChild(selector);\r
-    return Builder.node('DIV', [this.buildTableHeader(), scheduleContainer]);\r
-  },\r
-  \r
-  buildTableHeader: function() {\r
-    var weekArray = new Array();\r
-    var self      = this;\r
-    var tbody     = Builder.node('TBODY');\r
-    var tr        = Builder.node('TR', weekArray);\r
-    var width     = 100 / this.calendar.options.displayIndexes.length + '%';\r
-    var lastIndex = this.calendar.options.displayIndexes.last();\r
-\r
-    tbody.appendChild(tr);\r
-\r
-    this.calendar.options.displayIndexes.each(function(i) {\r
-      var id = self.calendar.element.id.appendSuffix(CalendarMonth.id.column);\r
-      var text = self.calendar.options.dayOfWeek[i];\r
-      var node = Builder.node('TH', {id: id.appendSuffix(i)}, [text]);\r
-      node.width = width;\r
-      weekArray.push(node);\r
-      if (lastIndex == i) {\r
-        self.calendar.classNames.addClassNames(node, 'thRight');\r
-      }\r
-      Event.observe(node, 'click', self.selectDay.bindAsEventListener(self));\r
-      tr.appendChild(node);\r
-    });\r
-    \r
-    return Builder.node('TABLE', \r
-      {className: this.calendar.classNames.joinClassNames('table')}, [tbody]);\r
-  },\r
-  \r
-  buildTableData: function() {\r
-    var indexes   = this.calendar.options.displayIndexes;\r
-    var today     = new Date();\r
-    var year      = this.calendar.date.getFullYear();\r
-    var month     = this.calendar.date.getMonth();\r
-    var firstDay  = DateUtil.getFirstDate(year, month).getDay();\r
-    var lastDate  = DateUtil.getLastDate(year, month).getDate();\r
-    var trs       = new Array();\r
-    var tds       = new Array();\r
-    var width     = 100 / indexes.length + '%';\r
-    var lastIndex = indexes.last();\r
-    var node, hday, sday, tmp_date, isOutside, i = null;\r
-\r
-    // set start index\r
-    var weekIndex = this.calendar.options.weekIndex;\r
-    var length    = DateUtil.dayOfWeek.length * 5;\r
-    var i         = null;\r
-    var day       = 1;\r
-    if (weekIndex <= firstDay) {\r
-      i = weekIndex;\r
-      length += i;\r
-    } else {\r
-      i = weekIndex - 7;\r
-      length -= i;\r
-    }\r
-\r
-    var diff = firstDay - weekIndex;\r
-    if (diff < 0) diff + indexes.length;\r
-    if ((lastDate + diff) > length) {\r
-      length += indexes.length;\r
-    }\r
-\r
-    var wday = weekIndex;\r
-    \r
-    var find = 0;\r
-    for (; i < length; i++) {\r
-      if (indexes.include(wday)) {\r
-        if (i < firstDay) {\r
-          tmp_date = new Date(\r
-            this.calendar.date.getFullYear(),\r
-            this.calendar.date.getMonth(),\r
-            i - firstDay + 1\r
-          );\r
-          node = Builder.node('TD');\r
-          node.innerHTML = '&nbsp;';\r
-          node.date = tmp_date;\r
-          node.width = width;\r
-          tds.push(node);\r
-        } else if (day > lastDate) {\r
-          tmp_date = new Date(\r
-            this.calendar.date.getFullYear(),\r
-            this.calendar.date.getMonth(),\r
-            day\r
-          );\r
-          node = Builder.node('TD');\r
-          node.innerHTML = '&nbsp;';\r
-          node.date = tmp_date;\r
-          tds.push(node);\r
-        } else {\r
-          if (i == firstDay) length += find;\r
-          tmp_date = new Date(\r
-            this.calendar.date.getFullYear(),\r
-            this.calendar.date.getMonth(),\r
-            day\r
-          );\r
-          hday = this.calendar.options.holidays[tmp_date.toDateString()];\r
-\r
-          if (this.calendar.options.size == Calendar.size.large) {\r
-            node = this.buildLargeRow(tmp_date, hday, sday, today);\r
-            if (this.calendar.options.dblclickListener) {\r
-              Event.observe(node, 'dblclick', this.calendar.onDblClick.bindAsEventListener(this.calendar));\r
-            }\r
-          } else {\r
-            sday = this.calendar.options.schedules.detect(function(schedule) {\r
-              var startDate = DateUtil.toDate(schedule.start);\r
-              return tmp_date.sameDate(startDate)\r
-            });\r
-            node = this.buildSmallRow(tmp_date, hday, sday, today);\r
-            Event.observe(node, 'mousedown', this.calendar.selectDate.bindAsEventListener(this.calendar));\r
-          }\r
-\r
-          node.width = width;\r
-          node.date = tmp_date;\r
-\r
-          tds.push(node);\r
-        }\r
-        find++;\r
-      }\r
-\r
-      if (i >= firstDay) {\r
-        day++;\r
-      }\r
-\r
-      if (wday == lastIndex) {\r
-        trs.push(Builder.node('TR', tds));\r
-        this.calendar.classNames.addClassNames(tds[tds.length - 1], 'tdRight');\r
-        tds = new Array();\r
-      }\r
-\r
-      if (wday >= 6) {\r
-        wday = 0;\r
-      } else {\r
-        wday++;\r
-      }\r
-    }\r
-\r
-    this.rowMax = trs.length - 1;\r
-    var tbody = Builder.node('TBODY', [trs]);\r
-    this.calendarTable = Builder.node(\r
-    'TABLE', \r
-    {\r
-      id:        this.getCalendarTableId(),\r
-      className: this.calendar.classNames.joinClassNames('table')\r
-    },\r
-    [tbody]);\r
-    return this.calendarTable;\r
-  },\r
-\r
-  buildLargeRow: function(date, holiday, schedule, today) {\r
-    var calendar      = this;\r
-    var row           = Builder.node('TD', {id: this.getDateId(date)});\r
-    var dateContainer = Builder.node('DIV');\r
-\r
-    this.calendar.classNames.addClassNames(dateContainer, 'dateContainer');\r
-    row.appendChild(dateContainer);\r
-\r
-    var dateNode = null;\r
-    var clickDateText = this.calendar.options.clickDateText;\r
-    if (clickDateText) {\r
-      dateNode = Builder.node('A', {href: '#'}, [date.getDate()]);\r
-      Event.observe(dateContainer, 'mousedown', clickDateText.bindAsEventListener(this, date));\r
-    } else if (clickDateText == null) {\r
-      dateNode = Builder.node('A', {href: '#'}, [date.getDate()]);\r
-      Event.observe(dateContainer, 'mousedown', this.clickDateText.bindAsEventListener(this, date));\r
-    } else {\r
-      dateNode = Builder.node('SPAN', [date.getDate()]);\r
-      Element.setStyle(dateNode, {textDecoration: 'none'});\r
-    }\r
-    if (date.days() == today.days()) {\r
-      this.calendar.addHighlightClass(dateNode);\r
-    }\r
-    dateContainer.appendChild(dateNode);\r
-\r
-    if (holiday) {\r
-      this.calendar.setHolidayClass(row);\r
-      var name = Builder.node(\r
-        'SPAN', \r
-        {className: this.calendar.classNames.joinClassNames('holidayName')},\r
-        holiday.name\r
-      );\r
-      dateContainer.appendChild(name);\r
-      if (holiday.onclick) {\r
-        Event.observe(name, "click", holiday.onclick.bindAsEventListener(this));\r
-      }\r
-    } else if (this.calendar.isRegularHoliday(date.getDay())) {\r
-      this.calendar.setRegularHolidayClass(row);\r
-    } else {\r
-      this.calendar.setWorkdayClass(row);\r
-    }\r
-\r
-    return row;\r
-  },\r
-\r
-  buildSmallRow: function(date, holiday, schedule, today) {\r
-    var row = Builder.node('TD', {id: this.getDateId(date)}, [date.getDate()]);\r
-    if (schedule) {\r
-      this.calendar.setScheduleClass(row);\r
-      var first = schedule[0];\r
-      if (first) row.title = first.description.stripTags();\r
-    } else if (holiday) {\r
-      this.calendar.setHolidayClass(row);\r
-      row.title = holiday.name.stripTags();\r
-    } else if (this.calendar.isRegularHoliday(date.getDay())) {\r
-      this.calendar.setRegularHolidayClass(row);\r
-    } else {\r
-      this.calendar.setWorkdayClass(row);\r
-    }\r
-\r
-    if (date.days() == today.days()) {\r
-      this.calendar.addHighlightClass(row);\r
-    }\r
-    return row;\r
-  },\r
-\r
-  beforeBuild: function() {\r
-    this.column = {};\r
-    var rule = CssUtil.getCssRuleBySelectorText('.' + Calendar.className.table + ' td');\r
-    this.column.height = parseInt(rule.style['height'], 10);\r
-    \r
-    rule = CssUtil.getCssRuleBySelectorText('.' + Calendar.className.dateContainer);\r
-    this.column.dateTextHeight = parseInt(rule.style['height'], 10);\r
-  },\r
-\r
-  /**********************************\r
-   ***** for make schedule item *****\r
-   **********************************/\r
-  buildSchedule: function(schedule) {\r
-    var id      = 'scheduleItem_' + schedule.id;\r
-    var canEdit = (schedule.edit == undefined || schedule.edit);\r
-    var item    = Builder.node('DIV', {id: id});\r
-    var start = DateUtil.toDate(schedule.start);\r
-    var finish = DateUtil.toDate(schedule.finish);\r
-    if (start.sameDate(finish)) {\r
-      this.calendar.classNames.addClassNames(item, 'scheduleItemNoBorder');\r
-    } else {\r
-      this.calendar.classNames.addClassNames(item, 'scheduleItemLarge');\r
-    }\r
-\r
-    if (canEdit) {\r
-      var deleteImg = Builder.node('DIV',\r
-        {\r
-          id:        'scheduleDeleteImg_' + schedule.id,\r
-          className: this.calendar.classNames.joinClassNames('deleteImg')\r
-        }\r
-      );\r
-      Element.hide(deleteImg);\r
-      item.appendChild(deleteImg);\r
-\r
-      // set click event on a image.\r
-      Event.observe(deleteImg, 'click', this.clickDeleteImage.bind(this, schedule));\r
-      Event.observe(item, 'mouseover', this.showDeleteImage.bind(this, deleteImg));\r
-      Event.observe(item, 'mouseout', this.hideDeleteImage.bind(this, deleteImg));\r
-    }\r
-\r
-    // set dblclick event on a schedule item.\r
-    if (this.calendar.options.dblclickSchedule) {\r
-      Event.observe(\r
-        item, 'dblclick', this.calendar.options.dblclickSchedule.bind(this, schedule));\r
-    }\r
-\r
-    // drag handler\r
-    var handler = null;\r
-    if (canEdit) {\r
-      handler = Builder.node('DIV', {className: this.calendar.classNames.joinClassNames('scheduleHandler')});\r
-      item.appendChild(handler);\r
-    }\r
-\r
-    var icon = null;\r
-    if (schedule.icon) {\r
-      icon = Builder.node('IMG', {src: schedule.icon, alt: 'icon', style: 'float: left;'});\r
-      item.appendChild(icon);\r
-    }\r
-\r
-    // private mark\r
-    if (!schedule.publicity) {\r
-      icon = Builder.node('DIV', {id: 'private_img_' + schedule.id});\r
-      this.calendar.classNames.addClassNames(icon, 'privateImg');\r
-      item.appendChild(icon);\r
-    }\r
-\r
-    var body = Builder.node('DIV');\r
-    var text = this.getTimeText(schedule.start, schedule.finish);\r
-    text = Builder.node('DIV', {id: id + '_text', style: 'float: left;'}, [text]);\r
-    this.calendar.classNames.addClassNames(text, 'scheduleTimeArea');\r
-    item.appendChild(text);\r
-    var description = schedule.description.unescapeHTML();\r
-    item.appendChild(Builder.node('DIV', {id: id + '_description'}, [description]));\r
-\r
-    item.title = description;\r
-    item.schedule = schedule;\r
-\r
-    return [item, handler];\r
-  },\r
-\r
-  adjustScheduleStyle: function(item, rowIndex, cellIndex, holder) {\r
-    var self   = this;\r
-    var height = parseInt(Element.getStyle(item, 'height'), 10);\r
-    var top    = parseInt(Element.getStyle(item, 'top'), 10);\r
-    var range  = this.getScheduleRange(item);\r
-    var tops   = [];\r
-\r
-    holder.each(function(holded) {\r
-      var holdedRange = self.getScheduleRange(holded);\r
-      if (range.any(function(r) {return holdedRange.include(r)})) {\r
-        tops.push(holded.topIndex);\r
-      }\r
-    });\r
-\r
-    var index = $R(0, tops.length, true).detect(function(i) {return !tops.include(i)});\r
-    if (isNaN(index)) index = tops.length;\r
-    item.topIndex = index;\r
-    Element.setStyle(item, {top: top + (height + 2) * index + 'px'});\r
-  },\r
-\r
-  getScheduleRange: function(item) {\r
-    return $R(0, item.length, true).map(function(i) {return item.cellIndex + i});\r
-  },\r
-\r
-  setScheduleBaseStyle: function(item, rowIndex, cellIndex, length) {\r
-    var oneDay     = this.column.height;\r
-    var top        = oneDay * rowIndex + this.column.dateTextHeight;\r
-    var adjustSize = this.getAdjustSize();\r
-    Element.setStyle(item, {\r
-      top:   top + 'px',\r
-      width: this.column.width * length + adjustSize * (length - 1) + 'px',\r
-      left:  this.column.width * cellIndex + cellIndex * adjustSize + 'px'\r
-    });\r
-  },\r
-\r
-  afterBuild: function() {\r
-    this.scheduleNodes = [];\r
-    if (this.calendar.options.size != Calendar.size.small) {\r
-      this.setContainerInfo();\r
-      this.setColumnWidth();\r
-      this.setCover();\r
-      this.setSelector();\r
-      var self         = this;\r
-      var indexes      = this.calendar.options.displayIndexes;\r
-      var distance     = this.getDragDistance();\r
-      var holders      = $R(0, $(this.getCalendarTableId()).rows.length).map(function() {return []});\r
-      var date         = this.calendar.date;\r
-      var calStartDate = DateUtil.getFirstDate(date.getFullYear(), date.getMonth());\r
-      var calStart     = calStartDate.days();\r
-      var calFinish    = DateUtil.getLastDate(date.getFullYear(), date.getMonth()).days();\r
-  \r
-      self.calendar.options.schedules.each(function(schedule, index) {\r
-        var startDate  = self.toDate(schedule.start);\r
-        var start      = startDate.days();\r
-        var finishDate = self.toDate(schedule.finish);\r
-        var finish     = finishDate.days();\r
-        var days       = self.getDayDiff(schedule);\r
-  \r
-        if ((start >= calStart && start <= calFinish) || (finish >= calStart && finish <= calFinish)) {\r
-          if (!calStartDate.sameMonth(startDate)) startDate = calStartDate;\r
-          self.setSchedule(schedule, holders, distance, days);\r
-        }\r
-      });\r
-    }\r
-  },\r
-\r
-  setSchedule: function(schedule, holders, distance, days) {\r
-    var items      = [];\r
-    var rowMax     = 6;\r
-    var startDate  = DateUtil.toDate(schedule.start);\r
-    var date       = startDate;\r
-    var indexes    = this.calendar.options.displayIndexes;\r
-    var targetDate = this.calendar.options.initDate;\r
-\r
-    while (days >= 0) {\r
-      if (date.getMonth() != startDate.getMonth()) break;\r
-      var lastWday = this.getLastWday(date);\r
-\r
-      var length = days + 1;\r
-      var firstDay   = date.getDay();\r
-      var finishDate = date.advance({days: length - 1});\r
-\r
-      if (finishDate.getTime() > lastWday.getTime()) {\r
-        finishDate = lastWday; \r
-        length = finishDate.days() - date.days() + 1;\r
-      }\r
-      var finishDay  = finishDate.getDay();\r
-      var wdays      = null;\r
-      if (firstDay <= finishDay) {\r
-        wdays = $R(firstDay, finishDay, false);\r
-      } else {\r
-        wdays = $R(0, finishDay, false).toArray().concat($R(firstDay, rowMax, false).toArray());\r
-      }\r
-      var itemLength = wdays.findAll(function(day) {\r
-        return indexes.include(day);\r
-      }).length;\r
-\r
-      var cellDate = new Date(date.getTime());\r
-      while (cellDate.days() <= finishDate.days()) {\r
-        if (cellDate.getMonth() == targetDate.getMonth()) {\r
-          var cellPosition = this.getCellPosition(cellDate.getDate());\r
-          if (cellPosition) {\r
-            var rowIndex = cellPosition.rowIndex;\r
-            var cellIndex = cellPosition.cellIndex;\r
-    \r
-            // create a schedule node.\r
-            var result = this.buildSchedule(schedule);\r
-            var item = result.first();\r
-            item.length = itemLength;\r
-            item.cellIndex = cellIndex;\r
-            this.container.appendChild(item);\r
-      \r
-            // set style(position and size) of a schedule item.\r
-            this.setScheduleBaseStyle(item, rowIndex, cellIndex, itemLength);\r
-            var left = this.adjustScheduleStyle(item, rowIndex, cellIndex, holders[rowIndex]);\r
-      \r
-            if (schedule.edit == undefined || schedule.edit) {\r
-              this.setDraggable(item, result.last(), distance);\r
-              this.setResize(item);\r
-            }\r
-      \r
-            holders[rowIndex].push(item);\r
-            this.scheduleNodes.push(item);\r
-            break;\r
-          } else if (indexes.include(cellDate.getDay())) {\r
-            itemLength--;\r
-          }\r
-        } else if (indexes.include(cellDate.getDay())) {\r
-          itemLength--;\r
-        }\r
-        cellDate = cellDate.advance({days: 1});\r
-      }\r
-  \r
-      if (items.length == 0) {\r
-        days -= length;\r
-      } else {\r
-        days =- 7;\r
-      }\r
-\r
-      var date = finishDate.advance({days: 1});\r
-      if (item) items.push(item);\r
-    }\r
-\r
-    var self = this;\r
-    items.each(function(item) {\r
-      Event.observe(item, 'mouseover', self.mouseOverSubSchedule.bind(this, items));\r
-      Event.observe(item, 'mouseout', self.mouseOutSubSchedule.bind(this, items));\r
-    });\r
-  },\r
-\r
-  getLastWday: function(date) {\r
-    var index = this.calendar.wdays.indexOf(date.getDay()) + 1;\r
-    return date.advance({days: this.calendar.wdays.length - index});\r
-  },\r
-\r
-  setSelector: function() {\r
-    var selector = $(this.getSelectorId());\r
-    Element.setStyle(selector, {\r
-      width:  this.column.width + 'px',\r
-      height: this.column.height - 2 + 'px'\r
-    });\r
-  },\r
-\r
-  // set draggalbe event\r
-  setDraggable: function(item, handle, distance) {\r
-    var self       = this;\r
-    var offset     = Position.cumulativeOffset(this.container);\r
-    var selector   = $(this.getSelectorId());\r
-    var cWidth     = this.column.width;\r
-    var cHeight    = this.column.height;\r
-    var rowMax     = this.rowMax;\r
-    var cellMax    = this.calendar.options.displayIndexes.length - 1;\r
-    var adjustSize = this.getAdjustSize();\r
-\r
-    new Draggable(item, \r
-      {\r
-        handle:      handle,\r
-        scroll:      window,\r
-        starteffect: Prototype.emptyFunction,\r
-        endeffect:   Prototype.emptyFunction,\r
-        onStart: function(draggalbe) {\r
-          Element.show(selector);\r
-        },\r
-        onDrag: function(draggable, event) {\r
-          var element   = draggable.element;\r
-          var top       = parseInt(Element.getStyle(element, 'top'), 10);\r
-          var rowIndex  = Math.floor(top / cHeight);\r
-          var left      = parseInt(Element.getStyle(element, 'left'), 10);\r
-          var cellIndex = Math.floor(left / cWidth);\r
-\r
-          if ((cellIndex >= 0 && rowIndex >= 0) &&\r
-            (cellIndex <= cellMax && rowIndex <= rowMax)) {\r
-            Element.setStyle(selector, {\r
-              left: cWidth * cellIndex + adjustSize * cellIndex + 'px',\r
-              top:  cHeight * rowIndex + 'px'\r
-            });\r
-          }\r
-        },\r
-        onEnd: function(draggable) {\r
-          Element.hide(selector);\r
-          self.changeSchedule(draggable);\r
-        }\r
-      }\r
-    );\r
-  },\r
-\r
-  // set resize event\r
-  setResize: function(item) {\r
-    var self = this;\r
-    new CalendarResizeableEx(item, {\r
-      left:        0,\r
-      top:         0,\r
-      bottom:      0,\r
-      distance:    this.column.width,\r
-      restriction: true,\r
-      resize: function(element) {\r
-        self.updateTirm(element);\r
-      }\r
-    });\r
-  },\r
-\r
-  /********************************** public method **********************************/\r
-  getDate: function(element) {\r
-    if (!element) return;\r
-    var date = this.calendar.date;\r
-    if (element.constructor == String)\r
-      return new Date(date.getFullYear(), date.getMonth(), element);\r
-    else\r
-      return new Date(date.getFullYear(), date.getMonth(), element.id.getSuffix());\r
-  },\r
-\r
-  abstractSelect: function(event, method) {\r
-    var element = null;\r
-    if (this.calendar.options.size == 'large') {\r
-      element = this.findClickedElement(event);\r
-    } else {\r
-      element = Event.element(event);\r
-      if (element.tagName != 'TD') {\r
-        element = Element.getParentByTagName(['TD'], element);\r
-      }\r
-    }\r
-    if (element && element.id) {\r
-      var date = this.getDate(element);\r
-      method(date, element);\r
-    }\r
-  },\r
-\r
-  getSelectedTerm: function() {\r
-    var self = this;\r
-    var elements = this.calendar.getSelected();\r
-    if (elements && elements.length > 0) {\r
-      return [elements.first(), elements.last()].map(function(e) {\r
-        return self.getDate(e);\r
-      });\r
-    }\r
-    return null;\r
-  },\r
-\r
-  /********************************** private method **********************************/\r
-  selectDay: function(event) {\r
-    var calendar = this.calendar;\r
-    var th = Event.element(event);\r
-    if (th.tagName != 'TH')\r
-      th = Element.getParentByTagName('TH', th);\r
-\r
-    this.iterateTable({doCell: function(cell) {\r
-      if ((cell.cellIndex == th.cellIndex) && cell.id)\r
-        calendar.addSelectedClass(cell);\r
-    }});\r
-  },\r
-\r
-  inspectArgument: function(object, time) {\r
-    var self = this;\r
-    var dates = this.calendar.getSelected();\r
-    var result = [];\r
-\r
-    self.calendar.recurrence(object, function(o) {\r
-      if (!o.date) {\r
-        dates.each(function(d) {\r
-          var param = {};\r
-          if (!o.date) {\r
-            param = {date: self.getDate(d)};\r
-            if (time) {\r
-              param.start = {hour: 0, min: 0};\r
-              param.finish = {hour: 0, min: 0};\r
-            }\r
-          }\r
-          Object.extend(param, o);\r
-          result.push(param);\r
-        });\r
-      } else if (o.date.constructor == Object) {\r
-        o.date = new Date(o.date.year, o.date.month, o.date.day);\r
-        result.push(o);\r
-      } else {\r
-        result.push(o);\r
-      }\r
-    });\r
-    return result;\r
-  },\r
-\r
-  inspectDateArgument: function(date) {\r
-    if (date) {\r
-      map = [];\r
-      this.calendar.recurrence(date, function(d) {\r
-        if (d.constructor == Object) \r
-           map.push(new Date(d.year, d.month, d.day));\r
-        else \r
-          map.push(d);\r
-      });\r
-      return map;\r
-    } else {\r
-      var calendar = this;\r
-      var dates = this.calendar.getSelected();\r
-      if (dates.length == 0) return null;\r
-\r
-      return dates.collect(function(d) {\r
-        return calendar.getDate(d);\r
-      });\r
-    }\r
-  },\r
-\r
-  findClickedElement: function(event) {\r
-    var container = $(this.getScheduleContainerId());\r
-    var position = Position.cumulativeOffset(container);\r
-    var scrollTop = Position.realOffset(container).last();\r
-    scrollTop -= document.documentElement.scrollTop || document.body.scrollTop;\r
-    var x = Event.pointerX(event) - position[0];\r
-    var y = Event.pointerY(event) - position[1] + scrollTop;\r
-    var rowIndex = Math.floor(y / this.column.height);\r
-    var cellIndex = Math.floor(x / this.column.width);\r
-    return $(this.calendarTable.rows[rowIndex].cells[cellIndex]);\r
-  },\r
-\r
-  multipleSelection: function(event) {\r
-    if (!this.calendar.selectedBase || !this.calendar.mouseDown) return;\r
-    var self = this;\r
-    var calendar = this.calendar;\r
-    var selected = this.calendar.selectedBase;\r
-\r
-    this.abstractSelect(event, function(date, element) {\r
-      var selectedElement = $(selected.id);\r
-\r
-      var range = calendar.createRange(\r
-        parseInt(selectedElement.id.getSuffix()),\r
-        parseInt(element.id.getSuffix())\r
-      );\r
-\r
-      self.iterateTable({doCell: function(cell) {\r
-        if (cell.tagName != 'TD' || !cell.id) throw $continue;\r
-        var id = parseInt(cell.id.getSuffix());\r
-        \r
-        if (range.include(id)) {\r
-          calendar.addSelectedClass(cell);\r
-        } else {\r
-          calendar.removeSelectedClass(cell);\r
-        }\r
-      }});\r
-    });\r
-  },\r
-\r
-  iterateTable: function() {\r
-    var options = Object.extend({\r
-      doTable: null,\r
-      doRow: null,\r
-      doCell: null\r
-    }, arguments[0]);\r
-    \r
-    var calendar = $(this.getCalendarTableId());\r
-    if (options.doTable) {\r
-      options.doTable(calendar)\r
-    };\r
-\r
-    $A(calendar.rows).each(function(row) {\r
-      if (options.doRow) {\r
-        options.doRow(row);\r
-      }\r
-      $A(row.cells).each(function(cell) {\r
-        if (options.doCell) {\r
-          options.doCell(cell);\r
-        }\r
-      });\r
-    });\r
-  },\r
-\r
-  findRow: function(rowIndex) {\r
-    var table = $(this.getCalendarTableId());\r
-    return $A(table.rows).detect(function(row) {\r
-      return row.rowIndex == rowIndex;\r
-    });\r
-  },\r
-\r
-  findCell: function(rowIndex, cellIndex) {\r
-    return $A(this.findRow(rowIndex).cells).detect(function(cell) {\r
-      return cell.cellIndex == cellIndex;\r
-    });\r
-  },\r
-\r
-  getCalendarTableId: function() {\r
-    return this.calendar.element.id.appendSuffix(CalendarMonth.id.calTable);\r
-  },\r
-\r
-  getDateId: function(date) {\r
-    var day = null;\r
-    if (date.constructor == Date) {\r
-      day = date.getDate();\r
-    } else {\r
-      day = date;\r
-    }\r
-    return this.calendar.element.id.appendSuffix(day);\r
-  },\r
-\r
-  getCell: function(day) {\r
-    return $(this.getDateId(day));\r
-  },\r
-\r
-  getCellPosition: function(day) {\r
-    var cell = this.getCell(day);\r
-    if (cell) {\r
-      var row  = Element.getParentByTagName(['tr'], cell);\r
-      return {cellIndex: cell.cellIndex, rowIndex: row.rowIndex};\r
-    }\r
-  },\r
-\r
-  changeSchedule: function(draggable) {\r
-    var element = draggable.element;\r
-    var schedule = element.schedule;\r
-\r
-    var top       = parseInt(Element.getStyle(element, 'top'), 10);\r
-    var rowIndex  = Math.floor(top / this.column.height);\r
-    var left      = parseInt(Element.getStyle(element, 'left'), 10);\r
-    var cellIndex = Math.floor(left / this.column.width);\r
-    var table     = $(this.getCalendarTableId());\r
-    var rowMax    = table.rows.length - 1;\r
-    var cellMax   = this.calendar.options.displayIndexes.length - 1;\r
-\r
-    if ((cellIndex >= 0 && rowIndex >= 0) &&\r
-        (cellIndex <= cellMax && rowIndex <= rowMax)) {\r
-      var cell = this.findCell(rowIndex, cellIndex);\r
-      var date = cell.date;\r
-      var diff = this.getDayDiff(schedule);\r
-\r
-      var finish = date.advance({days: diff});\r
-      if (\r
-        schedule.start.month  == date.getMonth() &&\r
-        schedule.start.day    == date.getDate() &&\r
-        schedule.finish.month == finish.getMonth() &&\r
-        schedule.finish.day   == finish.getDate()\r
-      ) {this.calendar.refreshSchedule(); return;}\r
-\r
-      schedule.start.month  = date.getMonth();\r
-      schedule.start.day    = date.getDate();\r
-      schedule.finish.month = finish.getMonth();\r
-      schedule.finish.day   = finish.getDate();\r
-\r
-      this.calendar.refreshSchedule();\r
-      this.calendar.options.changeSchedule(schedule);\r
-    } else {\r
-      this.calendar.refreshSchedule();\r
-    }\r
-  },\r
-\r
-  updateTirm: function(element) {\r
-    var schedule    = element.schedule;\r
-    var width       = parseInt(Element.getStyle(element, 'width'));\r
-    var top         = parseInt(Element.getStyle(element, 'top'));\r
-    var left        = parseInt(Element.getStyle(element, 'left'));\r
-    var cellIndex   = Math.round((left + width) / this.column.width) - 1;\r
-    var rowIndex    = Math.round(top / this.column.height);\r
-    var cell        = this.findCell(rowIndex, cellIndex);\r
-\r
-    var oldFinish  = schedule.finish;\r
-    var newFinish  = cell.date.toHash();\r
-    newFinish.hour = oldFinish.hour;\r
-    newFinish.min  = oldFinish.min;\r
-\r
-    if (DateUtil.toDate(schedule.start).getTime() >= DateUtil.toDate(newFinish).getTime()) {\r
-      var maxHour = 23;\r
-      var maxMin = 55;\r
-      if (schedule.start.hour == maxHour && schedule.start.min == maxMin) {\r
-        this.calendar.refreshSchedule();\r
-        this.calendar.options.updateTirm();\r
-        return;\r
-      } else {\r
-        newFinish.hour = maxHour;\r
-        newFinish.min  = maxMin;\r
-      }\r
-    }\r
-    schedule.finish = newFinish;\r
-\r
-    this.calendar.refreshSchedule();\r
-    this.calendar.options.updateTirm(schedule);\r
-  },\r
-\r
-  getTimeText: function(start, finish) {\r
-    var calendar = this.calendar;\r
-    return calendar.formatTime(start);\r
-  },\r
-\r
-  getDayDiff: function(schedule) {\r
-    return DateUtil.numberOfDays(this.toDate(schedule.start), this.toDate(schedule.finish));\r
-  }\r
-});\r
-\r
-\r
-/**\r
- * CalendarWeek Class\r
- */\r
-var CalendarWeek= Class.create();\r
-CalendarWeek.id = {\r
-  columnContainer: 'columnContainer',\r
-  columnHeader:    'columnHeader',\r
-  column:          'column',\r
-  next:            'next',\r
-  pre:             'pre'\r
-}\r
-Object.extend(CalendarWeek.prototype, AbstractCalendar.prototype);\r
-Object.extend(CalendarWeek.prototype, {\r
-\r
-  initialize: function(calendar) {\r
-    this.calendar = calendar;\r
-    this.week     = this.getWeek();\r
-    this.setDisplayTime();\r
-  },\r
-\r
-  /*** Week ***/\r
-  /********************************** build functions **********************************/\r
-  buildHeaderLeft: function() {\r
-    var container = Builder.node('TD');\r
-    this.calendar.classNames.addClassNames(container, 'preYears');\r
-\r
-    var id = this.calendar.element.id.appendSuffix(CalendarWeek.id.pre);\r
-    var node = Builder.node('DIV', {id: id});\r
-    this.calendar.classNames.addClassNames(node, 'preWeekMark');\r
-    Event.observe(node, "click", this.calendar.changeCalendar.bindAsEventListener(this.calendar));\r
-    container.appendChild(node);\r
-\r
-    return container;\r
-  },\r
-\r
-  buildHeaderCenter: function() {\r
-    var contents = [];\r
-    var texts    = [];\r
-    if (this.calendar.options.weekHeaderFormat) {\r
-      texts = [this.formatHeaderDate(this.week.first()), '-', this.formatHeaderDate(this.week.last())];\r
-    }(this.week[0], this.week.last()) || [];\r
-\r
-    var node = Builder.node('SPAN', [texts[0] || this.week[0].toDateString()]);\r
-    this.calendar.classNames.addClassNames(node, 'ym');\r
-    contents.push(node);\r
-\r
-    node = Builder.node('SPAN', [texts[1] || '-']);\r
-    this.calendar.classNames.addClassNames(node, 'ym');\r
-    contents.push(node);\r
-\r
-    node = Builder.node('SPAN', [texts.last() || this.week.last().toDateString()]);\r
-    this.calendar.classNames.addClassNames(node, 'ym');\r
-    contents.push(node);\r
-\r
-    var container = Builder.node('TD', contents);\r
-    this.calendar.classNames.addClassNames(container, 'years');\r
-\r
-    return container;\r
-  },\r
-\r
-  formatHeaderDate: function(date) {\r
-    if (this.calendar.options.weekHeaderFormat) {\r
-      return new Template(this.calendar.options.weekHeaderFormat).\r
-        evaluate({year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate()});\r
-    }\r
-    return '';\r
-  },\r
-\r
-  buildHeaderRight: function() {\r
-    var container = Builder.node('TD', {align: 'right'});\r
-    this.calendar.classNames.addClassNames(container, 'nextYears');\r
-\r
-    var id = this.calendar.element.id.appendSuffix(CalendarWeek.id.next);\r
-    var node = Builder.node('DIV', {id: id});\r
-    this.calendar.classNames.addClassNames(node, 'nextWeekMark');\r
-    Event.observe(node, "click", this.calendar.changeCalendar.bindAsEventListener(this.calendar));\r
-    container.appendChild(node);\r
-\r
-    return container;\r
-  },\r
-\r
-  buildCalendar: function() {\r
-    var table = Builder.node('TABLE', {id: CalendarWeek.id.columnContainer});\r
-    var tbody = Builder.node('TBODY');\r
-\r
-    this.calendar.classNames.addClassNames(table, 'weekTable');\r
-    table.appendChild(tbody);\r
-    var tr = Builder.node('TR');\r
-    tbody.appendChild(tr);\r
-\r
-    if (this.calendar.options.displayTimeLine) {\r
-      tr.appendChild(this.buildTimeLine());\r
-    }\r
-    tr.appendChild(this.buildCalendarContainer());\r
-\r
-    return table;\r
-  },\r
-\r
-  buildTimeLine: function() {\r
-    var time = new Date();\r
-    var hour = 0, hoursOfDay = 24;\r
-    time.setHours(hour);\r
-    time.setMinutes(0);\r
-    var nodes = [];\r
-\r
-    var node = Builder.node('DIV');\r
-    this.calendar.classNames.addClassNames(node, 'timeLineTimeTop');\r
-    nodes.push(node);\r
-    while (hour < hoursOfDay) {\r
-      if (this.includeDisplayTime(hour)) {\r
-        node = Builder.node('DIV', [this.formatTime(time)]);\r
-        this.calendar.classNames.addClassNames(node, 'timeLineTime');\r
-        nodes.push(node);\r
-      }\r
-      hour++;\r
-      time.setHours(hour);\r
-    }\r
-\r
-    var td = Builder.node('TD', nodes);\r
-    this.calendar.classNames.addClassNames(td, 'timeLine');\r
-    return td;\r
-  },\r
-  \r
-  buildCalendarContainer: function() {\r
-    var table = Builder.node('TABLE');\r
-    var tbody = Builder.node('TBODY');\r
-    table.appendChild(tbody);\r
-    this.calendar.classNames.addClassNames(table, 'weekMainTable');\r
-\r
-    tbody.appendChild(this.buildCalendarHeader());\r
-    tbody.appendChild(this.buildCalendarMain());\r
-    \r
-    return Builder.node('TD', [table]);\r
-  },\r
-\r
-  buildCalendarHeader: function() {\r
-    var indexes        = this.calendar.options.displayIndexes;\r
-    var ths            = [];\r
-    var self           = this;\r
-    var today          = new Date().days();\r
-    var width          = 100 / indexes.length + '%';\r
-    var clickDateText  = this.calendar.options.clickDateText;\r
-    var subHeaderTempl = (this.calendar.options.weekSubHeaderFormat) ? new Template(this.calendar.options.weekSubHeaderFormat) : null;\r
-\r
-    this.week.each(function(w, index) {\r
-      var text = null;\r
-      if (subHeaderTempl) {\r
-        text = subHeaderTempl.evaluate({month: w.getMonth() + 1, day: w.getDate(), wday: self.calendar.options.dayOfWeek[w.getDay()]});\r
-      } else {\r
-        text = w.toDateString().split(' ');\r
-        text.pop();\r
-        text = text.join(' ');\r
-      }\r
-      var link = Builder.node('A', {href: '#'}, [text]);\r
-      if (w.days() == today) self.calendar.addHighlightClass(link);\r
-      var node = Builder.node('DIV', [link]);\r
-      self.calendar.classNames.addClassNames(node, 'headerColumn');\r
-\r
-      if (clickDateText) {\r
-        Event.observe(node, 'mousedown', clickDateText.bindAsEventListener(self, w));\r
-      } else {\r
-        Event.observe(node, 'mousedown', self.clickDateText.bindAsEventListener(self, w));\r
-      }\r
-\r
-      var id = self.calendar.element.id.appendSuffix(CalendarWeek.id.column);\r
-      var th = Builder.node('TH', {id: id.appendSuffix(index)}, [node]);\r
-      th.width = width;\r
-      ths.push(th);\r
-    });\r
-\r
-    var table = Builder.node('TABLE');\r
-    var tbody = Builder.node('TBODY');\r
-    table.appendChild(tbody);\r
-    tbody.appendChild(Builder.node('TR', ths));\r
-    this.calendar.classNames.addClassNames(table, 'weekMainTable');\r
-    return Builder.node('TR', [Builder.node('TD', [table])]);\r
-  },\r
-\r
-  buildCalendarMain: function() {\r
-    var indexes = this.calendar.options.displayIndexes;\r
-    var self = this;\r
-    var tds = [];\r
-    var width = 100.0 / indexes.length + '%';\r
-\r
-    this.week.each(function(w, index) {\r
-      var schedules = self.calendar.options.schedules[w.toDateString()];\r
-      var nodes = [];\r
-      var i = 0, j = 0;\r
-\r
-      while (i < 24) {\r
-        if (self.includeDisplayTime(i)) {\r
-          var node = Builder.node('DIV', {id: self.getDateId(w, i)});\r
-          var hour = i / 1;\r
-          var min = i % 1 * 60;\r
-          node.date = new Date(w.getFullYear(), w.getMonth(), w.getDate(), hour, min, 0);\r
-\r
-          if (nodes.length == 0) {\r
-            self.calendar.classNames.addClassNames(node, 'columnTopDate');\r
-          } else if (i % 1 == 0) {\r
-            self.calendar.classNames.addClassNames(node, 'columnDate');\r
-          } else {\r
-            self.calendar.classNames.addClassNames(node, 'columnDateOdd');\r
-          }\r
-          self.setColumnEvent(node);\r
-          nodes.push(node);\r
-        }\r
-        i += 0.5;\r
-      }\r
-\r
-      var td = Builder.node('TD', nodes);\r
-      td.width = width;\r
-      tds.push(td);\r
-    });\r
-\r
-    this.calendarTable = Builder.node('TABLE', {style: 'position: relative'});\r
-    var tbody = Builder.node('TBODY');\r
-    this.calendarTable.appendChild(tbody);\r
-    tbody.appendChild(Builder.node('TR', tds));\r
-    this.calendar.classNames.addClassNames(this.calendarTable, 'weekMainTable');\r
-    var container = this.buildScheduleContainer();\r
-    container.appendChild(this.calendarTable);\r
-    this.setScheduleContainerEvent(container);\r
-    this.calendar.classNames.addClassNames(container, 'scheduleContainer');\r
-    return Builder.node('TR', [Builder.node('TD', [container])]);\r
-  },\r
-\r
-  setColumnEvent: function(node) {\r
-    // do nothing\r
-  },\r
-\r
-  beforeBuild: function() {\r
-    this.column = {};\r
-    var rule = CssUtil.getCssRuleBySelectorText('.' + Calendar.className.columnDate);\r
-    this.column.height = parseInt(rule.style['height'], 10) + 1;\r
-  },\r
-\r
-  /**********************************\r
-   ***** for make schedule item *****\r
-   **********************************/\r
-  buildSchedule: function(schedule) {\r
-    var id      = 'scheduleItem_' + schedule.id;\r
-    var canEdit = (schedule.edit == undefined || schedule.edit);\r
-    var item    = Builder.node('DIV', {id: id});\r
-    this.calendar.classNames.addClassNames(item, 'scheduleItemLarge');\r
-\r
-    if (canEdit) {\r
-      var deleteImg = Builder.node('DIV',\r
-                        {\r
-                          id: 'scheduleDeleteImg_' + schedule.id,\r
-                          className: this.calendar.classNames.joinClassNames('deleteImg')\r
-                        });\r
-      Element.hide(deleteImg);\r
-      item.appendChild(deleteImg);\r
-  \r
-      // set event on a image.\r
-      Event.observe(deleteImg, 'click', this.clickDeleteImage.bind(this, schedule));\r
-      Event.observe(item, 'mouseover', this.showDeleteImage.bind(this, deleteImg));\r
-      Event.observe(item, 'mouseout', this.hideDeleteImage.bind(this, deleteImg));\r
-    }\r
-\r
-    // set dblclick event on a schedule item.\r
-    if (this.calendar.options.dblclickSchedule) {\r
-      Event.observe(\r
-        item, 'dblclick', this.calendar.options.dblclickSchedule.bind(this, schedule));\r
-    }\r
-\r
-    // drag handler\r
-    var handler = null;\r
-    if (canEdit) {\r
-      handler = Builder.node('DIV', {className: this.calendar.classNames.joinClassNames('scheduleHandler')});\r
-      item.appendChild(handler);\r
-    }\r
-\r
-    var icon = null;\r
-    if (schedule.icon) {\r
-      icon = Builder.node('IMG', {src: schedule.icon, alt: 'icon', style: 'float: left;'});\r
-      item.appendChild(icon);\r
-    }\r
-\r
-    // private mark\r
-    if (!schedule.publicity) {\r
-      icon = Builder.node('DIV', {id: 'private_img_' + schedule.id});\r
-      this.calendar.classNames.addClassNames(icon, 'privateImg');\r
-      item.appendChild(icon);\r
-    }\r
-\r
-    var text = this.getTimeText(schedule.start, schedule.finish);\r
-    text = Builder.node('DIV', {id: id + '_text'}, [text]);\r
-    this.calendar.classNames.addClassNames(text, 'scheduleTimeArea');\r
-\r
-    item.appendChild(text);\r
-    var description = schedule.description.unescapeHTML();\r
-    item.appendChild(Builder.node('DIV', {id: id + '_description'}, [description]));\r
-    item.title = description;\r
-    item.schedule = schedule;\r
-\r
-    return [item, handler];\r
-  },\r
-\r
-  adjustScheduleStyle: function(item, index, holder) {\r
-    var schedule = item.schedule;\r
-    var time     = this.convertHours(schedule);\r
-    var start    = time[0];\r
-    var finish   = time[1];\r
-    var same     = [];\r
-    var self     = this;\r
-\r
-    holder.each(function(h) {\r
-      var hTime = self.convertHours(h.schedule);\r
-      var hStart = hTime[0];\r
-      var hFinish = hTime[1];\r
-\r
-      if (\r
-           ((hStart <= start) && (hFinish > start)) || ((hStart < finish) && (hFinish >= finish)) ||\r
-           ((start <= hStart) && (finish > hStart)) || ((start < hFinish) && (finish >= hFinish))\r
-         ) {\r
-        same.push(h);\r
-      }\r
-    });\r
-\r
-    var adjustSize = index * this.getAdjustSize();\r
-    var left = this.column.width * index + adjustSize;\r
-    if (same.length == 0) {\r
-      Element.setStyle(item, {left: left + 'px'});\r
-    } else {\r
-      same.push(item);\r
-      var width = parseInt(Element.getStyle(item, 'width'), 10) / (same.length) - 2;\r
-      same.each(function(s, i) {\r
-        var adjustLeft = left + width * i + (2 * i);\r
-//        if (i != 0) adjustLeft += 2;\r
-        Element.setStyle(s, {\r
-          width: width + 'px',\r
-          left:  adjustLeft + 'px'\r
-        });\r
-      });\r
-    }\r
-    return left;\r
-  },\r
-\r
-  setScheduleBaseStyle: function(item) {\r
-    var schedule   = item.schedule;\r
-    if (!this.calendar.isSameDate(schedule.start, schedule.finish)) {\r
-      schedule.finish.hour = 24;\r
-      schedule.finish.min  = 0;\r
-    }\r
-\r
-    var time       = this.convertHours(schedule);\r
-    var startTime  = time.first();\r
-    var finishTime = time.last();\r
-    var oneHour    = this.column.height * 2;\r
-    var diff       = this.calendar.getTimeDiff(schedule.start, schedule.finish);\r
-    var rate       = (diff.hour + (diff.min / 60)) || 1;\r
-\r
-    var over   = 0;\r
-    var top    = 0;\r
-    var height = 0;\r
-\r
-    var includeStart  = this.includeDisplayTime(startTime);\r
-    var includeFinish = this.includeDisplayTime(finishTime);\r
-    if (!includeStart && !includeFinish) {\r
-      if ((this.startTime <= startTime && this.startTime <= finishTime) ||\r
-          (startTime < this.finishTime && finishTime < this.finishTime)) {\r
-        top = height = 0;\r
-        Element.hide(item);\r
-      } else {\r
-        top = 0;\r
-        height = oneHour * (this.finishTime - this.startTime) - 3;\r
-      }\r
-    } else {\r
-      if (includeStart) {\r
-        top    = oneHour * (startTime - this.startTime);\r
-        height = oneHour * rate - 3;\r
-      } else {\r
-        top    = 0;\r
-        over   = this.startTime - startTime;\r
-        height = oneHour * (rate - over);\r
-      }\r
-\r
-      if (includeFinish) {\r
-      } else {\r
-        over = finishTime - this.finishTime;\r
-        height -= oneHour * over;\r
-      }\r
-    }\r
-\r
-    try {\r
-      Element.setStyle(item, {\r
-        top:    top + 'px',\r
-        width:  this.column.width + 'px',\r
-        height: height + 'px'\r
-      });\r
-    } catch (e) {}\r
-  },\r
-\r
-  afterBuild: function() {\r
-    this.setContainerInfo();\r
-    this.setColumnWidth();\r
-    this.setCover();\r
-    var self           = this;\r
-    var container      = $(this.getScheduleContainerId());\r
-    var distance       = this.getDragDistance();\r
-    this.scheduleNodes = [];\r
-    var holders        = this.week.map(function() {return []});\r
-    var weekSize       = this.week.legth - 1;\r
-\r
-    this.calendar.options.schedules.each(function(schedule) {\r
-      var items = [];\r
-      var sub, subItem = null;\r
-      self.week.each(function(date, index) {\r
-        if (self.calendar.betweenDate(schedule, date)) {\r
-          if (self.isSameStartDate(schedule, date) && self.isSameFinishDate(schedule, date)) {\r
-            items.push(self.setSchedule(schedule, index, holders, container, distance));\r
-          } else {\r
-            sub = self.copyOneDaySchedule(schedule, date);\r
-            subItem = self.setSchedule(sub, index, holders, container, distance);\r
-            subItem.originalSchedule = schedule;\r
-            items.push(subItem);\r
-          }\r
-        } else if (sub) {\r
-          throw $break;\r
-        }\r
-      });\r
-\r
-      items.each(function(item) {\r
-        Event.observe(item, 'mouseover', self.mouseOverSubSchedule.bind(this, items));\r
-        Event.observe(item, 'mouseout', self.mouseOutSubSchedule.bind(this, items));\r
-      });\r
-    });\r
-  },\r
-\r
-  copyOneDaySchedule: function(schedule, date) {\r
-    var sub = null;\r
-    if (this.isSameStartDate(schedule, date)) {\r
-      sub = this.copySchedule(schedule, date);\r
-      sub.finish.hour = 24;\r
-      sub.finish.min  = 0;\r
-    } else if (this.isSameFinishDate(schedule, date)) {\r
-      sub = this.copySchedule(schedule, date);\r
-      sub.start.hour  = 0;\r
-      sub.start.min   = 0;\r
-    } else {\r
-      sub = this.copySchedule(schedule, date);\r
-      sub.start.hour  = 0;\r
-      sub.start.min   = 0;\r
-      sub.finish.hour = 24;\r
-      sub.finish.min  = 0;\r
-    }\r
-    return sub;\r
-  },\r
-\r
-  copySchedule: function(schedule, date) {\r
-    sub = Object.extend({}, schedule);\r
-    sub.start = {\r
-      year:  date.getFullYear(),\r
-      month: date.getMonth(),\r
-      day:   date.getDate(),\r
-      hour:  schedule.start.hour,\r
-      min:   schedule.start.min\r
-    }\r
-    sub.finish = {\r
-      year:  date.getFullYear(),\r
-      month: date.getMonth(),\r
-      day:   date.getDate(),\r
-      hour:  schedule.finish.hour,\r
-      min:   schedule.finish.min\r
-    }\r
-    return sub;\r
-  },\r
-\r
-  setSchedule: function(schedule, index, holders, container, distance) {\r
-    // create a schedule node.\r
-    var result = this.buildSchedule(schedule);\r
-    var item = result.first();\r
-    container.appendChild(item);\r
-\r
-    // set style(position and size) of a schedule item.\r
-    this.setScheduleBaseStyle(item);\r
-    var left       = this.adjustScheduleStyle(item, index, holders[index]);\r
-    var adjustSize = index * this.getAdjustSize();\r
-    var snapLeft   = this.column.width + adjustSize + 'px';\r
-\r
-    if (schedule.edit == undefined || schedule.edit) {\r
-      this.setDraggable(item, result.last(), container, distance);\r
-      this.setResize(item);\r
-    }\r
-\r
-    holders[index].push(item);\r
-    this.scheduleNodes.push(item);\r
-    return item;\r
-  },\r
-\r
-  getDragDistance: function() {\r
-    var adjustSize = this.getAdjustSize();\r
-    return [this.column.width + adjustSize, this.column.height / 2];\r
-  },\r
-\r
-  // set draggalbe event\r
-  setDraggable: function(item, handle, container, distance) {\r
-    var self = this;\r
-    new Draggable(item, \r
-      {\r
-        handle:      handle,\r
-        scroll:      window,\r
-        starteffect: Prototype.emptyFunction,\r
-        endeffect:   Prototype.emptyFunction,\r
-        snap: function(x, y) {\r
-          var eDimensions = Element.getDimensions(item);\r
-          var pDimensions = Element.getDimensions(container);\r
-          var xy = [x, y].map(function(v, i) { return Math.floor(v/distance[i]) * distance[i] });\r
-          xy = [\r
-            self._constrain(xy[0], 0, pDimensions.width - eDimensions.width),\r
-            self._constrain(xy[1], 0, pDimensions.height - eDimensions.height)\r
-          ];\r
-          return xy;\r
-        },\r
-        onEnd: function(draggable, event) {\r
-          self.changeSchedule(draggable, event);\r
-        },\r
-        change: function(draggable) {\r
-          self.changeTimeDisplay(draggable.element);\r
-        }\r
-      }\r
-    );\r
-  },\r
-\r
-  // set resize event\r
-  setResize: function(item) {\r
-    new CalendarResizeableEx(item, {\r
-      left:        0,\r
-      right:       0,\r
-      distance:    this.column.height / 2,\r
-      restriction: true,\r
-      resize: function(element) {\r
-        this.updateTirm(element);\r
-      }.bind(this),\r
-      change: function(element) {\r
-        this.changeTimeDisplay(element);\r
-      }.bind(this)\r
-    });\r
-  },\r
-\r
-  /********************************** public method **********************************/\r
-  getDate: function(element) {\r
-    return element.date;\r
-  },\r
-\r
-  abstractSelect: function(event, method) {\r
-    var element = this.findClickedElement(event);\r
-    if (element) {\r
-      if (Element.hasClassName(element, Calendar.className.columnDate) ||\r
-          Element.hasClassName(element, Calendar.className.columnDateOdd) ||\r
-          Element.hasClassName(element, Calendar.className.columnTopDate)) {\r
-\r
-        var date = this.getDate(element);\r
-        method(date, element);\r
-      }\r
-    }\r
-  }, \r
-\r
-  getSelectedTerm: function() {\r
-    var self = this;\r
-    var elements = this.calendar.getSelected();\r
-    if (elements && elements.length > 0) {\r
-      var last = elements.last();\r
-      if (last) {\r
-        last = last.date;\r
-      } else {\r
-        last = elements.first().date;\r
-      }\r
-      last = new Date(last.getFullYear(), last.getMonth(),\r
-              last.getDate(), last.getHours(), last.getMinutes(), 0);\r
-      last.setMinutes(last.getMinutes() + 30);\r
-      \r
-      return [elements.first().date, last];\r
-    }\r
-  },\r
-\r
-  /*** Week ***/\r
-  /********************************** private method **********************************/\r
-  setWidth: function(node) {\r
-    Element.setStyle(node, {width: this.column.width + 'px'});\r
-  },\r
-\r
-  inspectArgument: function(object, time) {\r
-    if (object.date) return object;\r
-\r
-    var self = this;\r
-    var dates = this.calendar.getSelected();\r
-    var result = [];\r
-    this.calendar.recurrence(object, function(o) {\r
-      var param = {};\r
-      if (!o.date) {\r
-        param = {date: self.getDate(dates[0])};\r
-        if (!o.start)\r
-          param.start = dates[0].time;\r
-        if (!o.finish)\r
-          param.finish = dates[dates.length - 1].time;\r
-      }\r
-      Object.extend(param, o);\r
-      result.push(param);\r
-    });\r
-\r
-    return result;\r
-  },\r
-\r
-  inspectDateArgument: function(date) {\r
-    if (date) return date;\r
-\r
-    var calendar = this;\r
-    var dates = this.getSelected();\r
-    if (dates.length == 0) return null;\r
-\r
-    return dates.collect(function(d) {\r
-      return calendar.getDate(d);\r
-    });\r
-  },\r
-\r
-  addColumnClass: function(element) {\r
-    if (document.all)\r
-      this.calendar.classNames.addClassNames(element, 'columnWin');\r
-    else\r
-      this.calendar.classNames.addClassNames(element, 'column');\r
-  },\r
-\r
-  getHeaderId: function() {\r
-    return this.calendar.element.id.appendSuffix(CalendarWeek.id.columnHeader);\r
-  },\r
-\r
-  getColumnId: function(i) {\r
-    return this.calendar.element.id.appendSuffix(CalendarWeek.id.column + '_' + i);\r
-  },\r
-\r
-  changeSchedule: function(draggable, event) {\r
-    var element = draggable.element;\r
-    var schedule = element.schedule;\r
-    var time = this.getTimeByElement(element);\r
-    this.calendar.cacheSchedule(schedule);\r
-\r
-    var container = $(this.getScheduleContainerId());\r
-    var dimensions = Element.getDimensions(container);\r
-    var offset = Position.cumulativeOffset(container);\r
-    var scroll = Position.realOffset(container);\r
-    var scrollLeft = scroll[0] - (document.documentElement.scrollLeft || document.body.scrollLeft || 0);\r
-    var scrollTop = scroll[1] - (document.documentElement.scrollTop || document.body.scrollTop || 0);\r
-\r
-    var x = Event.pointerX(event) + scrollLeft;\r
-    var y = Event.pointerY(event) + scrollTop;\r
-\r
-    if (\r
-      offset[0] > x ||\r
-      (offset[0] + dimensions.width) < x ||\r
-      offset[1] > y ||\r
-      (offset[1] + dimensions.height) < y\r
-    ) {this.calendar.refreshSchedule(); return};\r
-\r
-    var left = parseInt(Element.getStyle(element, 'left'));\r
-    var weekIndex = Math.round(left / this.column.width);\r
-    var date = this.week[weekIndex];\r
-\r
-    if (\r
-        schedule.start.year   == date.getFullYear() &&\r
-        schedule.start.month  == date.getMonth() &&\r
-        schedule.start.day    == date.getDate() &&\r
-        schedule.start.hour   == time[0].hour &&\r
-        schedule.start.min    == time[0].min &&\r
-        schedule.finish.year  == date.getFullYear() &&\r
-        schedule.finish.month == date.getMonth() &&\r
-        schedule.finish.day   == date.getDate() &&\r
-        schedule.finish.hour  == time[1].hour &&\r
-        schedule.finish.min   == time[1].min\r
-       ) {this.calendar.refreshSchedule(); return};\r
-\r
-    if (element.originalSchedule) schedule = element.originalSchedule; \r
-    var newStart = {\r
-      year:  date.getFullYear(),\r
-      month: date.getMonth(),\r
-      day:   date.getDate(),\r
-      hour:  time[0].hour,\r
-      min:   time[0].min\r
-    }\r
-    var diff = DateUtil.toDate(newStart).getTime() - DateUtil.toDate(schedule.start).getTime();\r
-    schedule.start = newStart;\r
-    schedule.finish = new Date(DateUtil.toDate(schedule.finish).getTime() + diff).toHash();\r
-\r
-    this.calendar.refreshSchedule();\r
-    this.calendar.options.changeSchedule(schedule);\r
-  },\r
-\r
-  updateTirm: function(element) {\r
-    var schedule = element.schedule;\r
-    var time = this.getTimeByElement(element);\r
-    this.calendar.cacheSchedule(schedule);\r
-\r
-    var left = parseInt(Element.getStyle(element, 'left'));\r
-    var weekIndex = Math.round(left / this.column.width);\r
-    var date = this.week[weekIndex];\r
-\r
-    var isChange = this.isChengeSchedule(element, time);\r
-    if (element.originalSchedule) schedule = element.originalSchedule;\r
-\r
-    if (isChange.start) {\r
-      schedule.start.year  = date.getFullYear();\r
-      schedule.start.month = date.getMonth();\r
-      schedule.start.day   = date.getDate();\r
-      schedule.start.hour  = time[0].hour;\r
-      schedule.start.min   = time[0].min;\r
-    } else if (isChange.finish) {\r
-      schedule.finish.year  = date.getFullYear();\r
-      schedule.finish.month = date.getMonth();\r
-      schedule.finish.day   = date.getDate();\r
-      schedule.finish.hour  = time[1].hour;\r
-      schedule.finish.min   = time[1].min;\r
-    } else {\r
-      return;\r
-    }\r
-\r
-    this.calendar.refreshSchedule();\r
-    this.calendar.options.updateTirm(schedule);\r
-  },\r
-\r
-  changeTimeDisplay: function(element) {\r
-    var schedule = element.schedule;\r
-    var time = this.getTimeByElement(element);\r
-\r
-    var textNode = Element.getElementsByClassName(element, Calendar.className.scheduleTimeArea)[0];\r
-    var text = this.getTimeText(time[0], time[1]);\r
-    textNode.innerHTML = text;\r
-  },\r
-  \r
-  findClickedElement: function(event) {\r
-    var container = $(this.getScheduleContainerId());\r
-    var position = Position.cumulativeOffset(container);\r
-    var scrollTop = Position.realOffset(container).last();\r
-    scrollTop -= document.documentElement.scrollTop || document.body.scrollTop;\r
-    var x = Event.pointerX(event) - position[0];\r
-    var y = Event.pointerY(event) - position[1] + scrollTop;\r
-\r
-    var cellIndex = Math.floor(y / this.column.height);\r
-    var rowIndex = Math.floor(x / this.column.width);\r
-    return $(this.calendarTable.rows[0].cells[rowIndex]).down(cellIndex);\r
-  },\r
-\r
-  multipleSelection: function(event) {\r
-    if (!this.calendar.selectedBase || !this.calendar.mouseDown) return;\r
-    var self = this;\r
-    var calendar = this.calendar;\r
-    var selected = this.calendar.selectedBase;\r
-\r
-    this.abstractSelect(event, function(date, element) {\r
-      var selectedElement = $(selected.id);\r
-      if (selectedElement.date.getDate() != element.date.getDate()) return;\r
-\r
-      var nodes = $A(selectedElement.parentNode.childNodes);\r
-      var ids = [parseInt(selected.id.getSuffix()), parseInt(element.id.getSuffix())];\r
-      ids.sort(function(a, b) {return a - b;});\r
-\r
-      nodes.each(function(n) {\r
-        if (!n.id) throw $continue;\r
-        var id = parseInt(n.id.getSuffix());\r
-        if ((id < ids[0]) || (ids[1] < id)) {\r
-          calendar.removeSelectedClass(n);\r
-        } else if (!Element.hasClassName(n, Calendar.className.selected)) {\r
-          calendar.addSelectedClass(n);\r
-        }\r
-      });\r
-    });\r
-  },\r
-\r
-  getTimeByElement: function(element) {\r
-    var schedule = element.schedule;\r
-    var top      = parseInt(Element.getStyle(element, 'top'), 10);\r
-    var height   = parseInt(Element.getStyle(element, 'height'), 10);\r
-    var oneHour  = this.column.height * 2;\r
-    var distance = 0.25;\r
-\r
-    var startTime  = top / oneHour + this.startTime;\r
-    startTime = Math.round(startTime / distance) * distance;\r
-\r
-    var finishTime = height / oneHour + startTime;\r
-    finishTime = Math.round(finishTime / distance) * distance;\r
-\r
-    var start = {};\r
-    start.hour = Math.floor(startTime);\r
-    start.min  = (startTime - start.hour) * 60;\r
-\r
-    var finish = {};\r
-    finish.hour = Math.floor(finishTime);\r
-    finish.min  = (finishTime - finish.hour) * 60;\r
-\r
-    if (finish.min == 60) {\r
-      finish.hour += 1;\r
-      finish.min = 0;\r
-    }\r
-\r
-    return [start, finish];\r
-  },\r
-\r
-  getDateId: function(date, i) {\r
-    var id = this.calendar.element.id.appendSuffix(date.getDate());\r
-    return id.appendSuffix(i * 10);\r
-  },\r
-\r
-  dateIdToTime: function(id) {\r
-    id = id.getSuffix() / 10;\r
-    var hour = Math.floor(id);\r
-    return {hour: hour, min: (id - hour) * 60};\r
-  },\r
-\r
-  formatTime: function(date) {\r
-    var time = date.toTimeString();\r
-    time = time.split(' ');\r
-    time = time[0].split(':');\r
-    time.pop();\r
-    return time.join(':');\r
-  },\r
-\r
-  /**\r
-   * hours are 0, 0.5, 1, ..., 23.5, 24\r
-   */\r
-  includeDisplayTime: function(hours) {\r
-    return (this.startTime <= hours) && (hours < this.finishTime);\r
-  },\r
-\r
-  /**\r
-   * exsample\r
-   *\r
-   * {hour: 1, min: 30} => 1.5\r
-   */\r
-  convertHours: function(schedule) {\r
-    return [\r
-      schedule.start.hour + schedule.start.min / 60,\r
-      schedule.finish.hour + schedule.finish.min / 60\r
-    ];\r
-  },\r
-\r
-  setDisplayTime: function() {\r
-    this.startTime = this.calendar.options.displayTime.first().hour;\r
-    var finishTime = this.calendar.options.displayTime.last();\r
-    this.finishTime = Math.ceil(finishTime.hour + finishTime.min / 60);\r
-  },\r
-\r
-  getTimeText: function(start, finish) {\r
-    var calendar = this.calendar;\r
-    return calendar.formatTime(start) + ' - ' + calendar.formatTime(finish);\r
-  },\r
-\r
-  isChengeSchedule: function(scheduleElement, newTime) {\r
-    var schedule = scheduleElement.schedule;\r
-    var changeStart = ((schedule.start.hour != newTime[0].hour) || (schedule.start.min != newTime[0].min));\r
-    var changeFinish = ((schedule.finish.hour != newTime[1].hour) || (schedule.finish.min != newTime[1].min));\r
-\r
-    if (scheduleElement.originalSchedule) {\r
-      if (changeStart && changeFinish) {\r
-        var currentDateStart = DateUtil.toDate(schedule.start).getTime();\r
-        var OriginalDateStart = DateUtil.toDate(scheduleElement.originalSchedule.start).getTime();\r
-        if (currentDateStart == OriginalDateStart) {\r
-          changeFinish = false;\r
-        } else {\r
-          changeStart = false;\r
-        }\r
-      }\r
-    }\r
-    return {start: changeStart, finish: changeFinish};\r
-  }\r
-});\r
-\r
-\r
-/**\r
- * CalendarDay Class\r
- */\r
-var CalendarDay = Class.create();\r
-CalendarDay.id = {\r
-  header: 'dayHeader'  \r
-}\r
-Object.extend(CalendarDay.prototype, CalendarWeek.prototype);\r
-Object.extend(CalendarDay.prototype, {\r
-\r
-  initialize: function(calendar) {\r
-    var day       = calendar.date.getDay();\r
-    this.calendar = calendar;\r
-    this.setDisplayTime();\r
-\r
-    this.calendar.options.displayIndexesOld = this.calendar.options.displayIndexes;\r
-    this.calendar.options.displayIndexes    = [day];\r
-    this.calendar.options.weekIndexOld      = this.calendar.options.weekIndex;\r
-    this.calendar.options.weekIndex         = day;\r
-    this.week                               = this.getWeek();\r
-  },\r
-\r
-  destroy: function() {\r
-    this.calendar.options.displayIndexes = this.calendar.options.displayIndexesOld;\r
-    this.calendar.options.weekIndex      = this.calendar.options.weekIndexOld;\r
-    delete this.calendar.options.displayIndexesOld;\r
-    delete this.calendar.options.weekIndexOld;\r
-  },\r
-\r
-  /*** Day ***/\r
-  /********************************** build functions **********************************/\r
-  buildHeaderCenter: function() {\r
-    var headerText = this.calendar.date.toDateString();\r
-    if (this.calendar.options.dayHeaderFormat) {\r
-      var date = this.calendar.date;\r
-      headerText = new Template(this.calendar.options.dayHeaderFormat).evaluate(\r
-        {year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate()});\r
-    }\r
-    var container  = Builder.node('TD');\r
-    this.calendar.classNames.addClassNames(container, 'years');\r
-\r
-    var id = this.calendar.element.id.appendSuffix(CalendarDay.id.header);\r
-    var node = Builder.node('SPAN', {id: id}, [headerText]);\r
-    this.calendar.classNames.addClassNames(node, 'ym');\r
-    container.appendChild(node);\r
-\r
-    return container;\r
-  },\r
-\r
-  /*** Day ***/\r
-  /********************************** private method **********************************/\r
-  changeCalendar: function(event) {\r
-    var element = Event.element(event);\r
-    var oldDate = new Date(this.calendar.date.toDateString());\r
-\r
-    if (Element.hasClassName(element, Calendar.className.preWeekMark)) {\r
-      this.calendar.date.setDate(this.calendar.date.getDate() - 1);\r
-    } else if (Element.hasClassName(element, Calendar.className.nextWeekMark)) {\r
-      this.calendar.date.setDate(this.calendar.date.getDate() + 1);\r
-    }\r
-\r
-    this.calendar.options.changeCalendar(this.calendar.date, oldDate);\r
-    this.calendar.refresh();\r
-  }\r
-});\r
-\r
-\r
-//\r
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-var CalendarResizeableEx = Class.create();\r
-Object.extend(CalendarResizeableEx.prototype, Resizeable.prototype);\r
-Object.extend(CalendarResizeableEx.prototype, {\r
-  initialize: function(element) {\r
-    var options = Object.extend({\r
-      top:         6,\r
-      bottom:      6,\r
-      left:        6,\r
-      right:       6,\r
-      minHeight:   0,\r
-      minWidth:    0,\r
-      zindex:      1000,\r
-      resize:      null,\r
-      distance:    1,     // add by spinelz\r
-      change:      Prototype.emptyFunction,\r
-      restriction: true\r
-    }, arguments[1] || {});\r
-\r
-    this.element      = $(element);\r
-    this.handle          = this.element;\r
-\r
-    Element.makePositioned(this.element); // fix IE    \r
-\r
-    this.options      = options;\r
-\r
-    this.active       = false;\r
-    this.resizing     = false;   \r
-    this.currentDirection = '';\r
-\r
-    this.eventMouseDown = this.startResize.bindAsEventListener(this);\r
-    this.eventMouseUp   = this.endResize.bindAsEventListener(this);\r
-    this.eventMouseMove = this.update.bindAsEventListener(this);\r
-    this.eventCursorCheck = this.cursor.bindAsEventListener(this);\r
-    this.eventKeypress  = this.keyPress.bindAsEventListener(this);\r
-    \r
-    this.registerEvents();\r
-  },\r
-\r
-  startResize: function(event) {\r
-    Event.stop(event);\r
-    if(Event.isLeftClick(event)) {\r
-      \r
-      // abort on form elements, fixes a Firefox issue\r
-      var src = Event.element(event);\r
-      if(src.tagName && (\r
-        src.tagName=='INPUT' ||\r
-        src.tagName=='SELECT' ||\r
-        src.tagName=='BUTTON' ||\r
-        src.tagName=='TEXTAREA')) return;\r
-\r
-      var dir = this.directions(event);\r
-      if (dir.length > 0) {      \r
-        this.active = true;\r
-//       var offsets = Position.cumulativeOffset(this.element);\r
-        this.startTop    = parseInt(Element.getStyle(this.element, 'top'), 10);\r
-        this.startLeft   = parseInt(Element.getStyle(this.element, 'left'), 10);\r
-        this.startWidth  = parseInt(Element.getStyle(this.element, 'width'), 10);\r
-        this.startHeight = parseInt(Element.getStyle(this.element, 'height'), 10);\r
-        this.startX = event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;\r
-        this.startY = event.clientY + document.body.scrollTop + document.documentElement.scrollTop;\r
-        \r
-        this.currentDirection = dir;\r
-\r
-        if (this.options.restriction) {\r
-          var container       = this.element.parentNode;\r
-          this.restDimensions = Element.getDimensions(container);\r
-          this.restOffset     = Position.cumulativeOffset(container);\r
-        }\r
-      }\r
-    }\r
-  },\r
-\r
-  draw: function(event) {\r
-    Event.stop(event);\r
-    var pointer = [Event.pointerX(event), Event.pointerY(event)];\r
-    var style = this.element.style;\r
-\r
-    if (this.currentDirection.indexOf('n') != -1) {\r
-      if (this.restOffset[1] >= pointer[1]) return;\r
-       var pointerMoved = this.startY - pointer[1];\r
-//     var margin = Element.getStyle(this.element, 'margin-top') || "0";\r
-       var newHeight = this.map(this.startHeight + pointerMoved);\r
-       if (newHeight > this.options.minHeight) {\r
-               style.height = newHeight + "px";\r
-               style.top = this.map(this.startTop - pointerMoved) + "px";\r
-       }\r
-    }\r
-    if (this.currentDirection.indexOf('w') != -1) {\r
-       var pointerMoved = this.map(this.startX - pointer[0]);\r
-       var margin = Element.getStyle(this.element, 'margin-left') || "0";\r
-       var newWidth = this.startWidth + pointerMoved;\r
-       if (newWidth > this.options.minWidth) {\r
-               style.left = (this.startLeft - pointerMoved - parseInt(margin))  + "px";\r
-               style.width = newWidth + "px";\r
-       }\r
-    }\r
-    if (this.currentDirection.indexOf('s') != -1) {\r
-      var bottom = this.restDimensions.height + this.restOffset[1];\r
-       var pointerMoved = pointer[1] - this.startY;\r
-      if (bottom <= pointer[1]) return;\r
-       var newHeight = this.map(this.startHeight + pointer[1] - this.startY);\r
-       if (newHeight > this.options.minHeight) {\r
-               style.height = newHeight + "px";\r
-//             style.top    = this.startTop + "px";\r
-       }\r
-    }\r
-    if (this.currentDirection.indexOf('e') != -1) {\r
-       var newWidth = this.map(this.startWidth + pointer[0] - this.startX);\r
-       if (newWidth > this.options.minWidth) {\r
-               style.width = newWidth + "px";\r
-       }\r
-    }\r
-    if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering\r
-    this.options.change(this.element);\r
-  },\r
-\r
-  directions: function(event) {\r
-    var pointer       = [Event.pointerX(event), Event.pointerY(event)];\r
-    var offsets       = Position.cumulativeOffset(this.element);\r
-    var bodyScrollTop = document.documentElement.scrollTop || document.body.scrollTop;\r
-    var scroll        = Position.realOffset(this.element)[1] - bodyScrollTop;\r
-\r
-    var cursor = '';\r
-    if (this.between(pointer[1] - offsets[1] + scroll, 0, this.options.top)) cursor += 'n';\r
-    if (this.between((offsets[1] + this.element.offsetHeight) - pointer[1] - scroll, 0, this.options.bottom)) cursor += 's';\r
-    if (this.between(pointer[0] - offsets[0], 0, this.options.left)) cursor += 'w';\r
-    if (this.between((offsets[0] + this.element.offsetWidth) - pointer[0], 0, this.options.right)) cursor += 'e';\r
-\r
-    return cursor;\r
-  },\r
-\r
-  map: function(length) {\r
-    return Math.round(length / this.options.distance) * this.options.distance;\r
-  }\r
-});\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/datepicker.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/datepicker.js
deleted file mode 100644 (file)
index 43f514b..0000000
+++ /dev/null
@@ -1,360 +0,0 @@
-// Copyright (c) 2005 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-var DatePicker = Class.create();\r
-DatePicker.className = {\r
-  container:     'datepicker',\r
-  header:        'datepicker_header',\r
-  footer:        'datepicker_footer',\r
-  preYears:      'datepicker_preYears',\r
-  nextYears:     'datepicker_nextYears',\r
-  years:         'datepicker_years',\r
-  calendar:      'datepicker_calendar',\r
-  date:          'datepicker_date',\r
-  holiday:       'datepicker_holiday',\r
-  ym:            'datepicker_ym',\r
-  table:         'datepicker_table',\r
-  tableTh:       'datepicker_tableTh',\r
-  nextMonthMark: 'datepicker_nextMonthMark',\r
-  nextYearMark:  'datepicker_nextYearMark',\r
-  preMonthMark:  'datepicker_preMonthMark',\r
-  preYearMark:   'datepicker_preYearMark',\r
-  zIndex:        null\r
-}\r
-DatePicker.prototype = {\r
-  \r
-  initialize: function(element, target, trigger) {\r
-    this.element = $(element);\r
-    Element.setStyle(this.element, {visibility: 'hidden'});\r
-    this.target = $(target);\r
-    this.date = new Date();\r
-\r
-    this.options = Object.extend({\r
-      month:        this.date.getMonth() + 1,\r
-      date:         this.date.getDate(),\r
-      year:         this.date.getFullYear(),\r
-      format:       DateUtil.toLocaleDateString,\r
-      cssPrefix:    'custom_',\r
-      callBack:     Prototype.emptyFunction,\r
-      standTo:      false,\r
-      beforeShow:   Prototype.emptyFunction,\r
-      headerFormat: null,\r
-      dayOfWeek:    DateUtil.dayOfWeek\r
-    }, arguments[3] || {});\r
-    \r
-    var customCss = CssUtil.appendPrefix(this.options.cssPrefix, DatePicker.className);\r
-    this.classNames = new CssUtil([DatePicker.className, customCss]);\r
-    \r
-    this.format = this.options.format;\r
-    this.callBack = this.options.callBack;\r
-    \r
-    this.date.setMonth(this.options.month - 1);\r
-    this.date.setDate(this.options.date);\r
-    this.date.setFullYear(this.options.year);\r
-    \r
-    this.calendar = this.build();\r
-    this.element.appendChild(this.calendar);\r
-    this.cover = new IECover(this.element);\r
-    \r
-    this.doclistener = this.hide.bindAsEventListener(this);\r
-    Event.observe($(trigger), "click", this.show.bindAsEventListener(this));\r
-    this.hide();\r
-    Element.setStyle(this.element, {visibility: 'visible'});\r
-  },\r
-  \r
-  build: function() {\r
-    var node = \r
-      Builder.node(\r
-        'DIV', \r
-        {className: this.classNames.joinClassNames('container')},\r
-        [\r
-          this.buildHeader(),\r
-          this.buildCalendar(),\r
-          this.buildFooter()\r
-        ]);\r
-    \r
-    return node;\r
-  },\r
-  \r
-  buildHeader: function() {\r
-    var headerNodes = Builder.node('TR');\r
-    headerNodes.appendChild(this.buildHeaderLeft());\r
-    headerNodes.appendChild(this.buildHeaderCenter());\r
-    headerNodes.appendChild(this.buildHeaderRight());\r
-    \r
-    className = this.classNames.joinClassNames('header');\r
-    var tbody = Builder.node('TBODY', [headerNodes]);\r
-    return Builder.node('TABLE', {className: className}, [tbody]);\r
-  },\r
-\r
-  buildFooter: function() {\r
-    var footer = Builder.node('DIV');\r
-    this.classNames.addClassNames(footer, 'footer');\r
-    return footer;\r
-  },\r
-\r
-  buildHeaderLeft: function() {\r
-    var container = Builder.node('TD');\r
-    this.classNames.addClassNames(container, 'preYears');\r
-\r
-    var id = this.element.id.appendSuffix('preYear');\r
-    var node = Builder.node('DIV', {id: id});\r
-    this.classNames.addClassNames(node, 'preYearMark');\r
-    Event.observe(node, "click", this.changeCalendar.bindAsEventListener(this));\r
-    container.appendChild(node);\r
-\r
-    id = this.element.id.appendSuffix('preMonth');\r
-    node = Builder.node('DIV', {id: id});\r
-    this.classNames.addClassNames(node, 'preMonthMark');\r
-    Event.observe(node, "click", this.changeCalendar.bindAsEventListener(this));\r
-    container.appendChild(node);\r
-\r
-    return container;\r
-  },\r
-\r
-  buildHeaderCenter: function() {\r
-    var contents = [];\r
-    var yearMonth = this.getHeaderYearMonth();\r
-\r
-    var id = this.element.id.appendSuffix('nextMonth');\r
-    var node = Builder.node('SPAN', {id: id}, [yearMonth[0]]);\r
-    this.classNames.addClassNames(node, 'ym');\r
-    contents.push(node);\r
-\r
-    id = this.element.id.appendSuffix('nextYear');\r
-    node = Builder.node('SPAN', {id: id}, [yearMonth[1]]);\r
-    this.classNames.addClassNames(node, 'ym');\r
-    contents.push(node);\r
-\r
-    var container = Builder.node('TD', contents);\r
-    this.classNames.addClassNames(container, 'years');\r
-\r
-    return container;\r
-  },\r
-\r
-  getHeaderYearMonth: function() {\r
-    if (this.options.headerFormat) {\r
-      var tmpl = new Template(this.options.headerFormat);\r
-      return [tmpl.evaluate({year: this.date.getFullYear(), month: this.date.getMonth() + 1}), ' '];\r
-    }\r
-    return [DateUtil.months[this.date.getMonth()], this.date.getFullYear()];\r
-  },\r
-\r
-  buildHeaderRight: function() {\r
-    var container = Builder.node('TD');\r
-    this.classNames.addClassNames(container, 'nextYears');\r
-\r
-    var id = this.element.id.appendSuffix('nextMonth');\r
-    var node = Builder.node('DIV', {id: id});\r
-    this.classNames.addClassNames(node, 'nextMonthMark');\r
-    Event.observe(node, "click", this.changeCalendar.bindAsEventListener(this));\r
-    container.appendChild(node);\r
-\r
-    id = this.element.id.appendSuffix('nextYear');\r
-    node = Builder.node('DIV', {id: id});\r
-    this.classNames.addClassNames(node, 'nextYearMark');\r
-    Event.observe(node, "click", this.changeCalendar.bindAsEventListener(this));\r
-    container.appendChild(node);\r
-\r
-    return container;\r
-  },\r
-  \r
-  multiBuild: function(tagType, params, className, hover, clickEvent) {\r
-    var children = [];\r
-    for (var i = 0; i < params.length; i++) {\r
-      var node;\r
-      \r
-      node = Builder.node(tagType, [params[i]]);\r
-      if (className)\r
-        this.classNames.addClassNames(node, className);\r
-        \r
-      if (hover)\r
-        new Hover(node);\r
-        \r
-      if (clickEvent)\r
-        Event.observe(node, "click", clickEvent.bindAsEventListener(this));\r
-        \r
-      children.push(node);\r
-    }\r
-    \r
-    return children;\r
-  },\r
-  \r
-  buildCalendar: function() {\r
-    var className = this.classNames.joinClassNames('table');\r
-    var node = Builder.node('TBODY', [this.buildTableHeader(), this.buildTableData()]);\r
-    var table = Builder.node('TABLE', {className: className}, [node]);\r
-                  \r
-    className = this.classNames.joinClassNames('calendar');\r
-    return Builder.node('DIV', {className: className}, [table]);\r
-  },\r
-  \r
-  buildTableHeader: function() {\r
-    var weekArray = new Array();\r
-    var className = this.classNames.joinClassNames('tableTh');\r
-    for (var i = 0; i < DateUtil.dayOfWeek.length; i++) {\r
-      weekArray.push(\r
-        Builder.node('TH', {className: className}, [this.options.dayOfWeek[i]]));\r
-    }\r
-    \r
-    return Builder.node('TR', weekArray);\r
-  },\r
-  \r
-  buildTableData: function() {\r
-    var length = DateUtil.dayOfWeek.length * 6;\r
-    var year = this.date.getFullYear();\r
-    var month = this.date.getMonth();\r
-    var firstDay = DateUtil.getFirstDate(year, month).getDay();\r
-    var lastDate = DateUtil.getLastDate(year, month).getDate();\r
-    var trs = new Array();\r
-    var tds = new Array();\r
-    \r
-    for (var i = 0, day = 1; i <= length; i++) {\r
-      if ((i < firstDay) || day > lastDate) {\r
-        tds.push(Builder.node('TD'));\r
-      \r
-      } else {\r
-        var className;\r
-        if ((i % 7 == 0) || ((i+1) % 7 == 0))\r
-          className = 'holiday';\r
-        else\r
-          className = 'date';\r
-          \r
-        var defaultClass = this.classNames.joinClassNames(className);\r
-        node = Builder.node('TD', {className: defaultClass}, [day]);\r
-        new Hover(node);\r
-        Event.observe(node, "click", this.selectDate.bindAsEventListener(this));\r
-        tds.push(node);\r
-        day++;\r
-      }\r
-      \r
-      if ((i + 1) % 7 == 0) {\r
-        trs.push(Builder.node('TR', tds));\r
-        tds = new Array();\r
-      }\r
-    }\r
-    \r
-    return trs;\r
-  },\r
-  \r
-  refresh: function() {\r
-    this.element.innerHTML = '';\r
-    this.calendar = this.build();\r
-    this.element.appendChild(this.calendar);\r
-    new IECover(this.element);\r
-  },\r
-  \r
-  getMonth: function() {\r
-    return  DateUtil.months[this.date.getMonth()];\r
-  },\r
-  \r
-  changeCalendar: function(event) {\r
-    var element = Event.element(event);\r
-    if (Element.hasClassName(element, DatePicker.className.preYearMark)) {\r
-      this.date.setFullYear(this.date.getFullYear() - 1);\r
-    } else if (Element.hasClassName(element, DatePicker.className.nextYearMark)) {\r
-      this.date.setFullYear(this.date.getFullYear() + 1);\r
-    } else if (Element.hasClassName(element, DatePicker.className.preMonthMark)) {\r
-      var pre = this.date.getMonth() - 1;\r
-      if (pre < 0) {\r
-        pre = 11;\r
-        this.date.setFullYear(this.date.getFullYear() - 1);\r
-      }\r
-      this.date.setMonth(pre);\r
-    } else if (Element.hasClassName(element, DatePicker.className.nextMonthMark)) {\r
-      var next = this.date.getMonth() + 1;\r
-      if (next > 11) {\r
-        next = 0;\r
-        this.date.setFullYear(this.date.getFullYear() + 1);\r
-      }\r
-      this.date.setMonth(next);\r
-    }\r
-    \r
-    this.refresh();\r
-    if (event) Event.stop(event);\r
-  },\r
-  \r
-  selectDate: function(event) {\r
-    var src = Event.element(event);\r
-    var text = Element.getTextNodes(src)[0];\r
-\r
-    this.date.setDate(text.nodeValue);\r
-    var value = this.formatDateString();\r
-    \r
-    if (this.target.value || this.target.value == '') {\r
-      this.target.value = value;\r
-    } else {\r
-      this.target.innerHTML = value;\r
-    }\r
-    \r
-    this.hide();\r
-    this.classNames.refreshClassNames(src, 'date');\r
-    \r
-    this.callBack(this);\r
-  },\r
-  \r
-  show: function(event) {\r
-    var styles = $H({zIndex: ZindexManager.getIndex(this.options.zIndex)});\r
-    if (this.options.standTo) {\r
-      this.defaultParent = this.element.parentNode;\r
-      document.body.appendChild(this.element);\r
-      styles = styles.merge({ \r
-        position: 'absolute',\r
-        left:     Event.pointerX(event) + 'px',\r
-        top:      Event.pointerY(event) + 'px'\r
-      });\r
-    }\r
-\r
-    Element.setStyle(this.element, styles);\r
-    Element.show(this.element);\r
-    this.cover.resetSize();\r
-    Event.observe(document, "click", this.doclistener);\r
-    if (event) {\r
-      Event.stop(event);\r
-    }\r
-  },\r
-  \r
-  hide: function() {\r
-    Event.stopObserving(document, "click", this.doclistener);\r
-    Element.hide(this.element);\r
-    if (this.defaultParent) {\r
-      this.defaultParent.appendChild(this.element);\r
-    }\r
-  },\r
-  \r
-  addTrigger: function(trigger) {\r
-    Event.observe($(trigger), 'click', this.show.bindAsEventListener(this));\r
-  },\r
-  \r
-  changeTarget: function(target) {\r
-    this.target = $(target);\r
-  },\r
-\r
-  formatDateString: function() {\r
-    var string = '';\r
-    if (this.format.constructor == Function) {\r
-      string = this.format(this.date);\r
-    } else if (this.format.constructor == String) {\r
-      string = this.date.strftime(this.format);\r
-    }\r
-    return string;\r
-  }\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/grid.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/grid.js
deleted file mode 100644 (file)
index 09f4556..0000000
+++ /dev/null
@@ -1,1391 +0,0 @@
-// Copyright (c) 2005 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-Grid = Class.create();\r
-Grid.className = {\r
-  container:      'grid_container',\r
-  \r
-  baseTable:      'grid_baseTable',\r
-  baseRow:        'grid_baseRow',\r
-  baseCell:       'grid_baseCell',\r
-  \r
-  headerTable:    'grid_headerTable',\r
-  headerRow:      'grid_headerRow',\r
-  headerCell:     'grid_headerCell',\r
-  headerCellDrag: 'grid_headerCellDrag',\r
-  headerCellSort: 'grid_headerCellVal',\r
-  \r
-  idTable:        'grid_idTable',\r
-  idRow:          'grid_idRow',\r
-  idCell:         'grid_idCell',\r
-  idCellVal:      'grid_idCellVal',\r
-  \r
-  cellTable:      'grid_cellTable',\r
-  cellTbody:      'grid_cellTbody',\r
-  cellRow:        'grid_cellRow',\r
-  cell:           'grid_cell',\r
-  cellVal:        'grid_cellVal',\r
-  cellSelected:   'grid_cellSelected',\r
-  state:          'grid_state',\r
-  stateEmpty:     'grid_stateEmpty',\r
-  stateOpen:      'grid_stateOpen',\r
-  stateClose:     'grid_stateClose',\r
-  \r
-  inplaceEditor:  'grid_inplaceEditor'\r
-}\r
-Grid.scrollTop = 0;\r
-Grid.scrollLeft = 0;\r
-Grid.options = {}\r
-Grid.options.baseTable = {\r
-  border:1,\r
-  frame : 'border',\r
-  cellSpacing:0,\r
-  cellPadding:0\r
-}\r
-Grid.options.headerTable = {\r
-  border:1,\r
-  frame : 'border',\r
-  cellSpacing:0,\r
-  cellPadding:0\r
-}\r
-Grid.options.idTable = {\r
-  border:1,\r
-  frame : 'border',\r
-  cellSpacing:0,\r
-  cellPadding:0\r
-}\r
-Grid.options.cellTable = {\r
-  border:1,\r
-  frame : 'border',\r
-  cellSpacing:0,\r
-  cellPadding:0\r
-}\r
-Grid.prototype = {\r
-  \r
-  initialize : function(element) {\r
-    \r
-    this.element = $(element);\r
-    Element.setStyle(this.element, {visibility: 'hidden'});\r
-    Element.hide(this.element);\r
-\r
-    var options = Object.extend({\r
-      cssPrefix:          'custum_',\r
-      cellMinWidth:       10,\r
-      cellMinHeight:      10,\r
-      cellDefaultWidth:   72,\r
-      cellDefaultHeight:  25,\r
-      defaultRowLength:   10,\r
-      baseWidth:          40,\r
-      baseHeight:         25,\r
-      baseTop:            0,\r
-      baseLeft:           0,\r
-      cellEditUrl:        '',\r
-      updateGridUrl:      '',\r
-      updateGridReceiver: '',\r
-      hierarchy:          false,\r
-      hierarchyCol:       false,\r
-      hierarchyIndent:    20,\r
-      sortOptions:        {}\r
-    }, arguments[1] || {});\r
-    \r
-    this.options = options;\r
-    this.custumCss = CssUtil.appendPrefix(options.cssPrefix, Grid.className);\r
-    this.cssUtil = new CssUtil([Grid.className, this.custumCss]);\r
-    this.cssUtil.addClassNames(this.element, 'container');\r
-    this.hierarchyCol = this.options.hierarchyCol ? $(this.options.hierarchyCol) : false;\r
-    this.hierarchyColIndex = this.hierarchyCol ? this.hierarchyCol.cellIndex : 0;\r
-    Element.makePositioned(this.element);\r
-    Position.includeScrollOffsets = true;\r
-    this.stateDivWidth = parseInt(CssUtil.getCssRuleBySelectorText('.' + Grid.className.state).style.width, 10);\r
-    \r
-    this.marginSize = this.options.marginSize ? this.options.marginSize : 4;\r
-    this.stateIndent = 15;\r
-    \r
-    this.rowIdBase = this.element.id + '_row_';\r
-    this.topLevelList = new Array();\r
-    this.removeList = new Array();\r
-    this.build();\r
-    this.removeList.each(function(r) {\r
-      r.parentNode.removeChild(r);\r
-    });\r
-    var sortOptions = {\r
-      relate : this.idTable,\r
-      handle:this.headerTable,\r
-      callBack:this.finishSort.bind(this)\r
-    };\r
-    sortOptions = $H(sortOptions).merge(this.options.sortOptions);\r
-    this.sortTable = new SortableTableGridEx(this.cellTable, sortOptions);\r
-    Element.setStyle(this.element, {visibility: 'visible'});\r
-    Element.show(this.element);\r
-  },\r
-  \r
-  build: function() {    \r
-    Element.cleanWhitespace(this.element);\r
-    this.cellTable = this.element.childNodes[0];\r
-    Element.cleanWhitespace(this.cellTable);\r
-    \r
-    this.colLength = this.cellTable.tHead.rows[0].cells.length;\r
-    this.rowLength = this.cellTable.tBodies[0].rows.length;\r
-    if (this.rowLength == 0)this.rowLength = this.options.defaultRowLength;\r
-    this.buildBaseTable();\r
-    this.buildHeaderTable();\r
-    this.buildIdTable();\r
-    this.buildCellTable();\r
-    \r
-    Event.observe(this.element, 'scroll', this.fixTablePosition.bindAsEventListener(this));\r
-  },\r
-  \r
-  buildBaseTable: function() {\r
-\r
-    this.baseTable = Builder.node('table', Grid.options.baseTable);\r
-    this.cssUtil.addClassNames(this.baseTable, 'baseTable');\r
-    with (this.baseTable.style) {\r
-      width    = this.options.baseWidth + 'px';\r
-      height   = this.options.baseHeight + 'px';\r
-      position = 'absolute';\r
-      top      = this.options.baseTop + 'px';\r
-      left     = this.options.baseLeft + 'px';\r
-    }\r
-    \r
-    var row = this.baseTable.insertRow(0);\r
-    var cell = row.insertCell(0);\r
-    \r
-    this.cssUtil.addClassNames(row, 'baseRow');\r
-    this.cssUtil.addClassNames(cell, 'baseCell');\r
-    \r
-    this.element.appendChild(this.baseTable);\r
-  },\r
-  \r
-  buildHeaderTable: function() {\r
-    this.headerTable = Builder.node('table', Grid.options.headerTable);\r
-    this.cssUtil.addClassNames(this.headerTable, 'headerTable');\r
-    \r
-    var thead = this.cellTable.tHead;\r
-    var row = thead.rows[0];\r
-    row.id = this.element.id + '_headerTable_row';\r
-    var cells = row.cells;\r
-    Element.cleanWhitespace(thead);\r
-    Element.cleanWhitespace(row);\r
-    \r
-    this.cssUtil.addClassNames(row, 'headerRow');\r
-    for (var i = 0; i < cells.length; i++) {\r
-      var cell = cells[i];\r
-      var value = cell.firstChild;\r
-      var title = cell.innerHTML;\r
-      this.buildHeaderCell(cell, title, i);\r
-      this.removeList.push(value);\r
-    }\r
-    this.headerTable.appendChild(thead);\r
-    with (this.headerTable.style) {\r
-      width   = this.options.cellDefaultWidth * this.colLength + 'px';\r
-      height  = this.baseTable.style.height;\r
-      position= 'absolute';\r
-      top     = Element.getStyle(this.baseTable, 'top');\r
-      left    = parseInt(Element.getStyle(this.baseTable, 'left')) + parseInt(Element.getStyle(this.baseTable, 'width')) + 'px';\r
-    }\r
-    this.element.appendChild(this.headerTable);\r
-    Sortable.create(\r
-      row, \r
-      {\r
-        tag:'td',\r
-        handle:Grid.className.headerCellDrag,\r
-        constraint:true,\r
-        overlap:'horizontal',\r
-        scroll:this.element,\r
-        onUpdate:this.updateCellLine.bind(this)\r
-      });\r
-  },\r
-  \r
-  buildHeaderCell : function(cell, title, index) {\r
-\r
-    cell.id = this.element.id + '_header_col_' + index;\r
-    \r
-    var drag = Builder.node('div');\r
-    var sort = Builder.node('div');\r
-    \r
-    this.cssUtil.addClassNames(cell, 'headerCell');\r
-    this.cssUtil.addClassNames(drag, 'headerCellDrag');\r
-    this.cssUtil.addClassNames(sort, 'headerCellSort');\r
-    \r
-    cell.style.width = this.options.cellDefaultWidth + 'px';\r
-    var dragWidth = parseInt(Element.getStyle(cell, 'width')) - (this.marginSize * 2);\r
-    var sortWidth = dragWidth - (this.marginSize * 2);\r
-    var cellHeight = this.options.baseHeight - (Grid.options.headerTable.border * 4);\r
-    with (drag.style) {\r
-      width = dragWidth + 'px';\r
-      height = cellHeight + 'px';\r
-      marginLeft = this.marginSize + 'px';\r
-      marginRight = this.marginSize + 'px';\r
-    }\r
-    with (sort.style) {\r
-      width = sortWidth + 'px';\r
-      height = cellHeight + 'px';\r
-      marginLeft = this.marginSize + 'px';\r
-      marginRight = this.marginSize + 'px';\r
-    }\r
-    \r
-    sort.innerHTML = title;\r
-    drag.appendChild(sort);\r
-    cell.appendChild(drag);\r
-    \r
-    new ResizeableGridEx(cell, {minWidth: this.options.cellMinWidth, top:0,right:2, bottom:0, left:0 ,draw:this.updateCellWidth.bind(this)});\r
-    Event.observe(cell, 'mousedown', this.setSelectedColumn.bindAsEventListener(this));\r
-    Event.observe(drag, 'mousedown', this.setSelectedColumn.bindAsEventListener(this));\r
-    Event.observe(sort, 'mousedown', this.setSelectedColumn.bindAsEventListener(this));  \r
-  },\r
-    \r
-  buildIdTable: function() {\r
-\r
-    this.idTable = Builder.node('table', Grid.options.idTable);\r
-    this.cssUtil.addClassNames(this.idTable, 'idTable');\r
-    for (var i = 0; i < this.rowLength; i++) {\r
-      \r
-      var row = this.idTable.insertRow(i);\r
-      this.buildIdRow(row, i);\r
-    }\r
-    \r
-    with(this.idTable.style) {\r
-      width    = this.options.baseWidth + 'px';\r
-      position = 'absolute';\r
-      top      = parseInt(Element.getStyle(this.baseTable, 'top')) + parseInt(Element.getStyle(this.baseTable, 'height')) + 'px';\r
-      left     = Element.getStyle(this.baseTable, 'left');\r
-    }\r
-    \r
-    this.element.appendChild(this.idTable);\r
-    var tbody = this.idTable.tBodies[0];\r
-    tbody.id = this.element.id + '_idTable_tbody';\r
-    Sortable.create(\r
-      tbody, \r
-      {\r
-        tag:'tr',\r
-        handle:Grid.className.idCellVal,\r
-        scroll:this.element,\r
-        constraint:true,\r
-        overlap:'vertical',\r
-        onUpdate:this.updateRowLine.bind(this)\r
-      });\r
-  },\r
-  \r
-  buildIdRow : function(row, index) {\r
-    row.id = this.rowIdBase + '_id_' + index;\r
-    \r
-    var cell = row.insertCell(0);\r
-    var valueDiv = Builder.node('div');\r
-\r
-    this.cssUtil.addClassNames(row, 'idRow');\r
-    this.cssUtil.addClassNames(cell, 'idCell');\r
-    this.cssUtil.addClassNames(valueDiv, 'idCellVal');      \r
-    \r
-    with (cell.style) {\r
-      width = this.options.baseWidth + 'px';\r
-      height = this.options.cellDefaultHeight + 'px';\r
-    }\r
-    with (valueDiv.style) {\r
-      marginTop = this.marginSize + 'px';\r
-      marginBottom = this.marginSize + 'px';\r
-      width = this.options.baseWidth - (Grid.options.idTable.border * 4) + 'px';\r
-      height = this.options.cellDefaultHeight - (this.marginSize * 2) + 'px';\r
-    }\r
-\r
-    valueDiv.innerHTML = index + 1;\r
-    cell.appendChild(valueDiv);\r
-    \r
-    new ResizeableGridEx(cell, {minHeight: this.options.cellMinHeight, top:0, right: 0, bottom: 2, left: 0, draw:this.updateCellHeight.bind(this)});\r
-    \r
-    Event.observe(row, 'mousedown', this.setSelectedRow.bindAsEventListener(this));\r
-    Event.observe(cell, 'mousedown', this.setSelectedRow.bindAsEventListener(this));\r
-    Event.observe(valueDiv, 'mousedown', this.setSelectedRow.bindAsEventListener(this));    \r
-  },\r
-  \r
-  buildCellTable: function() {\r
-    var tbody = this.cellTable.tBodies[0];\r
-    Element.cleanWhitespace(tbody);\r
-    with(this.cellTable){\r
-      border = Grid.options.cellTable.border;\r
-      cellSpacing = Grid.options.cellTable.cellSpacing;\r
-      cellPadding = Grid.options.cellTable.cellPadding;\r
-    }\r
-    this.cssUtil.addClassNames(this.cellTable, 'cellTable');\r
-    this.cssUtil.addClassNames(tbody, 'cellTbody');\r
-    this.element.appendChild(this.cellTable);\r
-    var rows = this.cellTable.rows;\r
-    \r
-    if (!rows || rows.length == 0) {\r
-      for(var i = 0; i < this.rowLength; i++) {\r
-        \r
-        var newRow = this.cellTable.insertRow(i);\r
-        newRow.id = this.rowIdBase + i;\r
-        this.cssUtil.addClassNames(newRow, 'cellRow');\r
-        \r
-        for (var j = 0; j < this.colLength; j++) {\r
-          var newCell = newRow.insertCell(j);\r
-          this.buildCell(newCell, j, "");\r
-        }\r
-        if (this.options.hierarchy) {\r
-          this.setHierarchyRow(newRow);\r
-        }\r
-      }  \r
-      \r
-    } else {\r
-      for (var i = 0; i < this.rowLength; i++) {\r
-        var row = rows[i];\r
-        Element.cleanWhitespace(row);\r
-        this.cssUtil.addClassNames(row, 'cellRow');\r
-        row.id = this.rowIdBase + i;\r
-        var cells = row.cells;\r
-\r
-        for (var j = 0; j < cells.length; j++) {\r
-          var cell = cells[j];\r
-          Element.cleanWhitespace(cell);\r
-          this.buildCell(cell, j, Element.collectTextNodes(cell));\r
-          this.removeList.push(cell.firstChild);\r
-        }\r
-        if (this.options.hierarchy) {\r
-          this.setHierarchyRow(row);\r
-        }  \r
-      }\r
-    }\r
-    \r
-    with (this.cellTable.style) {\r
-      width   = this.options.cellDefaultWidth * this.colLength + 'px';\r
-      position = 'absolute';\r
-      top      = parseInt(Element.getStyle(this.baseTable, 'top')) + parseInt(Element.getStyle(this.baseTable, 'height')) + 'px';\r
-      left     = parseInt(Element.getStyle(this.baseTable, 'left')) + parseInt(Element.getStyle(this.baseTable, 'width')) + 'px';\r
-    }\r
-    \r
-    this.cellTable.getIdRow = this.getIdRow.bind(this);    \r
-  },\r
-\r
-  buildCell : function(cell, cellIdIndex, value) {\r
-\r
-    var cellValueDiv = Builder.node('div');\r
-    cellValueDiv.innerHTML = value;\r
-    \r
-    cell.appendChild(cellValueDiv);\r
-    cell.id = cell.parentNode.id + '_col_' + cellIdIndex;\r
-    \r
-    this.cssUtil.addClassNames(cell, 'cell');\r
-    this.cssUtil.addClassNames(cellValueDiv, 'cellVal');\r
-    \r
-    with (cell.style) {\r
-      width = Element.getStyle(this.getHeaderCell(cell), 'width');\r
-      height = Element.getStyle(this.getIdRow(cell.parentNode).cells[0], 'height');\r
-    }  \r
-    with (cellValueDiv.style) {\r
-      width = cell.style.width;\r
-      height = cell.style.height;\r
-      marginTop = '0px';\r
-      marginBottom = '0px';\r
-    }\r
-    \r
-    Event.observe(cell, 'click', this.setSelectedCell.bindAsEventListener(this));\r
-        \r
-    var ajax = new Ajax.InPlaceEditor(cellValueDiv, this.options.cellEditUrl,\r
-      {\r
-        formClassName: this.cssUtil.joinClassNames('inplaceEditor'), \r
-        rows: 2, \r
-        cols:12, \r
-        okButton: false, \r
-        cancelLink:false, \r
-        submitOnBlur:true, \r
-        hoverClassName: "cellHover",\r
-        highlightcolor: "#becfeb",\r
-        highlightendcolor: "#becfeb",\r
-        onComplete: this.showStateDiv.bind(this),\r
-        callback : this.createInplaceEditorParams.bind(this),\r
-        formId : cell.id + '_form'\r
-      }\r
-    );\r
-    cellValueDiv.ajax = ajax;\r
-    Event.stopObserving(cellValueDiv, 'click', ajax.onclickListener);\r
-    Event.stopObserving(cellValueDiv, 'mouseover', ajax.mouseoverListener);\r
-    Event.stopObserving(cellValueDiv, 'mouseout', ajax.mouseoutListener);\r
-    \r
-\r
-    Event.observe(cellValueDiv, 'dblclick', this.setTextAreaSize.bindAsEventListener(this));\r
-    if (this.options.hierarchy && cell.cellIndex == this.hierarchyColIndex) {\r
-      Event.observe(cellValueDiv, 'dblclick', this.hideStateDiv.bindAsEventListener(this));\r
-    }\r
-    Event.observe(cellValueDiv, 'dblclick', ajax.onclickListener);\r
-    \r
-  },\r
-  \r
-  addColumn: function(index, colTitle, values) {\r
-    var headerRow = this.headerTable.rows[0];\r
-    var insertIndex = (!isNaN(index)) ? index : this.colLength;\r
-    var colIdIndex = this.colLength;\r
-    var headerCell = headerRow.insertCell(insertIndex);\r
-    this.buildHeaderCell(headerCell, colTitle, insertIndex);\r
-    \r
-    var rows = this.cellTable.rows;\r
-    var idRows = this.idTable.rows;\r
-    for (var i = 0; i < rows.length; i++) {\r
-      \r
-      var cell = rows[i].insertCell(insertIndex);\r
-      var cellValue = "";\r
-      if (values && values[i]) {\r
-        cellValue = values[i];\r
-      }\r
-      this.buildCell(cell, colIdIndex, cellValue);\r
-    }\r
-  \r
-    this.headerTable.style.width = parseInt(Element.getStyle(this.headerTable, 'width')) + this.options.cellDefaultWidth + 'px';\r
-    this.cellTable.style.width = this.headerTable.style.width;\r
-    \r
-    var sortableOptions = Sortable.options(headerRow);\r
-    \r
-    sortableOptions.draggables.push(\r
-      new Draggable(\r
-        headerCell, \r
-        {\r
-          revert:     true,\r
-          constraint: true,\r
-          scroll:     this.element,\r
-          handle:     Element.getElementsByClassName(headerCell, Grid.className.headerCellDrag)[0]\r
-        }\r
-      )\r
-    );\r
-    Droppables.add(headerCell, {overlap:'horizontal', containment:headerRow, onHover:Sortable.onHover, greedy:true});\r
-    sortableOptions.droppables.push(headerCell);   \r
-    this.sortTable.addEvent(Element.getElementsByClassName(headerCell, Grid.className.headerCellSort)[0]);\r
-    this.colLength += 1;\r
-  },\r
-  \r
-  deleteColumn : function(index) {\r
-    if((isNaN(index)) || index >= this.colLength) {\r
-      return;\r
-    }\r
-    var headerRow = this.headerTable.rows[0];\r
-    if (!headerRow) return;\r
-    var headerCell = headerRow.cells[index];\r
-    if (!headerCell) return;\r
-    \r
-    var width = headerCell.offsetWidth;\r
-    var rows = this.cellTable.rows;\r
-    headerRow.deleteCell(index);\r
-    \r
-    for (var i = 0; i < rows.length; i++) {\r
-      rows[i].deleteCell(index);\r
-    }\r
-    \r
-    var headerTableWidth = parseInt(Element.getStyle(this.headerTable, 'width')) - width;\r
-    \r
-    this.headerTable.style.width = headerTableWidth >= 0 ? headerTableWidth + 'px' : '0px';\r
-    this.cellTable.style.width = this.headerTable.style.width;\r
-    this.colLength -= 1;\r
-    this.fixTablePosition();\r
-  },\r
-  \r
-  addRow : function(index, values) {\r
-    var insertIndex = (!isNaN(index)) ? index : this.idTable.rows.length;\r
-    var rowIdIndex = this.idTable.rows.length;\r
-    var idRow = this.idTable.insertRow(index);\r
-    idRow.id = this.rowIdBase + '_id_' + rowIdIndex;\r
-    this.buildIdRow(idRow, rowIdIndex);\r
-    this.updateId();\r
-    \r
-    var cellRow = this.cellTable.insertRow(insertIndex);\r
-    cellRow.id = this.rowIdBase + rowIdIndex;\r
-    this.cssUtil.addClassNames(cellRow, 'cellRow');\r
-    var headerCells = this.headerTable.rows[0].cells;\r
-    \r
-    for (var i = 0; i < headerCells.length; i++) {\r
-      var headerCell = headerCells[i];\r
-      var colIdIndex = headerCell.id.substring(headerCell.id.indexOf('_col_',0) + '_col_'.length);\r
-      var cell = cellRow.insertCell(i);\r
-      var cellValue = (values && values[i]) ? values[i] : "";\r
-      this.buildCell(cell, colIdIndex, cellValue);\r
-    }\r
-\r
-    this.sortTable.defaultOrder.insert(index, cellRow);\r
-    \r
-    var idTbody = this.idTable.tBodies[0];\r
-    var sortableOptions = Sortable.options(idTbody);\r
-    \r
-    sortableOptions.draggables.push(\r
-      new Draggable(\r
-        idRow,\r
-        {\r
-          revert:     true,\r
-          constraint: true,\r
-          scroll:     this.element,\r
-          handle:     Element.getElementsByClassName(idRow, Grid.className.idCellVal)[0]\r
-        }\r
-      )\r
-    );\r
-    Droppables.add(idRow, {overlap:'vertical', containment:idTbody, onHover:Sortable.onHover, greedy:true});\r
-    sortableOptions.droppables.push(idRow);   \r
-    this.rowLength += 1;\r
-    return cellRow;\r
-  },\r
-  \r
-  deleteRow : function(index) {\r
-    if(isNaN(index) || index >= this.rowLength) {\r
-      return;\r
-    }\r
-    \r
-    var targetId = null;\r
-    if (this.cellTable.rows[index])\r
-      targetId = this.cellTable.rows[index].id;\r
-    else\r
-      return;\r
-    \r
-    this.sortTable.defaultOrder.reverse();\r
-    var newOrder = new Array();\r
-    \r
-    for (var i = 0; this.sortTable.defaultOrder.length > 0; i++) {\r
-       var row = this.sortTable.defaultOrder.pop();\r
-       if (row.id == targetId) {\r
-         continue;\r
-       }\r
-       newOrder.push(row);\r
-    }\r
-    \r
-    this.sortTable.defaultOrder = newOrder;\r
-    this.idTable.deleteRow(index);\r
-    this.cellTable.deleteRow(index);\r
-    \r
-    this.fixTablePosition();\r
-    this.rowLength -= 1;\r
-    this.updateId();\r
-  },\r
-  \r
-  getHeaderCell : function(cell) {\r
-    return this.headerTable.rows[0].cells[cell.cellIndex];\r
-  },\r
-  \r
-  getCells : function(index) {\r
-    var rows = this.cellTable.rows;\r
-    var columns = new Array();\r
-    for (var i = 0; i < rows.length; i++){\r
-      columns.push(rows[i].cells[index]);\r
-    }\r
-    return columns;\r
-  },\r
-  \r
-  getRow : function(index) {\r
-    return this.cellTable.rows[index];\r
-  },\r
-  \r
-  getIdRow : function(cellRow) {\r
-    var id = cellRow.id;\r
-    var index = id.substring(this.rowIdBase.length);\r
-    var targetRow = $(this.rowIdBase + '_id_' + index);\r
-    return targetRow;\r
-  },\r
-  \r
-  getColTitle : function(index) {\r
-    var headerCell = this.headerTable.rows[0].cells[index];\r
-    var title = Element.collectTextNodes(headerCell);\r
-    return title;\r
-  },\r
-  \r
-  finishSort : function() {\r
-    for (var i = 0; i < this.cellTable.rows.length; i++) {\r
-      this.idTable.tBodies[0].appendChild(this.getIdRow(this.cellTable.rows[i]));\r
-    }\r
-    this.updateId();\r
-  },\r
-  \r
-  setSelectedCell : function(event) {\r
-    this.removeSelectedClasses();\r
-    var src = Event.element(event);\r
-\r
-    if (src.tagName.toUpperCase() != 'TH' && src.tagName.toUpperCase() != 'TD') { \r
-      src = Element.getParentByTagName(['TH,TD'], src);\r
-    }        \r
-    \r
-    this.targetCell = src;\r
-    \r
-    if (this.targetCell) {\r
-      this.targetColIndex = this.targetCell.cellIndex;\r
-      this.targetRowIndex = this.targetCell.parentNode.rowIndex;\r
-      this.targetColumn = this.getCells(this.targetColIndex);\r
-      this.targetRow = this.getRow(this.targetRowIndex);\r
-    }\r
-    \r
-    this.cssUtil.addClassNames(this.targetCell, 'cellSelected');\r
-    var childNodes = Element.getTagNodes(this.targetCell, true);      \r
-    for (var i = 0; i < childNodes.length; i++) {\r
-      this.cssUtil.addClassNames(childNodes[i], 'cellSelected');\r
-    }\r
-  },\r
-    \r
-  setSelectedColumn : function(event) {\r
-    this.removeSelectedClasses();\r
-    \r
-    this.targetCell = null;\r
-    this.targetRowIndex = null;\r
-    this.targetRow = null;\r
-    this.targetIdRow = null;\r
-    var src = Event.element(event);\r
-    if (src && (src.tagName.toUpperCase() == 'TH' || src.tagName.toUpperCase() == 'TD')) { \r
-      this.targetHeaderCell = src;\r
-    } else {\r
-      this.targetHeaderCell = Element.getParentByTagName(['TH,TD'], src);\r
-    }\r
-    if (this.targetHeaderCell) {\r
-      this.targetColIndex = this.targetHeaderCell.cellIndex;\r
-      this.targetColumn = this.getCells(this.targetColIndex);\r
-      this.cssUtil.addClassNames(this.targetHeaderCell, 'cellSelected');\r
-      var childNodes = Element.getTagNodes(this.targetHeaderCell, true);\r
-      for (var i = 0; i < childNodes.length; i++) {\r
-        this.cssUtil.addClassNames(childNodes[i], 'cellSelected');\r
-      }\r
-      for(var i = 0; i < this.targetColumn.length; i++) {\r
-        this.cssUtil.addClassNames(this.targetColumn[i], 'cellSelected');\r
-        var cellChildNodes = Element.getTagNodes(this.targetColumn[i], true);      \r
-        for (var j = 0; j < cellChildNodes.length; j++) {\r
-          this.cssUtil.addClassNames(cellChildNodes.length[j], 'cellSelected');\r
-        }\r
-      }\r
-    }\r
-  },\r
-\r
-  setSelectedRow : function(event) {\r
-    this.removeSelectedClasses();\r
-    var src = Event.element(event);\r
-    if (src && src.tagName.toUpperCase() == 'TR') { \r
-      this.targetIdRow = src;\r
-    } else {\r
-      this.targetIdRow = Element.getParentByTagName(['TR'], src);\r
-    }\r
-    if (this.targetIdRow) {\r
-      this.targetRowIndex = this.targetIdRow.rowIndex;\r
-      this.targetRow = this.getRow(this.targetRowIndex);\r
-      \r
-      this.cssUtil.addClassNames(this.targetRow, 'cellSelected');\r
-      var childNodes = Element.getTagNodes(this.targetRow, true);\r
-      for (var i = 0; i < childNodes.length; i++) {\r
-        this.cssUtil.addClassNames(childNodes[i], 'cellSelected');\r
-      }\r
-      this.cssUtil.addClassNames(this.targetIdRow, 'cellSelected');\r
-      childNodes = Element.getTagNodes(this.targetIdRow, true);\r
-      for (var i = 0; i < childNodes.length; i++) {\r
-        this.cssUtil.addClassNames(childNodes[i], 'cellSelected');\r
-      }  \r
-    }\r
-    \r
-  },\r
-  \r
-  removeSelectedClasses : function() {\r
-    if (this.targetHeaderCell) {\r
-      this.cssUtil.removeClassNames(this.targetHeaderCell, 'cellSelected');\r
-      var childNodes = Element.getTagNodes(this.targetHeaderCell, true);\r
-      for (var i = 0; i < childNodes.length; i++) {\r
-        this.cssUtil.removeClassNames(childNodes[i], 'cellSelected');\r
-      }\r
-      for(var i = 0; i < this.targetColumn.length; i++) {\r
-        this.cssUtil.removeClassNames(this.targetColumn[i], 'cellSelected');\r
-        var cellChildNodes = Element.getTagNodes(this.targetColumn[i], true);      \r
-        for (var j = 0; j < cellChildNodes.length; j++) {\r
-          this.cssUtil.removeClassNames(cellChildNodes.length[j], 'cellSelected');\r
-        }\r
-      }\r
-      \r
-    }\r
-    if (this.targetCell) {\r
-      this.cssUtil.removeClassNames(this.targetCell, 'cellSelected');\r
-      var childNodes = Element.getTagNodes(this.targetCell, true);      \r
-      for (var i = 0; i < childNodes.length; i++) {\r
-        this.cssUtil.removeClassNames(childNodes[i], 'cellSelected');\r
-      }\r
-      \r
-    }\r
-    \r
-    if (this.targetRow) {\r
-      this.cssUtil.removeClassNames(this.targetRow, 'cellSelected');\r
-      var childNodes = Element.getTagNodes(this.targetRow, true);\r
-      for (var i = 0; i < childNodes.length; i++) {\r
-        this.cssUtil.removeClassNames(childNodes[i], 'cellSelected');\r
-      }\r
-      this.cssUtil.removeClassNames(this.targetIdRow, 'cellSelected');\r
-      childNodes = Element.getTagNodes(this.targetIdRow, true);\r
-      for (var i = 0; i < childNodes.length; i++) {\r
-        this.cssUtil.removeClassNames(childNodes[i], 'cellSelected');\r
-      }  \r
-    }\r
-    \r
-    this.targetHeaderCell = null;\r
-    this.targetColumn = null;\r
-    this.targetColIndex = null;\r
-    this.targetCell = null;\r
-    this.targetRowIndex = null;\r
-    this.targetRow = null;\r
-    this.targetIdRow = null;  \r
-  },\r
-  \r
-  updateId : function() {\r
-    var rows = this.idTable.rows;\r
-    for (var i = 0; i < rows.length; i++) {\r
-      var idValue = document.getElementsByClassName(this.custumCss.idCellVal, rows[i])[0];\r
-      \r
-      idValue.innerHTML = i + 1;\r
-    }\r
-  },\r
-  \r
-  updateRowLine : function(target) {\r
-    var targetCellRow = this.cellTable.rows[this.targetRowIndex];\r
-    var updateRowIndex = this.targetIdRow.rowIndex;\r
-    var cellTableBody = targetCellRow.parentNode;\r
-    var cellTableRows = cellTableBody.rows;\r
-    \r
-    if (this.options.hierarchy) {\r
-      var checkRow = cellTableBody.rows[this.targetIdRow.rowIndex];\r
-      if (this.isParentRow(checkRow, targetCellRow)) {\r
-        var idBody = this.idTable.tBodies[0];\r
-        idBody.insertBefore(this.targetIdRow, idBody.rows[this.targetRowIndex]);\r
-        return;\r
-      }\r
-    }\r
-    if (updateRowIndex == cellTableRows.length - 1) {\r
-      cellTableBody.appendChild(targetCellRow);\r
-    } else if (this.targetRowIndex < updateRowIndex) {\r
-      cellTableBody.insertBefore(targetCellRow, cellTableRows[updateRowIndex + 1]);\r
-    } else {\r
-      cellTableBody.insertBefore(targetCellRow, cellTableRows[updateRowIndex]);\r
-    }\r
-    if (this.options.hierarchy) {\r
-      this.updateOutline(targetCellRow);\r
-    }\r
-    this.targetRowIndex = updateRowIndex;\r
-    this.updateId();\r
-  },\r
-  updateCellLine : function(target){\r
-    var targetCells = this.getCells(this.targetColIndex);\r
-    var updateColIndex = this.targetHeaderCell.cellIndex;\r
-    \r
-    var rows = this.cellTable.rows;\r
-    \r
-    for (var i = 0; i < rows.length; i++) {\r
-      var cells = rows[i].cells;\r
-      var targetCell = targetCells[i];\r
-      \r
-      if (updateColIndex == cells.length -1) {\r
-        rows[i].appendChild(targetCell);\r
-      } else if (this.targetColIndex < updateColIndex) {\r
-        rows[i].insertBefore(targetCell, cells[updateColIndex + 1]);\r
-      } else {\r
-        rows[i].insertBefore(targetCell, cells[updateColIndex]);\r
-      }\r
-    }\r
-    this.targetColIndex = updateColIndex;\r
-  },\r
-  \r
-  updateCellWidth : function(newStyle, headColumn) {\r
-    \r
-    if(newStyle.width > this.options.cellMinWidth) {\r
-      var dragDiv = Element.getElementsByClassName(headColumn, Grid.className.headerCellDrag)[0];\r
-      var sortDiv = Element.getElementsByClassName(headColumn, Grid.className.headerCellSort)[0];\r
-      var val = newStyle.width - (parseInt(Element.getStyle(headColumn, 'width')));\r
-      \r
-      val = parseInt(val);\r
-      \r
-      this.headerTable.style.width = (parseInt(Element.getStyle(this.headerTable, 'width')) + val) + 'px';\r
-      \r
-      dragDiv.style.width = newStyle.width - (this.marginSize * 2) + 'px';\r
-      sortDiv.style.width = parseInt(Element.getStyle(dragDiv, 'width')) - (this.marginSize * 2)  + 'px';\r
-      \r
-      var index = headColumn.cellIndex ;\r
-      var rows = this.cellTable.rows;\r
-\r
-      this.cellTable.style.width = this.headerTable.style.width\r
-      \r
-      for(var i = 0; i < rows.length; i++){\r
-        var cell = rows[i].cells[index];\r
-        var cellValueDiv = Element.getElementsByClassName(cell, Grid.className.cellVal)[0];\r
-        cellValueDiv.style.width = newStyle.width + 'px';\r
-        cell.style.width = newStyle.width + 'px';\r
-      }\r
-            \r
-    }\r
-  },\r
-  \r
-  updateCellHeight : function(newStyle, idCell) {\r
-    if(newStyle.height > this.options.cellMinHeight) {\r
-      var row = idCell.parentNode;\r
-      var index = row.rowIndex;\r
-      var idValueDiv = Element.getElementsByClassName(idCell, Grid.className.idCellVal)[0];\r
-      idValueDiv.style.height = newStyle.height - (this.marginSize * 2) + 'px';\r
-      var padding = parseInt(idValueDiv.style.paddingTop);\r
-      var cellRow = this.cellTable.rows[index];      \r
-      var cells = cellRow.cells;\r
-      for (var i = 0; i < cells.length; i++) {\r
-        cells[i].style.height = newStyle.height + 'px';\r
-        var cellValueDiv =  Element.getElementsByClassName(cells[i], Grid.className.cellVal)[0];\r
-        cellValueDiv.style.height = newStyle.height + 'px';\r
-      }\r
-    }\r
-  },\r
-  \r
-  setTextAreaSize : function(event) {\r
-    var target = Event.element(event);\r
-    var rows = parseInt(Element.getStyle(target, 'height'));\r
-    var cols = parseInt(Element.getStyle(target, 'width'));\r
-    target.ajax.options.rows = Math.round(rows/20);\r
-    target.ajax.options.cols = Math.round(cols/20);\r
-  },\r
-  \r
-  fixTablePosition : function(event) {\r
-    Grid.scrollTop = this.element.scrollTop;\r
-    Grid.scrollLeft = this.element.scrollLeft;\r
-    this.baseTable.style.top = Grid.scrollTop + 'px';\r
-    this.baseTable.style.left = Grid.scrollLeft + 'px';\r
-    this.headerTable.style.top = Grid.scrollTop + 'px';\r
-    this.idTable.style.left = Grid.scrollLeft + 'px';\r
-  },\r
-  \r
-//----------ajax request param method---------------------------------------------------------------------------\r
-  createInplaceEditorParams : function(form, value) {\r
-    var rowIndexEnd = form.id.indexOf('_col_', 0);\r
-    var rowIndex = form.id.substring(this.rowIdBase.length, rowIndexEnd);\r
-\r
-    var colIndexStart = rowIndexEnd + '_col_'.length;\r
-    var colIndexEnd = form.id.indexOf('_form', 0);\r
-    var colIndex = form.id.substring(colIndexStart, colIndexEnd);\r
-    var jsonRowObj = this.rowDataToJsonObj(rowIndex);\r
-\r
-    var targetColTitle = this.getColTitle(colIndex);\r
-    jsonRowObj.each(function(j) {\r
-      if (j.column == targetColTitle) {\r
-        j.value = value;\r
-        throw $break;\r
-      }\r
-    });\r
-    var jsonRowText = JSON.stringify(jsonRowObj);\r
-    var params = {\r
-      rowData: jsonRowText,\r
-      column: targetColTitle,\r
-      value: value\r
-    };\r
-    return $H(params).toQueryString();\r
-  },\r
-  \r
-  gridDataToJsonObj : function() {\r
-    var rows = this.cellTable.rows;\r
-    var jsonDataList = [];\r
-    for (var i = 0; i < this.rowLength; i++) {\r
-      var rowData = this.rowDataToJsonObj(i);\r
-      jsonDataList.push(rowData);\r
-    }\r
-    return jsonDataList;  \r
-  },\r
-  \r
-  rowDataToJsonObj : function(index) {\r
-    var jsonRowObj = [];\r
-    var row = $A(this.cellTable.rows).detect(function(r) {return r.id.getSuffix() == index});\r
-    for (var i = 0; i < this.colLength; i++) {\r
-      var jsonCellObj = {};\r
-      jsonCellObj['column'] =  this.getColTitle(i);\r
-      jsonCellObj['value'] = Element.collectTextNodes(row.cells[i]);\r
-      jsonRowObj.push(jsonCellObj);\r
-    }\r
-    return jsonRowObj;\r
-  },\r
-  \r
-  updateGridData : function() {\r
-    \r
-    var jsonDataText = JSON.stringify(this.gridDataToJsonObj());\r
-    var params = 'id=' + encodeURIComponent(this.element.id) + '&data=' + encodeURIComponent(jsonDataText);\r
-\r
-    new Ajax.Updater(\r
-      this.options.updateGridReceiver, \r
-      this.options.updateGridUrl,\r
-      { \r
-        parameters: params, \r
-        evalScripts: true, asynchronous:true\r
-        \r
-      }\r
-    );    \r
-  },\r
-\r
-//----------hierarchy grid method---------------------------------------------------------------------------\r
-  setHierarchyRow : function(row, outlineLevel, outlineNum){\r
-    row.outlineLevel = outlineLevel || 1;\r
-    row.list = row.list || new Array();\r
-    if (row.outlineLevel == 1) {\r
-      this.topLevelList.push(row);\r
-      row.outlineNum = outlineNum || this.topLevelList.length;\r
-    } else {\r
-      var parentRow = this.getParentRow(row);\r
-      parentRow.list.push(row);\r
-      var num = parentRow.length;\r
-      row.outlineNum = outlineNum || parentRow.outlineNum + '.' + parentRow.list.length;\r
-      \r
-    }\r
-      \r
-    this.buildStateDiv(row.cells[this.hierarchyColIndex]);\r
-    this.setOutlineIndent(row);\r
-    this.setFontWeight(row);\r
-  },\r
-  \r
-  buildStateDiv : function (cell) {\r
-    var stateDiv = Builder.node('div');\r
-    var valueDiv = Element.getElementsByClassName(cell, Grid.className.cellVal)[0];\r
-    this.cssUtil.addClassNames(stateDiv, 'state');\r
-    cell.insertBefore(stateDiv, valueDiv);\r
-    \r
-    if (document.all) {\r
-      stateDiv.style.position = "absolute";\r
-    } else {\r
-      stateDiv.style.position = "relative";\r
-      stateDiv.style.cssFloat = "left";\r
-    }\r
-    this.addStateClass(cell, stateDiv);\r
-    Event.observe(stateDiv, 'click', this.toggleState.bindAsEventListener(this));\r
-  },\r
-  \r
-  addStateClass : function (cell, stateDiv) {\r
-    var row = cell.parentNode;\r
-    if (row.list.length == 0) {\r
-      this.cssUtil.addClassNames(stateDiv, 'stateEmpty');\r
-    } else if (this.options.open){\r
-      this.cssUtil.addClassNames(stateDiv, 'stateOpen');\r
-    } else {\r
-      this.cssUtil.addClassNames(stateDiv, 'stateClose');\r
-      this.closeRow(row);\r
-    }\r
-  },\r
-  \r
-  toggleState : function(event) {\r
-    var src = Event.element(event);\r
-    var row = src.parentNode.parentNode;\r
-\r
-    if (!Element.hasClassName(src, Grid.className.stateEmpty)) {\r
-      if (Element.hasClassName(src, Grid.className.stateOpen)) {\r
-        this.closeRow(row.list);\r
-        this.cssUtil.removeClassNames(src, 'stateOpen');\r
-        this.cssUtil.addClassNames(src, 'stateClose');\r
-      } else {\r
-        this.openRow(row.list);\r
-        this.cssUtil.removeClassNames(src, 'stateClose');\r
-        this.cssUtil.addClassNames(src, 'stateOpen');\r
-      }\r
-    }\r
-  },\r
-  \r
-  openRow : function(list) {\r
-    for (var i = 0; i < list.length; i++) {\r
-      var row = list[i];\r
-      Element.show(row);\r
-      Element.show(this.getIdRow(row));\r
-      var stateDiv = Element.getElementsByClassName(row.cells[this.hierarchyColIndex], Grid.className.state)[0];\r
-      if (Element.hasClassName(stateDiv, Grid.className.stateOpen)) {\r
-        this.openRow(row.list)\r
-      }\r
-    }\r
-  },\r
-  \r
-  closeRow : function(list) {\r
-    for (var i = 0; i < list.length; i++) {\r
-      Element.hide(list[i]);\r
-      Element.hide(this.getIdRow(list[i]));\r
-      this.closeRow(list[i].list)\r
-    }  \r
-  },\r
-\r
-  \r
-  showStateDiv : function(transport, element) {\r
-    var row = Element.getParentByTagName(['TR'], element);\r
-    var state = Element.getElementsByClassName(row, Grid.className.state)[0];\r
-    Element.show(state);    \r
-  },\r
-  \r
-  hideStateDiv : function(event) {\r
-    var src = Event.element(event);\r
-    var row = Element.getParentByTagName(['TR'], src);\r
-    var state = Element.getElementsByClassName(row, Grid.className.state)[0];\r
-    \r
-    Element.hide(state);\r
-  },\r
-  \r
-  addHierarchyRow : function(index, values) {\r
-    if (this.colLength == 0) {\r
-      return;\r
-    }\r
-    var newRow = this.addRow(index, values);\r
-    \r
-    newRow.list = new Array();\r
-    var previousRow = newRow.previousSibling;\r
-    var parentRow = null;\r
-    var parentList = null;\r
-    var insertIndex = 0;\r
-    if (!previousRow) {\r
-      newRow.outlineLevel = 1;\r
-      parentList = this.topLevelList;\r
-    } else if (previousRow.list.length > 0) {\r
-      newRow.outlineLevel = previousRow.outlineLevel + 1;\r
-      parentRow = previousRow;\r
-      parentList = parentRow.list;\r
-    } else {\r
-      newRow.outlineLevel = previousRow.outlineLevel;\r
-      parentRow = this.getParentRow(previousRow);\r
-      parentList = parentRow ? parentRow.list : this.topLevelList;\r
-      insertIndex = parentList.indexOf(previousRow) + 1;\r
-    }\r
-    parentList.insert(insertIndex, newRow);\r
-    this.buildStateDiv(newRow.cells[this.hierarchyColIndex]);\r
-    for (var i = insertIndex; i < parentList.length; i++) {\r
-      if (parentList[i].outlineLevel != 1) {\r
-        parentList[i].outlineNum = parentRow.outlineNum + '.' + (i + 1);\r
-      } else {\r
-        parentList[i].outlineNum = i + 1;\r
-      }\r
-      this.setOutline(parentList[i]);\r
-    }    \r
-    \r
-  },\r
-  \r
-  deleteHierarchyRow : function(index) {\r
-    if(isNaN(index) || index >= this.rowLength) {\r
-      return;\r
-    }\r
-    var row = this.getRow(index);\r
-    if (!row) {\r
-      return;\r
-    }\r
-    var parentRow = this.getParentRow(row);\r
-    var parentList = parentRow ? parentRow.list : this.topLevelList;\r
-    var removeIndex = parentList.indexOf(row);\r
-    var childList = row.list;\r
-    \r
-    for (var i = 0; i < childList.length; i++) {\r
-      this.deleteChildRow(childList[i]);\r
-    }\r
-    parentList.remove(removeIndex);\r
-    this.deleteRow(index);\r
-    \r
-    for (var i = removeIndex; i < parentList.length; i++) {\r
-      var updateRow = parentList[i];\r
-      if (updateRow.outlineLevel == 1) {\r
-        updateRow.outlineNum = i + 1;\r
-      } else {\r
-        updateRow.outlineNum = this.getParentRow(updateRow).outlineNum + '.' + (i + 1);\r
-      }\r
-      this.setOutline(parentList[i]);\r
-    }\r
-    this.setFontWeight(parentRow);\r
-  },\r
-  \r
-  deleteChildRow : function(childRow) {\r
-    var list = childRow.list;\r
-    \r
-    for (var i = 0; i < list.length; i++) {\r
-      this.deleteChildRow(list[i]);\r
-    }\r
-    this.deleteRow(childRow.rowIndex);\r
-  }, \r
-  \r
-  levelUp : function(row) {\r
-    if (!row) {\r
-      return;\r
-    }\r
-    var previousRow = row.previousSibling;\r
-    if (row.outlineLevel == 1 || !previousRow) {\r
-      return;\r
-    }\r
-    \r
-    var parentRow = this.getParentRow(row);\r
-    var currentList = parentRow.list;\r
-    \r
-    var newParentRow = this.getParentRow(parentRow);\r
-    var targetList = newParentRow ? newParentRow.list : this.topLevelList;\r
-    \r
-    var currentIndex = currentList.indexOf(row);\r
-    var targetIndex = targetList.indexOf(parentRow) + 1;\r
-\r
-    row.outlineLevel -= 1;\r
-    targetList.insert(targetIndex, row);\r
-    currentList.remove(currentIndex);\r
-    \r
-    while (currentList[currentIndex]) {\r
-      var moveRow = currentList[currentIndex];\r
-      row.list.push(moveRow);\r
-      currentList.remove(currentIndex);\r
-    }\r
-    \r
-    if (row.outlineLevel != 1) {\r
-      row.outlineNum = newParentRow.outlineNum + '.' + (targetIndex + 1);\r
-    } else {\r
-      row.outlineNum = targetIndex + 1;\r
-    }\r
-    \r
-    this.setOutline(row);\r
-\r
-    for (var i = targetIndex + 1; i < targetList.length; i++) {\r
-      if (targetList[i].outlineLevel != 1) {\r
-        targetList[i].outlineNum = newParentRow.outlineNum + '.' + (i + 1);\r
-      } else {\r
-        targetList[i].outlineNum = i + 1;\r
-      }\r
-      this.setOutline(targetList[i]);\r
-    }\r
-\r
-    this.setFontWeight(row);\r
-    this.setFontWeight(parentRow);\r
-    this.setFontWeight(newParentRow);    \r
-    this.setStateClass(row);\r
-    this.setStateClass(previousRow);\r
-  },\r
-  \r
-  levelDown : function(row) {\r
-    if (!row) {\r
-      return;\r
-    }\r
-    var previousRow = row.previousSibling;\r
-    var parentRow = this.getParentRow(row);\r
-    if (!previousRow || parentRow == previousRow) {\r
-      return;\r
-    }\r
-    var currentList = (row.outlineLevel == 1) ? this.topLevelList : parentRow.list;\r
-    var currentIndex = currentList.indexOf(row);\r
-    \r
-    row.outlineLevel += 1;\r
-    \r
-    var newParentRow = this.getParentRow(row);\r
-    var targetList = newParentRow.list;\r
-    var targetIndex = targetList.length;\r
-    \r
-    currentList.remove(currentIndex);\r
-    targetList.push(row);\r
-    \r
-    row.outlineNum = newParentRow.outlineNum + '.' + (targetIndex + 1);\r
-    this.setOutline(row);\r
-    for (var i = currentIndex; i < currentList.length; i++) {\r
-      if (currentList[i].outlineLevel != 1) {\r
-        currentList[i].outlineNum = parentRow.outlineNum + '.' + (i + 1);\r
-      } else {\r
-        currentList[i].outlineNum = i + 1;\r
-      }\r
-      this.setOutline(currentList[i]);\r
-    }\r
-    \r
-    for (var i = targetIndex + 1; i < targetList.length; i++) {\r
-      targetList[i].outlineNum = newParentRow.outlineNum + '.' + (i + 1);\r
-      this.setOutline(targetList[i]);\r
-    }\r
-    \r
-    this.setFontWeight(row);\r
-    this.setFontWeight(parentRow);\r
-    this.setFontWeight(newParentRow);\r
-    this.setStateClass(row);\r
-    this.setStateClass(previousRow);\r
-    \r
-  },\r
-  \r
-  setStateClass : function(row) {\r
-    if (!row.list) return; \r
-    var stateDiv = Element.getElementsByClassName(row.cells[this.hierarchyColIndex], Grid.className.state)[0];\r
-    \r
-    if (Element.hasClassName(stateDiv, Grid.className.stateEmpty) && row.list.length > 0) {\r
-      this.cssUtil.removeClassNames(stateDiv, 'stateEmpty');\r
-      this.cssUtil.addClassNames(stateDiv, 'stateOpen');\r
-    } else if (!Element.hasClassName(stateDiv, Grid.className.stateEmpty) && row.list.length == 0) {\r
-      this.cssUtil.removeClassNames(stateDiv, 'stateOpen');\r
-      this.cssUtil.addClassNames(stateDiv, 'stateEmpty');\r
-    }\r
-  },\r
-  \r
-  setOutline : function(row) {\r
-    var childList = row.list;\r
-    if (!childList) return;\r
-    for(var i = 0; i < childList.length; i++) {\r
-      var childRow = childList[i];\r
-      childRow.outlineLevel = row.outlineLevel + 1;\r
-      childRow.outlineNum = row.outlineNum + '.' + (i + 1);\r
-      this.setOutline(childRow);\r
-    }\r
-    this.setOutlineIndent(row);  \r
-  },\r
-  \r
-  setOutlineIndent : function(row) {\r
-    var cell = row.cells[this.hierarchyColIndex];\r
-    if (!cell) {\r
-      return;\r
-    }\r
-    var cellValueDiv = Element.getElementsByClassName(cell, Grid.className.cellVal)[0];\r
-    var stateDiv = Element.getElementsByClassName(cell, Grid.className.state)[0];\r
-    if (!stateDiv) return;\r
-    var stateDivWidth = stateDiv.offsetWidth || this.stateDivWidth;\r
-    var left = this.options.hierarchyIndent * (row.outlineLevel - 1);\r
-    var valueLeft = document.all ? left + stateDivWidth : left;\r
-    cellValueDiv.style.left = valueLeft + 'px';\r
-    stateDiv.style.left = left + 'px';\r
-  },\r
-  \r
-  setFontWeight : function(row) {\r
-    if (row) {\r
-      if (!row.list) return;\r
-      if (row.list.length > 0){\r
-        row.style.fontWeight = 'bold';\r
-      } else {\r
-        row.style.fontWeight = 'normal';  \r
-      }\r
-    }\r
-  },\r
-  \r
-  updateOutline : function(row) {\r
-    var previousRow = row.previousSibling;\r
-    var newParentRow = null;\r
-    var insertIndex = 0;\r
-    var newParentList = null;\r
-    \r
-    if (!previousRow.list) return;\r
-    if (!previousRow) {\r
-      newParentList = this.topLevelList;\r
-    }else if(previousRow.list.length > 0) {\r
-      newParentRow = previousRow;\r
-      newParentList = newParentRow.list;\r
-    } else {\r
-      newParentRow = this.getParentRow(previousRow);\r
-      newParentList = newParentRow ? newParentRow.list : this.topLevelList;\r
-      insertIndex = newParentList.indexOf(previousRow) + 1;\r
-    }\r
-    var parentRow = this.getParentRowByIndex(row, this.targetRowIndex);\r
-    var parentList = null;\r
-\r
-    var outlineNumBase = '';\r
-    if (parentRow) {\r
-      parentList = parentRow.list;\r
-      outlineNumBase = parentRow.outlineNum + '.';\r
-    } else {\r
-      parentList = this.topLevelList;\r
-      if (!parentList) return;\r
-    }\r
-    var removeIndex = parentList.indexOf(row);\r
-    \r
-    if (parentList == newParentList && removeIndex < insertIndex) {  \r
-      insertIndex -= 1;\r
-      parentList.remove(removeIndex);\r
-      parentList.insert(insertIndex, row);\r
-      for (var i = removeIndex; i < parentList.length; i++) {\r
-        try {\r
-          parentList[i].outlineNum = outlineNumBase + (i + 1);\r
-          this.setOutline(parentList[i]); \r
-        } catch (e) {}\r
-      }\r
-    \r
-    } else {\r
-      parentList.remove(removeIndex);\r
-      newParentList.insert(insertIndex, row);\r
-      for (var i = removeIndex; i < parentList.length; i++) {\r
-        parentList[i].outlineNum = outlineNumBase + (i + 1);\r
-        this.setOutline(parentList[i]); \r
-      }\r
-      var newOutlineNumBase = newParentRow ? newParentRow.outlineNum + '.' : '';\r
-      var newOutlineLevelBase = newParentRow ? newParentRow.outlineLevel : 0;\r
-      row.outlineNum = newOutlineNumBase + (insertIndex + 1);\r
-      row.outlineLevel = newOutlineLevelBase + 1;\r
-      for (var i = insertIndex; i < newParentList.length; i++) {\r
-        newParentList[i].outlineNum = newOutlineNumBase + (i + 1);\r
-        this.setOutline(newParentList[i]);\r
-      }\r
-      this.setOutline(row);    \r
-    }\r
-    this.setFontWeight(row);\r
-    this.setStateClass(row);\r
-    if (parentRow) {\r
-      this.setFontWeight(parentRow);\r
-      this.setStateClass(parentRow);\r
-    }\r
-    if (newParentRow) {\r
-      this.setFontWeight(newParentRow);\r
-      this.setStateClass(newParentRow);\r
-    }\r
-    this.updateHierarchyRowLine(row);\r
-  },\r
-  \r
-  updateHierarchyRowLine : function(row, existingRow) {\r
-    if (!row.list) return;\r
-    var rowIndex = row.rowIndex;\r
-    var cellBody = this.cellTable.tBodies[0];\r
-    var idBody = this.idTable.tBodies[0];\r
-    if (!existingRow) {\r
-      existingRow = cellBody.rows[rowIndex + 1]\r
-    }\r
-    \r
-    for (var i = 0; i < row.list.length; i++) {\r
-      if (!existingRow) {\r
-        cellBody.appendChild(row.list[i]);\r
-        idBody.appendChild(this.getIdRow(row.list[i]));\r
-      } else {\r
-        cellBody.insertBefore(row.list[i], existingRow);\r
-        idBody.insertBefore(this.getIdRow(row.list[i]), this.getIdRow(existingRow));\r
-      }\r
-      this.updateHierarchyRowLine(row.list[i], existingRow);\r
-    }\r
-  },\r
-    \r
-  getParentRow : function(row) {\r
-    if (row.outlineLevel == 1) {\r
-      return null;\r
-    }\r
-\r
-    var previousRow = row.previousSibling;\r
-    if (!previousRow) {\r
-      return null;\r
-    }\r
-    try {\r
-      while (previousRow.outlineLevel != (row.outlineLevel - 1)) {\r
-        previousRow = previousRow.previousSibling;\r
-      }\r
-      return previousRow;\r
-    } catch (e) {}\r
-  },\r
-  \r
-  getParentRowByIndex : function(row, index) {\r
-    if (row.outlineLevel == 1) {\r
-      return null;\r
-    }\r
-    if (this.targetRowIndex) {\r
-      for(var i = 0; i < this.targetRowIndex + 1; i++) {\r
-        if (!this.cellTable.rows[i].list) return;\r
-        if (this.cellTable.rows[i].list.indexOf(row) != -1) {\r
-          return this.cellTable.rows[i];\r
-        }\r
-      }\r
-    }\r
-    return null;\r
-  },\r
-  \r
-  getPreviousRootRow : function(row) {\r
-    var previousRow = row.previousSibling;\r
-    if (!previousRow) {\r
-      return;\r
-    }\r
-    while (previousRow.outlineLevel != 1) {\r
-      previousRow = previousRow.previousSibling;\r
-    }  \r
-    \r
-    return previousRow;\r
-  },\r
-  \r
-  isParentRow : function(row, parentRow) {\r
-    var temp = this.getParentRow(row);\r
-    if (!temp) {\r
-      return false;\r
-    } else if (temp == parentRow) {\r
-      return true;\r
-    } else {\r
-      return this.isParentRow(temp, parentRow);\r
-    }\r
-  }\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/grid_resizeEx.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/grid_resizeEx.js
deleted file mode 100644 (file)
index 7cc0086..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-// Copyright (c) 2005 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// This code is substantially based on code from Thomas Fakes(http://craz8.com) \r
-// which has the following copyright and permission notice\r
-// \r
-// Copyright (c) 2005 Thomas Fakes (http://craz8.com)\r
-// \r
-// This code is substantially based on code from script.aculo.us which has the \r
-// following copyright and permission notice\r
-//\r
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-ResizeableGridEx = Class.create();\r
-Object.extend(Object.extend(ResizeableGridEx.prototype, Resizeable.prototype), {\r
-\r
-  draw: function(event) {\r
-    \r
-    var pointer = [Event.pointerX(event), Event.pointerY(event)];\r
-    var style = this.element.style;\r
-    var newHeight = 0;\r
-    var newWidth = 0;\r
-    var newTop = 0;\r
-    var newLeft = 0;\r
-    if (this.currentDirection.indexOf('n') != -1) {\r
-      var pointerMoved = this.startY - pointer[1];\r
-      var margin = Element.getStyle(this.element, 'margin-top') || "0";\r
-      newHeight = this.startHeight + pointerMoved;\r
-      newTop = (this.startTop - pointerMoved - parseInt(margin)) + "px";\r
-    }\r
-    if (this.currentDirection.indexOf('w') != -1) {\r
-      var pointerMoved = this.startX - pointer[0];\r
-      var margin = Element.getStyle(this.element, 'margin-left') || "0";\r
-      newWidth = this.startWidth + pointerMoved;\r
-      newLeft = (this.startLeft - pointerMoved - parseInt(margin))  + "px";\r
-    }\r
-    if (this.currentDirection.indexOf('s') != -1) {\r
-      newHeight = this.startHeight + pointer[1] - this.startY;\r
-    }\r
-    if (this.currentDirection.indexOf('e') != -1) {\r
-      newWidth = this.startWidth + pointer[0] - this.startX;\r
-    }\r
-    var newStyle = {\r
-              height: newHeight,\r
-              width: newWidth,\r
-              top: newTop,\r
-              left: newLeft\r
-            }\r
-  if (this.options.draw) {\r
-      this.options.draw(newStyle, this.element);\r
-    }\r
-    \r
-    if (newHeight && newHeight > this.options.minHeight) {\r
-\r
-      style.top = newStyle.top;\r
-    \r
-      style.height = newStyle.height + "px";\r
-  \r
-    }\r
-    if (newWidth && newWidth > this.options.minWidth) {\r
-    \r
-      style.left = newStyle.left;\r
-      style.width = newStyle.width + "px";\r
-      \r
-\r
-    }\r
-    if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering\r
-  },\r
-\r
-  directions: function(event) {\r
-    var pointer = [Event.pointerX(event) + Grid.scrollLeft, Event.pointerY(event) + Grid.scrollTop];\r
-    //var pointer = [Event.pointerX(event), Event.pointerY(event)];    \r
-    var offsets = Position.cumulativeOffset(this.element);\r
-  var cursor = '';\r
-  if (this.between(pointer[1] - offsets[1], 0, this.options.top)) cursor += 'n';\r
-  if (this.between((offsets[1] + this.element.offsetHeight) - pointer[1], 0, this.options.bottom)) cursor += 's';\r
-  if (this.between(pointer[0] - offsets[0], 0, this.options.left)) cursor += 'w';\r
-  if (this.between((offsets[0] + this.element.offsetWidth) - pointer[0], 0, this.options.right)) cursor += 'e';\r
-  \r
-  return cursor;\r
-  }\r
-});\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/grid_sortabletableEx.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/grid_sortabletableEx.js
deleted file mode 100644 (file)
index e1ef2e7..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-// Copyright (c) 2005 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-\r
-SortableTableGridEx = Class.create();\r
-Object.extend(Object.extend(SortableTableGridEx.prototype, SortableTable.prototype), {\r
-\r
-  initialize:  function(element) {\r
-    this.element = $(element);\r
-    Element.setStyle(this.element, {visibility: 'hidden'});\r
-\r
-    var options = Object.extend({\r
-      ascImg: false,\r
-      descImg: false,\r
-      handle: false,\r
-      callBack: false\r
-    }, arguments[1] || {});\r
-    this.options = options;\r
-    \r
-    this.handle = options.handle ? $(options.handle) : this.element.rows[0];\r
-    this.ascImg = options.ascImg ? options.ascImg : 'images/spinelz/sortableTable_down.gif';\r
-    this.descImg = options.descImg ? options.descImg : 'images/spinelz/sortableTable_up.gif';\r
-    this.sortType = options.sortType;\r
-    \r
-    this.currentOrder = 'default';\r
-    this.defaultOrder = new Array();\r
-    for (var i = 0; i < this.element.rows.length; i++) {\r
-      this.defaultOrder[i] = this.element.rows[i];\r
-    }    \r
-    this.addEvents();\r
-    Element.setStyle(this.element, {visibility: 'visible'});\r
-  },\r
-  \r
-  addEvents: function() {\r
-    var rows = this.handle.rows[0];\r
-    if (!rows) return;\r
-    \r
-    for (var i = 0; i < rows.cells.length; i++) {\r
-      Element.cleanWhitespace(rows.cells[i]);\r
-      Element.cleanWhitespace(rows.cells[i].firstChild);\r
-      this.addEvent(rows.cells[i].firstChild.firstChild);  \r
-    }\r
-  },\r
-  \r
-  addEvent: function(handle) {\r
-    if (handle) {\r
-      handle.style.cursor = 'pointer';\r
-      Event.observe(handle, 'click', this.sortTable.bindAsEventListener(this));\r
-    }\r
-  },\r
-  \r
-  sortTable: function(event) {\r
-    var target = Event.element(event);\r
-    if (target.tagName.toUpperCase() == 'IMG') {\r
-      target = target.parentNode;\r
-    }\r
-    var cell = target;\r
-    if (cell.tagName.toUpperCase() != 'TD' && cell.tagName.toUpperCase() != 'TH') {\r
-      cell = Element.getParentByTagName(['TD','TH'], cell);\r
-    }\r
-    var tmpColumn = cell.cellIndex;\r
-    if (this.targetColumn != tmpColumn) {\r
-      this.currentOrder = 'default';\r
-    }\r
-    this.targetColumn = tmpColumn;\r
-    \r
-    var newRows = new Array();\r
-    for (var i = 0; i < this.element.rows.length; i++) {\r
-      newRows[i] = this.element.rows[i];\r
-    }\r
-    if (newRows.length < 1) return;\r
-    \r
-    if (this.currentOrder == 'default') {\r
-      newRows.sort(this.getSortFunc());\r
-      this.currentOrder = 'asc';\r
-      \r
-    } else if (this.currentOrder == 'asc') {\r
-      newRows = newRows.reverse();\r
-      this.currentOrder = 'desc';\r
-    } else if (this.currentOrder == 'desc') {\r
-      newRows = this.defaultOrder;\r
-      this.currentOrder = 'default';\r
-    }\r
-    \r
-    for (var i = 0; i < newRows.length; i++) {\r
-      this.element.tBodies[0].appendChild(newRows[i]);\r
-    }\r
-    \r
-    this.mark(target);\r
-    if (this.options.callBack) this.options.callBack(this.element); \r
-  },\r
-  \r
-  mark: function(cell) {\r
-    var row = this.options.handle ? this.options.handle.rows[0] : this.element.rows[0];\r
-    \r
-    var imgs = row.getElementsByTagName('IMG');\r
-\r
-    for (var i = 0; i < imgs.length; i++){\r
-      var parent = imgs[i].parentNode;\r
-      parent.removeChild(imgs[i]);\r
-    }\r
-    var imgFile;\r
-    if (this.currentOrder == 'asc') imgFile = this.ascImg;\r
-    else if (this.currentOrder == 'desc') imgFile = this.descImg;\r
-    \r
-    if (imgFile)\r
-      cell.appendChild(Builder.node('IMG', {src: imgFile, alt: 'sortImg'}));\r
-  } \r
-\r
-});\r
-\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/inplaceEditorEx.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/inplaceEditorEx.js
deleted file mode 100644 (file)
index 0a1cd9c..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-// Copyright (c) 2006 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// This code is substantially based on code from script.aculo.us which has the \r
-// following copyright and permission notice\r
-//\r
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-InPlaceEditorEx = Class.create();\r
-Object.extend(Object.extend(InPlaceEditorEx.prototype, Ajax.InPlaceEditor.prototype), {\r
-  /*********************************************\r
-   * Edit\r
-   *   The URL option is unnecessary because\r
-   *   of updating without Ajax.\r
-   *********************************************\r
-  initialize: function(element, url, options) {\r
-    this.url = url;\r
-   *********************************************/\r
-  initialize: function(element, options) {\r
-  /*********************************************/\r
-    this.element = $(element);\r
-\r
-    this.options = Object.extend({\r
-      okButton: true,\r
-      okText: "ok",\r
-      cancelLink: true,\r
-      cancelText: "cancel",\r
-      savingText: "Saving...",\r
-      clickToEditText: "Click to edit",\r
-      okText: "ok",\r
-      rows: 1,\r
-      onComplete: function(transport, element) {\r
-        new Effect.Highlight(element, {startcolor: this.options.highlightcolor});\r
-      },\r
-      onFailure: function(transport) {\r
-        alert("Error communicating with the server: " + transport.responseText.stripTags());\r
-      },\r
-      callback: function(form) {\r
-        return Form.serialize(form);\r
-      },\r
-      handleLineBreaks: true,\r
-      loadingText: 'Loading...',\r
-      savingClassName: 'inplaceeditor-saving',\r
-      loadingClassName: 'inplaceeditor-loading',\r
-      formClassName: 'inplaceeditor-form',\r
-      highlightcolor: Ajax.InPlaceEditor.defaultHighlightColor,\r
-      highlightendcolor: "#FFFFFF",\r
-      externalControl: null,\r
-      submitOnBlur: false,\r
-      ajaxOptions: {},\r
-      evalScripts: false\r
-    }, options || {});\r
-\r
-    if(!this.options.formId && this.element.id) {\r
-      this.options.formId = this.element.id + "-inplaceeditor";\r
-      if ($(this.options.formId)) {\r
-        // there's already a form with that name, don't specify an id\r
-        this.options.formId = null;\r
-      }\r
-    }\r
-    \r
-    if (this.options.externalControl) {\r
-      this.options.externalControl = $(this.options.externalControl);\r
-    }\r
-    \r
-    this.originalBackground = Element.getStyle(this.element, 'background-color');\r
-    if (!this.originalBackground) {\r
-      this.originalBackground = "transparent";\r
-    }\r
-    \r
-    this.element.title = this.options.clickToEditText;\r
-    \r
-  /*********************************************\r
-   * Edit\r
-   *   The event to enter edit mode is changed\r
-   *   from single-click to double-click.\r
-   *********************************************\r
-    this.onclickListener = this.enterEditMode.bindAsEventListener(this);\r
-    this.mouseoverListener = this.enterHover.bindAsEventListener(this);\r
-    this.mouseoutListener = this.leaveHover.bindAsEventListener(this);\r
-    Event.observe(this.element, 'click', this.onclickListener);\r
-    Event.observe(this.element, 'mouseover', this.mouseoverListener);\r
-    Event.observe(this.element, 'mouseout', this.mouseoutListener);\r
-    if (this.options.externalControl) {\r
-      Event.observe(this.options.externalControl, 'click', this.onclickListener);\r
-      Event.observe(this.options.externalControl, 'mouseover', this.mouseoverListener);\r
-      Event.observe(this.options.externalControl, 'mouseout', this.mouseoutListener);\r
-    }\r
-   *********************************************/\r
-    this.ondblclickListener = this.enterEditMode.bindAsEventListener(this);\r
-    this.mouseoverListener = this.enterHover.bindAsEventListener(this);\r
-    this.mouseoutListener = this.leaveHover.bindAsEventListener(this);\r
-    Event.observe(this.element, 'dblclick', this.ondblclickListener);\r
-    Event.observe(this.element, 'mouseover', this.mouseoverListener);\r
-    Event.observe(this.element, 'mouseout', this.mouseoutListener);\r
-    if (this.options.externalControl) {\r
-      Event.observe(this.options.externalControl, 'dblclick', this.ondblclickListener);\r
-      Event.observe(this.options.externalControl, 'mouseover', this.mouseoverListener);\r
-      Event.observe(this.options.externalControl, 'mouseout', this.mouseoutListener);\r
-    }\r
-  /*********************************************/\r
-  },\r
-  getText: function() {\r
-    return this.element.innerHTML.unescapeHTML();\r
-  },\r
-  onSubmit: function() {\r
-    var value = this.editField.value.escapeHTML();\r
-    if(value == '') {\r
-      this.onclickCancel();\r
-      return false;\r
-    } else {\r
-      this.onLoading();\r
-      this.element.innerHTML = value;\r
-      new InPlaceEditorEx(this.element.id, this.options);\r
-      return true;\r
-    }\r
-  },\r
-  removeForm: function() {\r
-    if(this.form) {\r
-      if(this.form.parentNode) {\r
-        var childNodes = this.form.parentNode.childNodes;\r
-        for(var i = 0; i < childNodes.length; i++) {\r
-          childNodes[i].data = '';\r
-        }\r
-        Element.remove(this.form);\r
-      }\r
-      this.form = null;\r
-    }\r
-  }\r
-});\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/menubar.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/menubar.js
deleted file mode 100644 (file)
index 83afa7a..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-// Copyright (c) 2005 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-var MenuBar = Class.create();\r
-MenuBar.cssNames = {\r
-  container:        'menubar',\r
-  menu:             'menubar_menu',\r
-  menuBody:         'menubar_menuBody',\r
-  menuBodyHover:    'menubar_menuBodyHover',\r
-  subMenu:          'menubar_subMenu',\r
-  subMenuBody:      'menubar_subMenuBody',\r
-  subMenuBodyHover: 'menubar_subMenuBodyHover',\r
-  subMenuContainer: 'menubar_menuContainer',\r
-  dirMark:          'menubar_dirMark'\r
-}\r
-\r
-MenuBar.mark = {\r
-  dir: '>>'\r
-}\r
-\r
-MenuBar.prototype = {\r
-\r
-  initialize: function(element) {\r
-    this.options = Object.extend({\r
-      hideOnClickSubmenu: true\r
-    }, arguments[1]);\r
-\r
-    this.element = $(element);\r
-    Element.setStyle(this.element, {visibility: 'hidden'});\r
-    Element.hide(this.element);\r
-    \r
-    var options = Object.extend({\r
-      cssPrefix: 'custom_'\r
-    }, arguments[1] || {});\r
-    \r
-    var customCss = CssUtil.appendPrefix(options.cssPrefix, MenuBar.cssNames);\r
-    this.classNames = new CssUtil([MenuBar.cssNames, customCss]);\r
-    \r
-    this.clicked = [];\r
-    var topMenus = [];\r
-    var nodes = this.element.childNodes;\r
-    \r
-    for (var i = 0; i < nodes.length; i++) {\r
-      if (nodes[i].nodeType == 1) {\r
-        this.build(nodes[i], 'menu');\r
-        topMenus.push(nodes[i]);\r
-      }    \r
-    }\r
-    \r
-    this.menubar = Builder.node('DIV', topMenus)\r
-    this.classNames.addClassNames(this.menubar, 'container');\r
-    this.element.appendChild(this.menubar);\r
-    \r
-    Event.observe(document, "click", this.hideAllTrigger(this.menubar).bindAsEventListener(this));\r
-    Element.setStyle(this.element, {visibility: 'visible'});\r
-    Element.show(this.element);\r
-  },\r
-  \r
-  build: function(element, className) {\r
-    this.classNames.addClassNames(element, className);\r
-        \r
-    var bodyContents = new Array();\r
-    var subMenus = new Array();\r
-    var nodes = element.childNodes;\r
-    \r
-    for (var i = 0; i < nodes.length; i++) {\r
-      if (nodes[i].nodeType == 1 && nodes[i].tagName == 'DIV') {\r
-        this.build(nodes[i], 'subMenu');\r
-        subMenus.push(nodes[i]);\r
-      } else {\r
-        bodyContents.push(nodes[i]);\r
-      }\r
-    }\r
-    \r
-    var bodyClass= className + 'Body';\r
-    var body = Builder.node('DIV', bodyContents);\r
-    this.classNames.addClassNames(body, bodyClass);\r
-    new Hover(body);\r
-    element.appendChild(body);\r
-    \r
-    if (subMenus.length > 0) {\r
-      if (className == 'subMenu') {\r
-        var subMenu = Builder.node('DIV', [MenuBar.mark.dir]);\r
-        this.classNames.addClassNames(subMenu, 'dirMark');\r
-        body.appendChild(subMenu);\r
-      }\r
-      \r
-      var container = Builder.node('DIV', subMenus);\r
-      this.classNames.addClassNames(container, 'subMenuContainer');\r
-      element.appendChild(container);\r
-      \r
-      this.hide(container);\r
-    }\r
-    Event.observe(element, "click", this.onClick.bindAsEventListener(this, body));\r
-  },\r
-  \r
-  onClick: function(event, menuBody) {\r
-    var menu = menuBody.parentNode;\r
-    var parentContainer = this.getParentContainer(menu);\r
-    \r
-    var container = this.getContainer(menu);\r
-    var className = MenuBar.cssNames.menu;\r
-    if (Element.hasClassName(menu, className)) {\r
-      if (this.clicked.length > 0) {\r
-        this.hideAll(this.menubar);\r
-        this.clicked = [];\r
-      }\r
-      if (container) this.showAtBottom(container, menuBody);\r
-\r
-    } else {\r
-      if (container) {\r
-        var lastMenuBody = this.clicked.pop();\r
-        var lastMenu = lastMenuBody.parentNode;\r
-        var lastContainer = this.getContainer(lastMenu);\r
-        var lastParentContainer = this.getParentContainer(lastMenu);\r
-        \r
-        if (lastMenu == menu) {\r
-          this.hide(container);\r
-        \r
-        } else if (Element.hasClassName(lastContainer, MenuBar.cssNames.container)) {\r
-          this.clicked.push(last);\r
-        \r
-        } else if (lastParentContainer == parentContainer) {\r
-          this.hide(lastContainer);\r
-        \r
-        } else {\r
-          this.clicked.push(lastMenuBody);\r
-        }\r
-        this.showAtLeft(container, menu);\r
-      } else if (this.options.hideOnClickSubmenu) {\r
-        this.hideAll(this.menubar);\r
-      }\r
-    }\r
-    \r
-    if (container) this.clicked.push(menuBody);\r
-    Event.stop(event);\r
-  },\r
-  \r
-  showAtBottom: function(contents, menuBody) {\r
-    var offset = Position.positionedOffset(menuBody);\r
-    var height = 0;\r
-      \r
-    if (menuBody.style.height) height = Element.getHeight(menuBody);\r
-    else height = menuBody.clientHeight;\r
-    height += offset[1];\r
-    height += (document.all) ? 4 : 3;\r
-      \r
-    contents.style.top = height + 'px';\r
-    contents.style.left = offset[0] + 'px';\r
-      \r
-    this.show(contents);\r
-  },\r
-  \r
-  showAtLeft: function(contents, menuBody) {\r
-    var offset = Position.positionedOffset(menuBody);\r
-    \r
-    contents.style.top = (offset[1] - 1) + 'px';\r
-    contents.style.left = (offset[0] + menuBody.offsetWidth + 2) + 'px';\r
-    \r
-    this.show(contents);\r
-  },\r
-\r
-  hideAllTrigger: function(element) {\r
-    return function(event) {\r
-      if (!this.isMenuElement(Event.element(event))) this.hideAll(element);\r
-    }\r
-  },\r
-  \r
-  hideAll: function(element) {\r
-    var nodes = element.childNodes;\r
-    for (var i = 0; i < nodes.length; i++) {\r
-      if (nodes[i].nodeType == 1) {\r
-        if (Element.hasClassName(nodes[i], MenuBar.cssNames.subMenuContainer)) {\r
-          this.hide(nodes[i]);\r
-        }\r
-          \r
-        this.hideAll(nodes[i]);\r
-      }\r
-    }\r
-  },\r
-  \r
-  show: function(element) {\r
-    element.style.visibility = 'visible';\r
-  }, \r
-  \r
-  hide: function(element) {\r
-    element.style.visibility = 'hidden';\r
-  },\r
-  \r
-  getContainer: function(element) {\r
-    \r
-    if (!element) return;\r
-    return document.getElementsByClassName(MenuBar.cssNames.subMenuContainer, element)[0];\r
-  },\r
-  \r
-  getParentContainer: function(element) {\r
-    var container = Element.getParentByClassName(MenuBar.cssNames.subMenuContainer, element);\r
-    if (!container) {\r
-      container = Element.getParentByClassName(MenuBar.cssNames.container, element);\r
-    }\r
-    \r
-    return container;\r
-  },\r
-\r
-  isMenuElement: function(element) {\r
-    return Element.hasClassName(element, MenuBar.cssNames.menuBodyHover)\r
-      || Element.hasClassName(element, MenuBar.cssNames.subMenuBodyHover)\r
-      || Element.hasClassName(element, MenuBar.cssNames.dirMark);\r
-  }\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/navPanel.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/navPanel.js
deleted file mode 100644 (file)
index 41fd961..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-// Copyright (c) 2005 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-NavPanel = Class.create();\r
-NavPanel.className = {\r
-  navPanel : 'navPanel',\r
-  panel: 'navPanel_panel',\r
-  tab : 'navPanel_tab',\r
-  tabLeftInactive : 'navPanel_tabLeftInactive',\r
-  tabLeftActive: 'navPanel_tabLeftActive',\r
-  tabMiddleInactive : 'navPanel_tabMiddleInactive',\r
-  tabMiddleActive : 'navPanel_tabMiddleActive',\r
-  tabRightInactive : 'navPanel_tabRightInactive',\r
-  tabRightActive : 'navPanel_tabRightActive'\r
-}\r
-NavPanel.prototype = {\r
-  \r
-  initialize: function(element) {\r
-    var options = Object.extend({\r
-      selected: 1,\r
-      cssPrefix: 'custom_'\r
-    }, arguments[1] || {});\r
-    \r
-    this.options = options;\r
-    this.element = $(element);\r
-    Element.setStyle(this.element, {visibility: 'hidden'});\r
-    Element.hide(this.element);\r
-    \r
-    var customCss = CssUtil.appendPrefix(this.options.cssPrefix, NavPanel.className);\r
-    this.classNames = new CssUtil([NavPanel.className, customCss]);\r
-    \r
-    this.classNames.addClassNames(this.element, 'navPanel');\r
-    \r
-    this.selected = (this.options.selected > 0) ? this.options.selected - 1 :  0 ;\r
-    this.start();\r
-    \r
-    Element.setStyle(this.element, {visibility: 'visible'});\r
-    Element.show(this.element);\r
-  },\r
-  \r
-  start: function() {\r
-    this.tabs = [];\r
-    this.panels = [];\r
-    this.panelList = [];\r
-\r
-    this.tabId = this.element.id + '_tab';\r
-    this.tabLeftId = this.tabId + '_left';\r
-    this.tabMiddleId = this.tabId + '_middle';\r
-    this.tabRightId = this.tabId + '_right';\r
-    this.panelId = this.element.id + '_panel';\r
-    \r
-    this.build();  \r
-  },  \r
-  \r
-  build: function() {\r
-    Element.cleanWhitespace(this.element);\r
-    this.panelList = this.element.childNodes;\r
-    \r
-    for (var i = 0; i < this.panelList.length; i++) {\r
-      if (this.panelList[i].nodeType != 1) {\r
-        Element.remove(this.panelList[i]);\r
-        i--;\r
-        continue;\r
-      }\r
-      Element.cleanWhitespace(this.panelList[i]);\r
-      var navSet = this.panelList[i].childNodes;\r
-      this.buildTab(navSet[0], i);\r
-      this.buildPanel(navSet[0], i);\r
-    }\r
-    this.selectTab();\r
-  },\r
-  \r
-  \r
-  buildTab: function(tabTitle, i) {\r
-    var tab = Builder.node('div', {id:this.tabId + i});\r
-    this.classNames.addClassNames(tab, 'tab');\r
-    var tabLeft = Builder.node('div', {id:this.tabLeftId + i});\r
-    var tabMiddle = Builder.node('div', {id:this.tabMiddleId + i});\r
-    tabMiddle.appendChild(tabTitle);\r
-    var tabRight = Builder.node('div',{id:this.tabRightId + i});\r
-    \r
-    tab.appendChild(tabLeft);\r
-    tab.appendChild(tabMiddle);\r
-    tab.appendChild(tabRight);\r
-    Event.observe(tab, 'click', this.selectTab.bindAsEventListener(this));\r
-\r
-    this.tabs[i] = tab;\r
-    this.setTabInactive(tab);\r
-    this.panelList[i].appendChild(tab);\r
-  },\r
-  \r
-  buildPanel: function(panelContent, i) {\r
-    var panel = Builder.node('div', {id:this.panelId + i});\r
-    this.classNames.addClassNames(panel, 'panel');\r
-    panel.appendChild(panelContent);\r
-    Element.hide(panel);\r
-    this.panels[i] = panel;\r
-    this.panelList[i].appendChild(panel);\r
-  },\r
-  \r
-  selectTab: function(e) {\r
-    if (!e) {\r
-      if (!this.panels[this.selected]) this.selected = 0;\r
-      Element.show(this.panels[this.selected]);\r
-      this.setTabActive(this.tabs[this.selected]);\r
-      return;\r
-    }\r
-  \r
-    var targetElement = Event.element(e);\r
-    var targetIndex = this.getTargetIndex(targetElement);\r
-    if (targetIndex == this.selected) {\r
-      return;\r
-    }\r
-          \r
-    var currentPanel = this.panels[this.selected];\r
-    var targetPanel = this.panels[targetIndex];\r
-    this.setTabInactive(this.tabs[this.selected]);\r
-    this.setTabActive(this.tabs[targetIndex]);\r
-    Element.show(targetPanel);\r
-    Element.hide(currentPanel);\r
-    this.selected = targetIndex;  \r
-  },\r
-  \r
-  setTabActive: function(tab) {\r
-    var tabChildren = tab.childNodes;\r
-\r
-    this.classNames.refreshClassNames(tabChildren[0], 'tabLeftActive');\r
-    this.classNames.refreshClassNames(tabChildren[1], 'tabMiddleActive');\r
-    this.classNames.refreshClassNames(tabChildren[2], 'tabRightActive');\r
-  },\r
-  \r
-  setTabInactive: function(tab) {\r
-    var tabChildren = tab.childNodes;\r
-    \r
-    this.classNames.refreshClassNames(tabChildren[0], 'tabLeftInactive');\r
-    this.classNames.refreshClassNames(tabChildren[1], 'tabMiddleInactive');\r
-    this.classNames.refreshClassNames(tabChildren[2], 'tabRightInactive');\r
-  },\r
-\r
-  getTargetIndex: function(element) {\r
-\r
-    while(element) {\r
-      if (element.id && element.id.indexOf(this.tabId, 0) >= 0) {\r
-        var index = element.id.substring(this.tabId.length);\r
-        if (!isNaN(index)) {\r
-          return index;\r
-        }\r
-      }\r
-      element = element.parentNode;\r
-    }\r
-  }\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/selectableTable.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/selectableTable.js
deleted file mode 100644 (file)
index 6b67ad9..0000000
+++ /dev/null
@@ -1,393 +0,0 @@
-// Copyright (c) 2005 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-var SelectableTable = Class.create();\r
-\r
-SelectableTable.classNames = {\r
-  table:        'selectableTable_table',\r
-  tr:           'selectableTable_tr',\r
-  trHover:      'selectableTable_trHover',\r
-  trSelected:   'selectableTable_trSelected'\r
-}\r
-\r
-SelectableTable.prototype = {\r
-  initialize: function(element) {\r
-    this.element = $(element);\r
-    Element.setStyle(this.element, {visibility: 'hidden'});\r
-    var defaultOptions  = {\r
-      arrayDefaultData:                 [],\r
-      flagAllowUnselect:                true,\r
-      flagInitialAllowMultiple:         false,\r
-      flagKeypressAvailable:            false,\r
-      flagKeypressDeleteAvailable:      false,\r
-      flagKeypressInsertAvailable:      false,\r
-      functionPostAdd:                  Prototype.emptyFunction,\r
-      functionPostDelete:               Prototype.emptyFunction,\r
-      functionPostPressLeft:            Prototype.emptyFunction,\r
-      functionPostPressRight:           Prototype.emptyFunction,\r
-      functionPostSelect:               Prototype.emptyFunction,\r
-      functionPostUnselect:             Prototype.emptyFunction,\r
-      functionPreAdd:                   function() {return true;},\r
-      functionPreDelete:                function() {return true;},\r
-      functionSubmit:                   Prototype.emptyFunction,\r
-      initialSelected:                  null,\r
-      prefixTrId:                       'selectable_table_',\r
-      prefixCSS:                        'custom_'\r
-    }\r
-    this.options                = Object.extend(defaultOptions, arguments[1] || {});\r
-    this.classNames             = new CssUtil([SelectableTable.classNames, CssUtil.appendPrefix(this.options.prefixCSS, SelectableTable.classNames)]);\r
-    this.documentListener       = this.eventKeypress.bindAsEventListener(this);\r
-    this.flagAllowMultiple      = this.options.flagInitialAllowMultiple;\r
-    this.flagAvailable          = true;\r
-    this.focused                = null;\r
-    this.lastSelected           = null;\r
-    this.newNumber              = 1;\r
-    this.selected               = new Object();\r
-    this.build();\r
-    if(arguments[2]) {\r
-      this.selectEffect(this.buildTrId(arguments[2]));\r
-    }\r
-    Element.setStyle(this.element, {visibility: 'visible'});\r
-  },\r
-\r
-  add: function() {\r
-    if(!this.flagAvailable) {return;}\r
-    if(!this.options.functionPreAdd(this)) {return;}\r
-    if(arguments[0] == null) {arguments[0] = this.options.arrayDefaultData;}\r
-    if(typeof(arguments[0]) != 'string') {\r
-      arguments = arguments[0];\r
-    }\r
-    if(arguments[0] == null) {return;}\r
-    var objTr, objTd;\r
-    objTr = document.createElement('tr');\r
-    objTr.id = 'new_' + this.newNumber;\r
-    this.buildTr(objTr);\r
-    for(var i = 0; i < arguments.length; i++) {\r
-      objTd = document.createElement('td');\r
-      objTd.innerHTML = arguments[i];\r
-      objTr.appendChild(objTd);\r
-    }\r
-    this.element.tBodies[0].appendChild(objTr);\r
-    this.newNumber++;\r
-    this.options.functionPostAdd(this);\r
-  },\r
-\r
-  build: function() {\r
-    var lines = this.element.tBodies[0].rows;\r
-    this.classNames.addClassNames(this.element, 'table');\r
-    Event.observe(document, 'keypress', this.documentListener);\r
-    for(var i = 0; i < lines.length; i++) {\r
-      this.buildTr(lines[i]);\r
-    }\r
-    var selected = this.options.initialSelected\r
-    if(selected) {\r
-      this.selectEffect(this.buildTrId(selected));\r
-    }\r
-  },\r
-\r
-  buildTr: function(objTr) {\r
-    objTr.id = this.buildTrId(objTr.id);\r
-    this.classNames.addClassNames(objTr, 'tr');\r
-    Event.observe(objTr, 'click',     this.eventClick.bindAsEventListener(this));\r
-    Event.observe(objTr, 'dblclick',  this.eventDoubleClick.bindAsEventListener(this));\r
-    Event.observe(objTr, 'mouseout',  this.eventFocusOut.bindAsEventListener(this));\r
-    Event.observe(objTr, 'mouseover', this.eventFocusOver.bindAsEventListener(this));\r
-  },\r
-\r
-  buildTrId: function(strId) {\r
-    return this.options.prefixTrId + strId\r
-  },\r
-\r
-  deleteAll: function() {\r
-    if(!this.flagAvailable) {return;}\r
-    if(!this.options.functionPreDelete(this)) {return;}\r
-    for(var trId in this.selected) {\r
-      this.element.tBodies[0].removeChild($(trId));\r
-      delete this.selected[trId];\r
-    }\r
-    this.focused = null;\r
-    this.options.functionPostDelete(this);\r
-  },\r
-\r
-  eventClick: function(event) {\r
-    if(!this.flagAvailable) {return;}\r
-    if(event.shiftKey) {\r
-      this.selectOrUnselectRange(Event.findElement(event, 'tr').id);\r
-    } else {\r
-      this.selectOrUnselect(Event.findElement(event, 'tr').id, event.ctrlKey);\r
-    }\r
-  },\r
-\r
-  eventDoubleClick: function(event) {\r
-    if(!this.flagAvailable) {return;}\r
-    if(this.flagAllowMultiple) {\r
-      this.select(Event.findElement(event, 'tr').id, false);\r
-      this.submit();\r
-    }\r
-  },\r
-\r
-  eventFocusOut: function(event) {\r
-    if(!this.flagAvailable) {return;}\r
-    this.focusOff();\r
-  },\r
-\r
-  eventFocusOver: function(event) {\r
-    if(!this.flagAvailable) {return;}\r
-    this.focusOn(Event.findElement(event, 'tr').id);\r
-    Event.findElement(event, 'tr').focus();\r
-  },\r
-\r
-  eventKeypress: function(event) {\r
-    if(!this.flagAvailable) {return;}\r
-    if(!this.options.flagKeypressAvailable) {return;}\r
-    switch(event.keyCode) {\r
-      case 13: //Enter\r
-        if(event.shiftKey) {\r
-          this.selectOrUnselectRange(this.focused);\r
-        } else {\r
-          this.selectOrUnselect(this.focused, event.ctrlKey);\r
-        }\r
-        break;\r
-      case 37: //Left\r
-        this.options.functionPostPressLeft(this);\r
-        break;\r
-      case 38: //Up\r
-        this.focusMove('up');\r
-        break;\r
-      case 39: //Right\r
-        this.options.functionPostPressRight(this);\r
-        break;\r
-      case 40: //Down\r
-        this.focusMove('down');\r
-        break;\r
-      case 45: //Insert\r
-        if(this.options.flagKeypressInsertAvailable) {this.add();}\r
-        break;\r
-      case 46: //Delete\r
-        if(this.options.flagKeypressDeleteAvailable) {this.deleteAll();}\r
-        break;\r
-    }\r
-  },\r
-\r
-  focusMove: function(direction) {\r
-    if(!this.flagAvailable) {return;}\r
-    if(this.focused == null) {\r
-      this.focusOn(this.element.tBodies[0].rows[0].id);\r
-    } else {\r
-      var rowIndex = $(this.focused).rowIndex;\r
-      var correctionValue, flagEdge;\r
-      switch(direction) {\r
-        case 'down':\r
-          correctionValue = 1;\r
-          flagEdge = this.isBottom(rowIndex);\r
-          break;\r
-        case 'up':\r
-          correctionValue = -1;\r
-          flagEdge = this.isTop(rowIndex);\r
-          break;\r
-      }\r
-      if(!flagEdge) {\r
-        this.focusOn(this.element.rows[rowIndex + correctionValue].id);\r
-      }\r
-    }\r
-  },\r
-\r
-  focusOff: function() {\r
-    if(!this.flagAvailable) {return;}\r
-    if(this.focused != null) {\r
-      var objTr = $(this.focused);\r
-      this.classNames.removeClassNames(objTr, 'trHover');\r
-      this.focused = null;\r
-    }\r
-  },\r
-\r
-  focusOn: function(trId) {\r
-    if(!this.flagAvailable) {return;}\r
-    if($(trId) != null) {\r
-      this.focusOff();\r
-      this.classNames.addClassNames($(trId), 'trHover');\r
-      this.focused = trId;\r
-    }\r
-  },\r
-\r
-  getSelected: function() {\r
-    var selectedIdList  = new Array();\r
-    for(var trId in this.selected) {\r
-      selectedIdList.push(trId.replace(this.options.prefixTrId, ''));\r
-    }\r
-    return selectedIdList;\r
-  },\r
-\r
-  getSelectedElement: function(id) {\r
-    var trId = this.options.prefixTrId + id;\r
-    return $(trId)\r
-  },\r
-\r
-  isBottom: function(rowIndex) {\r
-    return (rowIndex == this.element.rows.length - 1) ? true : false;\r
-  },\r
-\r
-  isTop: function(rowIndex) {\r
-    return (rowIndex == this.element.tBodies[0].rows[0].rowIndex) ? true : false;\r
-  },\r
-\r
-  makeAvailable: function() {\r
-    this.flagAvailable = true;\r
-  },\r
-\r
-  makeMultiple: function() {\r
-    this.flagAllowMultiple = true;\r
-  },\r
-\r
-  makeSingular: function() {\r
-    this.flagAllowMultiple = false;\r
-    this.unselectAll();\r
-  },\r
-\r
-  makeUnavailable: function() {\r
-    this.flagAvailable = false;\r
-  },\r
-\r
-  removeEventFromDocument: function() {\r
-    Event.stopObserving(document, 'keypress', this.documentListener);\r
-  },\r
-\r
-  select: function(trId, ctrl) {\r
-    if(!this.flagAvailable) {return;}\r
-    this.selectEffect(trId, ctrl);\r
-    this.lastSelected = trId;\r
-    this.options.functionPostSelect(this);\r
-    if(!this.flagAllowMultiple) {\r
-      this.submit();\r
-    }\r
-  },\r
-\r
-  selectAll: function() {\r
-    if(!this.flagAvailable) {return;}\r
-    if(!this.flagAllowMultiple) {return;}\r
-    this.selected = new Object();\r
-    var lines = this.element.tBodies[0].rows;\r
-    for(var i = 0; i < lines.length; i++) {\r
-      this.select(lines[i].id, true);\r
-    }\r
-  },\r
-\r
-  selectEffect: function(trId, ctrl) {\r
-    if($(trId)) {\r
-      if(!this.flagAllowMultiple || !ctrl) {\r
-        this.unselectAll();\r
-      }\r
-      this.classNames.addClassNames($(trId), 'trSelected');\r
-      this.selected[trId] = true;\r
-    }\r
-  },\r
-\r
-  selectOrUnselect: function(trId, ctrl) {\r
-    if(!this.flagAvailable) {return;}\r
-    if(trId == null) {return;}\r
-    if(ctrl && this.selected[trId]) {\r
-      if(!this.flagAllowMultiple && !this.options.flagAllowUnselect) {return;}\r
-      this.unselect(trId);\r
-    } else {\r
-      this.select(trId, ctrl);\r
-    }\r
-  },\r
-\r
-  selectOrUnselectRange: function(trId) {\r
-    if(!this.flagAvailable) {return;}\r
-    if(trId == null) {return;}\r
-    if(this.lastSelected == null || this.lastSelected == trId) {\r
-      this.selectOrUnselect(trId);\r
-      return;\r
-    }\r
-    var flagSelect = false;\r
-    var lines = this.element.tBodies[0].rows;\r
-    var lastSelected = this.lastSelected\r
-    for(var i = 0; i < lines.length; i++) {\r
-      if(lines[i].id == trId || lines[i].id == lastSelected) {\r
-        flagSelect = (flagSelect) ? false : true;\r
-      } else if(!flagSelect) {\r
-        continue;\r
-      }\r
-      if(this.selected[lastSelected]) {\r
-        this.select(lines[i].id, true);\r
-      } else {\r
-        this.unselect(lines[i].id);\r
-      }\r
-    }\r
-  },\r
-\r
-  submit: function(trId) {\r
-    if(!this.flagAvailable) {return;}\r
-    var selected = this.getSelected();\r
-    this.options.functionSubmit(selected[0]);\r
-  },\r
-\r
-  unselect: function(trId) {\r
-    if(!this.flagAvailable) {return;}\r
-    this.classNames.removeClassNames($(trId), 'trSelected');\r
-    delete this.selected[trId];\r
-    this.lastSelected = trId;\r
-    this.options.functionPostUnselect(this);\r
-  },\r
-\r
-  unselectAll: function() {\r
-    if(!this.flagAvailable) {return;}\r
-    var lines = this.element.tBodies[0].rows;\r
-    for(var i = 0; i < lines.length; i++) {\r
-      this.unselect(lines[i].id);\r
-    }\r
-  }\r
-}\r
-\r
-var SelectableTableManager = Class.create();\r
-SelectableTableManager.prototype = {\r
-  initialize: function() {\r
-    this.active = null,\r
-    this.list   = {}\r
-  },\r
-  activate: function(key) {\r
-    this.stop();\r
-    if(this.list[key]) {\r
-      this.list[key].makeAvailable();\r
-      this.active = this.list[key];\r
-    } else {\r
-      this.active = null;\r
-    }\r
-  },\r
-  push: function(key, element) {\r
-    this.list[key] = element;\r
-  },\r
-  start: function() {\r
-    if(this.active) {\r
-      this.active.makeAvailable();\r
-    }\r
-  },\r
-  stop: function() {\r
-    $H(this.list).each(\r
-      function(el) {\r
-        if(el[1]) {\r
-          el[1].makeUnavailable();\r
-        }\r
-      }\r
-    );\r
-  }\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/sideBarBox.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/sideBarBox.js
deleted file mode 100644 (file)
index b8526ba..0000000
+++ /dev/null
@@ -1,269 +0,0 @@
-// Copyright (c) 2005 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-\r
-SideBarBox = Class.create();\r
-\r
-SideBarBox.className = {\r
-  panelContainer : 'sideBarBox_panelContainer',\r
-  tabContainer : 'sideBarBox_tabContainer',\r
-  title : 'sideBarBox_tabTitle',\r
-  tab : 'sideBarBox_tab',\r
-  tabTopInactive : 'sideBarBox_tabTopInactive',\r
-  tabTopActive : 'sideBarBox_tabTopActive',\r
-  tabMiddleInactive : 'sideBarBox_tabMiddleInactive',\r
-  tabMiddleActive : 'sideBarBox_tabMiddleActive',\r
-  tabBottomInactive : 'sideBarBox_tabBottomInactive',\r
-  tabBottomActive : 'sideBarBox_tabBottomActive'  \r
-}\r
-\r
-SideBarBox.prototype = {\r
-  \r
-  initialize: function(element) {\r
-    var options = Object.extend({\r
-      selected:     1,\r
-      beforeSelect: function() {return true},\r
-      afterSelect:  Prototype.emptyFunction,\r
-      visible:      false,\r
-      close:        true,\r
-      cssPrefix:    'custom_'\r
-    }, arguments[1] || {});\r
-    \r
-    this.options = options;\r
-    this.element = $(element);\r
-    Element.setStyle(this.element, {visibility: 'hidden'});\r
-    \r
-    var customCss = CssUtil.appendPrefix(this.options.cssPrefix, SideBarBox.className);\r
-    this.classNames = new CssUtil([SideBarBox.className, customCss]);\r
-    \r
-    this.start();\r
-    Element.setStyle(this.element, {visibility: 'visible'});\r
-  },\r
-  \r
-  start: function() {\r
-    this.tabs = [];\r
-    this.panelContents = [];\r
-    this.tabSets = [];\r
-    \r
-    this.visible = this.options.visible;\r
-    this.selected = (this.options.selected > 0) ? this.options.selected - 1 :  0 ;\r
-    this.selected = (this.visible) ? this.selected : -1;\r
-    \r
-    this.tabId = this.element.id + '_tab';\r
-    this.tabTopId = this.tabId + '_top';\r
-    this.tabMiddleId = this.tabId + '_middle';\r
-    this.tabBottomId = this.tabId + '_bottom';\r
-    this.tabContainerId = this.element.id + '_tabContainer';\r
-    this.panelId = this.element.id + '_panel';\r
-    this.panelContainerId = this.element.id + '_panelContainer';\r
-\r
-    this.tabContainer = null;  \r
-    this.panelContainer = null;\r
-    \r
-    this.buildTabBox();  \r
-  },\r
-  \r
-  buildTabBox: function() {\r
-    this.buildContainers();\r
-    \r
-    Element.cleanWhitespace(this.element);\r
-    this.tabSets = this.element.childNodes;\r
-    if (this.visible && this.selected >= this.tabSets.length) {\r
-      this.selected = 0;\r
-    }\r
-    var i = 0;\r
-    while(this.tabSets.length > 0){\r
-      var tabSet = this.tabSets[0];\r
-      var tabPanel = $A(tabSet.childNodes).detect(function(c) {\r
-        return (c.nodeType == 1) && (c.tagName.toLowerCase() == 'div');\r
-      });\r
-      this.buildPanel(tabPanel, i);     \r
-      this.buildTab(tabSet, i);\r
-      i++;\r
-    }\r
-    this.addContainers();\r
-  },\r
-  \r
-  buildContainers : function() {\r
-    this.tabContainer = Builder.node('div',{id:this.tabContainerId});\r
-    this.classNames.addClassNames(this.tabContainer, 'tabContainer');\r
-    this.panelContainer = Builder.node('div',\r
-                        {\r
-                          id:this.panelContainerId\r
-                        }\r
-                       );\r
-    this.classNames.addClassNames(this.panelContainer, 'panelContainer');\r
-\r
-    if (!this.visible) {\r
-      Element.hide(this.panelContainer);\r
-    }\r
-  },\r
-  \r
-  addContainers : function() {\r
-    this.element.appendChild(this.panelContainer);\r
-    this.element.appendChild(this.tabContainer);\r
-    this.element.appendChild(Builder.node('div', {style:'clear: left'}));\r
-  },\r
-  \r
-  buildTab: function(tab, i) {\r
-    var tabTitle = tab.childNodes;\r
-    tab.id = this.tabId + i;\r
-    this.classNames.addClassNames(tab, 'tab');\r
-    var top = Builder.node('div',{id: this.tabTopId + i});\r
-    var middle = Builder.node('div', {id: this.tabMiddleId + i}, $A(tabTitle));\r
-    var bottom = Builder.node('div', {id: this.tabBottomId + i});\r
-    \r
-    tab.appendChild(top);\r
-    tab.appendChild(middle);\r
-    tab.appendChild(bottom);\r
-    Event.observe(tab, 'click', this.selectTab.bindAsEventListener(this));\r
-    \r
-    this.tabs[i] = tab;\r
-    this.tabContainer.appendChild(tab);\r
-    if ( i != this.selected) {\r
-      this.setTabInactive(tab);\r
-    } else {\r
-      this.setTabActive(tab);\r
-    }\r
-  },\r
-  \r
-  buildPanel: function(panelContent, i) {\r
-    var panel = Builder.node('div', {id: this.panelId + i});\r
-    panel.appendChild(panelContent);\r
-    this.panelContents[i] = panel;\r
-    if(i != this.selected) {\r
-      Element.hide(panel);\r
-    }\r
-    this.panelContainer.appendChild(panel);\r
-  },\r
-  \r
-  selectTab: function(e) {\r
-    if (!this.options.beforeSelect()) return;\r
-    if (!e) {\r
-      this.setTabActive(this.tabs[this.selected]);\r
-      Element.show(this.panelList[this.selected]);\r
-      return;\r
-    }\r
-\r
-    var currentPanel = this.panelContents[this.selected];\r
-    var currentTab = this.tabs[this.selected];\r
-\r
-    var targetElement = null;\r
-    if (e.nodeType) {\r
-      targetElement = e; \r
-    } else {\r
-      targetElement = Event.element(e);\r
-    }\r
-    var targetIndex = this.getTargetIndex(targetElement);\r
-    var targetPanel = this.panelContents[targetIndex];\r
-    var targetTab = this.tabs[targetIndex];\r
-    if (this.visible) {\r
-      if (targetTab.id == currentTab.id) {\r
-        if (this.options.close) {\r
-          Effect.SlideRightOutOfView(this.panelContainer);\r
-          this.visible = false;\r
-          this.selected = -1;\r
-          this.setTabInactive(currentTab);\r
-          Element.toggle(targetPanel);\r
-        }\r
-      } else {\r
-        this.setTabActive(targetTab);\r
-        this.setTabInactive(currentTab);\r
-        Element.toggle(currentPanel);\r
-        Element.toggle(targetPanel);\r
-        this.selected = targetIndex;\r
-      }\r
-    } else {\r
-      this.setTabActive(targetTab);\r
-      Element.toggle(targetPanel);\r
-      Effect.SlideRightIntoView(this.panelContainer);\r
-      this.visible = true;  \r
-      this.selected = targetIndex;\r
-    }\r
-    this.options.afterSelect(targetPanel, currentPanel);\r
-  },\r
-  \r
-  setTabActive: function(tab) {\r
-    var tabChildren = tab.childNodes;\r
-\r
-    this.classNames.refreshClassNames(tabChildren[0], 'tabTopActive');\r
-    this.classNames.refreshClassNames(tabChildren[1], 'tabMiddleActive');\r
-    this.classNames.refreshClassNames(tabChildren[2], 'tabBottomActive');\r
-  },\r
-  \r
-  setTabInactive: function(tab) {\r
-    var tabChildren = tab.childNodes;\r
-    \r
-    this.classNames.refreshClassNames(tabChildren[0], 'tabTopInactive');\r
-    this.classNames.refreshClassNames(tabChildren[1], 'tabMiddleInactive');\r
-    this.classNames.refreshClassNames(tabChildren[2], 'tabBottomInactive');\r
-  },\r
-  \r
-  getTargetIndex: function(element) {\r
-    while(element) {\r
-      if (element.id && element.id.indexOf(this.tabId, 0) >= 0) {\r
-        var index = element.id.substring(this.tabId.length);\r
-        if (!isNaN(index)) {\r
-          return index;\r
-        }\r
-      }\r
-      element = element.parentNode;\r
-    }\r
-  },\r
-\r
-  hasNextTab: function() {\r
-    return this.getNextTab() ? true : false;\r
-  },\r
-\r
-  hasPreviousTab: function() {\r
-    return this.getPreviousTab() ? true : false;\r
-  },\r
-\r
-  getNextTab: function() {\r
-    return Element.next(this.getCurrentTab());\r
-  },\r
-\r
-  getPreviousTab: function() {\r
-    return Element.previous(this.getCurrentTab());\r
-  },\r
-\r
-  selectNextTab: function() {\r
-    this.selectTab(this.getNextTab());\r
-  },\r
-\r
-  selectPreviousTab: function() {\r
-    this.selectTab(this.getPreviousTab());\r
-  },\r
-\r
-  tabCount: function() {\r
-    return this.tabs.inject(0, function(i, t) {\r
-      return t ? ++i : i;\r
-    })\r
-  },\r
-\r
-  getCurrentPanel: function() {\r
-    return this.panelContents[this.selected];\r
-  },\r
-\r
-  getCurrentTab: function() {\r
-    return this.tabs[this.selected];\r
-  }\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/sideBarBox_effects.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/sideBarBox_effects.js
deleted file mode 100644 (file)
index 5ac4698..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright (c) 2005 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// This code is substantially based on code from script.aculo.us which has the \r
-// following copyright and permission notice\r
-//\r
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-Effect.SlideRightIntoView = function(element) {\r
-  element = $(element);\r
-  Element.cleanWhitespace(element);\r
-\r
-  var oldInnerRight = element.firstChild.style.right;\r
-  var elementDimensions = Element.getDimensions(element);\r
-  return new Effect.Scale(element, 100, \r
-   Object.extend({ scaleContent: false, \r
-    scaleY: false, \r
-    scaleFrom: 0,\r
-    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},    \r
-    restoreAfterFinish: true,\r
-    afterSetup: function(effect) {\r
-      Element.makePositioned(effect.element.firstChild);\r
-      if (window.opera) effect.element.firstChild.style.left = "";\r
-      Element.makeClipping(effect.element);\r
-      element.style.width = '0';\r
-      Element.show(element); \r
-    },  \r
-    afterUpdateInternal: function(effect) { \r
-      effect.element.firstChild.style.right = \r
-        (effect.dims[1] - effect.element.clientWidth) + 'px'; },\r
-    afterFinishInternal: function(effect) { \r
-      Element.undoClipping(effect.element); \r
-      Element.undoPositioned(effect.element.firstChild);\r
-      effect.element.firstChild.style.right = oldInnerRight; }\r
-    }, arguments[1] || {})\r
-  );\r
-}\r
-\r
-Effect.SlideRightOutOfView = function(element) {\r
-  element = $(element);\r
-  Element.cleanWhitespace(element);\r
-  var oldInnerRight = element.firstChild.style.right;\r
-  return new Effect.Scale(element, 0, \r
-   Object.extend({ scaleContent: false, \r
-    scaleY: false, \r
-    scaleMode: 'box',\r
-    scaleFrom: 100,\r
-    restoreAfterFinish: true,\r
-    beforeStartInternal: function(effect) { \r
-      Element.makePositioned(effect.element.firstChild);\r
-      if (window.opera) effect.element.firstChild.style.left = "";\r
-      Element.makeClipping(effect.element);\r
-      Element.show(element); \r
-    },  \r
-    afterUpdateInternal: function(effect) { \r
-     effect.element.firstChild.style.right = \r
-       (effect.dims[1] - effect.element.clientWidth) + 'px'; },\r
-    afterFinishInternal: function(effect) { \r
-        Element.hide(effect.element);\r
-        Element.undoClipping(effect.element); \r
-        Element.undoPositioned(effect.element.firstChild);\r
-        effect.element.firstChild.style.right = oldInnerRight; }\r
-   }, arguments[1] || {})\r
-  );\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/sortableTable.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/sortableTable.js
deleted file mode 100644 (file)
index dee2f26..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-// Copyright (c) 2005 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-var SortableTable = Class.create();\r
-\r
-SortableTable.classNames = {\r
-  header: 'sortableTable_header',\r
-  title: 'sortableTable_title',\r
-  empty: 'sortableTable_empty',\r
-  down: 'sortableTable_down',\r
-  up: 'sortableTable_up',\r
-  mark: 'sortableTable_mark',\r
-  thead: 'sortableTable_thead',\r
-  tbody: 'sortableTable_tbody'\r
-}\r
-\r
-SortableTable.prototype = {\r
-  \r
-  initialize:  function(element) {\r
-    this.element = $(element);\r
-    Element.setStyle(this.element, {visibility: 'hidden'});\r
-\r
-    var options = Object.extend({\r
-      sortType: false,\r
-      cssPrefix: 'custom_'\r
-    }, arguments[1] || {});\r
-    \r
-    var customCss = CssUtil.appendPrefix(options.cssPrefix, SortableTable.classNames);\r
-    this.classNames = new CssUtil([SortableTable.classNames, customCss]);\r
-    \r
-    this.sortType = options.sortType;\r
-    \r
-    this.currentOrder = 'default';\r
-    this.defaultOrder = new Array();\r
-    for (var i = 1; i < this.element.rows.length; i++) {\r
-      this.defaultOrder[i - 1] = this.element.rows[i];\r
-    }\r
-    \r
-    this.build();\r
-    Element.setStyle(this.element, {visibility: 'visible'});\r
-  },\r
-  \r
-  build: function() {\r
-    thead = this.element.tHead;\r
-    this.classNames.addClassNames(thead, 'thead');\r
-    tbody = thead.nextSibling;\r
-    while ((tbody.nodeType != 1) || (tbody.tagName.toLowerCase() != 'tbody')) {\r
-      tbody = tbody.nextSibling;\r
-    }\r
-    this.classNames.addClassNames(tbody, 'tbody');\r
-    var rows = this.element.rows[0];\r
-    if (!rows) return;\r
-    \r
-    for (var i = 0; i < rows.cells.length; i++) {\r
-      \r
-      var cell = rows.cells[i];\r
-      cell.style.cursor = 'pointer';\r
-      \r
-      Element.cleanWhitespace(cell);\r
-      var title = Builder.node('DIV', $A(cell.childNodes));\r
-      this.classNames.addClassNames(title, 'title');\r
-      \r
-      var img = Builder.node('DIV');\r
-      this.classNames.addClassNames(img, 'mark');\r
-      this.classNames.addClassNames(img, 'empty');\r
-\r
-      var header = Builder.node('DIV', [title, img]);\r
-      this.classNames.addClassNames(header, 'header');\r
-      cell.appendChild(header);\r
-      \r
-      var titleWidth = title.offsetWidth;\r
-      var imgWidth = img.offsetWidth;\r
-      \r
-      title.style.width = (titleWidth + imgWidth) + 'px';\r
-      Event.observe(rows.cells[i], 'click', this.sortTable.bindAsEventListener(this));\r
-    }\r
-  },\r
-\r
-  sortTable: function(event) {\r
-    var cell = Event.element(event);\r
-\r
-    if (cell.tagName.toUpperCase() != 'TD' && cell.tagName.toUpperCase() != 'TH') {\r
-      cell = Element.getParentByTagName(['TD','TH'], cell);\r
-    }\r
-\r
-    var tmpColumn = cell.cellIndex;\r
-    if (this.targetColumn != tmpColumn) {\r
-      this.currentOrder = 'default';\r
-    }\r
-    this.targetColumn = tmpColumn;\r
-    \r
-    var newRows = new Array();\r
-    for (var i = 1; i < this.element.rows.length; i++) {\r
-      newRows[i - 1] = this.element.rows[i];\r
-    }\r
-    if (newRows.length < 1) return;\r
-        \r
-    if (this.currentOrder == 'default') {\r
-      newRows.sort(this.getSortFunc());\r
-      this.currentOrder = 'asc';\r
-    } else if (this.currentOrder == 'asc') {\r
-      newRows = newRows.reverse();\r
-      this.currentOrder = 'desc';\r
-    } else if (this.currentOrder == 'desc') {\r
-      newRows = this.defaultOrder;\r
-      this.currentOrder = 'default';\r
-    }\r
-    \r
-    for (var i = 0; i < newRows.length; i++) {\r
-      this.element.tBodies[0].appendChild(newRows[i]);\r
-    }\r
-    \r
-    this.mark(cell);\r
-  },\r
-  \r
-  mark: function(cell) {\r
-    var images = document.getElementsByClassName(SortableTable.classNames.mark, this.element);\r
-    var targetImg = document.getElementsByClassName(SortableTable.classNames.mark, cell)[0];\r
-    \r
-    for (var i = 0; i < images.length; i++) {\r
-      var parent = images[i].parentNode;\r
-      var title = document.getElementsByClassName(SortableTable.classNames.title, parent)[0];\r
-      var titleWidth = title.offsetWidth;\r
-      \r
-      if (targetImg == images[i]) {\r
-        \r
-         var imgWidth = targetImg.offsetWidth;\r
-      \r
-        if (this.currentOrder == 'asc') {\r
-          this.classNames.addClassNames(targetImg, 'down');\r
-          this.classNames.removeClassNames(targetImg, 'empty');\r
-          if (!document.all) title.style.width = (titleWidth - imgWidth) + 'px';\r
-          \r
-        } else if (this.currentOrder == 'desc') {\r
-          this.classNames.addClassNames(targetImg, 'up');\r
-          this.classNames.removeClassNames(targetImg, 'down');\r
-        \r
-        } else if (this.currentOrder == 'default') {\r
-          this.classNames.addClassNames(targetImg, 'empty');\r
-          this.classNames.removeClassNames(targetImg, 'up');\r
-          if (!document.all) title.style.width = (titleWidth + imgWidth) + 'px';\r
-        }\r
-        \r
-      } else {\r
-        \r
-        if (Element.hasClassName(images[i], SortableTable.classNames.empty))\r
-          continue;\r
-        \r
-        else if (Element.hasClassName(images[i], SortableTable.classNames.down))\r
-          this.classNames.removeClassNames(images[i], 'down');\r
-        \r
-        else if (Element.hasClassName(images[i], SortableTable.classNames.up))\r
-          this.classNames.removeClassNames(images[i], 'up');\r
-        \r
-         var imgWidth = targetImg.offsetWidth;\r
-        this.classNames.addClassNames(images[i], 'empty');\r
-        if (!document.all) title.style.width = (titleWidth + imgWidth) + 'px';\r
-      }\r
-    }\r
-  },\r
-\r
-  getSortFunc: function() {\r
-    if (!this.sortType || !this.sortType[this.targetColumn])\r
-      return SortFunction.string(this);\r
-    \r
-    var type = this.getSortType();\r
-    \r
-    if (!this.sortType || !type) {\r
-      return SortFunction.string(this);\r
-    } else if (type == SortFunction.numeric) {\r
-      return SortFunction.number(this);\r
-    } \r
-    \r
-    return SortFunction.date(this);\r
-  },\r
-  \r
-  getSortType: function() {\r
-    return this.sortType[this.targetColumn];\r
-  }\r
-}\r
-\r
-var SortFunction = Class.create();\r
-SortFunction = {\r
-  string: 'string',\r
-  numeric: 'numeric',\r
-  mmddyyyy: 'mmddyyyy',\r
-  mmddyy: 'mmddyy',\r
-  yyyymmdd: 'yyyymmdd',\r
-  yymmdd: 'yymmdd',\r
-  ddmmyyyy: 'ddmmyyyy',\r
-  ddmmyy: 'ddmmyy',\r
-  \r
-  date: function(grid) {\r
-    return function(fst, snd) {\r
-      var aValue = Element.collectTextNodes(fst.cells[grid.targetColumn]);\r
-      var bValue = Element.collectTextNodes(snd.cells[grid.targetColumn]);\r
-      var date1, date2;\r
-      \r
-      var date1 = SortFunction.getDateString(aValue, grid.getSortType());\r
-      var date2 = SortFunction.getDateString(bValue, grid.getSortType());\r
-      \r
-      if (date1 == date2) return 0;\r
-      if (date1 < date2) return -1;\r
-      \r
-      return 1;\r
-    }\r
-  },\r
-  \r
-  number: function(grid) {\r
-    return function(fst, snd) {\r
-      var aValue = parseFloat(Element.collectTextNodes(fst.cells[grid.targetColumn]));\r
-      if (isNaN(aValue)) aValue = 0;\r
-      var bValue = parseFloat(Element.collectTextNodes(snd.cells[grid.targetColumn])); \r
-      if (isNaN(bValue)) bValue = 0;\r
-      \r
-      return aValue - bValue;\r
-    }\r
-  },\r
-  \r
-  string: function(grid) {\r
-    return function(fst, snd) {\r
-      var aValue = Element.collectTextNodes(fst.cells[grid.targetColumn]);\r
-      var bValue = Element.collectTextNodes(snd.cells[grid.targetColumn]);\r
-      if (aValue == bValue) return 0;\r
-      if (aValue < bValue) return -1;\r
-      return 1;\r
-    }\r
-  },\r
-  \r
-  getDateString: function(date, type) {\r
-    var array = date.split('/');\r
-\r
-    if ((type == SortFunction.mmddyyyy) ||\r
-        (type == SortFunction.mmddyy)) {\r
-      var newArray = new Array();\r
-      newArray.push(array[2]);\r
-      newArray.push(array[0]);\r
-      newArray.push(array[1]);\r
-    } else if ((type == SortFunction.ddmmyyyy) ||\r
-               (type == SortFunction.ddmmyy)) {\r
-      var newArray = new Array();\r
-      newArray.push(array[2]);\r
-      newArray.push(array[1]);\r
-      newArray.push(array[0]);\r
-    } else {\r
-      newArray = array;\r
-    }\r
-    \r
-    return newArray.join();\r
-  }\r
-}\r
-\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/switcher.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/switcher.js
deleted file mode 100644 (file)
index ca13227..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-var Switcher = Class.create();\r
-Switcher.classNames = {\r
-  open:  'switcher_state_open',\r
-  close: 'switcher_state_close'\r
-}\r
-Switcher.prototype = {\r
-  initialize: function(sw, content) {\r
-    this.options = Object.extend({\r
-      open:        false,\r
-      duration:    0.4,\r
-      beforeOpen:  Prototype.emptyFunction,\r
-      afterOpen:   Prototype.emptyFunction,\r
-      beforeClose: Prototype.emptyFunction,\r
-      afterClose:  Prototype.emptyFunction,\r
-      effect:      false,\r
-      cssPrefix:   'custom_'\r
-    }, arguments[2] || {});\r
-\r
-    this.sw = $(sw);\r
-    this.content = $(content);\r
-\r
-    var customCss = CssUtil.appendPrefix(this.options.cssPrefix, Switcher.classNames);\r
-    this.classNames = new CssUtil([Switcher.classNames, customCss]);\r
-\r
-    if (this.options.open) {\r
-      Element.show(this.content);\r
-      this.classNames.addClassNames(this.sw, 'open');\r
-    } else {\r
-      Element.hide(this.content);\r
-      this.classNames.addClassNames(this.sw, 'close');\r
-    }\r
-\r
-    Event.observe(this.sw, 'click', this.toggle.bind(this));\r
-  },\r
-\r
-  toggle: function() {\r
-    if (Element.hasClassName(this.sw, Switcher.classNames.close)) {\r
-      this.open();\r
-    }else {\r
-      this.close();\r
-    }\r
-  },\r
-\r
-  open: function() {\r
-    this.options.beforeOpen(this.content);\r
-    this.classNames.refreshClassNames(this.sw, 'open');\r
-    if (this.options.effect) {\r
-      new Effect.BlindDown(this.content, {duration: this.options.duration});\r
-    } else {\r
-      Element.show(this.content);\r
-    }\r
-    this.options.afterOpen(this.content);\r
-  },\r
-\r
-  close: function() {\r
-    this.options.beforeClose(this.content);\r
-    this.classNames.refreshClassNames(this.sw, 'close');\r
-    if (this.options.effect) {\r
-      new Effect.BlindUp(this.content, {duration: this.options.duration});\r
-    } else {\r
-      Element.hide(this.content);\r
-    }\r
-    this.options.afterClose(this.content);\r
-  }\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/tabBox.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/tabBox.js
deleted file mode 100644 (file)
index ed84069..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
-// Copyright (c) 2005 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-TabBox = Class.create();\r
-TabBox.className = {\r
-  tabBox:            'tabBox_tabBox',\r
-  panelContainer:    'tabBox_panelContainer',\r
-  tabContainer:      'tabBox_tabContainer',\r
-  tab:               'tabBox_tab',\r
-  tabLeftInactive:   'tabBox_tabLeftInactive',\r
-  tabLeftActive:     'tabBox_tabLeftActive',\r
-  tabMiddleInactive: 'tabBox_tabMiddleInactive',\r
-  tabMiddleActive:   'tabBox_tabMiddleActive',\r
-  tabRightInactive:  'tabBox_tabRightInactive',\r
-  tabRightActive:    'tabBox_tabRightActive',\r
-  tabTitle:          'tabBox_tabTitle',\r
-  closeButton:       'tabBox_closeButton'\r
-}\r
-TabBox.prototype = {\r
-  \r
-  initialize: function(element) {\r
-    var options = Object.extend({\r
-      selected:         1,\r
-      cssPrefix:        'custom_',\r
-      beforeSelect:     function() {return true},\r
-      afterSelect:      Prototype.emptyFunction,\r
-      onRemove:         function() {return true},\r
-      sortable:         false,\r
-      closeButton:      false,\r
-      afterSort:        Prototype.emptyFunction,\r
-      onSort:           Prototype.emptyFunction,\r
-      lazyLoadUrl:      [],\r
-      onLazyLoad:       Prototype.emptyFunction,\r
-      afterLazyLoad:    Prototype.emptyFunction,\r
-      lazyLoadFailure:  Prototype.emptyFunction,\r
-      failureLimitOver: Prototype.emptyFunction,\r
-      failureLimit:     5,\r
-      tabRow:           null,\r
-      titleLength:      null\r
-    }, arguments[1] || {});\r
-    \r
-    this.options = options;\r
-    this.element = $(element);\r
-    Element.setStyle(this.element, {visibility: 'hidden'});\r
-    Element.hide(this.element);\r
-    this.selected = (this.options.selected > 0) ? this.options.selected - 1 :  0 ;\r
-    \r
-    var customCss = CssUtil.appendPrefix(this.options.cssPrefix, TabBox.className);\r
-    this.classNames = new CssUtil([TabBox.className, customCss]);\r
-    this.classNames.addClassNames(this.element, 'tabBox');\r
-        \r
-    this.start();\r
-    Element.setStyle(this.element, {visibility: 'visible'});\r
-    Element.show(this.element);\r
-\r
-    if (this.options.lazyLoadUrl.length > 0) this.lazyLoad(0);\r
-  },\r
-  \r
-  start: function() {\r
-    this.tabs = [];\r
-    this.panelList = [];\r
-\r
-    this.tabId = this.element.id + '_tab';\r
-    this.tabLeftId = this.tabId + '_left';\r
-    this.tabMiddleId = this.tabId + '_middle';\r
-    this.tabRightId = this.tabId + '_right';\r
-    this.tabContainerId = this.element.id + '_tabContainer';\r
-    this.panelId = this.element.id + '_panel';\r
-    this.panelContainerId = this.element.id + '_panelContainer';\r
-    \r
-    this.tabContainer = null;  \r
-    this.panelContainer = null;\r
-    this.build();  \r
-    if (this.options.sortable) this.setDrag();\r
-  },\r
-\r
-  setDrag: function() {\r
-    Sortable.create(this.tabContainerId, {\r
-      tag:         'div',\r
-      overlap:     'horizontal',\r
-      constraint:  'horizontal',\r
-      onChange:    this.options.onSort,\r
-      onUpdate:    this.options.afterSort,\r
-      starteffect: Prototype.emptyFunction,\r
-      endeffect:   Prototype.emptyFunction\r
-    });\r
-  },\r
-  \r
-  build: function() {\r
-    this.buildContainers();\r
-    \r
-    Element.cleanWhitespace(this.element);\r
-    var tabSets = this.element.childNodes;\r
-    \r
-    if (tabSets.length <= this.selected) {\r
-      this.selected = 0;\r
-    }\r
-    var i = 0;\r
-    while(tabSets.length > 0) {\r
-      this.buildTabSet(tabSets[0], i);\r
-      i++;\r
-    }\r
-    this.addContainers();\r
-    this.selectTab();\r
-  },\r
-\r
-  buildTabSet: function(element, i) {\r
-    if (element.nodeType != 1) {\r
-      Element.remove(element);\r
-      return;\r
-    }\r
-    Element.cleanWhitespace(element);\r
-    var panelContents = element.childNodes[1];\r
-    this.buildPanel(panelContents, i);      \r
-    this.buildTab(element, i);\r
-  },\r
-\r
-  buildContainers : function() {\r
-    this.tabContainer = Builder.node('div',{id:this.tabContainerId});\r
-    this.classNames.addClassNames(this.tabContainer, 'tabContainer');\r
-    \r
-    this.panelContainer = Builder.node('div', {id:this.panelContainerId});\r
-    this.classNames.addClassNames(this.panelContainer, 'panelContainer'); \r
-  },\r
-  \r
-  addContainers : function() {\r
-    this.element.appendChild(this.tabContainer);\r
-    this.element.appendChild(this.panelContainer);\r
-  },\r
-\r
-  buildTab: function(tab, i) {\r
-    tab.id = this.tabId + i\r
-    this.classNames.addClassNames(tab, 'tab');\r
-    var tabTitle = Builder.node('div', [$A(tab.childNodes)]);    \r
-    this.classNames.addClassNames(tabTitle, 'tabTitle');\r
-    var tabLeft = Builder.node('div', {id:this.tabLeftId + i});\r
-    var tabMiddle = Builder.node('div', {id:this.tabMiddleId + i}, [tabTitle]);\r
-    var tabRight = Builder.node('div',{id:this.tabRightId + i});\r
-    \r
-    tab.appendChild(tabLeft);\r
-    tab.appendChild(tabMiddle);\r
-    tab.appendChild(tabRight);\r
-    Event.observe(tab, 'click', this.selectTab.bindAsEventListener(this));\r
-    Event.observe(tab, 'mouseover', this.onMouseOver.bindAsEventListener(this));\r
-    Event.observe(tab, 'mouseout', this.onMouseOut.bindAsEventListener(this));\r
-\r
-    if (this.options.closeButton) {\r
-      var button = Builder.node('div', {\r
-        id: this.element.id.appendSuffix('closeButton_' + i)\r
-      });\r
-      this.classNames.addClassNames(button, 'closeButton');\r
-      tabMiddle.appendChild(button);\r
-      Event.observe(button, 'click', this.onRemove.bindAsEventListener(this));\r
-    }\r
-\r
-    if (this.options.tabRow && !isNaN(this.options.tabRow) && (i % this.options.tabRow == 0)) {\r
-      Element.setStyle(tab, {clear: 'left', styleFloat: 'none'});\r
-    }\r
-\r
-    this.setTitle(tabMiddle);\r
-    this.tabs[i] = tab;\r
-    this.setTabInactive(tab);\r
-    this.tabContainer.appendChild(tab);  \r
-  },\r
-\r
-  setTitle: function(container) {\r
-    var node = Element.getTextNodes(container, true)[0];\r
-    title = node.nodeValue.replace(/^(\s)*/, '');\r
-    title = title.replace(/(\s)*$/, '');\r
-    var sortTitle = title;\r
-    if (this.options.titleLength && !isNaN(this.options.titleLength)) {\r
-      sortTitle = title.substring(0, this.options.titleLength);\r
-    }\r
-    node.nodeValue = sortTitle;\r
-    container.parentNode.title = title;\r
-  },\r
-  \r
-  buildPanel: function(panelContent, i) {\r
-    var panel = Builder.node('div', {id: this.panelId + i});\r
-    panel.appendChild(panelContent);\r
-    Element.hide(panel);\r
-    this.panelList[i] = panel;\r
-    this.panelContainer.appendChild(panel);\r
-  },\r
-  \r
-  selectTab: function(e){\r
-    if (!this.options.beforeSelect()) return;\r
-    if (!e) {\r
-      this.setTabActive(this.tabs[this.selected]);\r
-      Element.show(this.panelList[this.selected]);\r
-      return;\r
-    }\r
-    var currentPanel = this.getCurrentPanel();\r
-    var currentTab = this.getCurrentTab();\r
-    \r
-    var targetElement = null;\r
-    if (e.nodeType) {\r
-      targetElement = e; \r
-    } else {\r
-      targetElement = Event.element(e);\r
-    }\r
-    var targetIndex = this.getTargetIndex(targetElement);\r
-    if (targetIndex == this.selected) {\r
-      return;\r
-    }\r
-    var targetPanel = this.panelList[targetIndex];\r
-    var targetTab = this.tabs[targetIndex];\r
-    \r
-    if (currentTab) this.setTabInactive(currentTab);\r
-    this.setTabActive(targetTab);\r
-\r
-    if (currentPanel) Element.toggle(currentPanel);\r
-    Element.toggle(targetPanel);\r
-\r
-    this.selected = targetIndex;\r
-    this.options.afterSelect(targetPanel, currentPanel);\r
-  },\r
-  \r
-  setTabActive: function(tab) {\r
-    var tabChildren = tab.childNodes;\r
-    this.classNames.refreshClassNames(tabChildren[0], 'tabLeftActive');\r
-    this.classNames.refreshClassNames(tabChildren[1], 'tabMiddleActive');\r
-    this.classNames.refreshClassNames(tabChildren[2], 'tabRightActive');\r
-  },\r
-  \r
-  setTabInactive: function(tab) {\r
-    var tabChildren = tab.childNodes;\r
-    this.classNames.refreshClassNames(tabChildren[0], 'tabLeftInactive');\r
-    this.classNames.refreshClassNames(tabChildren[1], 'tabMiddleInactive');\r
-    this.classNames.refreshClassNames(tabChildren[2], 'tabRightInactive');\r
-  },\r
-\r
-  getTargetIndex: function(element) {\r
-    while(element) {\r
-      if (element.id && element.id.indexOf(this.tabId, 0) >= 0) {\r
-        var index = element.id.substring(this.tabId.length);\r
-        if (!isNaN(index)) {\r
-          return index;\r
-        }\r
-      }\r
-      element = element.parentNode;\r
-    }\r
-  },\r
-\r
-  onRemove: function(event) {\r
-    Event.stop(event);\r
-    var element = Event.element(event);\r
-    var index = this.getTargetIndex(element);\r
-    var tab = this.tabs[index];\r
-    if (this.options.onRemove(tab)) {\r
-      this.remove(tab);\r
-    }\r
-  },\r
-\r
-  remove: function(tab) {\r
-    if (tab) {\r
-      var index = this.getTargetIndex(tab);\r
-      var nextActiveTab = this.getNextTab();\r
-      if (!nextActiveTab) nextActiveTab = this.getPreviousTab();\r
-      Element.remove(tab);\r
-      Element.remove(this.panelList[index]);\r
-      this.tabs[index] = null;\r
-      this.panelList[index] = null;\r
-  \r
-      if (index == this.selected) {\r
-        if (nextActiveTab) {\r
-          this.selectTab(nextActiveTab);\r
-        }\r
-      }\r
-    }\r
-  },\r
-\r
-  addByElement: function(element) {\r
-    this.buildTabSet($(element), this.tabs.length);\r
-    if (this.options.sortable) this.setDrag();\r
-  },\r
-\r
-  add: function(title, content) {\r
-    var contents = [];\r
-    var node = Builder.node('div');\r
-    node.innerHTML = title;\r
-    contents.push(node);\r
-    node = Builder.node('div');\r
-    node.innerHTML = content;\r
-    contents.push(node);\r
-    this.addByElement(Builder.node('div', contents));\r
-  },\r
-\r
-  lazyLoad: function(index) {\r
-    this.errorCount = 0;\r
-    this.loadedList = [];\r
-    this.load(index);\r
-  },\r
-\r
-  load: function(index) {\r
-    var container = this.panelList[index];\r
-    var url = this.options.lazyLoadUrl[index];\r
-    var self = this;\r
-    if (container && url) {\r
-      new Ajax.Updater(\r
-        {success: container},\r
-        url,\r
-        {\r
-          onSuccess: function() {\r
-            self.setLoaded(index);\r
-            self.options.onLazyLoad(container, self);\r
-            self.load(++index);\r
-            if (self.isFinishLazyLoad()) self.options.afterLazyLoad(self);\r
-          },\r
-          onFailure: function() {\r
-            self.errorCount++;\r
-            self.options.lazyLoadFailure(container, self);\r
-            if (self.errorCount <= self.options.failureLimit) {\r
-              self.load(index);\r
-            } else {\r
-              self.options.failureLimitOver(self);\r
-            }\r
-          },\r
-          asynchronous: true, \r
-          evalScripts: true\r
-        }\r
-      );\r
-    }\r
-  },\r
-\r
-  isFinishLazyLoad: function() {\r
-    return this.loadedList.length == this.panelList.length;\r
-  },\r
-\r
-  setLoaded: function(i) {\r
-    this.loadedList.push(i);\r
-  },\r
-\r
-  onMouseOver: function(event) {\r
-    var targetElement = Event.element(event);\r
-    var targetIndex = this.getTargetIndex(targetElement);\r
-    if (targetIndex != this.selected) {\r
-      var targetTab = this.tabs[targetIndex];\r
-      this.setTabActive(targetTab);\r
-    }\r
-  },\r
-\r
-  onMouseOut: function(event) {\r
-    var targetElement = Event.element(event);\r
-    var targetIndex = this.getTargetIndex(targetElement);\r
-    if (targetIndex != this.selected) {\r
-      var targetTab = this.tabs[targetIndex];\r
-      this.setTabInactive(targetTab);\r
-    }\r
-  },\r
-\r
-  hasNextTab: function() {\r
-    return this.getNextTab() ? true : false;\r
-  },\r
-\r
-  hasPreviousTab: function() {\r
-    return this.getPreviousTab() ? true : false;\r
-  },\r
-\r
-  getNextTab: function() {\r
-    return Element.next(this.getCurrentTab());\r
-  },\r
-\r
-  getPreviousTab: function() {\r
-    return Element.previous(this.getCurrentTab());\r
-  },\r
-\r
-  selectNextTab: function() {\r
-    this.selectTab(this.getNextTab());\r
-  },\r
-\r
-  selectPreviousTab: function() {\r
-    this.selectTab(this.getPreviousTab());\r
-  },\r
-\r
-  tabCount: function() {\r
-    return this.tabs.inject(0, function(i, t) {\r
-      return t ? ++i : i;\r
-    })\r
-  },\r
-\r
-  getCurrentPanel: function() {\r
-    return this.panelList[this.selected];\r
-  },\r
-\r
-  getCurrentTab: function() {\r
-    return this.tabs[this.selected];\r
-  }\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/timepicker.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/timepicker.js
deleted file mode 100644 (file)
index b953108..0000000
+++ /dev/null
@@ -1,359 +0,0 @@
-// Copyright (c) 2005 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-\r
-/**\r
- * TimePicker\r
- */\r
-var TimePicker = Class.create();\r
-TimePicker.className = {\r
-  container:             'timepicker_container',\r
-//  container:             'timepicker',\r
-  header:                'timepicker_header',\r
-  preYears:              'timepicker_preYears',\r
-  nextYears:             'timepicker_nextYears',\r
-  years:                 'timepicker_years',\r
-  mark:                  'timepicker_mark',\r
-  ym:                    'timepicker_ym',\r
-  table:                 'timepicker_table',\r
-  thRight:               'right',\r
-  tdRight:               'right',\r
-  tdBottom:              'bottom',\r
-  date:                  'timepicker_date',\r
-  holiday:               'timepicker_holiday',\r
-  regularHoliday:        'timepicker_regularHoliday',\r
-  schedule:              'timepicker_schedule',\r
-  highlightDay:          'timepicker_highlightDay',\r
-  scheduleListContainer: 'timepicker_scheduleListContainer',\r
-  scheduleItem:          'timepicker_scheduleItem',\r
-  scheduleTimeArea:      'timepicker_scheduleItemTimeArea',\r
-  scheduleHandler:       'timepicker_scheduleHandler',\r
-  holidayName:           'timepicker_holidayName',\r
-  dateContainer:         'timepicker_dateContainer',\r
-  tableHeader:           'timepicker_tableHeader',\r
-  rowContent:            'timepicker_rowContent',\r
-  selected:              'timepicker_selected',\r
-  displayToggle:         'timepicker_displayToggle',\r
-\r
-  nextYearMark:          'timepicker_nextYearMark',\r
-  nextMonthMark:         'timepicker_nextMonthMark',\r
-  nextWeekMark:          'timepicker_nextWeekMark',\r
-  preYearMark:           'timepicker_preYearMark',\r
-  preMonthMark:          'timepicker_preMonthMark',\r
-  preWeekMark:           'timepicker_preWeekMark',\r
-  \r
-  weekTable:             'timepicker_weekContainerTable',\r
-  weekMainTable:         'timepicker_weekMainTable',\r
-  timeLine:              'timepicker_timeline',\r
-  timeLineTimeTop:       'timepicker_timelineTimeTop',\r
-  timeLineTime:          'timepicker_timelineTime',\r
-  timeLineTimeIe:        'timepicker_timelineTime_ie',\r
-  timeLineTimeIeTop:     'timepicker_timelineTime_ieTop',\r
-  headerColumn:          'timepicker_headerColumn',\r
-  columnTopDate:         'timepicker_columnTopDate',\r
-  columnDate:            'timepicker_columnDate',\r
-  columnDateOdd:         'timepicker_columnOddDate',\r
-  scheduleItemSamll:     'timepicker_scheduleItemSmall',\r
-  scheduleItemLarge:     'timepicker_scheduleItemLarge',\r
-  scheduleItemSelect:    'timepicker_scheduleItemSelect',\r
-  deleteImg:             'timepicker_deleteImage',\r
-  privateImg:            'timepicker_privateImage',\r
-  scheduleContainer:     'timepicker_weekScheduleContainer',\r
-  selector:              'timepicker_selector',\r
-  cover:                 'timepicker_cover'\r
-}\r
-Object.extend(TimePicker.prototype, Calendar.prototype);\r
-Object.extend(TimePicker.prototype, {\r
-  initialize: function(element) {\r
-    this.options = Object.extend({\r
-      initDate:              new Date(),\r
-      cssPrefix:             'custom_',\r
-      holidays:              [],\r
-      schedules:             [],\r
-      size:                  Calendar.size.large,\r
-      regularHoliday:        [0, 6],\r
-      displayIndexes:        [0, 1, 2, 3, 4, 5, 6],\r
-      displayTime:           [{hour: 0, min: 0}, {hour: 24, min: 0}],\r
-      weekIndex:             0,\r
-      dblclickListener:      null,\r
-      afterSelect:           Prototype.emptyFunction,\r
-      beforeRefresh:         Prototype.emptyFunction,\r
-      changeSchedule:        Prototype.emptyFunction,\r
-      changeCalendar:        Prototype.emptyFunction,\r
-      displayType:           'month',\r
-      highlightDay:          true,\r
-      beforeRemoveSchedule:  function() {return true;},\r
-      dblclickSchedule:      null,\r
-      updateTirm:            Prototype.emptyFunction,\r
-      displayTimeLine:       true,\r
-      clickDateText:         null,\r
-      getMonthHeaderText:    Prototype.emptyFunction,\r
-      getMonthSubHeaderText: Prototype.emptyFunction,\r
-      getWeekHeaderText:     Prototype.emptyFunction,\r
-      getWeekSubHeaderText:  Prototype.emptyFunction,\r
-      getDayHeaderText:      Prototype.emptyFunction,\r
-\r
-      setPosition:           true,\r
-      headerTitle:           '',\r
-      standardTime:          false,\r
-      oneDayLabel:           '24H',\r
-      standardTimeLabel:     'standard'\r
-    }, arguments[1] || {});\r
-\r
-    if (this.options.standardTime) {\r
-      this.options.displayTime = this.options.standardTime;\r
-      this.options.oneDay      = [{hour: 0, min: 0}, {hour: 24, min: 0}];\r
-    }\r
-\r
-    this.element    = $(element);\r
-    this.date       = new Date();\r
-    var customCss   = CssUtil.appendPrefix(this.options.cssPrefix, TimePicker.className);\r
-    this.classNames = new CssUtil([TimePicker.className, customCss]);\r
-\r
-    this.builder = new TimePickerBuilder(this);\r
-    this.builder.beforeBuild();\r
-    this.calendar = this.builder.build();\r
-    this.builder.afterBuild();\r
-    this.element.appendChild(this.calendar);\r
-    Element.hide(element);\r
-    Element.setStyle(this.element, {position: 'absolute'});\r
-    \r
-//    Event.observe(document, 'click', this.hide.bind(this));\r
-    Event.observe(document, "mouseup", this.onMouseUp.bindAsEventListener(this));\r
-  },\r
-\r
-  refresh: function() {\r
-    this.options.beforeRefresh(this);\r
-    this.destroy();\r
-    this.selectedBase = null;\r
-    Element.remove(this.calendar);\r
-    this.builder = new TimePickerBuilder(this);\r
-    this.builder.beforeBuild();\r
-    this.calendar = this.builder.build();\r
-    this.element.appendChild(this.calendar);\r
-    this.builder.afterBuild();\r
-//    Event.observe(window, 'resize', this.windowResize);\r
-  },\r
-\r
-  show: function(event, triggerId) {\r
-    Event.stop(event);\r
-    var pointer = [Event.pointerX(event), Event.pointerY(event)];\r
-    if (this.options.setPosition.constructor == Function) {\r
-      this.options.setPosition(this.element, pointer);\r
-    } else if (this.options.setPosition) {\r
-      var parentOffset = Position.cumulativeOffset(this.element.parentNode);\r
-      Element.setStyle(this.element, {\r
-        left:   pointer[0] - parentOffset[0] + 'px',\r
-        top:    pointer[1] - parentOffset[1] + 'px'\r
-      });\r
-    }\r
-    Element.setStyle(this.element, {zIndex: ZindexManager.getIndex()});\r
-    Element.show(this.element);\r
-    this.builder.setColumnWidth();\r
-    this.builder.setCover();\r
-  },\r
-\r
-  hide: function() {\r
-    Element.hide(this.element);\r
-    this.clearSelected();\r
-  },\r
-\r
-  setTrigger: function(trigger, targets) {\r
-    trigger = $(trigger);\r
-    Event.observe(trigger, 'click', this.show.bindAsEventListener(this));\r
-  },\r
-\r
-  setTargets: function(targets) {\r
-    this.targets = targets;\r
-  },\r
-\r
-  onMouseUp: function(event) {\r
-    var calendar = this;\r
-    var dimention = Element.getDimensions(this.element);\r
-    var position = Position.cumulativeOffset(this.element);\r
-    var x = Event.pointerX(event);\r
-    var y = Event.pointerY(event);\r
-\r
-    if ((x < position[0]) || ((position[0] + dimention.width) < x) ||\r
-        (y < position[1]) || ((position[1] + dimention.height) < y)) {\r
-      this.hide();\r
-    }\r
-\r
-    if (calendar.mouseDown) {\r
-      setTimeout(function() {\r
-        if (calendar.mouseDown) {\r
-          calendar.mouseDown = false;\r
-          calendar.hide();\r
-        }\r
-      }, 10);\r
-    }\r
-\r
-    var term = this.builder.getSelectedTerm();\r
-    if (term) {\r
-      var start = term.first();\r
-      var finish = term.last();\r
-      this.setTime(this.targets.start.hour, start.getHours());\r
-      this.setTime(this.targets.start.min, start.getMinutes());\r
-      this.setTime(this.targets.finish.hour, finish.getHours());\r
-      this.setTime(this.targets.finish.min, finish.getMinutes());\r
-      this.hide();\r
-    }\r
-  },\r
-\r
-  setTime: function(target, value) {\r
-    $A($(target).options).each(function(option) {\r
-      if (option.value == value) {\r
-        option.selected = true;\r
-      } else {\r
-        option.selected = false;\r
-      }\r
-    });\r
-  }\r
-});\r
-\r
-\r
-/**\r
- * TimePickerBuilder\r
- */\r
-var TimePickerBuilder = Class.create();\r
-Object.extend(TimePickerBuilder.prototype, CalendarDay.prototype);\r
-Object.extend(TimePickerBuilder.prototype, {\r
-  initialize: function(calendar) {\r
-    var day       = calendar.date.getDay();\r
-    this.calendar = calendar;\r
-    this.setDisplayTime();\r
-    this.calendar.options.displayIndexesOld = this.calendar.options.displayIndexes;\r
-    this.calendar.options.displayIndexes    = [day];\r
-    this.calendar.options.weekIndexOld      = this.calendar.options.weekIndex;\r
-    this.calendar.options.weekIndex         = day;\r
-    this.week                               = this.getWeek();\r
-  },\r
-\r
-  buildHeader: function() {\r
-    var headerNodes = Builder.node('TR');\r
-    headerNodes.appendChild(this.buildHeaderCenter());\r
-    \r
-    className = this.calendar.classNames.joinClassNames('header');\r
-    var tbody = Builder.node('TBODY', [headerNodes]);\r
-    return Builder.node('TABLE', {className: className}, [tbody]);\r
-  },\r
-\r
-  buildHeaderCenter: function() {\r
-    var contents = [];\r
-    var node = Builder.node('SPAN', [this.calendar.options.headerTitle]);\r
-    contents.push(node);\r
-    var container = Builder.node('TD', contents);\r
-    return container;\r
-  },\r
-\r
-  buildTimeLine: function() {\r
-    var time = new Date();\r
-    var hour = 0, hoursOfDay = 24;\r
-    time.setHours(hour);\r
-    time.setMinutes(0);\r
-    var nodes = [];\r
-    var timelineClass    = 'timeLineTime';\r
-    var timelineTopClass = 'timeLineTime'\r
-    if (UserAgent.isIE()) {\r
-      timelineClass    = 'timeLineTimeIe';\r
-      timelineTopClass = 'timeLineTimeIeTop';\r
-    }\r
-\r
-    var node = Builder.node('DIV');\r
-    this.calendar.classNames.addClassNames(node, 'timeLineTimeTop');\r
-    nodes.push(node);\r
-    while (hour < hoursOfDay) {\r
-      if (this.includeDisplayTime(hour)) {\r
-        node = Builder.node('DIV', [this.formatTime(time)]);\r
-        if (nodes.length == 0) {\r
-          this.calendar.classNames.addClassNames(node, timelineTopClass);\r
-        } else {\r
-          this.calendar.classNames.addClassNames(node, timelineClass);\r
-        }\r
-        nodes.push(node);\r
-      }\r
-      hour++;\r
-      time.setHours(hour);\r
-    }\r
-\r
-    var td = Builder.node('TD', nodes);\r
-    this.calendar.classNames.addClassNames(td, 'timeLine');\r
-    return td;\r
-  },\r
-  \r
-  buildCalendarHeader: function() {\r
-    var node = null;\r
-    if (this.calendar.options.displayTime == this.calendar.options.standardTime) {\r
-      node = Builder.node('DIV', [this.calendar.options.oneDayLabel]);\r
-    } else {\r
-      node = Builder.node('DIV', [this.calendar.options.standardTimeLabel]);\r
-    }\r
-    Event.observe(node, 'click', this.toggleDisplayTime.bindAsEventListener(this, node));\r
-    this.calendar.classNames.addClassNames(node, 'headerColumn');\r
-    return Builder.node('TR', [Builder.node('TD', {align: 'center'}, [node])]);\r
-  },\r
-\r
-  abstractSelect: function(event, method) {\r
-    var element = this.findClickedElement(event);\r
-    if (element) {\r
-      if (Element.hasClassName(element, TimePicker.className.columnDate) ||\r
-          Element.hasClassName(element, TimePicker.className.columnDateOdd) ||\r
-          Element.hasClassName(element, TimePicker.className.columnTopDate)) {\r
-  \r
-        var date = this.getDate(element);\r
-        method(date, element);\r
-      }\r
-    }\r
-  },\r
-\r
-  toggleDisplayTime: function(event, element) {\r
-    Event.stop(event);\r
-//    var text = Element.getTextNodes(element).first().nodeValue;\r
-    if (this.calendar.options.displayTime == this.calendar.options.oneDay) {\r
-      this.calendar.options.displayTime = this.calendar.options.standardTime;\r
-    } else {\r
-      this.calendar.options.displayTime = this.calendar.options.oneDay;\r
-    }\r
-    this.calendar.refresh();\r
-  },\r
-\r
-  findClickedElement: function(event) {\r
-    var container = $(this.getScheduleContainerId());\r
-    var position = Position.cumulativeOffset(container);\r
-    var x = Event.pointerX(event) - position[0];\r
-    var y = Event.pointerY(event) - position[1];\r
-    var descendans = this.calendarTable.rows[0].cells[0].getElementsByTagName('div');\r
-    var height = parseInt(Element.getHeight(container), 10) / descendans.length;\r
-    var cellIndex = Math.floor(y / height);\r
-    return descendans[cellIndex];\r
-  },\r
-\r
-  beforeBuild: function() {\r
-    this.column = {};\r
-    var rule = CssUtil.getCssRuleBySelectorText('.' + TimePicker.className.columnDate);\r
-    this.column.height = parseInt(rule.style['height'], 10) + 1;\r
-  },\r
-\r
-  afterBuild: function() {\r
-    this.setColumnWidth();\r
-    this.setCover();\r
-  }\r
-});\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/toolbar.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/toolbar.js
deleted file mode 100644 (file)
index 1109654..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-// Copyright (c) 2006 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-var ToolBar = Class.create();\r
-ToolBar.className = {\r
-  container : 'toolbar_container',\r
-  containerLeft : 'toolbar_containerLeft',\r
-  containerMiddle : 'toolbar_containerMiddle',\r
-  containerRight : 'toolbar_containerRight', \r
-  toolbarItem : 'toolbar_item',\r
-  toolbarItemHover : 'toolbar_itemHov',\r
-  toolbarItemPres : 'toolbar_itemPres',\r
-  toolbarContent : 'toolbar_content',\r
-  toolbarContentPres: 'toolbar_contentPres'\r
-}\r
-\r
-ToolBar.prototype = {\r
-\r
-  initialize: function(element) {\r
-    var options = Object.extend({\r
-      cssPrefix : 'custom_'\r
-    }, arguments[1] || {});\r
-    \r
-    this.element = $(element);\r
-    Element.setStyle(this.element, {visibility: 'hidden'});\r
-    Element.hide(this.element);\r
-    this.options = options;\r
-    \r
-    var customCss = CssUtil.appendPrefix(this.options.cssPrefix, ToolBar.className);\r
-    this.classNames = new CssUtil([ToolBar.className, customCss]);\r
-    \r
-    this.build();\r
-    Element.setStyle(this.element, {visibility: 'visible'});\r
-    Element.show(this.element);\r
-  },\r
-  \r
-  build: function() {\r
-//    Element.cleanWhitespace(this.element);\r
-    this.classNames.addClassNames(this.element, 'container');\r
-    var iconList = this.element.childNodes;    \r
-    \r
-    var containerLeft = Builder.node('div');\r
-    this.classNames.addClassNames(containerLeft, 'containerLeft');\r
-    \r
-    this.containerMiddle = Builder.node('div');\r
-    this.classNames.addClassNames(this.containerMiddle, 'containerMiddle');\r
-    \r
-    var containerRight = Builder.node('div');\r
-    this.classNames.addClassNames(containerRight, 'containerRight');\r
-    \r
-    var removeList = [];\r
-    var toolbar = this; \r
-    $A(iconList).each(function(i) {\r
-      if (i.nodeType != 1) {\r
-        throw $continue;\r
-      }\r
-      toolbar.buildIcon(i);\r
-    });\r
-    \r
-    this.element.appendChild(containerLeft);\r
-    this.element.appendChild(this.containerMiddle);\r
-    this.element.appendChild(containerRight);\r
-  },\r
-  \r
-  buildIcon: function(icon) {\r
-    var toolbarItem = Builder.node('div');\r
-    this.classNames.addClassNames(toolbarItem, 'toolbarItem');\r
-    \r
-    var toolbarContent = Builder.node('div');\r
-    this.classNames.addClassNames(toolbarContent, 'toolbarContent');\r
-    \r
-    toolbarContent.appendChild(icon);\r
-    toolbarItem.appendChild(toolbarContent);\r
-    this.containerMiddle.appendChild(toolbarItem);\r
-    this.setHovEvent(toolbarItem);\r
-    this.setPresEvent(toolbarItem);\r
-  },\r
-  \r
-  addIcon: function(options) {\r
-    var iconOptions = Object.extend({\r
-      id : 'newIcon',\r
-      src : 'url',\r
-      alt : 'icon',\r
-      width: 15,\r
-      height: 15\r
-    }, arguments[0] || {});\r
-    if (!$(iconOptions.id)) {\r
-      var icon = Builder.node('img', {id: iconOptions.id, src: iconOptions.src, alt: iconOptions.alt, style: 'width: ' + iconOptions.width + 'px; height: ' + iconOptions.height + 'px;'});\r
-      this.buildIcon(icon);\r
-    }\r
-  },\r
-  \r
-  removeIcon: function(icon) {\r
-    var target = $(icon);\r
-    if (target) {\r
-      var itemNode = target.parentNode.parentNode;\r
-      Element.remove(itemNode);\r
-    } \r
-  },    \r
-\r
-  addEvent: function(icon, eventName, func) {\r
-    var target = $(icon);\r
-    if (target) {\r
-      var itemNode = target.parentNode.parentNode;\r
-      Event.observe(itemNode, eventName, func);\r
-    }\r
-  },\r
-  \r
-  removeEvent: function(icon, eventName, func) {\r
-    var target = $(icon);\r
-    if (target) {\r
-      var itemNode = target.parentNode.parentNode;\r
-      Event.stopObserving(itemNode, eventName, func);\r
-    }\r
-  },\r
-  setHovEvent: function(element) {\r
-    Event.observe(element, "mouseout", this.toggleItemClass(element, 'toolbarItem').bindAsEventListener(this));\r
-    Event.observe(element, "mouseover", this.toggleItemClass(element, 'toolbarItemHover').bindAsEventListener(this));\r
-    Event.observe(element, "mouseout", this.toggleItemClass(element.childNodes[0], 'toolbarContent').bindAsEventListener(this));\r
-  },\r
-  \r
-  setPresEvent: function(element) {\r
-    Event.observe(element, "mousedown", this.toggleItemClass(element, 'toolbarItemPres').bindAsEventListener(this));\r
-    Event.observe(element, "mouseup", this.toggleItemClass(element, 'toolbarItem').bindAsEventListener(this));\r
-    Event.observe(element, "mousedown", this.toggleItemClass(element.childNodes[0], 'toolbarContentPres').bindAsEventListener(this));\r
-    Event.observe(element, "mouseup", this.toggleItemClass(element.childNodes[0], 'toolbarContent').bindAsEventListener(this));\r
-  },\r
-  \r
-  toggleItemClass: function(target, className) {\r
-    return function() {\r
-      this.classNames.refreshClassNames(target, className);\r
-    }\r
-  }\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/treeview.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/treeview.js
deleted file mode 100644 (file)
index 58b428b..0000000
+++ /dev/null
@@ -1,657 +0,0 @@
-// Copyright (c) 2005 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-var TreeView = Class.create();\r
-TreeView.className = {\r
-  top: 'treeview',\r
-  dir: 'treeview_dir',\r
-  dirBody: 'treeview_dirBody',\r
-  dirBodyText: 'treeview_dirBodyText',\r
-  dirBodyTextActive: 'treeview_dirBodyTextActive',\r
-  dirContainer: 'treeview_dirContainer',\r
-  dirContainerHover: 'treeview_dirContainerHover',\r
-  file: 'treeview_file',\r
-  fileBody: 'treeview_fileBody',\r
-  fileBodyText: 'treeview_fileBodyText',\r
-  fileBodyTextActive: 'treeview_fileBodyTextActive',\r
-  state_open: 'treeview_stateOpen',\r
-  state_close: 'treeview_stateClose',\r
-  state_empty: 'treeview_stateEmpty',\r
-  dirIcon: 'treeview_dirIcon',\r
-  fileIcon: 'treeview_fileIcon',\r
-  handle: 'treeview_handle'\r
-}\r
-\r
-TreeView.iconId = 'treeview_icon';\r
-\r
-TreeView.prototype = {\r
-  initialize: function(element) {\r
-    this.element = $(element);\r
-    Element.setStyle(this.element, {visibility: 'hidden'});\r
-    Element.hide(this.element);\r
-\r
-    this.options = Object.extend({\r
-      dirSymbol:         'dir',\r
-      fileSymbol:        'file',\r
-      cssPrefix:         'custom_',\r
-      open:              true,\r
-      callBackFunctions: false,\r
-      dirSelect:         true,\r
-      fileSelect:        true,\r
-      noSelectedInsert:  true,\r
-      iconIdPrefix:      TreeView.iconId,\r
-      move:              false,\r
-      unselected:        Prototype.emptyFunction,\r
-      enableUnselected:  true,\r
-      sortOptions:       {},\r
-      openDir:           Prototype.emptyFunction,\r
-      closeDir:          Prototype.emptyFunction,\r
-      emptyImg:          false,\r
-      initialSelected:   null\r
-    }, arguments[1] || {});\r
-\r
-    this.customCss = CssUtil.appendPrefix(this.options.cssPrefix, TreeView.className);\r
-    this.classNames = new CssUtil([TreeView.className, this.customCss]);\r
-\r
-    this.changeClassNameDirAndFile(this.element);\r
-    var nodes = this.element.childNodes;\r
-    for (var i = 0; i < nodes.length; i++) {\r
-      this.build(nodes[i]);\r
-    }\r
-\r
-    this.classNames.addClassNames(this.element, 'top');\r
-    Element.setStyle(this.element, {visibility: 'visible'});\r
-    Element.show(this.element);\r
-\r
-    if (this.options.initialSelected) {\r
-      this.selectEffect(this.options.initialSelected);\r
-    }\r
-\r
-    if (this.options.move) {\r
-      this.setSortable();\r
-    }\r
-  },\r
-\r
-  addChildById: function(element, parent, number) {\r
-    element = $(element);\r
-    parent = $(parent);\r
-\r
-    var container = null;\r
-    if (!element || !parent)\r
-      return;\r
-    else if (Element.hasClassName(parent, TreeView.className.dir))\r
-      container = this.getChildDirContainer(parent);\r
-    else if (Element.hasClassName(parent, TreeView.className.top))\r
-      container = parent;\r
-    else\r
-      return;\r
-\r
-    this.build(element);\r
-\r
-    if (isNaN(number)) {\r
-      container.appendChild(element);\r
-    } else {\r
-      var children = this.getDirectoryContents(container);\r
-      if (children[number]) container.insertBefore(element, children[number]);\r
-      else container.appendChild(element);\r
-    }\r
-\r
-    this.refreshStateImg(parent);\r
-    if (this.options.dragAdrop) this.setSortable();\r
-  },\r
-\r
-  addChildByPath: function(element, path) {\r
-    element = $(element);\r
-    if (element) this.build(element);\r
-    else return;\r
-\r
-    var paths = path.split('/').findAll(function(elm) {\r
-      return (elm != '');\r
-    });\r
-\r
-    var last = paths.pop();\r
-    var container = this.search(paths.join('/'));\r
-\r
-    var children = this.getDirectoryContents(container);\r
-\r
-    if(children[last])\r
-      container.insertBefore(element, children[last]);\r
-    else\r
-      container.appendChild(element);\r
-\r
-    this.refreshStateImg(container.parentNode);\r
-    if (this.options.dragAdrop) this.setSortable();\r
-  },\r
-\r
-  addChildBySelected: function(element, number) {\r
-    if (!this.selected && !this.options.noSelectedInsert) return;\r
-\r
-    if (this.selected)\r
-      this.addChildById(element, this.selected, number);\r
-    else\r
-      this.addChildById(element, this.element, number);\r
-  },\r
-\r
-  addSelectItemCallback: function(functionObj) {\r
-    if (!this.options.callBackFunctions) {\r
-      this.options.callBackFunctions = new Array();\r
-    }\r
-    this.options.callBackFunctions.push(functionObj);\r
-  },\r
-\r
-  build: function(element) {\r
-    if (element.nodeType != 1) return;\r
-\r
-    Element.cleanWhitespace(element);\r
-    this.changeClassNameDirAndFile(element);\r
-\r
-    if (Element.hasClassName(element, TreeView.className.dir)) {\r
-      var container = this.createDirectoryContainer(element);\r
-      var body;\r
-      if (this.hasContents(container))\r
-        body = this.createDirectoryBody(element, false);\r
-      else\r
-        body = this.createDirectoryBody(element, true);\r
-\r
-      element.appendChild(body);\r
-      element.appendChild(container);\r
-\r
-      var nodes = container.childNodes;\r
-      for (var i = 0; i < nodes.length; i++) {\r
-        this.build(nodes[i]);\r
-      }\r
-    } else if (Element.hasClassName(element, TreeView.className.file)) {\r
-      var created = this.createFileBody(element);\r
-      element.appendChild(created);\r
-    }\r
-  },\r
-\r
-  changeClassName: function(element, to, from) {\r
-    var nodes = document.getElementsByClassName(from, element);\r
-\r
-    var newClassName = this.classNames.joinClassNames(to);\r
-    nodes.each(function(n) {\r
-      n.className = n.className.replace(new RegExp(from), newClassName);\r
-    });\r
-\r
-    if (Element.hasClassName(element, from)) {\r
-      element.className = element.className.replace(new RegExp(from), newClassName);\r
-    }\r
-  },\r
-\r
-  changeClassNameDirAndFile: function(element) {\r
-    this.changeClassName(element, 'dir', this.options.dirSymbol);\r
-    this.changeClassName(element, 'file', this.options.fileSymbol);\r
-  },\r
-\r
-  convertJSON: function() {\r
-    return JSON.stringify(this.parse());\r
-  },\r
-\r
-  createDirectoryBody: function(element, isEmpty) {\r
-    var customClass = null;\r
-    var dirBodyClass = this.classNames.joinClassNames('dir');\r
-    if (element.className != dirBodyClass) {\r
-      customClass  = element.className.replace(new RegExp(dirBodyClass + ' '), '');\r
-      element.className = dirBodyClass;\r
-    }\r
-\r
-    var bodyNodes = new Array();\r
-    var state;\r
-    if (isEmpty && !this.options.emptyImg)\r
-      state = 'state_empty';\r
-    else if (this.options.open)\r
-      state = 'state_open';\r
-    else\r
-      state = 'state_close';\r
-\r
-    var id = this.options.iconIdPrefix.appendSuffix(element.id);\r
-    var stateImg = Builder.node('DIV', {id: id.appendSuffix('stateImg')});\r
-    this.classNames.addClassNames(stateImg, state);\r
-    Event.observe(stateImg, "click", this.toggle.bindAsEventListener(this));\r
-\r
-    var itemImg = Builder.node('DIV', {id: id});\r
-    this.classNames.addClassNames(itemImg, 'dirIcon');\r
-    if (customClass) {\r
-      Element.addClassName(itemImg, customClass);\r
-    }\r
-    this.classNames.addClassNames(itemImg, 'handle');\r
-\r
-    var bodyText = Builder.node('SPAN', this.getDirectoryText(element));\r
-    this.classNames.addClassNames(bodyText, 'dirBodyText');\r
-\r
-    bodyNodes.push(stateImg);\r
-    bodyNodes.push(itemImg);\r
-    bodyNodes.push(bodyText);\r
-\r
-    var body = Builder.node('DIV', bodyNodes);\r
-    this.classNames.addClassNames(body, 'dirBody');\r
-    if (this.options.dirSelect) {\r
-      Event.observe(itemImg, "click", this.selectDirItem.bindAsEventListener(this));\r
-      Event.observe(bodyText, "click", this.selectDirItem.bindAsEventListener(this));\r
-    }\r
-\r
-    return body;\r
-  },\r
-\r
-  createDirectoryContainer: function(element) {\r
-    var container = element.getElementsByTagName('ul')[0];\r
-    if (!container) {\r
-      container = Builder.node('UL');\r
-    }\r
-    this.classNames.addClassNames(container, 'dirContainer');\r
-    if (!this.options.open) Element.hide(container);\r
-    return container;\r
-  },\r
-\r
-  createFileBody: function(element) {\r
-    var customClass = null;\r
-    var fileBodyClass = this.classNames.joinClassNames('file');\r
-    if (element.className != fileBodyClass) {\r
-      customClass  = element.className.replace(new RegExp(fileBodyClass + ' '), '');\r
-      element.className = fileBodyClass;\r
-    }\r
-\r
-    var id = this.options.iconIdPrefix.appendSuffix(element.id);\r
-    var itemImg = Builder.node('DIV', {id: id});\r
-    this.classNames.addClassNames(itemImg, 'fileIcon');\r
-    if (customClass) {\r
-      Element.addClassName(itemImg, customClass);\r
-    }\r
-    this.classNames.addClassNames(itemImg, 'handle');\r
-\r
-    var bodyText = Builder.node('SPAN', $A(element.childNodes));\r
-    this.classNames.addClassNames(bodyText, 'fileBodyText');\r
-\r
-    var children = new Array();\r
-    children.push(itemImg);\r
-    children.push(bodyText);\r
-\r
-    var body = Builder.node('DIV', children);\r
-    this.classNames.addClassNames(body, 'fileBody');\r
-    if (this.options.fileSelect) {\r
-      Event.observe(itemImg, "click", this.selectFileItem.bindAsEventListener(this));\r
-      Event.observe(bodyText, "click", this.selectFileItem.bindAsEventListener(this));\r
-    }\r
-\r
-    return body;\r
-  },\r
-\r
-  getChildBody: function(element) {\r
-    var names = [TreeView.className.fileBody, TreeView.className.dirBody];\r
-    return Element.getFirstElementByClassNames(element, names);\r
-  },\r
-\r
-  getChildBodyText: function(element) {\r
-    var names = [\r
-      TreeView.className.fileBodyText,\r
-      TreeView.className.fileBodyTextActive,\r
-      TreeView.className.dirBodyText,\r
-      TreeView.className.dirBodyTextActive\r
-    ];\r
-    return Element.getFirstElementByClassNames(element, names);\r
-  },\r
-\r
-  getChildBodyTextNode: function(element) {\r
-    var body = this.getChildBody(element);\r
-    var bodyText = this.getChildBodyText(body);\r
-    return this.searchTextNode(bodyText);\r
-  },\r
-\r
-  getChildDir: function(element) {\r
-    return document.getElementsByClassName(TreeView.className.dir, element);\r
-  },\r
-\r
-  getChildDirBody: function(element) {\r
-    return document.getElementsByClassName(TreeView.className.dirBody, element)[0];\r
-  },\r
-\r
-  getChildDirContainer: function(element) {\r
-    return document.getElementsByClassName(TreeView.className.dirContainer, element)[0];\r
-  },\r
-\r
-  getChildStateImg: function(element) {\r
-    var body = this.getChildDirBody(element);\r
-    var names = [\r
-      TreeView.className.state_close,\r
-      TreeView.className.state_open,\r
-      TreeView.className.state_empty\r
-    ];\r
-\r
-    return Element.getFirstElementByClassNames(body, names);\r
-  },\r
-\r
-  getChildren: function(element, ignoreDir, ignoreFile) {\r
-    var parent;\r
-    var children = new Array();\r
-    if(element) {\r
-      parent = $(element).getElementsByTagName('ul')[0];\r
-    } else {\r
-      parent = this.element;\r
-    }\r
-    $A(Element.getTagNodes(parent)).each(\r
-      function(node) {\r
-        if(!ignoreDir && Element.hasClassName(node, TreeView.className.dir)) {\r
-          children.push(node);\r
-        }\r
-        if(!ignoreFile && Element.hasClassName(node, TreeView.className.file)) {\r
-          children.push(node);\r
-        }\r
-      }\r
-    );\r
-    return children;\r
-  },\r
-\r
-  getDirectoryContents: function(element) {\r
-    return $A(element.childNodes).findAll(function(child) {\r
-      if ((child.nodeType != 1)) {\r
-        return false;\r
-      }\r
-      if (child.tagName.toLowerCase() == 'li') {\r
-        return true;\r
-      }\r
-      return false;\r
-    });\r
-  },\r
-\r
-  getDirectoryText: function(element) {\r
-    return $A(element.childNodes).findAll(function(child) {\r
-      if ((child.nodeType != 1)) {\r
-        return true;\r
-      } else if (child.tagName.toLowerCase() != 'ul') {\r
-        return true;\r
-      }\r
-      return false;\r
-    });\r
-  },\r
-\r
-  getHierarchyNumber: function() {\r
-    if (!this.selected) return;\r
-    var element = this.selected;\r
-    var i = 0;\r
-    while (true) {\r
-      if (this.element == element) {\r
-        return i;\r
-      } else {\r
-        element = this.getParentDir(element, true);\r
-        if (!element) return;\r
-        i++;\r
-      }\r
-    }\r
-  },\r
-\r
-  getParentDir: function(element, top) {\r
-    var result = Element.getParentByClassName(TreeView.className.dir, element);\r
-    if (!result && top)\r
-      result = Element.getParentByClassName(TreeView.className.top, element);\r
-    return result;\r
-  },\r
-\r
-  hasContents: function(element) {\r
-    if (element) {\r
-      if (!Element.hasClassName(element, TreeView.className.dirContainer) &&\r
-          !Element.hasClassName(element, TreeView.className.top)) {\r
-        return false;\r
-      }\r
-\r
-      var nodes = element.childNodes;\r
-      for (var i = 0; i < nodes.length; i++) {\r
-        if (nodes[i].nodeType == 1) {\r
-          if (Element.hasClassName(nodes[i], TreeView.className.dir) ||\r
-              Element.hasClassName(nodes[i], TreeView.className.file)) {\r
-            return true;\r
-          }\r
-        }\r
-      }\r
-    }\r
-    return false;\r
-  },\r
-\r
-  parse: function(container) {\r
-    if (!container) container = this.element;\r
-\r
-    var itemList = [];\r
-    var contents = this.getDirectoryContents(container);\r
-\r
-    for (var i = 0; i < contents.length; i++) {\r
-      var node = contents[i];\r
-      var body = this.getChildBody(node);\r
-      var text = this.getChildBodyText(body);\r
-\r
-      var item = {};\r
-      item.id = node.id;\r
-\r
-      item.name = Element.collectTextNodes(text).replace(/\n/, '');\r
-      if (Element.hasClassName(node, TreeView.className.dir)) {\r
-        item.type = this.options.dirSymbol;\r
-        item.contents = this.parse(this.getChildDirContainer(node));\r
-\r
-      } else {\r
-        item.type = this.options.fileSymbol;\r
-       }\r
-\r
-       itemList.push(item);\r
-    }\r
-\r
-    return itemList;\r
-  },\r
-\r
-  refreshStateImg: function(element) {\r
-    if (!Element.hasClassName(element, TreeView.className.dir)) return;\r
-\r
-    var container = this.getChildDirContainer(element);\r
-    var img = this.getChildStateImg(element);\r
-\r
-    if (!this.hasContents(container) && !this.options.emptyImg)\r
-      this.classNames.refreshClassNames(img, 'state_empty');\r
-    else if (Element.visible(container))\r
-      this.classNames.refreshClassNames(img, 'state_open');\r
-    else\r
-      this.classNames.refreshClassNames(img, 'state_close');\r
-  },\r
-\r
-  removeById: function(element) {\r
-    element = $(element);\r
-    if (element) {\r
-      var parent = element.parentNode.parentNode;\r
-      Element.remove(element);\r
-      this.refreshStateImg(parent);\r
-    }\r
-  },\r
-\r
-  removeByPath: function(path) {\r
-    var paths = path.split('/').findAll(function(elm) {\r
-      return (elm != '');\r
-    });\r
-\r
-    var last = paths.pop();\r
-    var container = this.search(paths.join('/'));\r
-\r
-    var target = this.getDirectoryContents(container)[last];\r
-    if (target)\r
-      this.removeById(target);\r
-  },\r
-\r
-  removeBySelected: function() {\r
-    if (!this.selected) return;\r
-    this.removeById(this.selected);\r
-    this.selected = false;\r
-  },\r
-\r
-  renameById: function(name, element) {\r
-    element = $(element);\r
-    if (!Element.hasClassName(element, TreeView.className.dir) &&\r
-        !Element.hasClassName(element, TreeView.className.file)) {\r
-      return;\r
-    }\r
-    var node = this.getChildBodyTextNode(element);\r
-    node.nodeValue = name;\r
-  },\r
-\r
-  renameByPath: function(name, path) {\r
-    var paths = path.split('/').findAll(function(elm) {\r
-      return (elm != '');\r
-    });\r
-\r
-    var last = paths.pop();\r
-    var container = this.search(paths.join('/'));\r
-\r
-    var target = this.getDirectoryContents(container)[last];\r
-    if (target)\r
-      this.renameById(name, target);\r
-  },\r
-\r
-  renameBySelected: function(name) {\r
-    if (!this.selected) return;\r
-    this.renameById(name, this.selected);\r
-  },\r
-\r
-  search: function(path) {\r
-    var paths = path.split('/').findAll(function(elm) {\r
-      return (elm != '');\r
-    });\r
-\r
-    var container = this.element;\r
-    for (var i = 0; i < paths.length; i++) {\r
-      var num = paths[i];\r
-      var contents = this.getDirectoryContents(container);\r
-      if (contents[num] && Element.hasClassName(contents[num], TreeView.className.dir)) {\r
-        container = this.getChildDirContainer(contents[num]);\r
-      } else {\r
-        return false;\r
-      }\r
-    }\r
-    return container;\r
-  },\r
-\r
-  searchTextNode: function(element) {\r
-    var text = null;\r
-    var nodes = element.childNodes;\r
-\r
-    for (var i = 0; i < nodes.length; i++) {\r
-      if (nodes[i].nodeType == 3) {\r
-        text = nodes[i];\r
-        break;\r
-      } else if (nodes[i].nodeType == 1) {\r
-        var tmp = this.searchTextNode(nodes[i]);\r
-        if (tmp) {\r
-          text = tmp;\r
-          break;\r
-        }\r
-      }\r
-    }\r
-    return text;\r
-  },\r
-\r
-  selectDirItem: function(event) {\r
-    var itemBody = Element.getParentByClassName(TreeView.className.dirBody, Event.element(event));\r
-    this.selectItem(itemBody);\r
-  },\r
-\r
-  selectEffect: function(element) {\r
-    element = $(element);\r
-    if(element) {\r
-      var itemBody = element.firstChild;\r
-      if (this.selectItemUnselect(itemBody, false)) {\r
-        return;\r
-      }\r
-      this.selectItemSelect(itemBody, false);\r
-    }\r
-  },\r
-\r
-  selectFileItem: function(event) {\r
-    var itemBody = Element.getParentByClassName(TreeView.className.fileBody, Event.element(event));\r
-    this.selectItem(itemBody);\r
-  },\r
-\r
-  selectItem: function(itemBody) {\r
-    if (this.selectItemUnselect(itemBody, true)) {\r
-      return;\r
-    }\r
-    this.selectItemSelect(itemBody, true);\r
-  },\r
-\r
-  selectItemSelect: function(itemBody, callback) {\r
-    this.selected = itemBody.parentNode;\r
-    var text = this.getChildBodyText(itemBody);\r
-    if (Element.hasClassName(text, TreeView.className.dirBodyText)) {\r
-      this.classNames.refreshClassNames(text, 'dirBodyTextActive');\r
-      this.defaultCss = 'dirBodyText';\r
-    } else if (Element.hasClassName(text, TreeView.className.fileBodyText)) {\r
-      this.classNames.refreshClassNames(text, 'fileBodyTextActive');\r
-      this.defaultCss = 'fileBodyText';\r
-    }\r
-    if (callback) {\r
-      if (this.options.callBackFunctions) {\r
-        for (var i = 0; i < this.options.callBackFunctions.length; i++) {\r
-          this.options.callBackFunctions[i](itemBody.parentNode);\r
-        }\r
-      }\r
-    }\r
-  },\r
-\r
-  selectItemUnselect: function(itemBody, callback) {\r
-    if (this.selected) {\r
-      var selectedBody = this.getChildBody(this.selected);\r
-      var selectedText = this.getChildBodyText(selectedBody);\r
-      this.classNames.refreshClassNames(selectedText, this.defaultCss);\r
-      if (this.selected == itemBody.parentNode && this.options.enableUnselected) {\r
-        this.selected = false;\r
-        this.defaultCss = false;\r
-        if (callback) {\r
-          this.options.unselected();\r
-        }\r
-        return true;\r
-      }\r
-    }\r
-    return false;\r
-  },\r
-\r
-  setSortable: function() {\r
-    var options = Object.extend({\r
-      dropOnEmpty: true,\r
-      tree: true,\r
-      hoverclass: 'treeview_dirContainerHover',\r
-      scroll: window,\r
-      ghosting: true\r
-    }, this.options.sortOptions);\r
-    Sortable.create(this.element, options);\r
-  },\r
-\r
-  toggle: function(event) {\r
-    Event.stop(event);\r
-    var src = Event.element(event);\r
-    var parent = this.getParentDir(src);\r
-    var container = this.getChildDirContainer(parent);\r
-\r
-    if (!this.hasContents(container) && !this.options.emptyImg) return;\r
-\r
-    Element.toggle(container);\r
-    this.refreshStateImg(parent);\r
-\r
-    if (!this.hasContents(container) && !this.options.emptyImg)\r
-      this.options.openDir(parent, container);\r
-    else if (Element.visible(container))\r
-      this.options.openDir(parent, container);\r
-    else\r
-      this.options.closeDir(parent, container);\r
-  }\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/window.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/window.js
deleted file mode 100644 (file)
index 55b2548..0000000
+++ /dev/null
@@ -1,577 +0,0 @@
-// Copyright (c) 2006 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-var Window = Class.create();\r
-Window.className = {\r
-  window:       'window',\r
-  header:       'window_header',\r
-  headerLeft:   'window_headerLeft',\r
-  headerMiddle: 'window_headerMiddle',\r
-  headerRight:  'window_headerRight',\r
-  buttonHolder: 'window_buttonHolder',\r
-  closeButton:  'window_closeButton',\r
-  maxButton:    'window_maxButton',\r
-  minButton:    'window_minButton',\r
-  body:         'window_body',\r
-  bodyLeft:     'window_bodyLeft',\r
-  bodyMiddle:   'window_bodyMiddle',\r
-  bodyRight:    'window_bodyRight',\r
-  bottom:       'window_bottom',\r
-  bottomLeft:   'window_bottomLeft',\r
-  bottomMiddle: 'window_bottomMiddle',\r
-  bottomRight:  'window_bottomRight'\r
-}\r
-\r
-Window.prototype = {\r
-  \r
-  initialize: function(element) {\r
-    var options = Object.extend({\r
-      className:         Window.className.window,\r
-      width:             300,\r
-      height:            300,\r
-      minWidth:          200,\r
-      minHeight:         40,\r
-      drag:              true,\r
-      resize:            true,\r
-      resizeX:           true,\r
-      resizeY:           true,\r
-      modal:             false,\r
-      closeButton:       true,\r
-      maxButton:         true,\r
-      minButton:         true,\r
-      cssPrefix:         'custom_',\r
-      restriction:       false,\r
-      endDrag:           Prototype.emptyFunction,\r
-      endResize:         Prototype.emptyFunction,\r
-      addButton:         Prototype.emptyFunction,\r
-      preMaximize:       function() {return true},\r
-      preMinimize:       function() {return true},\r
-      preRevertMaximize: function() {return true},\r
-      preRevertMinimize: function() {return true},\r
-      preClose:          function() {return true},\r
-      endMaximize:       Prototype.emptyFunction,\r
-      endMinimize:       Prototype.emptyFunction,\r
-      endRevertMaximize: Prototype.emptyFunction,\r
-      endRevertMinimize: Prototype.emptyFunction,\r
-      endClose:          Prototype.emptyFunction,\r
-      dragOptions:       {},\r
-      appendToBody:      false\r
-    }, arguments[1] || {});\r
-    \r
-    var customCss = CssUtil.appendPrefix(options.cssPrefix, Window.className);\r
-    this.classNames = new CssUtil([Window.className, customCss]);\r
-    \r
-    this.element = $(element);\r
-    Element.setStyle(this.element, {visibility: 'hidden'});\r
-\r
-    this.options = options;\r
-    this.element.className = this.options.className;\r
-    this.header = null;\r
-    this.windowBody = null;\r
-    this.bottom = null;\r
-    \r
-    this.elementId = this.element.id;\r
-    this.dragHandleId = this.elementId + '_dragHandle';\r
-    \r
-    this.maxZindex = -1;\r
-    this.minFlag = false;\r
-    this.maxFlag = false;\r
-    this.currentPos = [0,0];\r
-    this.currentSize = [0,0];\r
-\r
-    this.buildWindow();\r
-    this.cover = new IECover(this.element, {padding: 10});\r
-    \r
-    Element.makePositioned(element);\r
-    Element.hide(this.element);\r
-    Element.setStyle(this.element, {visibility: 'visible'});\r
-\r
-    if (this.options.appendToBody) this.appendToBody.callAfterLoading(this);\r
-  },\r
-\r
-  buildWindow: function() {\r
-    Element.cleanWhitespace(this.element);\r
-    \r
-    with(this.element.style) {\r
-      width = this.options.width + 'px';\r
-      height= this.options.height + 'px';\r
-    }\r
-\r
-    var title = this.element.childNodes[0];\r
-    var content = this.element.childNodes[1];\r
-    this.buildHeader(title);\r
-    this.buildBody(content);\r
-    this.buildBottom();\r
-    var newStyle = {height: this.options.height};\r
-    this.setBodyHeight(newStyle);\r
-\r
-    if (this.options.drag) this.createDraggble();\r
-\r
-    if (this.options.resize) {\r
-      this.enableResizing();\r
-    }\r
-  },\r
-\r
-  buildHeader: function(title) {\r
-    var headerLeft = Builder.node('div');\r
-    this.classNames.addClassNames(headerLeft, 'headerLeft');\r
-\r
-    var headerMiddle = Builder.node('div', {id: this.dragHandleId});\r
-    this.classNames.addClassNames(headerMiddle, 'headerMiddle');\r
-    \r
-    var headerRight = Builder.node('div');\r
-    this.classNames.addClassNames(headerRight, 'headerRight');\r
-\r
-    var buttonHolder = Builder.node('div');\r
-    this.classNames.addClassNames(buttonHolder, 'buttonHolder');\r
-    \r
-    headerMiddle.appendChild(title);\r
-    var headerList = [headerLeft, headerMiddle, buttonHolder, headerRight];\r
-    this.header = Builder.node('div', headerList);\r
-    this.classNames.addClassNames(this.header, 'header');\r
-    this.element.appendChild(this.header);\r
-    \r
-        \r
-    if (this.options.closeButton) {\r
-      var closeButton = Builder.node('div', {id: this.element.id.appendSuffix('closeButton')});\r
-      this.classNames.addClassNames(closeButton, 'closeButton');\r
-      buttonHolder.appendChild(closeButton);\r
-      Event.observe(closeButton, 'click', this.close.bindAsEventListener(this));\r
-    }\r
-    if (this.options.maxButton) {\r
-      var maxButton = Builder.node('div', {id: this.element.id.appendSuffix('maxButton')});\r
-      this.classNames.addClassNames(maxButton, 'maxButton');\r
-      buttonHolder.appendChild(maxButton);\r
-      Event.observe(maxButton, 'click', this.maximize.bindAsEventListener(this));\r
-    }\r
-    if (this.options.minButton) {\r
-      var minButton = Builder.node('div', {id: this.element.id.appendSuffix('minButton')});\r
-      this.classNames.addClassNames(minButton, 'minButton');\r
-      buttonHolder.appendChild(minButton);\r
-      Event.observe(minButton, 'click', this.minimize.bindAsEventListener(this));\r
-    }\r
-\r
-    if (this.options.addButton) {\r
-      var addButton = this.options.addButton;\r
-      if (addButton.constructor == Function) {\r
-        addButton(buttonHolder);\r
-      } else if (addButton.constructor == Array) {\r
-        var self = this;\r
-        var firstChild = buttonHolder.firstChild;\r
-        addButton.each(function(b) {\r
-          var button = Builder.node('div', {id: b.id, className: b.className});\r
-          Event.observe(button, 'click', b.onclick.bindAsEventListener(self));\r
-          if (b.first && firstChild) {\r
-            buttonHolder.insertBefore(button, firstChild);\r
-          } else {\r
-            buttonHolder.appendChild(button);\r
-          }\r
-        });\r
-      }\r
-    }\r
-  },\r
-  \r
-  buildBody: function(contents) {\r
-    var bodyLeft = Builder.node('div', {className: Window.className.bodyLeft});\r
-    this.classNames.addClassNames(bodyLeft, 'bodyLeft');\r
-    \r
-    var bodyMiddle = Builder.node('div');\r
-    this.classNames.addClassNames(bodyMiddle, 'bodyMiddle');\r
-    bodyMiddle.appendChild(contents);\r
-    \r
-    var bodyRight = Builder.node('div');\r
-    this.classNames.addClassNames(bodyRight, 'bodyRight');\r
-\r
-    var bodyList = [bodyRight,bodyLeft, bodyMiddle];\r
-    this.windowBody = Builder.node('div', bodyList);    \r
-    this.classNames.addClassNames(this.windowBody, 'body');\r
-    this.element.appendChild(this.windowBody);\r
-  },\r
-  \r
-  buildBottom: function() {\r
-    var bottomLeft = Builder.node('div');\r
-    this.classNames.addClassNames(bottomLeft, 'bottomLeft');\r
-    \r
-    var bottomMiddle = Builder.node('div');\r
-    this.classNames.addClassNames(bottomMiddle, 'bottomMiddle');\r
-    \r
-    var bottomRight = Builder.node('div');\r
-    this.classNames.addClassNames(bottomRight, 'bottomRight');\r
-    \r
-    var bottomList = [bottomLeft, bottomMiddle, bottomRight];\r
-    this.bottom = Builder.node('div', bottomList);\r
-    this.classNames.addClassNames(this.bottom, 'bottom');\r
-    this.element.appendChild(this.bottom);\r
-  },\r
-\r
-  createDraggble: function() {\r
-    var self = this;\r
-    var options = Object.extend({\r
-      handle:      this.dragHandleId,\r
-      starteffect: Prototype.emptyFunction,\r
-      endeffect:   Prototype.emptyFunction,\r
-      endDrag:     this.options.endDrag,\r
-      scroll:      window\r
-    }, this.options.dragOptions);\r
-\r
-    if (this.options.restriction) {\r
-      options.snap = function(x, y) {\r
-        function constrain(n, lower, upper) {\r
-          if (n > upper) return upper; \r
-          else if (n < lower) return lower;\r
-          else return n;\r
-        }\r
-\r
-        var eDimensions = Element.getDimensions(self.element);\r
-        var pDimensions = Element.getDimensions(self.element.parentNode);\r
-\r
-        if (Element.getStyle(self.element.parentNode, 'position') == 'static') {\r
-          var offset = Position.positionedOffset(self.element.parentNode);\r
-          var parentLeft = offset[0];\r
-          var parentTop = offset[1];\r
-          return[\r
-            constrain(x, parentLeft, parentLeft + pDimensions.width - eDimensions.width),\r
-            constrain(y, parentTop, parentTop + pDimensions.height - eDimensions.height)\r
-          ];\r
-        } else {\r
-          return[\r
-            constrain(x, 0, pDimensions.width - eDimensions.width),\r
-            constrain(y, 0, pDimensions.height - eDimensions.height)\r
-          ];\r
-        }\r
-      }\r
-    } else {\r
-      var p = Position.cumulativeOffset(Position.offsetParent(this.element));\r
-      options.snap = function(x, y) {\r
-        return [\r
-          ((x + p[0]) >= 0) ? x : 0 - p[0], \r
-          ((y + p[1]) >= 0) ? y : 0 - p[1]\r
-        ];\r
-      }\r
-    }\r
-    new DraggableWindowEx(this.element, options);\r
-  },\r
-\r
-  setWindowZindex : function(zIndex) {\r
-    zIndex = this.getZindex(zIndex);\r
-    this.element.style.zIndex = zIndex;\r
-  },\r
-  \r
-  getZindex: function(zIndex) {\r
-    return ZindexManager.getIndex(zIndex);\r
-  },\r
-  \r
-  open: function(zIndex) {\r
-    this.opening = true;\r
-    if (this.options.modal) {\r
-      Modal.mask(this.element, {zIndex: zIndex});\r
-    } else {\r
-      this.setWindowZindex(zIndex);\r
-    }\r
-    Element.show(this.element);\r
-    this.cover.resetSize();\r
-    this.opening = false;\r
-    if (this.shouldClose) {\r
-      this.close();\r
-      this.shouldClose = false;\r
-    }\r
-  },\r
-      \r
-  close: function() {\r
-    if (this.opening) this.shouldClose = true;\r
-    if (!this.options.preClose(this)) return;\r
-    this.element.style.zIndex = -1;\r
-    this.maxZindex = -1;\r
-    try {\r
-      Element.hide(this.element);\r
-    } catch(e) {}\r
-    if (this.options.modal) {\r
-      Modal.unmask();\r
-    }\r
-    this.options.endClose(this);\r
-    if (this.opening) this.shouldClose = true;\r
-  },\r
-\r
-  minimize: function(event) {\r
-    if (this.minFlag) {\r
-      if (!this.options.preRevertMinimize(this)) return;\r
-      Element.toggle(this.windowBody);\r
-      if (this.maxFlag) {\r
-        this.minFlag = false;\r
-        this.setMax();\r
-      } else {         \r
-        var newStyle = {height:this.currentSize[1]}\r
-        this.setBodyHeight(newStyle);\r
-        this.element.style.width = this.currentSize[0];\r
-        this.element.style.height = this.currentSize[1]; \r
-        this.element.style.left = this.currentPos[0];\r
-        this.element.style.top = this.currentPos[1];\r
-        this.maxFlag = false;\r
-        this.minFlag = false;\r
-        this.options.endRevertMinimize(this);\r
-      }\r
-    } else {\r
-      if (!this.options.preMinimize(this)) return;\r
-      Element.toggle(this.windowBody);\r
-      if (!this.maxFlag) {\r
-        this.currentPos = [Element.getStyle(this.element, 'left'), Element.getStyle(this.element, 'top')];\r
-        this.currentSize = [Element.getStyle(this.element, 'width'), Element.getStyle(this.element, 'height')];\r
-      }\r
-      this.setMin();\r
-      this.minFlag = true;\r
-      this.options.endMinimize(this);\r
-    }\r
-    this.cover.resetSize();\r
-  },\r
-    \r
-  maximize: function(event) {\r
-    if (this.maxFlag) {\r
-      if (this.minFlag) {\r
-        Element.toggle(this.windowBody);\r
-        this.minFlag = false;\r
-        this.setMax();\r
-      } else {\r
-        if (!this.options.preRevertMaximize(this)) return;\r
-        var newStyle = {height:parseInt(this.currentSize[1])}\r
-        this.setBodyHeight(newStyle);\r
-        this.element.style.width = this.currentSize[0];\r
-        this.element.style.height = this.currentSize[1]; \r
-        this.element.style.left = this.currentPos[0];\r
-        this.element.style.top = this.currentPos[1];\r
-        this.maxFlag = false;\r
-        this.minFlag = false;        \r
-        document.body.style.overflow = '';\r
-        this.element.style.position = this.position;\r
-        if (this.parent) {\r
-          if (this.nextElement) {\r
-            this.parent.insertBefore(this.element, this.nextElement);\r
-          } else {\r
-            this.parent.appendChild(this.element);\r
-          }\r
-        }\r
-        this.options.endRevertMaximize(this);\r
-      }\r
-    \r
-    } else {\r
-      if (!this.options.preMaximize(this)) return;\r
-      if (!this.minFlag) {\r
-        this.currentPos = [Element.getStyle(this.element, 'left'), Element.getStyle(this.element, 'top')];\r
-        this.currentSize = [Element.getStyle(this.element, 'width'), Element.getStyle(this.element, 'height')];        \r
-      } else {\r
-        Element.toggle(this.windowBody);\r
-        this.minFlag = false;\r
-      }\r
-      this.parent = this.element.parentNode;\r
-      this.nextElement = Element.next(this.element, 0);\r
-      this.position = Element.getStyle(this.element, 'position');\r
-      document.body.style.overflow = 'hidden';\r
-      document.body.appendChild(this.element);\r
-      this.element.style.position = 'absolute';\r
-      this.setMax();\r
-      this.maxFlag = true;\r
-      this.options.endMaximize(this);\r
-    }\r
-    this.cover.resetSize();\r
-  },\r
-    \r
-  setMin : function() {\r
-    var minHeight = this.header.offsetHeight + this.bottom.offsetHeight;\r
-    var minWidth = this.options.minWidth;\r
-    this.element.style.height = minHeight + 'px';\r
-    this.element.style.width = minWidth + 'px';\r
-  },\r
-        \r
-  setMax : function(zIndex) {\r
-    var maxW = Element.getWindowWidth();\r
-    var maxH = Element.getWindowHeight();\r
-    var newStatus = {height:maxH}\r
-    with(this.element.style) {\r
-      width = maxW + 'px';\r
-      height = maxH + 'px';\r
-      left = '0px';\r
-      top = '0px';\r
-    }\r
-    this.setBodyHeight(newStatus);\r
-    this.setWindowZindex(zIndex);  \r
-  },\r
-  \r
-  _getParentWidth: function(parent) {\r
-    if (parent && parent.style) {\r
-      var width = parent.style.width;\r
-      var index = 0;\r
-      if (width) {\r
-        if ((index = width.indexOf('px', 0)) > 0) {\r
-      return parseInt(width);\r
-        } else if ((index = width.indexOf('%', 0)) > 0) {\r
-          var pw = this._getParentWidth(parent.parentNode);\r
-      \r
-          var par = parseInt(width);\r
-          return pw * par / 100;\r
-        } else if (!width.isNaN) {\r
-          return parseInt(width);\r
-        }      \r
-      } else if (parent == document.body){\r
-        return Element.getWindowWidth();\r
-      }\r
-    }\r
-  },\r
-\r
-  setHeight: function(height) {\r
-    height = {height: height};\r
-    Element.setStyle(this.element, height);\r
-    this.setBodyHeight(height);\r
-  },\r
-  \r
-  setBodyHeight: function(newStyle) {\r
-    var height = parseInt(newStyle.height);\r
-    if (height > this.options.minHeight) {\r
-      var newHeight = (height - this.header.offsetHeight - this.bottom.offsetHeight) + 'px';\r
-      this.windowBody.childNodes[0].style.height = newHeight;\r
-      this.windowBody.childNodes[1].style.height = newHeight;\r
-      this.windowBody.childNodes[2].style.height = newHeight;\r
-      this.windowBody.style.height = newHeight;\r
-    }\r
-    if (this.cover) this.cover.resetSize();\r
-  },\r
-\r
-  center: function() {\r
-    var w = parseInt(Element.getStyle(this.element, 'width'));\r
-    var h = parseInt(Element.getStyle(this.element, 'height'));\r
-\r
-    var pOffset = Position.cumulativeOffset(Position.offsetParent(this.element));\r
-\r
-    var left = (Element.getWindowWidth() - w) / 2;\r
-    var top = (Element.getWindowHeight() - h) / 2;\r
-    var scrollTop = (document.documentElement.scrollTop || document.body.scrollTop);\r
-    var scrollLeft = (document.documentElement.scrollLeft || document.body.scrollLeft);\r
-\r
-    top += scrollTop - pOffset[1];\r
-    left += scrollLeft - pOffset[0];\r
-    top = ((top + pOffset[1]) >= 0) ? top : 0 - pOffset[1];\r
-    left = ((left + pOffset[0]) >= 0) ? left : 0 - pOffset[0];\r
-    Element.setStyle(this.element, {left: left + 'px', top: top + 'px'});\r
-  },\r
-\r
-  enableResizing: function() {\r
-    var resTop = this.options.resizeY ? 6 : 0;\r
-    var resBottom = this.options.resizeY ? 6 : 0;\r
-    var resLeft = this.options.resizeX ? 6 : 0;\r
-    var resRight = this.options.resizeX ? 6 : 0;\r
-    this.resizeable = new ResizeableWindowEx(this.element, { \r
-      top:         resTop,\r
-      bottom:      resBottom,\r
-      left:        resLeft,\r
-      right:       resRight,\r
-      minWidth:    this.options.minWidth,\r
-      minHeight:   this.options.minHeight,\r
-      draw:        this.setBodyHeight.bind(this),\r
-      resize:      this.options.endResize,\r
-      restriction: this.options.restriction,\r
-      zindex:      2000\r
-    });\r
-  },\r
-\r
-  disableResizing: function() {\r
-    this.resizeable.destroy();\r
-  },\r
-\r
-  appendToBody: function() {\r
-    this.removeFromBody(this.element.id)\r
-    document.body.appendChild(this.element);\r
-  },\r
-  \r
-  removeFromBody: function(dom_id) {\r
-    $A(document.body.childNodes).each(function(node){\r
-      if (node.id == dom_id) node.remove();\r
-    });\r
-  }\r
-}\r
-\r
-\r
-// Copyright (c) 2005 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// This code is substantially based on code from script.aculo.us which has the \r
-// following copyright and permission notice\r
-//\r
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-var DraggableWindowEx = Class.create();\r
-Object.extend(DraggableWindowEx.prototype, Draggable.prototype);\r
-Object.extend(DraggableWindowEx.prototype, {\r
-  initDrag: function(event) {\r
-    if(Event.isLeftClick(event)) {    \r
-      // abort on form elements, fixes a Firefox issue\r
-      var src = Event.element(event);\r
-      if(src.tagName && (\r
-        src.tagName=='INPUT' ||\r
-        src.tagName=='SELECT' ||\r
-        src.tagName=='OPTION' ||\r
-        src.tagName=='BUTTON' ||\r
-        src.tagName=='TEXTAREA')) return;\r
-        \r
-      if(this.element._revert) {\r
-        this.element._revert.cancel();\r
-        this.element._revert = null;\r
-      }\r
-      \r
-      var pointer = [Event.pointerX(event), Event.pointerY(event)];\r
-      var pos     = Position.cumulativeOffset(this.element);\r
-      this.offset = [0,1].map( function(i) { return (pointer[i] - pos[i]) });\r
-\r
-      var zIndex = ZindexManager.getIndex();\r
-      this.originalZ = zIndex;\r
-      this.options.zindex = zIndex;\r
-      Element.setStyle(this.element, {zIndex: zIndex});\r
-      \r
-      Draggables.activate(this);\r
-      Event.stop(event);\r
-    }\r
-  },\r
-\r
-  endDrag: function(event) {\r
-    if(!this.dragging) return;\r
-    this.stopScrolling();\r
-    this.finishDrag(event, true);\r
-\r
-    this.options.endDrag();\r
-    Event.stop(event);\r
-  }\r
-});\r
-\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/window_resizeEx.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz/window_resizeEx.js
deleted file mode 100644 (file)
index f1dc046..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-// Copyright (c) 2005 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// This code is substantially based on code from Thomas Fakes(http://craz8.com) \r
-// which has the following copyright and permission notice\r
-// \r
-// Copyright (c) 2005 Thomas Fakes (http://craz8.com)\r
-// \r
-// This code is substantially based on code from script.aculo.us which has the \r
-// following copyright and permission notice\r
-//\r
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-ResizeableWindowEx = Class.create();\r
-Object.extend(Object.extend(ResizeableWindowEx.prototype, Resizeable.prototype), {\r
-  startResize: function(event) {\r
-    if (Event.isLeftClick(event)) {\r
-      \r
-      // abort on form elements, fixes a Firefox issue\r
-      var src = Event.element(event);\r
-      if(src.tagName && (\r
-        src.tagName=='INPUT' ||\r
-        src.tagName=='SELECT' ||\r
-        src.tagName=='BUTTON' ||\r
-        src.tagName=='TEXTAREA')) return;\r
-\r
-      var dir = this.directions(event);\r
-      if (dir.length > 0) {      \r
-        this.active = true;\r
-        var offsets = Position.cumulativeOffset(this.element);\r
-        this.startTop = offsets[1];\r
-        this.startLeft = offsets[0];\r
-        this.startWidth = parseInt(Element.getStyle(this.element, 'width'));\r
-        this.startHeight = parseInt(Element.getStyle(this.element, 'height'));\r
-        this.startX = event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;\r
-        this.startY = event.clientY + document.body.scrollTop + document.documentElement.scrollTop;\r
-        \r
-        this.currentDirection = dir;\r
-        Event.stop(event);\r
-      }\r
-\r
-      if (this.options.restriction) {\r
-        var parent = this.element.parentNode;\r
-        var dimensions = Element.getDimensions(parent);\r
-        this.parentOffset = Position.cumulativeOffset(parent);\r
-        this.parentWidth = this.parentOffset[0] + dimensions.width;\r
-        this.parentHeight = this.parentOffset[1] + dimensions.height;\r
-      }\r
-    }\r
-  },\r
-\r
-  draw: function(event) {\r
-    var pointer = [Event.pointerX(event), Event.pointerY(event)];\r
-    if (this.options.restriction &&\r
-      (\r
-        (this.parentWidth <= pointer[0])\r
-        || (this.parentHeight <= pointer[1])\r
-        || (this.parentOffset[0] >= pointer[0])\r
-        || (this.parentOffset[1] >= pointer[1])\r
-      )) return;\r
-\r
-    var style = this.element.style;\r
-    var newHeight = style.height;\r
-    var newWidth = style.width;\r
-    var newTop = style.top;\r
-    var newLeft = style.left;\r
-\r
-    if (this.currentDirection.indexOf('n') != -1) {\r
-      var pointerMoved = this.startY - pointer[1];\r
-      var margin = Element.getStyle(this.element, 'margin-top') || "0";\r
-      newHeight = this.startHeight + pointerMoved;\r
-      newTop = (this.startTop - pointerMoved - parseInt(margin)) + "px";\r
-    }\r
-    \r
-    if (this.currentDirection.indexOf('w') != -1) {\r
-      var pointerMoved = this.startX - pointer[0];\r
-      var margin = Element.getStyle(this.element, 'margin-left') || "0";\r
-      newWidth = this.startWidth + pointerMoved;\r
-      newLeft = this.startLeft - pointerMoved - parseInt(margin);\r
-      if (this.options.restriction) newLeft -= this.parentOffset[0];\r
-      newLeft += 'px';\r
-    }\r
-    \r
-    if (this.currentDirection.indexOf('s') != -1) {\r
-      newHeight = this.startHeight + pointer[1] - this.startY;\r
-    }\r
-    \r
-    if (this.currentDirection.indexOf('e') != -1) {\r
-      newWidth = this.startWidth + pointer[0] - this.startX;\r
-    }\r
-    \r
-    var newStyle = {\r
-      height: newHeight,\r
-      width: newWidth,\r
-      top: newTop,\r
-      left: newLeft\r
-    }\r
-    if (this.options.draw) {\r
-      this.options.draw(newStyle, this.element);\r
-    }\r
-      \r
-    if (newHeight && newHeight > this.options.minHeight) {\r
-      style.top = newStyle.top;\r
-      style.height = newStyle.height + "px";\r
-    }\r
-    if (newWidth && newWidth > this.options.minWidth) {\r
-      style.left = newStyle.left;\r
-      style.width = newStyle.width + "px";\r
-    }\r
-    if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering\r
-  }\r
-});\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/builder.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/builder.js
deleted file mode 100644 (file)
index 805c90f..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-// script.aculo.us builder.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006\r
-\r
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)\r
-//\r
-// See scriptaculous.js for full license.\r
-\r
-var Builder = {\r
-  NODEMAP: {\r
-    AREA: 'map',\r
-    CAPTION: 'table',\r
-    COL: 'table',\r
-    COLGROUP: 'table',\r
-    LEGEND: 'fieldset',\r
-    OPTGROUP: 'select',\r
-    OPTION: 'select',\r
-    PARAM: 'object',\r
-    TBODY: 'table',\r
-    TD: 'table',\r
-    TFOOT: 'table',\r
-    TH: 'table',\r
-    THEAD: 'table',\r
-    TR: 'table'\r
-  },\r
-  // note: For Firefox < 1.5, OPTION and OPTGROUP tags are currently broken,\r
-  //       due to a Firefox bug\r
-  node: function(elementName) {\r
-    elementName = elementName.toUpperCase();\r
-    \r
-    // try innerHTML approach\r
-    var parentTag = this.NODEMAP[elementName] || 'div';\r
-    var parentElement = document.createElement(parentTag);\r
-    try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707\r
-      parentElement.innerHTML = "<" + elementName + "></" + elementName + ">";\r
-    } catch(e) {}\r
-    var element = parentElement.firstChild || null;\r
-      \r
-    // see if browser added wrapping tags\r
-    if(element && (element.tagName != elementName))\r
-      element = element.getElementsByTagName(elementName)[0];\r
-    \r
-    // fallback to createElement approach\r
-    if(!element) element = document.createElement(elementName);\r
-    \r
-    // abort if nothing could be created\r
-    if(!element) return;\r
-\r
-    // attributes (or text)\r
-    if(arguments[1])\r
-      if(this._isStringOrNumber(arguments[1]) ||\r
-        (arguments[1] instanceof Array)) {\r
-          this._children(element, arguments[1]);\r
-        } else {\r
-          var attrs = this._attributes(arguments[1]);\r
-          if(attrs.length) {\r
-            try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707\r
-              parentElement.innerHTML = "<" +elementName + " " +\r
-                attrs + "></" + elementName + ">";\r
-            } catch(e) {}\r
-            element = parentElement.firstChild || null;\r
-            // workaround firefox 1.0.X bug\r
-            if(!element) {\r
-              element = document.createElement(elementName);\r
-              for(attr in arguments[1]) \r
-                element[attr == 'class' ? 'className' : attr] = arguments[1][attr];\r
-            }\r
-            if(element.tagName != elementName)\r
-              element = parentElement.getElementsByTagName(elementName)[0];\r
-            }\r
-        } \r
-\r
-    // text, or array of children\r
-    if(arguments[2])\r
-      this._children(element, arguments[2]);\r
-\r
-     return element;\r
-  },\r
-  _text: function(text) {\r
-     return document.createTextNode(text);\r
-  },\r
-  _attributes: function(attributes) {\r
-    var attrs = [];\r
-    for(attribute in attributes)\r
-      attrs.push((attribute=='className' ? 'class' : attribute) +\r
-          '="' + attributes[attribute].toString().escapeHTML() + '"');\r
-    return attrs.join(" ");\r
-  },\r
-  _children: function(element, children) {\r
-    if(typeof children=='object') { // array can hold nodes and text\r
-      children.flatten().each( function(e) {\r
-        if(typeof e=='object')\r
-          element.appendChild(e)\r
-        else\r
-          if(Builder._isStringOrNumber(e))\r
-            element.appendChild(Builder._text(e));\r
-      });\r
-    } else\r
-      if(Builder._isStringOrNumber(children)) \r
-         element.appendChild(Builder._text(children));\r
-  },\r
-  _isStringOrNumber: function(param) {\r
-    return(typeof param=='string' || typeof param=='number');\r
-  },\r
-  dump: function(scope) { \r
-    if(typeof scope != 'object' && typeof scope != 'function') scope = window; //global scope \r
-  \r
-    var tags = ("A ABBR ACRONYM ADDRESS APPLET AREA B BASE BASEFONT BDO BIG BLOCKQUOTE BODY " +\r
-      "BR BUTTON CAPTION CENTER CITE CODE COL COLGROUP DD DEL DFN DIR DIV DL DT EM FIELDSET " +\r
-      "FONT FORM FRAME FRAMESET H1 H2 H3 H4 H5 H6 HEAD HR HTML I IFRAME IMG INPUT INS ISINDEX "+\r
-      "KBD LABEL LEGEND LI LINK MAP MENU META NOFRAMES NOSCRIPT OBJECT OL OPTGROUP OPTION P "+\r
-      "PARAM PRE Q S SAMP SCRIPT SELECT SMALL SPAN STRIKE STRONG STYLE SUB SUP TABLE TBODY TD "+\r
-      "TEXTAREA TFOOT TH THEAD TITLE TR TT U UL VAR").split(/\s+/);\r
-  \r
-    tags.each( function(tag){ \r
-      scope[tag] = function() { \r
-        return Builder.node.apply(Builder, [tag].concat($A(arguments)));  \r
-      } \r
-    });\r
-  }\r
-}
\ No newline at end of file
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/controls.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/controls.js
deleted file mode 100644 (file)
index 197ac55..0000000
+++ /dev/null
@@ -1,833 +0,0 @@
-// script.aculo.us controls.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006\r
-\r
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)\r
-//           (c) 2005 Ivan Krstic (http://blogs.law.harvard.edu/ivan)\r
-//           (c) 2005 Jon Tirsen (http://www.tirsen.com)\r
-// Contributors:\r
-//  Richard Livsey\r
-//  Rahul Bhargava\r
-//  Rob Wills\r
-// \r
-// See scriptaculous.js for full license.\r
-\r
-// Autocompleter.Base handles all the autocompletion functionality \r
-// that's independent of the data source for autocompletion. This\r
-// includes drawing the autocompletion menu, observing keyboard\r
-// and mouse events, and similar.\r
-//\r
-// Specific autocompleters need to provide, at the very least, \r
-// a getUpdatedChoices function that will be invoked every time\r
-// the text inside the monitored textbox changes. This method \r
-// should get the text for which to provide autocompletion by\r
-// invoking this.getToken(), NOT by directly accessing\r
-// this.element.value. This is to allow incremental tokenized\r
-// autocompletion. Specific auto-completion logic (AJAX, etc)\r
-// belongs in getUpdatedChoices.\r
-//\r
-// Tokenized incremental autocompletion is enabled automatically\r
-// when an autocompleter is instantiated with the 'tokens' option\r
-// in the options parameter, e.g.:\r
-// new Ajax.Autocompleter('id','upd', '/url/', { tokens: ',' });\r
-// will incrementally autocomplete with a comma as the token.\r
-// Additionally, ',' in the above example can be replaced with\r
-// a token array, e.g. { tokens: [',', '\n'] } which\r
-// enables autocompletion on multiple tokens. This is most \r
-// useful when one of the tokens is \n (a newline), as it \r
-// allows smart autocompletion after linebreaks.\r
-\r
-if(typeof Effect == 'undefined')\r
-  throw("controls.js requires including script.aculo.us' effects.js library");\r
-\r
-var Autocompleter = {}\r
-Autocompleter.Base = function() {};\r
-Autocompleter.Base.prototype = {\r
-  baseInitialize: function(element, update, options) {\r
-    this.element     = $(element); \r
-    this.update      = $(update);  \r
-    this.hasFocus    = false; \r
-    this.changed     = false; \r
-    this.active      = false; \r
-    this.index       = 0;     \r
-    this.entryCount  = 0;\r
-\r
-    if(this.setOptions)\r
-      this.setOptions(options);\r
-    else\r
-      this.options = options || {};\r
-\r
-    this.options.paramName    = this.options.paramName || this.element.name;\r
-    this.options.tokens       = this.options.tokens || [];\r
-    this.options.frequency    = this.options.frequency || 0.4;\r
-    this.options.minChars     = this.options.minChars || 1;\r
-    this.options.onShow       = this.options.onShow || \r
-      function(element, update){ \r
-        if(!update.style.position || update.style.position=='absolute') {\r
-          update.style.position = 'absolute';\r
-          Position.clone(element, update, {\r
-            setHeight: false, \r
-            offsetTop: element.offsetHeight\r
-          });\r
-        }\r
-        Effect.Appear(update,{duration:0.15});\r
-      };\r
-    this.options.onHide = this.options.onHide || \r
-      function(element, update){ new Effect.Fade(update,{duration:0.15}) };\r
-\r
-    if(typeof(this.options.tokens) == 'string') \r
-      this.options.tokens = new Array(this.options.tokens);\r
-\r
-    this.observer = null;\r
-    \r
-    this.element.setAttribute('autocomplete','off');\r
-\r
-    Element.hide(this.update);\r
-\r
-    Event.observe(this.element, "blur", this.onBlur.bindAsEventListener(this));\r
-    Event.observe(this.element, "keypress", this.onKeyPress.bindAsEventListener(this));\r
-  },\r
-\r
-  show: function() {\r
-    if(Element.getStyle(this.update, 'display')=='none') this.options.onShow(this.element, this.update);\r
-    if(!this.iefix && \r
-      (navigator.appVersion.indexOf('MSIE')>0) &&\r
-      (navigator.userAgent.indexOf('Opera')<0) &&\r
-      (Element.getStyle(this.update, 'position')=='absolute')) {\r
-      new Insertion.After(this.update, \r
-       '<iframe id="' + this.update.id + '_iefix" '+\r
-       'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" ' +\r
-       'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');\r
-      this.iefix = $(this.update.id+'_iefix');\r
-    }\r
-    if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50);\r
-  },\r
-  \r
-  fixIEOverlapping: function() {\r
-    Position.clone(this.update, this.iefix, {setTop:(!this.update.style.height)});\r
-    this.iefix.style.zIndex = 1;\r
-    this.update.style.zIndex = 2;\r
-    Element.show(this.iefix);\r
-  },\r
-\r
-  hide: function() {\r
-    this.stopIndicator();\r
-    if(Element.getStyle(this.update, 'display')!='none') this.options.onHide(this.element, this.update);\r
-    if(this.iefix) Element.hide(this.iefix);\r
-  },\r
-\r
-  startIndicator: function() {\r
-    if(this.options.indicator) Element.show(this.options.indicator);\r
-  },\r
-\r
-  stopIndicator: function() {\r
-    if(this.options.indicator) Element.hide(this.options.indicator);\r
-  },\r
-\r
-  onKeyPress: function(event) {\r
-    if(this.active)\r
-      switch(event.keyCode) {\r
-       case Event.KEY_TAB:\r
-       case Event.KEY_RETURN:\r
-         this.selectEntry();\r
-         Event.stop(event);\r
-       case Event.KEY_ESC:\r
-         this.hide();\r
-         this.active = false;\r
-         Event.stop(event);\r
-         return;\r
-       case Event.KEY_LEFT:\r
-       case Event.KEY_RIGHT:\r
-         return;\r
-       case Event.KEY_UP:\r
-         this.markPrevious();\r
-         this.render();\r
-         if(navigator.appVersion.indexOf('AppleWebKit')>0) Event.stop(event);\r
-         return;\r
-       case Event.KEY_DOWN:\r
-         this.markNext();\r
-         this.render();\r
-         if(navigator.appVersion.indexOf('AppleWebKit')>0) Event.stop(event);\r
-         return;\r
-      }\r
-     else \r
-       if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN || \r
-         (navigator.appVersion.indexOf('AppleWebKit') > 0 && event.keyCode == 0)) return;\r
-\r
-    this.changed = true;\r
-    this.hasFocus = true;\r
-\r
-    if(this.observer) clearTimeout(this.observer);\r
-      this.observer = \r
-        setTimeout(this.onObserverEvent.bind(this), this.options.frequency*1000);\r
-  },\r
-\r
-  activate: function() {\r
-    this.changed = false;\r
-    this.hasFocus = true;\r
-    this.getUpdatedChoices();\r
-  },\r
-\r
-  onHover: function(event) {\r
-    var element = Event.findElement(event, 'LI');\r
-    if(this.index != element.autocompleteIndex) \r
-    {\r
-        this.index = element.autocompleteIndex;\r
-        this.render();\r
-    }\r
-    Event.stop(event);\r
-  },\r
-  \r
-  onClick: function(event) {\r
-    var element = Event.findElement(event, 'LI');\r
-    this.index = element.autocompleteIndex;\r
-    this.selectEntry();\r
-    this.hide();\r
-  },\r
-  \r
-  onBlur: function(event) {\r
-    // needed to make click events working\r
-    setTimeout(this.hide.bind(this), 250);\r
-    this.hasFocus = false;\r
-    this.active = false;     \r
-  }, \r
-  \r
-  render: function() {\r
-    if(this.entryCount > 0) {\r
-      for (var i = 0; i < this.entryCount; i++)\r
-        this.index==i ? \r
-          Element.addClassName(this.getEntry(i),"selected") : \r
-          Element.removeClassName(this.getEntry(i),"selected");\r
-        \r
-      if(this.hasFocus) { \r
-        this.show();\r
-        this.active = true;\r
-      }\r
-    } else {\r
-      this.active = false;\r
-      this.hide();\r
-    }\r
-  },\r
-  \r
-  markPrevious: function() {\r
-    if(this.index > 0) this.index--\r
-      else this.index = this.entryCount-1;\r
-    this.getEntry(this.index).scrollIntoView(true);\r
-  },\r
-  \r
-  markNext: function() {\r
-    if(this.index < this.entryCount-1) this.index++\r
-      else this.index = 0;\r
-    this.getEntry(this.index).scrollIntoView(false);\r
-  },\r
-  \r
-  getEntry: function(index) {\r
-    return this.update.firstChild.childNodes[index];\r
-  },\r
-  \r
-  getCurrentEntry: function() {\r
-    return this.getEntry(this.index);\r
-  },\r
-  \r
-  selectEntry: function() {\r
-    this.active = false;\r
-    this.updateElement(this.getCurrentEntry());\r
-  },\r
-\r
-  updateElement: function(selectedElement) {\r
-    if (this.options.updateElement) {\r
-      this.options.updateElement(selectedElement);\r
-      return;\r
-    }\r
-    var value = '';\r
-    if (this.options.select) {\r
-      var nodes = document.getElementsByClassName(this.options.select, selectedElement) || [];\r
-      if(nodes.length>0) value = Element.collectTextNodes(nodes[0], this.options.select);\r
-    } else\r
-      value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal');\r
-    \r
-    var lastTokenPos = this.findLastToken();\r
-    if (lastTokenPos != -1) {\r
-      var newValue = this.element.value.substr(0, lastTokenPos + 1);\r
-      var whitespace = this.element.value.substr(lastTokenPos + 1).match(/^\s+/);\r
-      if (whitespace)\r
-        newValue += whitespace[0];\r
-      this.element.value = newValue + value;\r
-    } else {\r
-      this.element.value = value;\r
-    }\r
-    this.element.focus();\r
-    \r
-    if (this.options.afterUpdateElement)\r
-      this.options.afterUpdateElement(this.element, selectedElement);\r
-  },\r
-\r
-  updateChoices: function(choices) {\r
-    if(!this.changed && this.hasFocus) {\r
-      this.update.innerHTML = choices;\r
-      Element.cleanWhitespace(this.update);\r
-      Element.cleanWhitespace(this.update.firstChild);\r
-\r
-      if(this.update.firstChild && this.update.firstChild.childNodes) {\r
-        this.entryCount = \r
-          this.update.firstChild.childNodes.length;\r
-        for (var i = 0; i < this.entryCount; i++) {\r
-          var entry = this.getEntry(i);\r
-          entry.autocompleteIndex = i;\r
-          this.addObservers(entry);\r
-        }\r
-      } else { \r
-        this.entryCount = 0;\r
-      }\r
-\r
-      this.stopIndicator();\r
-      this.index = 0;\r
-      \r
-      if(this.entryCount==1 && this.options.autoSelect) {\r
-        this.selectEntry();\r
-        this.hide();\r
-      } else {\r
-        this.render();\r
-      }\r
-    }\r
-  },\r
-\r
-  addObservers: function(element) {\r
-    Event.observe(element, "mouseover", this.onHover.bindAsEventListener(this));\r
-    Event.observe(element, "click", this.onClick.bindAsEventListener(this));\r
-  },\r
-\r
-  onObserverEvent: function() {\r
-    this.changed = false;   \r
-    if(this.getToken().length>=this.options.minChars) {\r
-      this.startIndicator();\r
-      this.getUpdatedChoices();\r
-    } else {\r
-      this.active = false;\r
-      this.hide();\r
-    }\r
-  },\r
-\r
-  getToken: function() {\r
-    var tokenPos = this.findLastToken();\r
-    if (tokenPos != -1)\r
-      var ret = this.element.value.substr(tokenPos + 1).replace(/^\s+/,'').replace(/\s+$/,'');\r
-    else\r
-      var ret = this.element.value;\r
-\r
-    return /\n/.test(ret) ? '' : ret;\r
-  },\r
-\r
-  findLastToken: function() {\r
-    var lastTokenPos = -1;\r
-\r
-    for (var i=0; i<this.options.tokens.length; i++) {\r
-      var thisTokenPos = this.element.value.lastIndexOf(this.options.tokens[i]);\r
-      if (thisTokenPos > lastTokenPos)\r
-        lastTokenPos = thisTokenPos;\r
-    }\r
-    return lastTokenPos;\r
-  }\r
-}\r
-\r
-Ajax.Autocompleter = Class.create();\r
-Object.extend(Object.extend(Ajax.Autocompleter.prototype, Autocompleter.Base.prototype), {\r
-  initialize: function(element, update, url, options) {\r
-    this.baseInitialize(element, update, options);\r
-    this.options.asynchronous  = true;\r
-    this.options.onComplete    = this.onComplete.bind(this);\r
-    this.options.defaultParams = this.options.parameters || null;\r
-    this.url                   = url;\r
-  },\r
-\r
-  getUpdatedChoices: function() {\r
-    entry = encodeURIComponent(this.options.paramName) + '=' + \r
-      encodeURIComponent(this.getToken());\r
-\r
-    this.options.parameters = this.options.callback ?\r
-      this.options.callback(this.element, entry) : entry;\r
-\r
-    if(this.options.defaultParams) \r
-      this.options.parameters += '&' + this.options.defaultParams;\r
-\r
-    new Ajax.Request(this.url, this.options);\r
-  },\r
-\r
-  onComplete: function(request) {\r
-    this.updateChoices(request.responseText);\r
-  }\r
-\r
-});\r
-\r
-// The local array autocompleter. Used when you'd prefer to\r
-// inject an array of autocompletion options into the page, rather\r
-// than sending out Ajax queries, which can be quite slow sometimes.\r
-//\r
-// The constructor takes four parameters. The first two are, as usual,\r
-// the id of the monitored textbox, and id of the autocompletion menu.\r
-// The third is the array you want to autocomplete from, and the fourth\r
-// is the options block.\r
-//\r
-// Extra local autocompletion options:\r
-// - choices - How many autocompletion choices to offer\r
-//\r
-// - partialSearch - If false, the autocompleter will match entered\r
-//                    text only at the beginning of strings in the \r
-//                    autocomplete array. Defaults to true, which will\r
-//                    match text at the beginning of any *word* in the\r
-//                    strings in the autocomplete array. If you want to\r
-//                    search anywhere in the string, additionally set\r
-//                    the option fullSearch to true (default: off).\r
-//\r
-// - fullSsearch - Search anywhere in autocomplete array strings.\r
-//\r
-// - partialChars - How many characters to enter before triggering\r
-//                   a partial match (unlike minChars, which defines\r
-//                   how many characters are required to do any match\r
-//                   at all). Defaults to 2.\r
-//\r
-// - ignoreCase - Whether to ignore case when autocompleting.\r
-//                 Defaults to true.\r
-//\r
-// It's possible to pass in a custom function as the 'selector' \r
-// option, if you prefer to write your own autocompletion logic.\r
-// In that case, the other options above will not apply unless\r
-// you support them.\r
-\r
-Autocompleter.Local = Class.create();\r
-Autocompleter.Local.prototype = Object.extend(new Autocompleter.Base(), {\r
-  initialize: function(element, update, array, options) {\r
-    this.baseInitialize(element, update, options);\r
-    this.options.array = array;\r
-  },\r
-\r
-  getUpdatedChoices: function() {\r
-    this.updateChoices(this.options.selector(this));\r
-  },\r
-\r
-  setOptions: function(options) {\r
-    this.options = Object.extend({\r
-      choices: 10,\r
-      partialSearch: true,\r
-      partialChars: 2,\r
-      ignoreCase: true,\r
-      fullSearch: false,\r
-      selector: function(instance) {\r
-        var ret       = []; // Beginning matches\r
-        var partial   = []; // Inside matches\r
-        var entry     = instance.getToken();\r
-        var count     = 0;\r
-\r
-        for (var i = 0; i < instance.options.array.length &&  \r
-          ret.length < instance.options.choices ; i++) { \r
-\r
-          var elem = instance.options.array[i];\r
-          var foundPos = instance.options.ignoreCase ? \r
-            elem.toLowerCase().indexOf(entry.toLowerCase()) : \r
-            elem.indexOf(entry);\r
-\r
-          while (foundPos != -1) {\r
-            if (foundPos == 0 && elem.length != entry.length) { \r
-              ret.push("<li><strong>" + elem.substr(0, entry.length) + "</strong>" + \r
-                elem.substr(entry.length) + "</li>");\r
-              break;\r
-            } else if (entry.length >= instance.options.partialChars && \r
-              instance.options.partialSearch && foundPos != -1) {\r
-              if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) {\r
-                partial.push("<li>" + elem.substr(0, foundPos) + "<strong>" +\r
-                  elem.substr(foundPos, entry.length) + "</strong>" + elem.substr(\r
-                  foundPos + entry.length) + "</li>");\r
-                break;\r
-              }\r
-            }\r
-\r
-            foundPos = instance.options.ignoreCase ? \r
-              elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) : \r
-              elem.indexOf(entry, foundPos + 1);\r
-\r
-          }\r
-        }\r
-        if (partial.length)\r
-          ret = ret.concat(partial.slice(0, instance.options.choices - ret.length))\r
-        return "<ul>" + ret.join('') + "</ul>";\r
-      }\r
-    }, options || {});\r
-  }\r
-});\r
-\r
-// AJAX in-place editor\r
-//\r
-// see documentation on http://wiki.script.aculo.us/scriptaculous/show/Ajax.InPlaceEditor\r
-\r
-// Use this if you notice weird scrolling problems on some browsers,\r
-// the DOM might be a bit confused when this gets called so do this\r
-// waits 1 ms (with setTimeout) until it does the activation\r
-Field.scrollFreeActivate = function(field) {\r
-  setTimeout(function() {\r
-    Field.activate(field);\r
-  }, 1);\r
-}\r
-\r
-Ajax.InPlaceEditor = Class.create();\r
-Ajax.InPlaceEditor.defaultHighlightColor = "#FFFF99";\r
-Ajax.InPlaceEditor.prototype = {\r
-  initialize: function(element, url, options) {\r
-    this.url = url;\r
-    this.element = $(element);\r
-\r
-    this.options = Object.extend({\r
-      okButton: true,\r
-      okText: "ok",\r
-      cancelLink: true,\r
-      cancelText: "cancel",\r
-      savingText: "Saving...",\r
-      clickToEditText: "Click to edit",\r
-      okText: "ok",\r
-      rows: 1,\r
-      onComplete: function(transport, element) {\r
-        new Effect.Highlight(element, {startcolor: this.options.highlightcolor});\r
-      },\r
-      onFailure: function(transport) {\r
-        alert("Error communicating with the server: " + transport.responseText.stripTags());\r
-      },\r
-      callback: function(form) {\r
-        return Form.serialize(form);\r
-      },\r
-      handleLineBreaks: true,\r
-      loadingText: 'Loading...',\r
-      savingClassName: 'inplaceeditor-saving',\r
-      loadingClassName: 'inplaceeditor-loading',\r
-      formClassName: 'inplaceeditor-form',\r
-      highlightcolor: Ajax.InPlaceEditor.defaultHighlightColor,\r
-      highlightendcolor: "#FFFFFF",\r
-      externalControl: null,\r
-      submitOnBlur: false,\r
-      ajaxOptions: {},\r
-      evalScripts: false\r
-    }, options || {});\r
-\r
-    if(!this.options.formId && this.element.id) {\r
-      this.options.formId = this.element.id + "-inplaceeditor";\r
-      if ($(this.options.formId)) {\r
-        // there's already a form with that name, don't specify an id\r
-        this.options.formId = null;\r
-      }\r
-    }\r
-    \r
-    if (this.options.externalControl) {\r
-      this.options.externalControl = $(this.options.externalControl);\r
-    }\r
-    \r
-    this.originalBackground = Element.getStyle(this.element, 'background-color');\r
-    if (!this.originalBackground) {\r
-      this.originalBackground = "transparent";\r
-    }\r
-    \r
-    this.element.title = this.options.clickToEditText;\r
-    \r
-    this.onclickListener = this.enterEditMode.bindAsEventListener(this);\r
-    this.mouseoverListener = this.enterHover.bindAsEventListener(this);\r
-    this.mouseoutListener = this.leaveHover.bindAsEventListener(this);\r
-    Event.observe(this.element, 'click', this.onclickListener);\r
-    Event.observe(this.element, 'mouseover', this.mouseoverListener);\r
-    Event.observe(this.element, 'mouseout', this.mouseoutListener);\r
-    if (this.options.externalControl) {\r
-      Event.observe(this.options.externalControl, 'click', this.onclickListener);\r
-      Event.observe(this.options.externalControl, 'mouseover', this.mouseoverListener);\r
-      Event.observe(this.options.externalControl, 'mouseout', this.mouseoutListener);\r
-    }\r
-  },\r
-  enterEditMode: function(evt) {\r
-    if (this.saving) return;\r
-    if (this.editing) return;\r
-    this.editing = true;\r
-    this.onEnterEditMode();\r
-    if (this.options.externalControl) {\r
-      Element.hide(this.options.externalControl);\r
-    }\r
-    Element.hide(this.element);\r
-    this.createForm();\r
-    this.element.parentNode.insertBefore(this.form, this.element);\r
-    if (!this.options.loadTextURL) Field.scrollFreeActivate(this.editField);\r
-    // stop the event to avoid a page refresh in Safari\r
-    if (evt) {\r
-      Event.stop(evt);\r
-    }\r
-    return false;\r
-  },\r
-  createForm: function() {\r
-    this.form = document.createElement("form");\r
-    this.form.id = this.options.formId;\r
-    Element.addClassName(this.form, this.options.formClassName)\r
-    this.form.onsubmit = this.onSubmit.bind(this);\r
-\r
-    this.createEditField();\r
-\r
-    if (this.options.textarea) {\r
-      var br = document.createElement("br");\r
-      this.form.appendChild(br);\r
-    }\r
-\r
-    if (this.options.okButton) {\r
-      okButton = document.createElement("input");\r
-      okButton.type = "submit";\r
-      okButton.value = this.options.okText;\r
-      okButton.className = 'editor_ok_button';\r
-      this.form.appendChild(okButton);\r
-    }\r
-\r
-    if (this.options.cancelLink) {\r
-      cancelLink = document.createElement("a");\r
-      cancelLink.href = "#";\r
-      cancelLink.appendChild(document.createTextNode(this.options.cancelText));\r
-      cancelLink.onclick = this.onclickCancel.bind(this);\r
-      cancelLink.className = 'editor_cancel';      \r
-      this.form.appendChild(cancelLink);\r
-    }\r
-  },\r
-  hasHTMLLineBreaks: function(string) {\r
-    if (!this.options.handleLineBreaks) return false;\r
-    return string.match(/<br/i) || string.match(/<p>/i);\r
-  },\r
-  convertHTMLLineBreaks: function(string) {\r
-    return string.replace(/<br>/gi, "\n").replace(/<br\/>/gi, "\n").replace(/<\/p>/gi, "\n").replace(/<p>/gi, "");\r
-  },\r
-  createEditField: function() {\r
-    var text;\r
-    if(this.options.loadTextURL) {\r
-      text = this.options.loadingText;\r
-    } else {\r
-      text = this.getText();\r
-    }\r
-\r
-    var obj = this;\r
-    \r
-    if (this.options.rows == 1 && !this.hasHTMLLineBreaks(text)) {\r
-      this.options.textarea = false;\r
-      var textField = document.createElement("input");\r
-      textField.obj = this;\r
-      textField.type = "text";\r
-      textField.name = "value";\r
-      textField.value = text;\r
-      textField.style.backgroundColor = this.options.highlightcolor;\r
-      textField.className = 'editor_field';\r
-      var size = this.options.size || this.options.cols || 0;\r
-      if (size != 0) textField.size = size;\r
-      if (this.options.submitOnBlur)\r
-        textField.onblur = this.onSubmit.bind(this);\r
-      this.editField = textField;\r
-    } else {\r
-      this.options.textarea = true;\r
-      var textArea = document.createElement("textarea");\r
-      textArea.obj = this;\r
-      textArea.name = "value";\r
-      textArea.value = this.convertHTMLLineBreaks(text);\r
-      textArea.rows = this.options.rows;\r
-      textArea.cols = this.options.cols || 40;\r
-      textArea.className = 'editor_field';      \r
-      if (this.options.submitOnBlur)\r
-        textArea.onblur = this.onSubmit.bind(this);\r
-      this.editField = textArea;\r
-    }\r
-    \r
-    if(this.options.loadTextURL) {\r
-      this.loadExternalText();\r
-    }\r
-    this.form.appendChild(this.editField);\r
-  },\r
-  getText: function() {\r
-    return this.element.innerHTML;\r
-  },\r
-  loadExternalText: function() {\r
-    Element.addClassName(this.form, this.options.loadingClassName);\r
-    this.editField.disabled = true;\r
-    new Ajax.Request(\r
-      this.options.loadTextURL,\r
-      Object.extend({\r
-        asynchronous: true,\r
-        onComplete: this.onLoadedExternalText.bind(this)\r
-      }, this.options.ajaxOptions)\r
-    );\r
-  },\r
-  onLoadedExternalText: function(transport) {\r
-    Element.removeClassName(this.form, this.options.loadingClassName);\r
-    this.editField.disabled = false;\r
-    this.editField.value = transport.responseText.stripTags();\r
-    Field.scrollFreeActivate(this.editField);\r
-  },\r
-  onclickCancel: function() {\r
-    this.onComplete();\r
-    this.leaveEditMode();\r
-    return false;\r
-  },\r
-  onFailure: function(transport) {\r
-    this.options.onFailure(transport);\r
-    if (this.oldInnerHTML) {\r
-      this.element.innerHTML = this.oldInnerHTML;\r
-      this.oldInnerHTML = null;\r
-    }\r
-    return false;\r
-  },\r
-  onSubmit: function() {\r
-    // onLoading resets these so we need to save them away for the Ajax call\r
-    var form = this.form;\r
-    var value = this.editField.value;\r
-    \r
-    // do this first, sometimes the ajax call returns before we get a chance to switch on Saving...\r
-    // which means this will actually switch on Saving... *after* we've left edit mode causing Saving...\r
-    // to be displayed indefinitely\r
-    this.onLoading();\r
-    \r
-    if (this.options.evalScripts) {\r
-      new Ajax.Request(\r
-        this.url, Object.extend({\r
-          parameters: this.options.callback(form, value),\r
-          onComplete: this.onComplete.bind(this),\r
-          onFailure: this.onFailure.bind(this),\r
-          asynchronous:true, \r
-          evalScripts:true\r
-        }, this.options.ajaxOptions));\r
-    } else  {\r
-      new Ajax.Updater(\r
-        { success: this.element,\r
-          // don't update on failure (this could be an option)\r
-          failure: null }, \r
-        this.url, Object.extend({\r
-          parameters: this.options.callback(form, value),\r
-          onComplete: this.onComplete.bind(this),\r
-          onFailure: this.onFailure.bind(this)\r
-        }, this.options.ajaxOptions));\r
-    }\r
-    // stop the event to avoid a page refresh in Safari\r
-    if (arguments.length > 1) {\r
-      Event.stop(arguments[0]);\r
-    }\r
-    return false;\r
-  },\r
-  onLoading: function() {\r
-    this.saving = true;\r
-    this.removeForm();\r
-    this.leaveHover();\r
-    this.showSaving();\r
-  },\r
-  showSaving: function() {\r
-    this.oldInnerHTML = this.element.innerHTML;\r
-    this.element.innerHTML = this.options.savingText;\r
-    Element.addClassName(this.element, this.options.savingClassName);\r
-    this.element.style.backgroundColor = this.originalBackground;\r
-    Element.show(this.element);\r
-  },\r
-  removeForm: function() {\r
-    if(this.form) {\r
-      if (this.form.parentNode) Element.remove(this.form);\r
-      this.form = null;\r
-    }\r
-  },\r
-  enterHover: function() {\r
-    if (this.saving) return;\r
-    this.element.style.backgroundColor = this.options.highlightcolor;\r
-    if (this.effect) {\r
-      this.effect.cancel();\r
-    }\r
-    Element.addClassName(this.element, this.options.hoverClassName)\r
-  },\r
-  leaveHover: function() {\r
-    if (this.options.backgroundColor) {\r
-      this.element.style.backgroundColor = this.oldBackground;\r
-    }\r
-    Element.removeClassName(this.element, this.options.hoverClassName)\r
-    if (this.saving) return;\r
-    this.effect = new Effect.Highlight(this.element, {\r
-      startcolor: this.options.highlightcolor,\r
-      endcolor: this.options.highlightendcolor,\r
-      restorecolor: this.originalBackground\r
-    });\r
-  },\r
-  leaveEditMode: function() {\r
-    Element.removeClassName(this.element, this.options.savingClassName);\r
-    this.removeForm();\r
-    this.leaveHover();\r
-    this.element.style.backgroundColor = this.originalBackground;\r
-    Element.show(this.element);\r
-    if (this.options.externalControl) {\r
-      Element.show(this.options.externalControl);\r
-    }\r
-    this.editing = false;\r
-    this.saving = false;\r
-    this.oldInnerHTML = null;\r
-    this.onLeaveEditMode();\r
-  },\r
-  onComplete: function(transport) {\r
-    this.leaveEditMode();\r
-    this.options.onComplete.bind(this)(transport, this.element);\r
-  },\r
-  onEnterEditMode: function() {},\r
-  onLeaveEditMode: function() {},\r
-  dispose: function() {\r
-    if (this.oldInnerHTML) {\r
-      this.element.innerHTML = this.oldInnerHTML;\r
-    }\r
-    this.leaveEditMode();\r
-    Event.stopObserving(this.element, 'click', this.onclickListener);\r
-    Event.stopObserving(this.element, 'mouseover', this.mouseoverListener);\r
-    Event.stopObserving(this.element, 'mouseout', this.mouseoutListener);\r
-    if (this.options.externalControl) {\r
-      Event.stopObserving(this.options.externalControl, 'click', this.onclickListener);\r
-      Event.stopObserving(this.options.externalControl, 'mouseover', this.mouseoverListener);\r
-      Event.stopObserving(this.options.externalControl, 'mouseout', this.mouseoutListener);\r
-    }\r
-  }\r
-};\r
-\r
-Ajax.InPlaceCollectionEditor = Class.create();\r
-Object.extend(Ajax.InPlaceCollectionEditor.prototype, Ajax.InPlaceEditor.prototype);\r
-Object.extend(Ajax.InPlaceCollectionEditor.prototype, {\r
-  createEditField: function() {\r
-    if (!this.cached_selectTag) {\r
-      var selectTag = document.createElement("select");\r
-      var collection = this.options.collection || [];\r
-      var optionTag;\r
-      collection.each(function(e,i) {\r
-        optionTag = document.createElement("option");\r
-        optionTag.value = (e instanceof Array) ? e[0] : e;\r
-        if((typeof this.options.value == 'undefined') && \r
-          ((e instanceof Array) ? this.element.innerHTML == e[1] : e == optionTag.value)) optionTag.selected = true;\r
-        if(this.options.value==optionTag.value) optionTag.selected = true;\r
-        optionTag.appendChild(document.createTextNode((e instanceof Array) ? e[1] : e));\r
-        selectTag.appendChild(optionTag);\r
-      }.bind(this));\r
-      this.cached_selectTag = selectTag;\r
-    }\r
-\r
-    this.editField = this.cached_selectTag;\r
-    if(this.options.loadTextURL) this.loadExternalText();\r
-    this.form.appendChild(this.editField);\r
-    this.options.callback = function(form, value) {\r
-      return "value=" + encodeURIComponent(value);\r
-    }\r
-  }\r
-});\r
-\r
-// Delayed observer, like Form.Element.Observer, \r
-// but waits for delay after last key input\r
-// Ideal for live-search fields\r
-\r
-Form.Element.DelayedObserver = Class.create();\r
-Form.Element.DelayedObserver.prototype = {\r
-  initialize: function(element, delay, callback) {\r
-    this.delay     = delay || 0.5;\r
-    this.element   = $(element);\r
-    this.callback  = callback;\r
-    this.timer     = null;\r
-    this.lastValue = $F(this.element); \r
-    Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this));\r
-  },\r
-  delayedListener: function(event) {\r
-    if(this.lastValue == $F(this.element)) return;\r
-    if(this.timer) clearTimeout(this.timer);\r
-    this.timer = setTimeout(this.onTimerEvent.bind(this), this.delay * 1000);\r
-    this.lastValue = $F(this.element);\r
-  },\r
-  onTimerEvent: function() {\r
-    this.timer = null;\r
-    this.callback(this.element, $F(this.element));\r
-  }\r
-};\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/dragdrop.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/dragdrop.js
deleted file mode 100644 (file)
index abfe74e..0000000
+++ /dev/null
@@ -1,970 +0,0 @@
-// script.aculo.us dragdrop.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006\r
-\r
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)\r
-//           (c) 2005 Sammi Williams (http://www.oriontransfer.co.nz, sammi@oriontransfer.co.nz)\r
-// \r
-// See scriptaculous.js for full license.\r
-\r
-/*--------------------------------------------------------------------------*/\r
-\r
-if(typeof Effect == 'undefined')\r
-  throw("dragdrop.js requires including script.aculo.us' effects.js library");\r
-\r
-var Droppables = {\r
-  drops: [],\r
-\r
-  remove: function(element) {\r
-    this.drops = this.drops.reject(function(d) { return d.element==$(element) });\r
-  },\r
-\r
-  add: function(element) {\r
-    element = $(element);\r
-    var options = Object.extend({\r
-      greedy:     true,\r
-      hoverclass: null,\r
-      tree:       false\r
-    }, arguments[1] || {});\r
-\r
-    // cache containers\r
-    if(options.containment) {\r
-      options._containers = [];\r
-      var containment = options.containment;\r
-      if((typeof containment == 'object') && \r
-        (containment.constructor == Array)) {\r
-        containment.each( function(c) { options._containers.push($(c)) });\r
-      } else {\r
-        options._containers.push($(containment));\r
-      }\r
-    }\r
-    \r
-    if(options.accept) options.accept = [options.accept].flatten();\r
-\r
-    Element.makePositioned(element); // fix IE\r
-    options.element = element;\r
-\r
-    this.drops.push(options);\r
-  },\r
-  \r
-  findDeepestChild: function(drops) {\r
-    deepest = drops[0];\r
-      \r
-    for (i = 1; i < drops.length; ++i)\r
-      if (Element.isParent(drops[i].element, deepest.element))\r
-        deepest = drops[i];\r
-    \r
-    return deepest;\r
-  },\r
-\r
-  isContained: function(element, drop) {\r
-    var containmentNode;\r
-    if(drop.tree) {\r
-      containmentNode = element.treeNode; \r
-    } else {\r
-      containmentNode = element.parentNode;\r
-    }\r
-    return drop._containers.detect(function(c) { return containmentNode == c });\r
-  },\r
-  \r
-  isAffected: function(point, element, drop) {\r
-    return (\r
-      (drop.element!=element) &&\r
-      ((!drop._containers) ||\r
-        this.isContained(element, drop)) &&\r
-      ((!drop.accept) ||\r
-        (Element.classNames(element).detect( \r
-          function(v) { return drop.accept.include(v) } ) )) &&\r
-      Position.within(drop.element, point[0], point[1]) );\r
-  },\r
-\r
-  deactivate: function(drop) {\r
-    if(drop.hoverclass)\r
-      Element.removeClassName(drop.element, drop.hoverclass);\r
-    this.last_active = null;\r
-  },\r
-\r
-  activate: function(drop) {\r
-    if(drop.hoverclass)\r
-      Element.addClassName(drop.element, drop.hoverclass);\r
-    this.last_active = drop;\r
-  },\r
-\r
-  show: function(point, element) {\r
-    if(!this.drops.length) return;\r
-    var affected = [];\r
-    \r
-    if(this.last_active) this.deactivate(this.last_active);\r
-    this.drops.each( function(drop) {\r
-      if(Droppables.isAffected(point, element, drop))\r
-        affected.push(drop);\r
-    });\r
-        \r
-    if(affected.length>0) {\r
-      drop = Droppables.findDeepestChild(affected);\r
-      Position.within(drop.element, point[0], point[1]);\r
-      if(drop.onHover)\r
-        drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element));\r
-      \r
-      Droppables.activate(drop);\r
-    }\r
-  },\r
-\r
-  fire: function(event, element) {\r
-    if(!this.last_active) return;\r
-    Position.prepare();\r
-\r
-    if (this.isAffected([Event.pointerX(event), Event.pointerY(event)], element, this.last_active))\r
-      if (this.last_active.onDrop) \r
-        this.last_active.onDrop(element, this.last_active.element, event);\r
-  },\r
-\r
-  reset: function() {\r
-    if(this.last_active)\r
-      this.deactivate(this.last_active);\r
-  }\r
-}\r
-\r
-var Draggables = {\r
-  drags: [],\r
-  observers: [],\r
-  \r
-  register: function(draggable) {\r
-    if(this.drags.length == 0) {\r
-      this.eventMouseUp   = this.endDrag.bindAsEventListener(this);\r
-      this.eventMouseMove = this.updateDrag.bindAsEventListener(this);\r
-      this.eventKeypress  = this.keyPress.bindAsEventListener(this);\r
-      \r
-      Event.observe(document, "mouseup", this.eventMouseUp);\r
-      Event.observe(document, "mousemove", this.eventMouseMove);\r
-      Event.observe(document, "keypress", this.eventKeypress);\r
-    }\r
-    this.drags.push(draggable);\r
-  },\r
-  \r
-  unregister: function(draggable) {\r
-    this.drags = this.drags.reject(function(d) { return d==draggable });\r
-    if(this.drags.length == 0) {\r
-      Event.stopObserving(document, "mouseup", this.eventMouseUp);\r
-      Event.stopObserving(document, "mousemove", this.eventMouseMove);\r
-      Event.stopObserving(document, "keypress", this.eventKeypress);\r
-    }\r
-  },\r
-  \r
-  activate: function(draggable) {\r
-    if(draggable.options.delay) { \r
-      this._timeout = setTimeout(function() { \r
-        Draggables._timeout = null; \r
-        window.focus(); \r
-        Draggables.activeDraggable = draggable; \r
-      }.bind(this), draggable.options.delay); \r
-    } else {\r
-      window.focus(); // allows keypress events if window isn't currently focused, fails for Safari\r
-      this.activeDraggable = draggable;\r
-    }\r
-  },\r
-  \r
-  deactivate: function() {\r
-    this.activeDraggable = null;\r
-  },\r
-  \r
-  updateDrag: function(event) {\r
-    if(!this.activeDraggable) return;\r
-    var pointer = [Event.pointerX(event), Event.pointerY(event)];\r
-    // Mozilla-based browsers fire successive mousemove events with\r
-    // the same coordinates, prevent needless redrawing (moz bug?)\r
-    if(this._lastPointer && (this._lastPointer.inspect() == pointer.inspect())) return;\r
-    this._lastPointer = pointer;\r
-    \r
-    this.activeDraggable.updateDrag(event, pointer);\r
-  },\r
-  \r
-  endDrag: function(event) {\r
-    if(this._timeout) { \r
-      clearTimeout(this._timeout); \r
-      this._timeout = null; \r
-    }\r
-    if(!this.activeDraggable) return;\r
-    this._lastPointer = null;\r
-    this.activeDraggable.endDrag(event);\r
-    this.activeDraggable = null;\r
-  },\r
-  \r
-  keyPress: function(event) {\r
-    if(this.activeDraggable)\r
-      this.activeDraggable.keyPress(event);\r
-  },\r
-  \r
-  addObserver: function(observer) {\r
-    this.observers.push(observer);\r
-    this._cacheObserverCallbacks();\r
-  },\r
-  \r
-  removeObserver: function(element) {  // element instead of observer fixes mem leaks\r
-    this.observers = this.observers.reject( function(o) { return o.element==element });\r
-    this._cacheObserverCallbacks();\r
-  },\r
-  \r
-  notify: function(eventName, draggable, event) {  // 'onStart', 'onEnd', 'onDrag'\r
-    if(this[eventName+'Count'] > 0)\r
-      this.observers.each( function(o) {\r
-        if(o[eventName]) o[eventName](eventName, draggable, event);\r
-      });\r
-    if(draggable.options[eventName]) draggable.options[eventName](draggable, event);\r
-  },\r
-  \r
-  _cacheObserverCallbacks: function() {\r
-    ['onStart','onEnd','onDrag'].each( function(eventName) {\r
-      Draggables[eventName+'Count'] = Draggables.observers.select(\r
-        function(o) { return o[eventName]; }\r
-      ).length;\r
-    });\r
-  }\r
-}\r
-\r
-/*--------------------------------------------------------------------------*/\r
-\r
-var Draggable = Class.create();\r
-Draggable._dragging    = {};\r
-\r
-Draggable.prototype = {\r
-  initialize: function(element) {\r
-    var defaults = {\r
-      handle: false,\r
-      reverteffect: function(element, top_offset, left_offset) {\r
-        var dur = Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02;\r
-        new Effect.Move(element, { x: -left_offset, y: -top_offset, duration: dur,\r
-          queue: {scope:'_draggable', position:'end'}\r
-        });\r
-      },\r
-      endeffect: function(element) {\r
-        var toOpacity = typeof element._opacity == 'number' ? element._opacity : 1.0;\r
-        new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity, \r
-          queue: {scope:'_draggable', position:'end'},\r
-          afterFinish: function(){ \r
-            Draggable._dragging[element] = false \r
-          }\r
-        }); \r
-      },\r
-      zindex: 1000,\r
-      revert: false,\r
-      scroll: false,\r
-      scrollSensitivity: 20,\r
-      scrollSpeed: 15,\r
-      snap: false,  // false, or xy or [x,y] or function(x,y){ return [x,y] }\r
-      delay: 0\r
-    };\r
-    \r
-    if(arguments[1] && typeof arguments[1].endeffect == 'undefined')\r
-      Object.extend(defaults, {\r
-        starteffect: function(element) {\r
-          element._opacity = Element.getOpacity(element);\r
-          Draggable._dragging[element] = true;\r
-          new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7}); \r
-        }\r
-      });\r
-    \r
-    var options = Object.extend(defaults, arguments[1] || {});\r
-\r
-    this.element = $(element);\r
-    \r
-    if(options.handle && (typeof options.handle == 'string')) {\r
-      var h = Element.childrenWithClassName(this.element, options.handle, true);\r
-      if(h.length>0) this.handle = h[0];\r
-    }\r
-    if(!this.handle) this.handle = $(options.handle);\r
-    if(!this.handle) this.handle = this.element;\r
-    \r
-    if(options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML) {\r
-      options.scroll = $(options.scroll);\r
-      this._isScrollChild = Element.childOf(this.element, options.scroll);\r
-    }\r
-\r
-    Element.makePositioned(this.element); // fix IE    \r
-\r
-    this.delta    = this.currentDelta();\r
-    this.options  = options;\r
-    this.dragging = false;   \r
-\r
-    this.eventMouseDown = this.initDrag.bindAsEventListener(this);\r
-    Event.observe(this.handle, "mousedown", this.eventMouseDown);\r
-    \r
-    Draggables.register(this);\r
-  },\r
-  \r
-  destroy: function() {\r
-    Event.stopObserving(this.handle, "mousedown", this.eventMouseDown);\r
-    Draggables.unregister(this);\r
-  },\r
-  \r
-  currentDelta: function() {\r
-    return([\r
-      parseInt(Element.getStyle(this.element,'left') || '0'),\r
-      parseInt(Element.getStyle(this.element,'top') || '0')]);\r
-  },\r
-  \r
-  initDrag: function(event) {\r
-    if(typeof Draggable._dragging[this.element] != 'undefined' &&\r
-      Draggable._dragging[this.element]) return;\r
-    if(Event.isLeftClick(event)) {    \r
-      // abort on form elements, fixes a Firefox issue\r
-      var src = Event.element(event);\r
-      if(src.tagName && (\r
-        src.tagName=='INPUT' ||\r
-        src.tagName=='SELECT' ||\r
-        src.tagName=='OPTION' ||\r
-        src.tagName=='BUTTON' ||\r
-        src.tagName=='TEXTAREA')) return;\r
-        \r
-      var pointer = [Event.pointerX(event), Event.pointerY(event)];\r
-      var pos     = Position.cumulativeOffset(this.element);\r
-      this.offset = [0,1].map( function(i) { return (pointer[i] - pos[i]) });\r
-      \r
-      Draggables.activate(this);\r
-      Event.stop(event);\r
-    }\r
-  },\r
-  \r
-  startDrag: function(event) {\r
-    this.dragging = true;\r
-    \r
-    if(this.options.zindex) {\r
-      this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0);\r
-      this.element.style.zIndex = this.options.zindex;\r
-    }\r
-    \r
-    if(this.options.ghosting) {\r
-      this._clone = this.element.cloneNode(true);\r
-      Position.absolutize(this.element);\r
-      this.element.parentNode.insertBefore(this._clone, this.element);\r
-    }\r
-    \r
-    if(this.options.scroll) {\r
-      if (this.options.scroll == window) {\r
-        var where = this._getWindowScroll(this.options.scroll);\r
-        this.originalScrollLeft = where.left;\r
-        this.originalScrollTop = where.top;\r
-      } else {\r
-        this.originalScrollLeft = this.options.scroll.scrollLeft;\r
-        this.originalScrollTop = this.options.scroll.scrollTop;\r
-      }\r
-    }\r
-    \r
-    Draggables.notify('onStart', this, event);\r
-        \r
-    if(this.options.starteffect) this.options.starteffect(this.element);\r
-  },\r
-  \r
-  updateDrag: function(event, pointer) {\r
-    if(!this.dragging) this.startDrag(event);\r
-    Position.prepare();\r
-    Droppables.show(pointer, this.element);\r
-    Draggables.notify('onDrag', this, event);\r
-    \r
-    this.draw(pointer);\r
-    if(this.options.change) this.options.change(this);\r
-    \r
-    if(this.options.scroll) {\r
-      this.stopScrolling();\r
-      \r
-      var p;\r
-      if (this.options.scroll == window) {\r
-        with(this._getWindowScroll(this.options.scroll)) { p = [ left, top, left+width, top+height ]; }\r
-      } else {\r
-        p = Position.page(this.options.scroll);\r
-        p[0] += this.options.scroll.scrollLeft;\r
-        p[1] += this.options.scroll.scrollTop;\r
-        \r
-        p[0] += (window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0);\r
-        p[1] += (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0);\r
-        \r
-        p.push(p[0]+this.options.scroll.offsetWidth);\r
-        p.push(p[1]+this.options.scroll.offsetHeight);\r
-      }\r
-      var speed = [0,0];\r
-      if(pointer[0] < (p[0]+this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[0]+this.options.scrollSensitivity);\r
-      if(pointer[1] < (p[1]+this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[1]+this.options.scrollSensitivity);\r
-      if(pointer[0] > (p[2]-this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[2]-this.options.scrollSensitivity);\r
-      if(pointer[1] > (p[3]-this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[3]-this.options.scrollSensitivity);\r
-      this.startScrolling(speed);\r
-    }\r
-    \r
-    // fix AppleWebKit rendering\r
-    if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0);\r
-    \r
-    Event.stop(event);\r
-  },\r
-  \r
-  finishDrag: function(event, success) {\r
-    this.dragging = false;\r
-\r
-    if(this.options.ghosting) {\r
-      Position.relativize(this.element);\r
-      Element.remove(this._clone);\r
-      this._clone = null;\r
-    }\r
-\r
-    if(success) Droppables.fire(event, this.element);\r
-    Draggables.notify('onEnd', this, event);\r
-\r
-    var revert = this.options.revert;\r
-    if(revert && typeof revert == 'function') revert = revert(this.element);\r
-    \r
-    var d = this.currentDelta();\r
-    if(revert && this.options.reverteffect) {\r
-      this.options.reverteffect(this.element, \r
-        d[1]-this.delta[1], d[0]-this.delta[0]);\r
-    } else {\r
-      this.delta = d;\r
-    }\r
-\r
-    if(this.options.zindex)\r
-      this.element.style.zIndex = this.originalZ;\r
-\r
-    if(this.options.endeffect) \r
-      this.options.endeffect(this.element);\r
-      \r
-    Draggables.deactivate(this);\r
-    Droppables.reset();\r
-  },\r
-  \r
-  keyPress: function(event) {\r
-    if(event.keyCode!=Event.KEY_ESC) return;\r
-    this.finishDrag(event, false);\r
-    Event.stop(event);\r
-  },\r
-  \r
-  endDrag: function(event) {\r
-    if(!this.dragging) return;\r
-    this.stopScrolling();\r
-    this.finishDrag(event, true);\r
-    Event.stop(event);\r
-  },\r
-  \r
-  draw: function(point) {\r
-    var pos = Position.cumulativeOffset(this.element);\r
-    if(this.options.ghosting) {\r
-      var r   = Position.realOffset(this.element);\r
-      window.status = r.inspect();\r
-      pos[0] += r[0] - Position.deltaX; pos[1] += r[1] - Position.deltaY;\r
-    }\r
-    \r
-    var d = this.currentDelta();\r
-    pos[0] -= d[0]; pos[1] -= d[1];\r
-    \r
-    if(this.options.scroll && (this.options.scroll != window && this._isScrollChild)) {\r
-      pos[0] -= this.options.scroll.scrollLeft-this.originalScrollLeft;\r
-      pos[1] -= this.options.scroll.scrollTop-this.originalScrollTop;\r
-    }\r
-    \r
-    var p = [0,1].map(function(i){ \r
-      return (point[i]-pos[i]-this.offset[i]) \r
-    }.bind(this));\r
-    \r
-    if(this.options.snap) {\r
-      if(typeof this.options.snap == 'function') {\r
-        p = this.options.snap(p[0],p[1],this);\r
-      } else {\r
-      if(this.options.snap instanceof Array) {\r
-        p = p.map( function(v, i) {\r
-          return Math.round(v/this.options.snap[i])*this.options.snap[i] }.bind(this))\r
-      } else {\r
-        p = p.map( function(v) {\r
-          return Math.round(v/this.options.snap)*this.options.snap }.bind(this))\r
-      }\r
-    }}\r
-    \r
-    var style = this.element.style;\r
-    if((!this.options.constraint) || (this.options.constraint=='horizontal'))\r
-      style.left = p[0] + "px";\r
-    if((!this.options.constraint) || (this.options.constraint=='vertical'))\r
-      style.top  = p[1] + "px";\r
-    \r
-    if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering\r
-  },\r
-  \r
-  stopScrolling: function() {\r
-    if(this.scrollInterval) {\r
-      clearInterval(this.scrollInterval);\r
-      this.scrollInterval = null;\r
-      Draggables._lastScrollPointer = null;\r
-    }\r
-  },\r
-  \r
-  startScrolling: function(speed) {\r
-    if(!(speed[0] || speed[1])) return;\r
-    this.scrollSpeed = [speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed];\r
-    this.lastScrolled = new Date();\r
-    this.scrollInterval = setInterval(this.scroll.bind(this), 10);\r
-  },\r
-  \r
-  scroll: function() {\r
-    var current = new Date();\r
-    var delta = current - this.lastScrolled;\r
-    this.lastScrolled = current;\r
-    if(this.options.scroll == window) {\r
-      with (this._getWindowScroll(this.options.scroll)) {\r
-        if (this.scrollSpeed[0] || this.scrollSpeed[1]) {\r
-          var d = delta / 1000;\r
-          this.options.scroll.scrollTo( left + d*this.scrollSpeed[0], top + d*this.scrollSpeed[1] );\r
-        }\r
-      }\r
-    } else {\r
-      this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000;\r
-      this.options.scroll.scrollTop  += this.scrollSpeed[1] * delta / 1000;\r
-    }\r
-    \r
-    Position.prepare();\r
-    Droppables.show(Draggables._lastPointer, this.element);\r
-    Draggables.notify('onDrag', this);\r
-    if (this._isScrollChild) {\r
-      Draggables._lastScrollPointer = Draggables._lastScrollPointer || $A(Draggables._lastPointer);\r
-      Draggables._lastScrollPointer[0] += this.scrollSpeed[0] * delta / 1000;\r
-      Draggables._lastScrollPointer[1] += this.scrollSpeed[1] * delta / 1000;\r
-      if (Draggables._lastScrollPointer[0] < 0)\r
-        Draggables._lastScrollPointer[0] = 0;\r
-      if (Draggables._lastScrollPointer[1] < 0)\r
-        Draggables._lastScrollPointer[1] = 0;\r
-      this.draw(Draggables._lastScrollPointer);\r
-    }\r
-    \r
-    if(this.options.change) this.options.change(this);\r
-  },\r
-  \r
-  _getWindowScroll: function(w) {\r
-    var T, L, W, H;\r
-    with (w.document) {\r
-      if (w.document.documentElement && documentElement.scrollTop) {\r
-        T = documentElement.scrollTop;\r
-        L = documentElement.scrollLeft;\r
-      } else if (w.document.body) {\r
-        T = body.scrollTop;\r
-        L = body.scrollLeft;\r
-      }\r
-      if (w.innerWidth) {\r
-        W = w.innerWidth;\r
-        H = w.innerHeight;\r
-      } else if (w.document.documentElement && documentElement.clientWidth) {\r
-        W = documentElement.clientWidth;\r
-        H = documentElement.clientHeight;\r
-      } else {\r
-        W = body.offsetWidth;\r
-        H = body.offsetHeight\r
-      }\r
-    }\r
-    return { top: T, left: L, width: W, height: H };\r
-  }\r
-}\r
-\r
-/*--------------------------------------------------------------------------*/\r
-\r
-var SortableObserver = Class.create();\r
-SortableObserver.prototype = {\r
-  initialize: function(element, observer) {\r
-    this.element   = $(element);\r
-    this.observer  = observer;\r
-    this.lastValue = Sortable.serialize(this.element);\r
-  },\r
-  \r
-  onStart: function() {\r
-    this.lastValue = Sortable.serialize(this.element);\r
-  },\r
-  \r
-  onEnd: function() {\r
-    Sortable.unmark();\r
-    if(this.lastValue != Sortable.serialize(this.element))\r
-      this.observer(this.element)\r
-  }\r
-}\r
-\r
-var Sortable = {\r
-  SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,\r
-  \r
-  sortables: {},\r
-  \r
-  _findRootElement: function(element) {\r
-    while (element.tagName != "BODY") {  \r
-      if(element.id && Sortable.sortables[element.id]) return element;\r
-      element = element.parentNode;\r
-    }\r
-  },\r
-\r
-  options: function(element) {\r
-    element = Sortable._findRootElement($(element));\r
-    if(!element) return;\r
-    return Sortable.sortables[element.id];\r
-  },\r
-  \r
-  destroy: function(element){\r
-    var s = Sortable.options(element);\r
-    \r
-    if(s) {\r
-      Draggables.removeObserver(s.element);\r
-      s.droppables.each(function(d){ Droppables.remove(d) });\r
-      s.draggables.invoke('destroy');\r
-      \r
-      delete Sortable.sortables[s.element.id];\r
-    }\r
-  },\r
-\r
-  create: function(element) {\r
-    element = $(element);\r
-    var options = Object.extend({ \r
-      element:     element,\r
-      tag:         'li',       // assumes li children, override with tag: 'tagname'\r
-      dropOnEmpty: false,\r
-      tree:        false,\r
-      treeTag:     'ul',\r
-      overlap:     'vertical', // one of 'vertical', 'horizontal'\r
-      constraint:  'vertical', // one of 'vertical', 'horizontal', false\r
-      containment: element,    // also takes array of elements (or id's); or false\r
-      handle:      false,      // or a CSS class\r
-      only:        false,\r
-      delay:       0,\r
-      hoverclass:  null,\r
-      ghosting:    false,\r
-      scroll:      false,\r
-      scrollSensitivity: 20,\r
-      scrollSpeed: 15,\r
-      format:      this.SERIALIZE_RULE,\r
-      onChange:    Prototype.emptyFunction,\r
-      onUpdate:    Prototype.emptyFunction\r
-    }, arguments[1] || {});\r
-\r
-    // clear any old sortable with same element\r
-    this.destroy(element);\r
-\r
-    // build options for the draggables\r
-    var options_for_draggable = {\r
-      revert:      true,\r
-      scroll:      options.scroll,\r
-      scrollSpeed: options.scrollSpeed,\r
-      scrollSensitivity: options.scrollSensitivity,\r
-      delay:       options.delay,\r
-      ghosting:    options.ghosting,\r
-      constraint:  options.constraint,\r
-      handle:      options.handle };\r
-\r
-    if(options.starteffect)\r
-      options_for_draggable.starteffect = options.starteffect;\r
-\r
-    if(options.reverteffect)\r
-      options_for_draggable.reverteffect = options.reverteffect;\r
-    else\r
-      if(options.ghosting) options_for_draggable.reverteffect = function(element) {\r
-        element.style.top  = 0;\r
-        element.style.left = 0;\r
-      };\r
-\r
-    if(options.endeffect)\r
-      options_for_draggable.endeffect = options.endeffect;\r
-\r
-    if(options.zindex)\r
-      options_for_draggable.zindex = options.zindex;\r
-\r
-    // build options for the droppables  \r
-    var options_for_droppable = {\r
-      overlap:     options.overlap,\r
-      containment: options.containment,\r
-      tree:        options.tree,\r
-      hoverclass:  options.hoverclass,\r
-      onHover:     Sortable.onHover\r
-      //greedy:      !options.dropOnEmpty\r
-    }\r
-    \r
-    var options_for_tree = {\r
-      onHover:      Sortable.onEmptyHover,\r
-      overlap:      options.overlap,\r
-      containment:  options.containment,\r
-      hoverclass:   options.hoverclass\r
-    }\r
-\r
-    // fix for gecko engine\r
-    Element.cleanWhitespace(element); \r
-\r
-    options.draggables = [];\r
-    options.droppables = [];\r
-\r
-    // drop on empty handling\r
-    if(options.dropOnEmpty || options.tree) {\r
-      Droppables.add(element, options_for_tree);\r
-      options.droppables.push(element);\r
-    }\r
-\r
-    (this.findElements(element, options) || []).each( function(e) {\r
-      // handles are per-draggable\r
-      var handle = options.handle ? \r
-        Element.childrenWithClassName(e, options.handle)[0] : e;    \r
-      options.draggables.push(\r
-        new Draggable(e, Object.extend(options_for_draggable, { handle: handle })));\r
-      Droppables.add(e, options_for_droppable);\r
-      if(options.tree) e.treeNode = element;\r
-      options.droppables.push(e);      \r
-    });\r
-    \r
-    if(options.tree) {\r
-      (Sortable.findTreeElements(element, options) || []).each( function(e) {\r
-        Droppables.add(e, options_for_tree);\r
-        e.treeNode = element;\r
-        options.droppables.push(e);\r
-      });\r
-    }\r
-\r
-    // keep reference\r
-    this.sortables[element.id] = options;\r
-\r
-    // for onupdate\r
-    Draggables.addObserver(new SortableObserver(element, options.onUpdate));\r
-\r
-  },\r
-\r
-  // return all suitable-for-sortable elements in a guaranteed order\r
-  findElements: function(element, options) {\r
-    return Element.findChildren(\r
-      element, options.only, options.tree ? true : false, options.tag);\r
-  },\r
-  \r
-  findTreeElements: function(element, options) {\r
-    return Element.findChildren(\r
-      element, options.only, options.tree ? true : false, options.treeTag);\r
-  },\r
-\r
-  onHover: function(element, dropon, overlap) {\r
-    if(Element.isParent(dropon, element)) return;\r
-\r
-    if(overlap > .33 && overlap < .66 && Sortable.options(dropon).tree) {\r
-      return;\r
-    } else if(overlap>0.5) {\r
-      Sortable.mark(dropon, 'before');\r
-      if(dropon.previousSibling != element) {\r
-        var oldParentNode = element.parentNode;\r
-        element.style.visibility = "hidden"; // fix gecko rendering\r
-        dropon.parentNode.insertBefore(element, dropon);\r
-        if(dropon.parentNode!=oldParentNode) \r
-          Sortable.options(oldParentNode).onChange(element);\r
-        Sortable.options(dropon.parentNode).onChange(element);\r
-      }\r
-    } else {\r
-      Sortable.mark(dropon, 'after');\r
-      var nextElement = dropon.nextSibling || null;\r
-      if(nextElement != element) {\r
-        var oldParentNode = element.parentNode;\r
-        element.style.visibility = "hidden"; // fix gecko rendering\r
-        dropon.parentNode.insertBefore(element, nextElement);\r
-        if(dropon.parentNode!=oldParentNode) \r
-          Sortable.options(oldParentNode).onChange(element);\r
-        Sortable.options(dropon.parentNode).onChange(element);\r
-      }\r
-    }\r
-  },\r
-  \r
-  onEmptyHover: function(element, dropon, overlap) {\r
-    var oldParentNode = element.parentNode;\r
-    var droponOptions = Sortable.options(dropon);\r
-        \r
-    if(!Element.isParent(dropon, element)) {\r
-      var index;\r
-      \r
-      var children = Sortable.findElements(dropon, {tag: droponOptions.tag, only: droponOptions.only});\r
-      var child = null;\r
-            \r
-      if(children) {\r
-        var offset = Element.offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap);\r
-        \r
-        for (index = 0; index < children.length; index += 1) {\r
-          if (offset - Element.offsetSize (children[index], droponOptions.overlap) >= 0) {\r
-            offset -= Element.offsetSize (children[index], droponOptions.overlap);\r
-          } else if (offset - (Element.offsetSize (children[index], droponOptions.overlap) / 2) >= 0) {\r
-            child = index + 1 < children.length ? children[index + 1] : null;\r
-            break;\r
-          } else {\r
-            child = children[index];\r
-            break;\r
-          }\r
-        }\r
-      }\r
-      \r
-      dropon.insertBefore(element, child);\r
-      \r
-      Sortable.options(oldParentNode).onChange(element);\r
-      droponOptions.onChange(element);\r
-    }\r
-  },\r
-\r
-  unmark: function() {\r
-    if(Sortable._marker) Element.hide(Sortable._marker);\r
-  },\r
-\r
-  mark: function(dropon, position) {\r
-    // mark on ghosting only\r
-    var sortable = Sortable.options(dropon.parentNode);\r
-    if(sortable && !sortable.ghosting) return; \r
-\r
-    if(!Sortable._marker) {\r
-      Sortable._marker = $('dropmarker') || document.createElement('DIV');\r
-      Element.hide(Sortable._marker);\r
-      Element.addClassName(Sortable._marker, 'dropmarker');\r
-      Sortable._marker.style.position = 'absolute';\r
-      document.getElementsByTagName("body").item(0).appendChild(Sortable._marker);\r
-    }    \r
-    var offsets = Position.cumulativeOffset(dropon);\r
-    Sortable._marker.style.left = offsets[0] + 'px';\r
-    Sortable._marker.style.top = offsets[1] + 'px';\r
-    \r
-    if(position=='after')\r
-      if(sortable.overlap == 'horizontal') \r
-        Sortable._marker.style.left = (offsets[0]+dropon.clientWidth) + 'px';\r
-      else\r
-        Sortable._marker.style.top = (offsets[1]+dropon.clientHeight) + 'px';\r
-    \r
-    Element.show(Sortable._marker);\r
-  },\r
-  \r
-  _tree: function(element, options, parent) {\r
-    var children = Sortable.findElements(element, options) || [];\r
-  \r
-    for (var i = 0; i < children.length; ++i) {\r
-      var match = children[i].id.match(options.format);\r
-\r
-      if (!match) continue;\r
-      \r
-      var child = {\r
-        id: encodeURIComponent(match ? match[1] : null),\r
-        element: element,\r
-        parent: parent,\r
-        children: new Array,\r
-        position: parent.children.length,\r
-        container: Sortable._findChildrenElement(children[i], options.treeTag.toUpperCase())\r
-      }\r
-      \r
-      /* Get the element containing the children and recurse over it */\r
-      if (child.container)\r
-        this._tree(child.container, options, child)\r
-      \r
-      parent.children.push (child);\r
-    }\r
-\r
-    return parent; \r
-  },\r
-\r
-  /* Finds the first element of the given tag type within a parent element.\r
-    Used for finding the first LI[ST] within a L[IST]I[TEM].*/\r
-  _findChildrenElement: function (element, containerTag) {\r
-    if (element && element.hasChildNodes)\r
-      for (var i = 0; i < element.childNodes.length; ++i)\r
-        if (element.childNodes[i].tagName == containerTag)\r
-          return element.childNodes[i];\r
-  \r
-    return null;\r
-  },\r
-\r
-  tree: function(element) {\r
-    element = $(element);\r
-    var sortableOptions = this.options(element);\r
-    var options = Object.extend({\r
-      tag: sortableOptions.tag,\r
-      treeTag: sortableOptions.treeTag,\r
-      only: sortableOptions.only,\r
-      name: element.id,\r
-      format: sortableOptions.format\r
-    }, arguments[1] || {});\r
-    \r
-    var root = {\r
-      id: null,\r
-      parent: null,\r
-      children: new Array,\r
-      container: element,\r
-      position: 0\r
-    }\r
-    \r
-    return Sortable._tree (element, options, root);\r
-  },\r
-\r
-  /* Construct a [i] index for a particular node */\r
-  _constructIndex: function(node) {\r
-    var index = '';\r
-    do {\r
-      if (node.id) index = '[' + node.position + ']' + index;\r
-    } while ((node = node.parent) != null);\r
-    return index;\r
-  },\r
-\r
-  sequence: function(element) {\r
-    element = $(element);\r
-    var options = Object.extend(this.options(element), arguments[1] || {});\r
-    \r
-    return $(this.findElements(element, options) || []).map( function(item) {\r
-      return item.id.match(options.format) ? item.id.match(options.format)[1] : '';\r
-    });\r
-  },\r
-\r
-  setSequence: function(element, new_sequence) {\r
-    element = $(element);\r
-    var options = Object.extend(this.options(element), arguments[2] || {});\r
-    \r
-    var nodeMap = {};\r
-    this.findElements(element, options).each( function(n) {\r
-        if (n.id.match(options.format))\r
-            nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode];\r
-        n.parentNode.removeChild(n);\r
-    });\r
-   \r
-    new_sequence.each(function(ident) {\r
-      var n = nodeMap[ident];\r
-      if (n) {\r
-        n[1].appendChild(n[0]);\r
-        delete nodeMap[ident];\r
-      }\r
-    });\r
-  },\r
-  \r
-  serialize: function(element) {\r
-    element = $(element);\r
-    var options = Object.extend(Sortable.options(element), arguments[1] || {});\r
-    var name = encodeURIComponent(\r
-      (arguments[1] && arguments[1].name) ? arguments[1].name : element.id);\r
-    \r
-    if (options.tree) {\r
-      return Sortable.tree(element, arguments[1]).children.map( function (item) {\r
-        return [name + Sortable._constructIndex(item) + "[id]=" + \r
-                encodeURIComponent(item.id)].concat(item.children.map(arguments.callee));\r
-      }).flatten().join('&');\r
-    } else {\r
-      return Sortable.sequence(element, arguments[1]).map( function(item) {\r
-        return name + "[]=" + encodeURIComponent(item);\r
-      }).join('&');\r
-    }\r
-  }\r
-}\r
-\r
-/* Returns true if child is contained within element */\r
-Element.isParent = function(child, element) {\r
-  if (!child.parentNode || child == element) return false;\r
-\r
-  if (child.parentNode == element) return true;\r
-\r
-  return Element.isParent(child.parentNode, element);\r
-}\r
-\r
-Element.findChildren = function(element, only, recursive, tagName) {    \r
-  if(!element.hasChildNodes()) return null;\r
-  tagName = tagName.toUpperCase();\r
-  if(only) only = [only].flatten();\r
-  var elements = [];\r
-  $A(element.childNodes).each( function(e) {\r
-    if(e.tagName && e.tagName.toUpperCase()==tagName &&\r
-      (!only || (Element.classNames(e).detect(function(v) { return only.include(v) }))))\r
-        elements.push(e);\r
-    if(recursive) {\r
-      var grandchildren = Element.findChildren(e, only, recursive, tagName);\r
-      if(grandchildren) elements.push(grandchildren);\r
-    }\r
-  });\r
-\r
-  return (elements.length>0 ? elements.flatten() : []);\r
-}\r
-\r
-Element.offsetSize = function (element, type) {\r
-  if (type == 'vertical' || type == 'height')\r
-    return element.offsetHeight;\r
-  else\r
-    return element.offsetWidth;\r
-}
\ No newline at end of file
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/effects.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/effects.js
deleted file mode 100644 (file)
index 4b7ed93..0000000
+++ /dev/null
@@ -1,977 +0,0 @@
-// script.aculo.us effects.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006\r
-\r
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)\r
-// Contributors:\r
-//  Justin Palmer (http://encytemedia.com/)\r
-//  Mark Pilgrim (http://diveintomark.org/)\r
-//  Martin Bialasinki\r
-// \r
-// See scriptaculous.js for full license.  \r
-\r
-// converts rgb() and #xxx to #xxxxxx format,  \r
-// returns self (or first argument) if not convertable  \r
-String.prototype.parseColor = function() {  \r
-  var color = '#';  \r
-  if(this.slice(0,4) == 'rgb(') {  \r
-    var cols = this.slice(4,this.length-1).split(',');  \r
-    var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3);  \r
-  } else {  \r
-    if(this.slice(0,1) == '#') {  \r
-      if(this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase();  \r
-      if(this.length==7) color = this.toLowerCase();  \r
-    }  \r
-  }  \r
-  return(color.length==7 ? color : (arguments[0] || this));  \r
-}\r
-\r
-/*--------------------------------------------------------------------------*/\r
-\r
-Element.collectTextNodes = function(element) {  \r
-  return $A($(element).childNodes).collect( function(node) {\r
-    return (node.nodeType==3 ? node.nodeValue : \r
-      (node.hasChildNodes() ? Element.collectTextNodes(node) : ''));\r
-  }).flatten().join('');\r
-}\r
-\r
-Element.collectTextNodesIgnoreClass = function(element, className) {  \r
-  return $A($(element).childNodes).collect( function(node) {\r
-    return (node.nodeType==3 ? node.nodeValue : \r
-      ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? \r
-        Element.collectTextNodesIgnoreClass(node, className) : ''));\r
-  }).flatten().join('');\r
-}\r
-\r
-Element.setContentZoom = function(element, percent) {\r
-  element = $(element);  \r
-  Element.setStyle(element, {fontSize: (percent/100) + 'em'});   \r
-  if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0);\r
-}\r
-\r
-Element.getOpacity = function(element){  \r
-  var opacity;\r
-  if (opacity = Element.getStyle(element, 'opacity'))  \r
-    return parseFloat(opacity);  \r
-  if (opacity = (Element.getStyle(element, 'filter') || '').match(/alpha\(opacity=(.*)\)/))  \r
-    if(opacity[1]) return parseFloat(opacity[1]) / 100;  \r
-  return 1.0;  \r
-}\r
-\r
-Element.setOpacity = function(element, value){  \r
-  element= $(element);  \r
-  if (value == 1){\r
-    Element.setStyle(element, { opacity: \r
-      (/Gecko/.test(navigator.userAgent) && !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? \r
-      0.999999 : 1.0 });\r
-    if(/MSIE/.test(navigator.userAgent) && !window.opera)  \r
-      Element.setStyle(element, {filter: Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'')});  \r
-  } else {  \r
-    if(value < 0.00001) value = 0;  \r
-    Element.setStyle(element, {opacity: value});\r
-    if(/MSIE/.test(navigator.userAgent) && !window.opera)  \r
-     Element.setStyle(element, \r
-       { filter: Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'') +\r
-                 'alpha(opacity='+value*100+')' });  \r
-  }\r
-}  \r
\r
-Element.getInlineOpacity = function(element){  \r
-  return $(element).style.opacity || '';\r
-}  \r
-\r
-Element.childrenWithClassName = function(element, className, findFirst) {\r
-  var classNameRegExp = new RegExp("(^|\\s)" + className + "(\\s|$)");\r
-  var results = $A($(element).getElementsByTagName('*'))[findFirst ? 'detect' : 'select']( function(c) { \r
-    return (c.className && c.className.match(classNameRegExp));\r
-  });\r
-  if(!results) results = [];\r
-  return results;\r
-}\r
-\r
-Element.forceRerendering = function(element) {\r
-  try {\r
-    element = $(element);\r
-    var n = document.createTextNode(' ');\r
-    element.appendChild(n);\r
-    element.removeChild(n);\r
-  } catch(e) { }\r
-};\r
-\r
-/*--------------------------------------------------------------------------*/\r
-\r
-Array.prototype.call = function() {\r
-  var args = arguments;\r
-  this.each(function(f){ f.apply(this, args) });\r
-}\r
-\r
-/*--------------------------------------------------------------------------*/\r
-\r
-var Effect = {\r
-  _elementDoesNotExistError: {\r
-    name: 'ElementDoesNotExistError',\r
-    message: 'The specified DOM element does not exist, but is required for this effect to operate'\r
-  },\r
-  tagifyText: function(element) {\r
-    if(typeof Builder == 'undefined')\r
-      throw("Effect.tagifyText requires including script.aculo.us' builder.js library");\r
-      \r
-    var tagifyStyle = 'position:relative';\r
-    if(/MSIE/.test(navigator.userAgent) && !window.opera) tagifyStyle += ';zoom:1';\r
-    element = $(element);\r
-    $A(element.childNodes).each( function(child) {\r
-      if(child.nodeType==3) {\r
-        child.nodeValue.toArray().each( function(character) {\r
-          element.insertBefore(\r
-            Builder.node('span',{style: tagifyStyle},\r
-              character == ' ' ? String.fromCharCode(160) : character), \r
-              child);\r
-        });\r
-        Element.remove(child);\r
-      }\r
-    });\r
-  },\r
-  multiple: function(element, effect) {\r
-    var elements;\r
-    if(((typeof element == 'object') || \r
-        (typeof element == 'function')) && \r
-       (element.length))\r
-      elements = element;\r
-    else\r
-      elements = $(element).childNodes;\r
-      \r
-    var options = Object.extend({\r
-      speed: 0.1,\r
-      delay: 0.0\r
-    }, arguments[2] || {});\r
-    var masterDelay = options.delay;\r
-\r
-    $A(elements).each( function(element, index) {\r
-      new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay }));\r
-    });\r
-  },\r
-  PAIRS: {\r
-    'slide':  ['SlideDown','SlideUp'],\r
-    'blind':  ['BlindDown','BlindUp'],\r
-    'appear': ['Appear','Fade']\r
-  },\r
-  toggle: function(element, effect) {\r
-    element = $(element);\r
-    effect = (effect || 'appear').toLowerCase();\r
-    var options = Object.extend({\r
-      queue: { position:'end', scope:(element.id || 'global'), limit: 1 }\r
-    }, arguments[2] || {});\r
-    Effect[element.visible() ? \r
-      Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options);\r
-  }\r
-};\r
-\r
-var Effect2 = Effect; // deprecated\r
-\r
-/* ------------- transitions ------------- */\r
-\r
-Effect.Transitions = {}\r
-\r
-Effect.Transitions.linear = Prototype.K;\r
-\r
-Effect.Transitions.sinoidal = function(pos) {\r
-  return (-Math.cos(pos*Math.PI)/2) + 0.5;\r
-}\r
-Effect.Transitions.reverse  = function(pos) {\r
-  return 1-pos;\r
-}\r
-Effect.Transitions.flicker = function(pos) {\r
-  return ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4;\r
-}\r
-Effect.Transitions.wobble = function(pos) {\r
-  return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5;\r
-}\r
-Effect.Transitions.pulse = function(pos) {\r
-  return (Math.floor(pos*10) % 2 == 0 ? \r
-    (pos*10-Math.floor(pos*10)) : 1-(pos*10-Math.floor(pos*10)));\r
-}\r
-Effect.Transitions.none = function(pos) {\r
-  return 0;\r
-}\r
-Effect.Transitions.full = function(pos) {\r
-  return 1;\r
-}\r
-\r
-/* ------------- core effects ------------- */\r
-\r
-Effect.ScopedQueue = Class.create();\r
-Object.extend(Object.extend(Effect.ScopedQueue.prototype, Enumerable), {\r
-  initialize: function() {\r
-    this.effects  = [];\r
-    this.interval = null;\r
-  },\r
-  _each: function(iterator) {\r
-    this.effects._each(iterator);\r
-  },\r
-  add: function(effect) {\r
-    var timestamp = new Date().getTime();\r
-    \r
-    var position = (typeof effect.options.queue == 'string') ? \r
-      effect.options.queue : effect.options.queue.position;\r
-    \r
-    switch(position) {\r
-      case 'front':\r
-        // move unstarted effects after this effect  \r
-        this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) {\r
-            e.startOn  += effect.finishOn;\r
-            e.finishOn += effect.finishOn;\r
-          });\r
-        break;\r
-      case 'end':\r
-        // start effect after last queued effect has finished\r
-        timestamp = this.effects.pluck('finishOn').max() || timestamp;\r
-        break;\r
-    }\r
-    \r
-    effect.startOn  += timestamp;\r
-    effect.finishOn += timestamp;\r
-\r
-    if(!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit))\r
-      this.effects.push(effect);\r
-    \r
-    if(!this.interval) \r
-      this.interval = setInterval(this.loop.bind(this), 40);\r
-  },\r
-  remove: function(effect) {\r
-    this.effects = this.effects.reject(function(e) { return e==effect });\r
-    if(this.effects.length == 0) {\r
-      clearInterval(this.interval);\r
-      this.interval = null;\r
-    }\r
-  },\r
-  loop: function() {\r
-    var timePos = new Date().getTime();\r
-    this.effects.invoke('loop', timePos);\r
-  }\r
-});\r
-\r
-Effect.Queues = {\r
-  instances: $H(),\r
-  get: function(queueName) {\r
-    if(typeof queueName != 'string') return queueName;\r
-    \r
-    if(!this.instances[queueName])\r
-      this.instances[queueName] = new Effect.ScopedQueue();\r
-      \r
-    return this.instances[queueName];\r
-  }\r
-}\r
-Effect.Queue = Effect.Queues.get('global');\r
-\r
-Effect.DefaultOptions = {\r
-  transition: Effect.Transitions.sinoidal,\r
-  duration:   1.0,   // seconds\r
-  fps:        25.0,  // max. 25fps due to Effect.Queue implementation\r
-  sync:       false, // true for combining\r
-  from:       0.0,\r
-  to:         1.0,\r
-  delay:      0.0,\r
-  queue:      'parallel'\r
-}\r
-\r
-Effect.Base = function() {};\r
-Effect.Base.prototype = {\r
-  position: null,\r
-  start: function(options) {\r
-    this.options      = Object.extend(Object.extend({},Effect.DefaultOptions), options || {});\r
-    this.currentFrame = 0;\r
-    this.state        = 'idle';\r
-    this.startOn      = this.options.delay*1000;\r
-    this.finishOn     = this.startOn + (this.options.duration*1000);\r
-    this.event('beforeStart');\r
-    if(!this.options.sync)\r
-      Effect.Queues.get(typeof this.options.queue == 'string' ? \r
-        'global' : this.options.queue.scope).add(this);\r
-  },\r
-  loop: function(timePos) {\r
-    if(timePos >= this.startOn) {\r
-      if(timePos >= this.finishOn) {\r
-        this.render(1.0);\r
-        this.cancel();\r
-        this.event('beforeFinish');\r
-        if(this.finish) this.finish(); \r
-        this.event('afterFinish');\r
-        return;  \r
-      }\r
-      var pos   = (timePos - this.startOn) / (this.finishOn - this.startOn);\r
-      var frame = Math.round(pos * this.options.fps * this.options.duration);\r
-      if(frame > this.currentFrame) {\r
-        this.render(pos);\r
-        this.currentFrame = frame;\r
-      }\r
-    }\r
-  },\r
-  render: function(pos) {\r
-    if(this.state == 'idle') {\r
-      this.state = 'running';\r
-      this.event('beforeSetup');\r
-      if(this.setup) this.setup();\r
-      this.event('afterSetup');\r
-    }\r
-    if(this.state == 'running') {\r
-      if(this.options.transition) pos = this.options.transition(pos);\r
-      pos *= (this.options.to-this.options.from);\r
-      pos += this.options.from;\r
-      this.position = pos;\r
-      this.event('beforeUpdate');\r
-      if(this.update) this.update(pos);\r
-      this.event('afterUpdate');\r
-    }\r
-  },\r
-  cancel: function() {\r
-    if(!this.options.sync)\r
-      Effect.Queues.get(typeof this.options.queue == 'string' ? \r
-        'global' : this.options.queue.scope).remove(this);\r
-    this.state = 'finished';\r
-  },\r
-  event: function(eventName) {\r
-    if(this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this);\r
-    if(this.options[eventName]) this.options[eventName](this);\r
-  },\r
-  inspect: function() {\r
-    return '#<Effect:' + $H(this).inspect() + ',options:' + $H(this.options).inspect() + '>';\r
-  }\r
-}\r
-\r
-Effect.Parallel = Class.create();\r
-Object.extend(Object.extend(Effect.Parallel.prototype, Effect.Base.prototype), {\r
-  initialize: function(effects) {\r
-    this.effects = effects || [];\r
-    this.start(arguments[1]);\r
-  },\r
-  update: function(position) {\r
-    this.effects.invoke('render', position);\r
-  },\r
-  finish: function(position) {\r
-    this.effects.each( function(effect) {\r
-      effect.render(1.0);\r
-      effect.cancel();\r
-      effect.event('beforeFinish');\r
-      if(effect.finish) effect.finish(position);\r
-      effect.event('afterFinish');\r
-    });\r
-  }\r
-});\r
-\r
-Effect.Opacity = Class.create();\r
-Object.extend(Object.extend(Effect.Opacity.prototype, Effect.Base.prototype), {\r
-  initialize: function(element) {\r
-    this.element = $(element);\r
-    if(!this.element) throw(Effect._elementDoesNotExistError);\r
-    // make this work on IE on elements without 'layout'\r
-    if(/MSIE/.test(navigator.userAgent) && !window.opera && (!this.element.currentStyle.hasLayout))\r
-      this.element.setStyle({zoom: 1});\r
-    var options = Object.extend({\r
-      from: this.element.getOpacity() || 0.0,\r
-      to:   1.0\r
-    }, arguments[1] || {});\r
-    this.start(options);\r
-  },\r
-  update: function(position) {\r
-    this.element.setOpacity(position);\r
-  }\r
-});\r
-\r
-Effect.Move = Class.create();\r
-Object.extend(Object.extend(Effect.Move.prototype, Effect.Base.prototype), {\r
-  initialize: function(element) {\r
-    this.element = $(element);\r
-    if(!this.element) throw(Effect._elementDoesNotExistError);\r
-    var options = Object.extend({\r
-      x:    0,\r
-      y:    0,\r
-      mode: 'relative'\r
-    }, arguments[1] || {});\r
-    this.start(options);\r
-  },\r
-  setup: function() {\r
-    // Bug in Opera: Opera returns the "real" position of a static element or\r
-    // relative element that does not have top/left explicitly set.\r
-    // ==> Always set top and left for position relative elements in your stylesheets \r
-    // (to 0 if you do not need them) \r
-    this.element.makePositioned();\r
-    this.originalLeft = parseFloat(this.element.getStyle('left') || '0');\r
-    this.originalTop  = parseFloat(this.element.getStyle('top')  || '0');\r
-    if(this.options.mode == 'absolute') {\r
-      // absolute movement, so we need to calc deltaX and deltaY\r
-      this.options.x = this.options.x - this.originalLeft;\r
-      this.options.y = this.options.y - this.originalTop;\r
-    }\r
-  },\r
-  update: function(position) {\r
-    this.element.setStyle({\r
-      left: Math.round(this.options.x  * position + this.originalLeft) + 'px',\r
-      top:  Math.round(this.options.y  * position + this.originalTop)  + 'px'\r
-    });\r
-  }\r
-});\r
-\r
-// for backwards compatibility\r
-Effect.MoveBy = function(element, toTop, toLeft) {\r
-  return new Effect.Move(element, \r
-    Object.extend({ x: toLeft, y: toTop }, arguments[3] || {}));\r
-};\r
-\r
-Effect.Scale = Class.create();\r
-Object.extend(Object.extend(Effect.Scale.prototype, Effect.Base.prototype), {\r
-  initialize: function(element, percent) {\r
-    this.element = $(element);\r
-    if(!this.element) throw(Effect._elementDoesNotExistError);\r
-    var options = Object.extend({\r
-      scaleX: true,\r
-      scaleY: true,\r
-      scaleContent: true,\r
-      scaleFromCenter: false,\r
-      scaleMode: 'box',        // 'box' or 'contents' or {} with provided values\r
-      scaleFrom: 100.0,\r
-      scaleTo:   percent\r
-    }, arguments[2] || {});\r
-    this.start(options);\r
-  },\r
-  setup: function() {\r
-    this.restoreAfterFinish = this.options.restoreAfterFinish || false;\r
-    this.elementPositioning = this.element.getStyle('position');\r
-    \r
-    this.originalStyle = {};\r
-    ['top','left','width','height','fontSize'].each( function(k) {\r
-      this.originalStyle[k] = this.element.style[k];\r
-    }.bind(this));\r
-      \r
-    this.originalTop  = this.element.offsetTop;\r
-    this.originalLeft = this.element.offsetLeft;\r
-    \r
-    var fontSize = this.element.getStyle('font-size') || '100%';\r
-    ['em','px','%','pt'].each( function(fontSizeType) {\r
-      if(fontSize.indexOf(fontSizeType)>0) {\r
-        this.fontSize     = parseFloat(fontSize);\r
-        this.fontSizeType = fontSizeType;\r
-      }\r
-    }.bind(this));\r
-    \r
-    this.factor = (this.options.scaleTo - this.options.scaleFrom)/100;\r
-    \r
-    this.dims = null;\r
-    if(this.options.scaleMode=='box')\r
-      this.dims = [this.element.offsetHeight, this.element.offsetWidth];\r
-    if(/^content/.test(this.options.scaleMode))\r
-      this.dims = [this.element.scrollHeight, this.element.scrollWidth];\r
-    if(!this.dims)\r
-      this.dims = [this.options.scaleMode.originalHeight,\r
-                   this.options.scaleMode.originalWidth];\r
-  },\r
-  update: function(position) {\r
-    var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position);\r
-    if(this.options.scaleContent && this.fontSize)\r
-      this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType });\r
-    this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale);\r
-  },\r
-  finish: function(position) {\r
-    if (this.restoreAfterFinish) this.element.setStyle(this.originalStyle);\r
-  },\r
-  setDimensions: function(height, width) {\r
-    var d = {};\r
-    if(this.options.scaleX) d.width = Math.round(width) + 'px';\r
-    if(this.options.scaleY) d.height = Math.round(height) + 'px';\r
-    if(this.options.scaleFromCenter) {\r
-      var topd  = (height - this.dims[0])/2;\r
-      var leftd = (width  - this.dims[1])/2;\r
-      if(this.elementPositioning == 'absolute') {\r
-        if(this.options.scaleY) d.top = this.originalTop-topd + 'px';\r
-        if(this.options.scaleX) d.left = this.originalLeft-leftd + 'px';\r
-      } else {\r
-        if(this.options.scaleY) d.top = -topd + 'px';\r
-        if(this.options.scaleX) d.left = -leftd + 'px';\r
-      }\r
-    }\r
-    this.element.setStyle(d);\r
-  }\r
-});\r
-\r
-Effect.Highlight = Class.create();\r
-Object.extend(Object.extend(Effect.Highlight.prototype, Effect.Base.prototype), {\r
-  initialize: function(element) {\r
-    this.element = $(element);\r
-    if(!this.element) throw(Effect._elementDoesNotExistError);\r
-    var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || {});\r
-    this.start(options);\r
-  },\r
-  setup: function() {\r
-    // Prevent executing on elements not in the layout flow\r
-    if(this.element.getStyle('display')=='none') { this.cancel(); return; }\r
-    // Disable background image during the effect\r
-    this.oldStyle = {\r
-      backgroundImage: this.element.getStyle('background-image') };\r
-    this.element.setStyle({backgroundImage: 'none'});\r
-    if(!this.options.endcolor)\r
-      this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff');\r
-    if(!this.options.restorecolor)\r
-      this.options.restorecolor = this.element.getStyle('background-color');\r
-    // init color calculations\r
-    this._base  = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));\r
-    this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this));\r
-  },\r
-  update: function(position) {\r
-    this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){\r
-      return m+(Math.round(this._base[i]+(this._delta[i]*position)).toColorPart()); }.bind(this)) });\r
-  },\r
-  finish: function() {\r
-    this.element.setStyle(Object.extend(this.oldStyle, {\r
-      backgroundColor: this.options.restorecolor\r
-    }));\r
-  }\r
-});\r
-\r
-Effect.ScrollTo = Class.create();\r
-Object.extend(Object.extend(Effect.ScrollTo.prototype, Effect.Base.prototype), {\r
-  initialize: function(element) {\r
-    this.element = $(element);\r
-    this.start(arguments[1] || {});\r
-  },\r
-  setup: function() {\r
-    Position.prepare();\r
-    var offsets = Position.cumulativeOffset(this.element);\r
-    if(this.options.offset) offsets[1] += this.options.offset;\r
-    var max = window.innerHeight ? \r
-      window.height - window.innerHeight :\r
-      document.body.scrollHeight - \r
-        (document.documentElement.clientHeight ? \r
-          document.documentElement.clientHeight : document.body.clientHeight);\r
-    this.scrollStart = Position.deltaY;\r
-    this.delta = (offsets[1] > max ? max : offsets[1]) - this.scrollStart;\r
-  },\r
-  update: function(position) {\r
-    Position.prepare();\r
-    window.scrollTo(Position.deltaX, \r
-      this.scrollStart + (position*this.delta));\r
-  }\r
-});\r
-\r
-/* ------------- combination effects ------------- */\r
-\r
-Effect.Fade = function(element) {\r
-  element = $(element);\r
-  var oldOpacity = element.getInlineOpacity();\r
-  var options = Object.extend({\r
-  from: element.getOpacity() || 1.0,\r
-  to:   0.0,\r
-  afterFinishInternal: function(effect) { \r
-    if(effect.options.to!=0) return;\r
-    effect.element.hide();\r
-    effect.element.setStyle({opacity: oldOpacity}); \r
-  }}, arguments[1] || {});\r
-  return new Effect.Opacity(element,options);\r
-}\r
-\r
-Effect.Appear = function(element) {\r
-  element = $(element);\r
-  var options = Object.extend({\r
-  from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0),\r
-  to:   1.0,\r
-  // force Safari to render floated elements properly\r
-  afterFinishInternal: function(effect) {\r
-    effect.element.forceRerendering();\r
-  },\r
-  beforeSetup: function(effect) {\r
-    effect.element.setOpacity(effect.options.from);\r
-    effect.element.show(); \r
-  }}, arguments[1] || {});\r
-  return new Effect.Opacity(element,options);\r
-}\r
-\r
-Effect.Puff = function(element) {\r
-  element = $(element);\r
-  var oldStyle = { \r
-    opacity: element.getInlineOpacity(), \r
-    position: element.getStyle('position'),\r
-    top:  element.style.top,\r
-    left: element.style.left,\r
-    width: element.style.width,\r
-    height: element.style.height\r
-  };\r
-  return new Effect.Parallel(\r
-   [ new Effect.Scale(element, 200, \r
-      { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), \r
-     new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], \r
-     Object.extend({ duration: 1.0, \r
-      beforeSetupInternal: function(effect) {\r
-        Position.absolutize(effect.effects[0].element)\r
-      },\r
-      afterFinishInternal: function(effect) {\r
-         effect.effects[0].element.hide();\r
-         effect.effects[0].element.setStyle(oldStyle); }\r
-     }, arguments[1] || {})\r
-   );\r
-}\r
-\r
-Effect.BlindUp = function(element) {\r
-  element = $(element);\r
-  element.makeClipping();\r
-  return new Effect.Scale(element, 0,\r
-    Object.extend({ scaleContent: false, \r
-      scaleX: false, \r
-      restoreAfterFinish: true,\r
-      afterFinishInternal: function(effect) {\r
-        effect.element.hide();\r
-        effect.element.undoClipping();\r
-      } \r
-    }, arguments[1] || {})\r
-  );\r
-}\r
-\r
-Effect.BlindDown = function(element) {\r
-  element = $(element);\r
-  var elementDimensions = element.getDimensions();\r
-  return new Effect.Scale(element, 100, Object.extend({ \r
-    scaleContent: false, \r
-    scaleX: false,\r
-    scaleFrom: 0,\r
-    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},\r
-    restoreAfterFinish: true,\r
-    afterSetup: function(effect) {\r
-      effect.element.makeClipping();\r
-      effect.element.setStyle({height: '0px'});\r
-      effect.element.show(); \r
-    },  \r
-    afterFinishInternal: function(effect) {\r
-      effect.element.undoClipping();\r
-    }\r
-  }, arguments[1] || {}));\r
-}\r
-\r
-Effect.SwitchOff = function(element) {\r
-  element = $(element);\r
-  var oldOpacity = element.getInlineOpacity();\r
-  return new Effect.Appear(element, Object.extend({\r
-    duration: 0.4,\r
-    from: 0,\r
-    transition: Effect.Transitions.flicker,\r
-    afterFinishInternal: function(effect) {\r
-      new Effect.Scale(effect.element, 1, { \r
-        duration: 0.3, scaleFromCenter: true,\r
-        scaleX: false, scaleContent: false, restoreAfterFinish: true,\r
-        beforeSetup: function(effect) { \r
-          effect.element.makePositioned();\r
-          effect.element.makeClipping();\r
-        },\r
-        afterFinishInternal: function(effect) {\r
-          effect.element.hide();\r
-          effect.element.undoClipping();\r
-          effect.element.undoPositioned();\r
-          effect.element.setStyle({opacity: oldOpacity});\r
-        }\r
-      })\r
-    }\r
-  }, arguments[1] || {}));\r
-}\r
-\r
-Effect.DropOut = function(element) {\r
-  element = $(element);\r
-  var oldStyle = {\r
-    top: element.getStyle('top'),\r
-    left: element.getStyle('left'),\r
-    opacity: element.getInlineOpacity() };\r
-  return new Effect.Parallel(\r
-    [ new Effect.Move(element, {x: 0, y: 100, sync: true }), \r
-      new Effect.Opacity(element, { sync: true, to: 0.0 }) ],\r
-    Object.extend(\r
-      { duration: 0.5,\r
-        beforeSetup: function(effect) {\r
-          effect.effects[0].element.makePositioned(); \r
-        },\r
-        afterFinishInternal: function(effect) {\r
-          effect.effects[0].element.hide();\r
-          effect.effects[0].element.undoPositioned();\r
-          effect.effects[0].element.setStyle(oldStyle);\r
-        } \r
-      }, arguments[1] || {}));\r
-}\r
-\r
-Effect.Shake = function(element) {\r
-  element = $(element);\r
-  var oldStyle = {\r
-    top: element.getStyle('top'),\r
-    left: element.getStyle('left') };\r
-    return new Effect.Move(element, \r
-      { x:  20, y: 0, duration: 0.05, afterFinishInternal: function(effect) {\r
-    new Effect.Move(effect.element,\r
-      { x: -40, y: 0, duration: 0.1,  afterFinishInternal: function(effect) {\r
-    new Effect.Move(effect.element,\r
-      { x:  40, y: 0, duration: 0.1,  afterFinishInternal: function(effect) {\r
-    new Effect.Move(effect.element,\r
-      { x: -40, y: 0, duration: 0.1,  afterFinishInternal: function(effect) {\r
-    new Effect.Move(effect.element,\r
-      { x:  40, y: 0, duration: 0.1,  afterFinishInternal: function(effect) {\r
-    new Effect.Move(effect.element,\r
-      { x: -20, y: 0, duration: 0.05, afterFinishInternal: function(effect) {\r
-        effect.element.undoPositioned();\r
-        effect.element.setStyle(oldStyle);\r
-  }}) }}) }}) }}) }}) }});\r
-}\r
-\r
-Effect.SlideDown = function(element) {\r
-  element = $(element);\r
-  element.cleanWhitespace();\r
-  // SlideDown need to have the content of the element wrapped in a container element with fixed height!\r
-  var oldInnerBottom = $(element.firstChild).getStyle('bottom');\r
-  var elementDimensions = element.getDimensions();\r
-  return new Effect.Scale(element, 100, Object.extend({ \r
-    scaleContent: false, \r
-    scaleX: false, \r
-    scaleFrom: window.opera ? 0 : 1,\r
-    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},\r
-    restoreAfterFinish: true,\r
-    afterSetup: function(effect) {\r
-      effect.element.makePositioned();\r
-      effect.element.firstChild.makePositioned();\r
-      if(window.opera) effect.element.setStyle({top: ''});\r
-      effect.element.makeClipping();\r
-      effect.element.setStyle({height: '0px'});\r
-      effect.element.show(); },\r
-    afterUpdateInternal: function(effect) {\r
-      effect.element.firstChild.setStyle({bottom:\r
-        (effect.dims[0] - effect.element.clientHeight) + 'px' }); \r
-    },\r
-    afterFinishInternal: function(effect) {\r
-      effect.element.undoClipping(); \r
-      // IE will crash if child is undoPositioned first\r
-      if(/MSIE/.test(navigator.userAgent) && !window.opera){\r
-        effect.element.undoPositioned();\r
-        effect.element.firstChild.undoPositioned();\r
-      }else{\r
-        effect.element.firstChild.undoPositioned();\r
-        effect.element.undoPositioned();\r
-      }\r
-      effect.element.firstChild.setStyle({bottom: oldInnerBottom}); }\r
-    }, arguments[1] || {})\r
-  );\r
-}\r
-\r
-Effect.SlideUp = function(element) {\r
-  element = $(element);\r
-  element.cleanWhitespace();\r
-  var oldInnerBottom = $(element.firstChild).getStyle('bottom');\r
-  return new Effect.Scale(element, window.opera ? 0 : 1,\r
-   Object.extend({ scaleContent: false, \r
-    scaleX: false, \r
-    scaleMode: 'box',\r
-    scaleFrom: 100,\r
-    restoreAfterFinish: true,\r
-    beforeStartInternal: function(effect) {\r
-      effect.element.makePositioned();\r
-      effect.element.firstChild.makePositioned();\r
-      if(window.opera) effect.element.setStyle({top: ''});\r
-      effect.element.makeClipping();\r
-      effect.element.show(); },  \r
-    afterUpdateInternal: function(effect) {\r
-      effect.element.firstChild.setStyle({bottom:\r
-        (effect.dims[0] - effect.element.clientHeight) + 'px' }); },\r
-    afterFinishInternal: function(effect) {\r
-      effect.element.hide();\r
-      effect.element.undoClipping();\r
-      effect.element.firstChild.undoPositioned();\r
-      effect.element.undoPositioned();\r
-      effect.element.setStyle({bottom: oldInnerBottom}); }\r
-   }, arguments[1] || {})\r
-  );\r
-}\r
-\r
-// Bug in opera makes the TD containing this element expand for a instance after finish \r
-Effect.Squish = function(element) {\r
-  return new Effect.Scale(element, window.opera ? 1 : 0, \r
-    { restoreAfterFinish: true,\r
-      beforeSetup: function(effect) {\r
-        effect.element.makeClipping(effect.element); },  \r
-      afterFinishInternal: function(effect) {\r
-        effect.element.hide(effect.element); \r
-        effect.element.undoClipping(effect.element); }\r
-  });\r
-}\r
-\r
-Effect.Grow = function(element) {\r
-  element = $(element);\r
-  var options = Object.extend({\r
-    direction: 'center',\r
-    moveTransition: Effect.Transitions.sinoidal,\r
-    scaleTransition: Effect.Transitions.sinoidal,\r
-    opacityTransition: Effect.Transitions.full\r
-  }, arguments[1] || {});\r
-  var oldStyle = {\r
-    top: element.style.top,\r
-    left: element.style.left,\r
-    height: element.style.height,\r
-    width: element.style.width,\r
-    opacity: element.getInlineOpacity() };\r
-\r
-  var dims = element.getDimensions();    \r
-  var initialMoveX, initialMoveY;\r
-  var moveX, moveY;\r
-  \r
-  switch (options.direction) {\r
-    case 'top-left':\r
-      initialMoveX = initialMoveY = moveX = moveY = 0; \r
-      break;\r
-    case 'top-right':\r
-      initialMoveX = dims.width;\r
-      initialMoveY = moveY = 0;\r
-      moveX = -dims.width;\r
-      break;\r
-    case 'bottom-left':\r
-      initialMoveX = moveX = 0;\r
-      initialMoveY = dims.height;\r
-      moveY = -dims.height;\r
-      break;\r
-    case 'bottom-right':\r
-      initialMoveX = dims.width;\r
-      initialMoveY = dims.height;\r
-      moveX = -dims.width;\r
-      moveY = -dims.height;\r
-      break;\r
-    case 'center':\r
-      initialMoveX = dims.width / 2;\r
-      initialMoveY = dims.height / 2;\r
-      moveX = -dims.width / 2;\r
-      moveY = -dims.height / 2;\r
-      break;\r
-  }\r
-  \r
-  return new Effect.Move(element, {\r
-    x: initialMoveX,\r
-    y: initialMoveY,\r
-    duration: 0.01, \r
-    beforeSetup: function(effect) {\r
-      effect.element.hide();\r
-      effect.element.makeClipping();\r
-      effect.element.makePositioned();\r
-    },\r
-    afterFinishInternal: function(effect) {\r
-      new Effect.Parallel(\r
-        [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }),\r
-          new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }),\r
-          new Effect.Scale(effect.element, 100, {\r
-            scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, \r
-            sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true})\r
-        ], Object.extend({\r
-             beforeSetup: function(effect) {\r
-               effect.effects[0].element.setStyle({height: '0px'});\r
-               effect.effects[0].element.show(); \r
-             },\r
-             afterFinishInternal: function(effect) {\r
-               effect.effects[0].element.undoClipping();\r
-               effect.effects[0].element.undoPositioned();\r
-               effect.effects[0].element.setStyle(oldStyle); \r
-             }\r
-           }, options)\r
-      )\r
-    }\r
-  });\r
-}\r
-\r
-Effect.Shrink = function(element) {\r
-  element = $(element);\r
-  var options = Object.extend({\r
-    direction: 'center',\r
-    moveTransition: Effect.Transitions.sinoidal,\r
-    scaleTransition: Effect.Transitions.sinoidal,\r
-    opacityTransition: Effect.Transitions.none\r
-  }, arguments[1] || {});\r
-  var oldStyle = {\r
-    top: element.style.top,\r
-    left: element.style.left,\r
-    height: element.style.height,\r
-    width: element.style.width,\r
-    opacity: element.getInlineOpacity() };\r
-\r
-  var dims = element.getDimensions();\r
-  var moveX, moveY;\r
-  \r
-  switch (options.direction) {\r
-    case 'top-left':\r
-      moveX = moveY = 0;\r
-      break;\r
-    case 'top-right':\r
-      moveX = dims.width;\r
-      moveY = 0;\r
-      break;\r
-    case 'bottom-left':\r
-      moveX = 0;\r
-      moveY = dims.height;\r
-      break;\r
-    case 'bottom-right':\r
-      moveX = dims.width;\r
-      moveY = dims.height;\r
-      break;\r
-    case 'center':  \r
-      moveX = dims.width / 2;\r
-      moveY = dims.height / 2;\r
-      break;\r
-  }\r
-  \r
-  return new Effect.Parallel(\r
-    [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }),\r
-      new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}),\r
-      new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition })\r
-    ], Object.extend({            \r
-         beforeStartInternal: function(effect) {\r
-           effect.effects[0].element.makePositioned();\r
-           effect.effects[0].element.makeClipping(); },\r
-         afterFinishInternal: function(effect) {\r
-           effect.effects[0].element.hide();\r
-           effect.effects[0].element.undoClipping();\r
-           effect.effects[0].element.undoPositioned();\r
-           effect.effects[0].element.setStyle(oldStyle); }\r
-       }, options)\r
-  );\r
-}\r
-\r
-Effect.Pulsate = function(element) {\r
-  element = $(element);\r
-  var options    = arguments[1] || {};\r
-  var oldOpacity = element.getInlineOpacity();\r
-  var transition = options.transition || Effect.Transitions.sinoidal;\r
-  var reverser   = function(pos){ return transition(1-Effect.Transitions.pulse(pos)) };\r
-  reverser.bind(transition);\r
-  return new Effect.Opacity(element, \r
-    Object.extend(Object.extend({  duration: 3.0, from: 0,\r
-      afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); }\r
-    }, options), {transition: reverser}));\r
-}\r
-\r
-Effect.Fold = function(element) {\r
-  element = $(element);\r
-  var oldStyle = {\r
-    top: element.style.top,\r
-    left: element.style.left,\r
-    width: element.style.width,\r
-    height: element.style.height };\r
-  Element.makeClipping(element);\r
-  return new Effect.Scale(element, 5, Object.extend({   \r
-    scaleContent: false,\r
-    scaleX: false,\r
-    afterFinishInternal: function(effect) {\r
-    new Effect.Scale(element, 1, { \r
-      scaleContent: false, \r
-      scaleY: false,\r
-      afterFinishInternal: function(effect) {\r
-        effect.element.hide();\r
-        effect.element.undoClipping(); \r
-        effect.element.setStyle(oldStyle);\r
-      } });\r
-  }}, arguments[1] || {}));\r
-};\r
-\r
-['setOpacity','getOpacity','getInlineOpacity','forceRerendering','setContentZoom',\r
- 'collectTextNodes','collectTextNodesIgnoreClass','childrenWithClassName'].each( \r
-  function(f) { Element.Methods[f] = Element[f]; }\r
-);\r
-\r
-Element.Methods.visualEffect = function(element, effect, options) {\r
-  s = effect.gsub(/_/, '-').camelize();\r
-  effect_class = s.charAt(0).toUpperCase() + s.substring(1);\r
-  new Effect[effect_class](element, options);\r
-  return $(element);\r
-};\r
-\r
-Element.addMethods();
\ No newline at end of file
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/json.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/json.js
deleted file mode 100644 (file)
index 89ba142..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-/*\r
-Copyright (c) 2005 JSON.org\r
-\r
-Permission is hereby granted, free of charge, to any person obtaining a copy\r
-of this software and associated documentation files (the "Software"), to deal\r
-in the Software without restriction, including without limitation the rights\r
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
-copies of the Software, and to permit persons to whom the Software is\r
-furnished to do so, subject to the following conditions:\r
-\r
-The Software shall be used for Good, not Evil.\r
-\r
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
-SOFTWARE.\r
-*/\r
-\r
-/*\r
-    The global object JSON contains two methods.\r
-\r
-    JSON.stringify(value) takes a JavaScript value and produces a JSON text.\r
-    The value must not be cyclical.\r
-\r
-    JSON.parse(text) takes a JSON text and produces a JavaScript value. It will\r
-    return false if there is an error.\r
-*/\r
-var JSON = function () {\r
-    var m = {\r
-            '\b': '\\b',\r
-            '\t': '\\t',\r
-            '\n': '\\n',\r
-            '\f': '\\f',\r
-            '\r': '\\r',\r
-            '"' : '\\"',\r
-            '\\': '\\\\'\r
-        },\r
-        s = {\r
-            'boolean': function (x) {\r
-                return String(x);\r
-            },\r
-            number: function (x) {\r
-                return isFinite(x) ? String(x) : 'null';\r
-            },\r
-            string: function (x) {\r
-                if (/["\\\x00-\x1f]/.test(x)) {\r
-                    x = x.replace(/([\x00-\x1f\\"])/g, function(a, b) {\r
-                        var c = m[b];\r
-                        if (c) {\r
-                            return c;\r
-                        }\r
-                        c = b.charCodeAt();\r
-                        return '\\u00' +\r
-                            Math.floor(c / 16).toString(16) +\r
-                            (c % 16).toString(16);\r
-                    });\r
-                }\r
-                return '"' + x + '"';\r
-            },\r
-            object: function (x) {\r
-                if (x) {\r
-                    var a = [], b, f, i, l, v;\r
-                    if (x instanceof Array) {\r
-                        a[0] = '[';\r
-                        l = x.length;\r
-                        for (i = 0; i < l; i += 1) {\r
-                            v = x[i];\r
-                            f = s[typeof v];\r
-                            if (f) {\r
-                                v = f(v);\r
-                                if (typeof v == 'string') {\r
-                                    if (b) {\r
-                                        a[a.length] = ',';\r
-                                    }\r
-                                    a[a.length] = v;\r
-                                    b = true;\r
-                                }\r
-                            }\r
-                        }\r
-                        a[a.length] = ']';\r
-                    } else if (x instanceof Object) {\r
-                        a[0] = '{';\r
-                        for (i in x) {\r
-                            v = x[i];\r
-                            f = s[typeof v];\r
-                            if (f) {\r
-                                v = f(v);\r
-                                if (typeof v == 'string') {\r
-                                    if (b) {\r
-                                        a[a.length] = ',';\r
-                                    }\r
-                                    a.push(s.string(i), ':', v);\r
-                                    b = true;\r
-                                }\r
-                            }\r
-                        }\r
-                        a[a.length] = '}';\r
-                    } else {\r
-                        return;\r
-                    }\r
-                    return a.join('');\r
-                }\r
-                return 'null';\r
-            }\r
-        };\r
-    return {\r
-        copyright: '(c)2005 JSON.org',\r
-        license: 'http://www.crockford.com/JSON/license.html',\r
-/*\r
-    Stringify a JavaScript value, producing a JSON text.\r
-*/\r
-        stringify: function (v) {\r
-            var f = s[typeof v];\r
-            if (f) {\r
-                v = f(v);\r
-                if (typeof v == 'string') {\r
-                    return v;\r
-                }\r
-            }\r
-            return null;\r
-        },\r
-/*\r
-    Parse a JSON text, producing a JavaScript value.\r
-    It returns false if there is a syntax error.\r
-*/\r
-        parse: function (text) {\r
-            try {\r
-                return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(\r
-                        text.replace(/"(\\.|[^"\\])*"/g, ''))) &&\r
-                    eval('(' + text + ')');\r
-            } catch (e) {\r
-                return false;\r
-            }\r
-        }\r
-    };\r
-}();
\ No newline at end of file
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/prototype.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/prototype.js
deleted file mode 100644 (file)
index 73f5340..0000000
+++ /dev/null
@@ -1,2241 +0,0 @@
-/*  Prototype JavaScript framework, version 1.5.0_rc1\r
- *  (c) 2005 Sam Stephenson <sam@conio.net>\r
- *\r
- *  Prototype is freely distributable under the terms of an MIT-style license.\r
- *  For details, see the Prototype web site: http://prototype.conio.net/\r
- *\r
-/*--------------------------------------------------------------------------*/\r
-\r
-var Prototype = {\r
-  Version: '1.5.0_rc1',\r
-  ScriptFragment: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',\r
-\r
-  emptyFunction: function() {},\r
-  K: function(x) {return x}\r
-}\r
-\r
-var Class = {\r
-  create: function() {\r
-    return function() {\r
-      this.initialize.apply(this, arguments);\r
-    }\r
-  }\r
-}\r
-\r
-var Abstract = new Object();\r
-\r
-Object.extend = function(destination, source) {\r
-  for (var property in source) {\r
-    destination[property] = source[property];\r
-  }\r
-  return destination;\r
-}\r
-\r
-Object.extend(Object, {\r
-  inspect: function(object) {\r
-    try {\r
-      if (object == undefined) return 'undefined';\r
-      if (object == null) return 'null';\r
-      return object.inspect ? object.inspect() : object.toString();\r
-    } catch (e) {\r
-      if (e instanceof RangeError) return '...';\r
-      throw e;\r
-    }\r
-  },\r
-\r
-  keys: function(object) {\r
-    var keys = [];\r
-    for (var property in object)\r
-      keys.push(property);\r
-    return keys;\r
-  },\r
-\r
-  values: function(object) {\r
-    var values = [];\r
-    for (var property in object)\r
-      values.push(object[property]);\r
-    return values;\r
-  },\r
-\r
-  clone: function(object) {\r
-    return Object.extend({}, object);\r
-  }\r
-});\r
-\r
-Function.prototype.bind = function() {\r
-  var __method = this, args = $A(arguments), object = args.shift();\r
-  return function() {\r
-    return __method.apply(object, args.concat($A(arguments)));\r
-  }\r
-}\r
-\r
-Function.prototype.bindAsEventListener = function(object) {\r
-  var __method = this, args = $A(arguments), object = args.shift();\r
-  return function(event) {\r
-    return __method.apply(object, [( event || window.event)].concat(args).concat($A(arguments)));\r
-  }\r
-}\r
-\r
-Object.extend(Number.prototype, {\r
-  toColorPart: function() {\r
-    var digits = this.toString(16);\r
-    if (this < 16) return '0' + digits;\r
-    return digits;\r
-  },\r
-\r
-  succ: function() {\r
-    return this + 1;\r
-  },\r
-\r
-  times: function(iterator) {\r
-    $R(0, this, true).each(iterator);\r
-    return this;\r
-  }\r
-});\r
-\r
-var Try = {\r
-  these: function() {\r
-    var returnValue;\r
-\r
-    for (var i = 0; i < arguments.length; i++) {\r
-      var lambda = arguments[i];\r
-      try {\r
-        returnValue = lambda();\r
-        break;\r
-      } catch (e) {}\r
-    }\r
-\r
-    return returnValue;\r
-  }\r
-}\r
-\r
-/*--------------------------------------------------------------------------*/\r
-\r
-var PeriodicalExecuter = Class.create();\r
-PeriodicalExecuter.prototype = {\r
-  initialize: function(callback, frequency) {\r
-    this.callback = callback;\r
-    this.frequency = frequency;\r
-    this.currentlyExecuting = false;\r
-\r
-    this.registerCallback();\r
-  },\r
-\r
-  registerCallback: function() {\r
-    this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);\r
-  },\r
-\r
-  stop: function() {\r
-    if (!this.timer) return;\r
-    clearInterval(this.timer);\r
-    this.timer = null;\r
-  },\r
-\r
-  onTimerEvent: function() {\r
-    if (!this.currentlyExecuting) {\r
-      try {\r
-        this.currentlyExecuting = true;\r
-        this.callback(this);\r
-      } finally {\r
-        this.currentlyExecuting = false;\r
-      }\r
-    }\r
-  }\r
-}\r
-Object.extend(String.prototype, {\r
-  gsub: function(pattern, replacement) {\r
-    var result = '', source = this, match;\r
-    replacement = arguments.callee.prepareReplacement(replacement);\r
-\r
-    while (source.length > 0) {\r
-      if (match = source.match(pattern)) {\r
-        result += source.slice(0, match.index);\r
-        result += (replacement(match) || '').toString();\r
-        source  = source.slice(match.index + match[0].length);\r
-      } else {\r
-        result += source, source = '';\r
-      }\r
-    }\r
-    return result;\r
-  },\r
-\r
-  sub: function(pattern, replacement, count) {\r
-    replacement = this.gsub.prepareReplacement(replacement);\r
-    count = count === undefined ? 1 : count;\r
-\r
-    return this.gsub(pattern, function(match) {\r
-      if (--count < 0) return match[0];\r
-      return replacement(match);\r
-    });\r
-  },\r
-\r
-  scan: function(pattern, iterator) {\r
-    this.gsub(pattern, iterator);\r
-    return this;\r
-  },\r
-\r
-  truncate: function(length, truncation) {\r
-    length = length || 30;\r
-    truncation = truncation === undefined ? '...' : truncation;\r
-    return this.length > length ?\r
-      this.slice(0, length - truncation.length) + truncation : this;\r
-  },\r
-\r
-  strip: function() {\r
-    return this.replace(/^\s+/, '').replace(/\s+$/, '');\r
-  },\r
-\r
-  stripTags: function() {\r
-    return this.replace(/<\/?[^>]+>/gi, '');\r
-  },\r
-\r
-  stripScripts: function() {\r
-    return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');\r
-  },\r
-\r
-  extractScripts: function() {\r
-    var matchAll = new RegExp(Prototype.ScriptFragment, 'img');\r
-    var matchOne = new RegExp(Prototype.ScriptFragment, 'im');\r
-    return (this.match(matchAll) || []).map(function(scriptTag) {\r
-      return (scriptTag.match(matchOne) || ['', ''])[1];\r
-    });\r
-  },\r
-\r
-  evalScripts: function() {\r
-    return this.extractScripts().map(function(script) { return eval(script) });\r
-  },\r
-\r
-  escapeHTML: function() {\r
-    var div = document.createElement('div');\r
-    var text = document.createTextNode(this);\r
-    div.appendChild(text);\r
-    return div.innerHTML;\r
-  },\r
-\r
-  unescapeHTML: function() {\r
-    var div = document.createElement('div');\r
-    div.innerHTML = this.stripTags();\r
-    return div.childNodes[0] ? div.childNodes[0].nodeValue : '';\r
-  },\r
-\r
-  toQueryParams: function() {\r
-    var pairs = this.match(/^\??(.*)$/)[1].split('&');\r
-    return pairs.inject({}, function(params, pairString) {\r
-      var pair  = pairString.split('=');\r
-      var value = pair[1] ? decodeURIComponent(pair[1]) : undefined;\r
-      params[decodeURIComponent(pair[0])] = value;\r
-      return params;\r
-    });\r
-  },\r
-\r
-  toArray: function() {\r
-    return this.split('');\r
-  },\r
-\r
-  camelize: function() {\r
-    var oStringList = this.split('-');\r
-    if (oStringList.length == 1) return oStringList[0];\r
-\r
-    var camelizedString = this.indexOf('-') == 0\r
-      ? oStringList[0].charAt(0).toUpperCase() + oStringList[0].substring(1)\r
-      : oStringList[0];\r
-\r
-    for (var i = 1, len = oStringList.length; i < len; i++) {\r
-      var s = oStringList[i];\r
-      camelizedString += s.charAt(0).toUpperCase() + s.substring(1);\r
-    }\r
-\r
-    return camelizedString;\r
-  },\r
-\r
-  inspect: function(useDoubleQuotes) {\r
-    var escapedString = this.replace(/\\/g, '\\\\');\r
-    if (useDoubleQuotes)\r
-      return '"' + escapedString.replace(/"/g, '\\"') + '"';\r
-    else\r
-      return "'" + escapedString.replace(/'/g, '\\\'') + "'";\r
-  }\r
-});\r
-\r
-String.prototype.gsub.prepareReplacement = function(replacement) {\r
-  if (typeof replacement == 'function') return replacement;\r
-  var template = new Template(replacement);\r
-  return function(match) { return template.evaluate(match) };\r
-}\r
-\r
-String.prototype.parseQuery = String.prototype.toQueryParams;\r
-\r
-var Template = Class.create();\r
-Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;\r
-Template.prototype = {\r
-  initialize: function(template, pattern) {\r
-    this.template = template.toString();\r
-    this.pattern  = pattern || Template.Pattern;\r
-  },\r
-\r
-  evaluate: function(object) {\r
-    return this.template.gsub(this.pattern, function(match) {\r
-      var before = match[1];\r
-      if (before == '\\') return match[2];\r
-      return before + (object[match[3]] || '').toString();\r
-    });\r
-  }\r
-}\r
-\r
-var $break    = new Object();\r
-var $continue = new Object();\r
-\r
-var Enumerable = {\r
-  each: function(iterator) {\r
-    var index = 0;\r
-    try {\r
-      this._each(function(value) {\r
-        try {\r
-          iterator(value, index++);\r
-        } catch (e) {\r
-          if (e != $continue) throw e;\r
-        }\r
-      });\r
-    } catch (e) {\r
-      if (e != $break) throw e;\r
-    }\r
-  },\r
-\r
-  all: function(iterator) {\r
-    var result = true;\r
-    this.each(function(value, index) {\r
-      result = result && !!(iterator || Prototype.K)(value, index);\r
-      if (!result) throw $break;\r
-    });\r
-    return result;\r
-  },\r
-\r
-  any: function(iterator) {\r
-    var result = false;\r
-    this.each(function(value, index) {\r
-      if (result = !!(iterator || Prototype.K)(value, index))\r
-        throw $break;\r
-    });\r
-    return result;\r
-  },\r
-\r
-  collect: function(iterator) {\r
-    var results = [];\r
-    this.each(function(value, index) {\r
-      results.push(iterator(value, index));\r
-    });\r
-    return results;\r
-  },\r
-\r
-  detect: function (iterator) {\r
-    var result;\r
-    this.each(function(value, index) {\r
-      if (iterator(value, index)) {\r
-        result = value;\r
-        throw $break;\r
-      }\r
-    });\r
-    return result;\r
-  },\r
-\r
-  findAll: function(iterator) {\r
-    var results = [];\r
-    this.each(function(value, index) {\r
-      if (iterator(value, index))\r
-        results.push(value);\r
-    });\r
-    return results;\r
-  },\r
-\r
-  grep: function(pattern, iterator) {\r
-    var results = [];\r
-    this.each(function(value, index) {\r
-      var stringValue = value.toString();\r
-      if (stringValue.match(pattern))\r
-        results.push((iterator || Prototype.K)(value, index));\r
-    })\r
-    return results;\r
-  },\r
-\r
-  include: function(object) {\r
-    var found = false;\r
-    this.each(function(value) {\r
-      if (value == object) {\r
-        found = true;\r
-        throw $break;\r
-      }\r
-    });\r
-    return found;\r
-  },\r
-\r
-  inject: function(memo, iterator) {\r
-    this.each(function(value, index) {\r
-      memo = iterator(memo, value, index);\r
-    });\r
-    return memo;\r
-  },\r
-\r
-  invoke: function(method) {\r
-    var args = $A(arguments).slice(1);\r
-    return this.collect(function(value) {\r
-      return value[method].apply(value, args);\r
-    });\r
-  },\r
-\r
-  max: function(iterator) {\r
-    var result;\r
-    this.each(function(value, index) {\r
-      value = (iterator || Prototype.K)(value, index);\r
-      if (result == undefined || value >= result)\r
-        result = value;\r
-    });\r
-    return result;\r
-  },\r
-\r
-  min: function(iterator) {\r
-    var result;\r
-    this.each(function(value, index) {\r
-      value = (iterator || Prototype.K)(value, index);\r
-      if (result == undefined || value < result)\r
-        result = value;\r
-    });\r
-    return result;\r
-  },\r
-\r
-  partition: function(iterator) {\r
-    var trues = [], falses = [];\r
-    this.each(function(value, index) {\r
-      ((iterator || Prototype.K)(value, index) ?\r
-        trues : falses).push(value);\r
-    });\r
-    return [trues, falses];\r
-  },\r
-\r
-  pluck: function(property) {\r
-    var results = [];\r
-    this.each(function(value, index) {\r
-      results.push(value[property]);\r
-    });\r
-    return results;\r
-  },\r
-\r
-  reject: function(iterator) {\r
-    var results = [];\r
-    this.each(function(value, index) {\r
-      if (!iterator(value, index))\r
-        results.push(value);\r
-    });\r
-    return results;\r
-  },\r
-\r
-  sortBy: function(iterator) {\r
-    return this.collect(function(value, index) {\r
-      return {value: value, criteria: iterator(value, index)};\r
-    }).sort(function(left, right) {\r
-      var a = left.criteria, b = right.criteria;\r
-      return a < b ? -1 : a > b ? 1 : 0;\r
-    }).pluck('value');\r
-  },\r
-\r
-  toArray: function() {\r
-    return this.collect(Prototype.K);\r
-  },\r
-\r
-  zip: function() {\r
-    var iterator = Prototype.K, args = $A(arguments);\r
-    if (typeof args.last() == 'function')\r
-      iterator = args.pop();\r
-\r
-    var collections = [this].concat(args).map($A);\r
-    return this.map(function(value, index) {\r
-      return iterator(collections.pluck(index));\r
-    });\r
-  },\r
-\r
-  inspect: function() {\r
-    return '#<Enumerable:' + this.toArray().inspect() + '>';\r
-  }\r
-}\r
-\r
-Object.extend(Enumerable, {\r
-  map:     Enumerable.collect,\r
-  find:    Enumerable.detect,\r
-  select:  Enumerable.findAll,\r
-  member:  Enumerable.include,\r
-  entries: Enumerable.toArray\r
-});\r
-var $A = Array.from = function(iterable) {\r
-  if (!iterable) return [];\r
-  if (iterable.toArray) {\r
-    return iterable.toArray();\r
-  } else {\r
-    var results = [];\r
-    for (var i = 0; i < iterable.length; i++)\r
-      results.push(iterable[i]);\r
-    return results;\r
-  }\r
-}\r
-\r
-Object.extend(Array.prototype, Enumerable);\r
-\r
-if (!Array.prototype._reverse)\r
-  Array.prototype._reverse = Array.prototype.reverse;\r
-\r
-Object.extend(Array.prototype, {\r
-  _each: function(iterator) {\r
-    for (var i = 0; i < this.length; i++)\r
-      iterator(this[i]);\r
-  },\r
-\r
-  clear: function() {\r
-    this.length = 0;\r
-    return this;\r
-  },\r
-\r
-  first: function() {\r
-    return this[0];\r
-  },\r
-\r
-  last: function() {\r
-    return this[this.length - 1];\r
-  },\r
-\r
-  compact: function() {\r
-    return this.select(function(value) {\r
-      return value != undefined || value != null;\r
-    });\r
-  },\r
-\r
-  flatten: function() {\r
-    return this.inject([], function(array, value) {\r
-      return array.concat(value && value.constructor == Array ?\r
-        value.flatten() : [value]);\r
-    });\r
-  },\r
-\r
-  without: function() {\r
-    var values = $A(arguments);\r
-    return this.select(function(value) {\r
-      return !values.include(value);\r
-    });\r
-  },\r
-\r
-  indexOf: function(object) {\r
-    for (var i = 0; i < this.length; i++)\r
-      if (this[i] == object) return i;\r
-    return -1;\r
-  },\r
-\r
-  reverse: function(inline) {\r
-    return (inline !== false ? this : this.toArray())._reverse();\r
-  },\r
-\r
-  reduce: function() {\r
-    return this.length > 1 ? this : this[0];\r
-  },\r
-\r
-  uniq: function() {\r
-    return this.inject([], function(array, value) {\r
-      return array.include(value) ? array : array.concat([value]);\r
-    });\r
-  },\r
-\r
-  inspect: function() {\r
-    return '[' + this.map(Object.inspect).join(', ') + ']';\r
-  }\r
-});\r
-var Hash = {\r
-  _each: function(iterator) {\r
-    for (var key in this) {\r
-      var value = this[key];\r
-      if (typeof value == 'function') continue;\r
-\r
-      var pair = [key, value];\r
-      pair.key = key;\r
-      pair.value = value;\r
-      iterator(pair);\r
-    }\r
-  },\r
-\r
-  keys: function() {\r
-    return this.pluck('key');\r
-  },\r
-\r
-  values: function() {\r
-    return this.pluck('value');\r
-  },\r
-\r
-  merge: function(hash) {\r
-    return $H(hash).inject($H(this), function(mergedHash, pair) {\r
-      mergedHash[pair.key] = pair.value;\r
-      return mergedHash;\r
-    });\r
-  },\r
-\r
-  toQueryString: function() {\r
-    return this.map(function(pair) {\r
-      return pair.map(encodeURIComponent).join('=');\r
-    }).join('&');\r
-  },\r
-\r
-  inspect: function() {\r
-    return '#<Hash:{' + this.map(function(pair) {\r
-      return pair.map(Object.inspect).join(': ');\r
-    }).join(', ') + '}>';\r
-  }\r
-}\r
-\r
-function $H(object) {\r
-  var hash = Object.extend({}, object || {});\r
-  Object.extend(hash, Enumerable);\r
-  Object.extend(hash, Hash);\r
-  return hash;\r
-}\r
-ObjectRange = Class.create();\r
-Object.extend(ObjectRange.prototype, Enumerable);\r
-Object.extend(ObjectRange.prototype, {\r
-  initialize: function(start, end, exclusive) {\r
-    this.start = start;\r
-    this.end = end;\r
-    this.exclusive = exclusive;\r
-  },\r
-\r
-  _each: function(iterator) {\r
-    var value = this.start;\r
-    while (this.include(value)) {\r
-      iterator(value);\r
-      value = value.succ();\r
-    }\r
-  },\r
-\r
-  include: function(value) {\r
-    if (value < this.start)\r
-      return false;\r
-    if (this.exclusive)\r
-      return value < this.end;\r
-    return value <= this.end;\r
-  }\r
-});\r
-\r
-var $R = function(start, end, exclusive) {\r
-  return new ObjectRange(start, end, exclusive);\r
-}\r
-\r
-var Ajax = {\r
-  getTransport: function() {\r
-    return Try.these(\r
-      function() {return new XMLHttpRequest()},\r
-      function() {return new ActiveXObject('Msxml2.XMLHTTP')},\r
-      function() {return new ActiveXObject('Microsoft.XMLHTTP')}\r
-    ) || false;\r
-  },\r
-\r
-  activeRequestCount: 0\r
-}\r
-\r
-Ajax.Responders = {\r
-  responders: [],\r
-\r
-  _each: function(iterator) {\r
-    this.responders._each(iterator);\r
-  },\r
-\r
-  register: function(responderToAdd) {\r
-    if (!this.include(responderToAdd))\r
-      this.responders.push(responderToAdd);\r
-  },\r
-\r
-  unregister: function(responderToRemove) {\r
-    this.responders = this.responders.without(responderToRemove);\r
-  },\r
-\r
-  dispatch: function(callback, request, transport, json) {\r
-    this.each(function(responder) {\r
-      if (responder[callback] && typeof responder[callback] == 'function') {\r
-        try {\r
-          responder[callback].apply(responder, [request, transport, json]);\r
-        } catch (e) {}\r
-      }\r
-    });\r
-  }\r
-};\r
-\r
-Object.extend(Ajax.Responders, Enumerable);\r
-\r
-Ajax.Responders.register({\r
-  onCreate: function() {\r
-    Ajax.activeRequestCount++;\r
-  },\r
-\r
-  onComplete: function() {\r
-    Ajax.activeRequestCount--;\r
-  }\r
-});\r
-\r
-Ajax.Base = function() {};\r
-Ajax.Base.prototype = {\r
-  setOptions: function(options) {\r
-    this.options = {\r
-      method:       'post',\r
-      asynchronous: true,\r
-      contentType:  'application/x-www-form-urlencoded',\r
-      parameters:   ''\r
-    }\r
-    Object.extend(this.options, options || {});\r
-  },\r
-\r
-  responseIsSuccess: function() {\r
-    return this.transport.status == undefined\r
-        || this.transport.status == 0\r
-        || (this.transport.status >= 200 && this.transport.status < 300);\r
-  },\r
-\r
-  responseIsFailure: function() {\r
-    return !this.responseIsSuccess();\r
-  }\r
-}\r
-\r
-Ajax.Request = Class.create();\r
-Ajax.Request.Events =\r
-  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];\r
-\r
-Ajax.Request.prototype = Object.extend(new Ajax.Base(), {\r
-  initialize: function(url, options) {\r
-    this.transport = Ajax.getTransport();\r
-    this.setOptions(options);\r
-    this.request(url);\r
-  },\r
-\r
-  request: function(url) {\r
-    var parameters = this.options.parameters || '';\r
-    if (parameters.length > 0) parameters += '&_=';\r
-\r
-    /* Simulate other verbs over post */\r
-    if (this.options.method != 'get' && this.options.method != 'post') {\r
-      parameters += (parameters.length > 0 ? '&' : '') + '_method=' + this.options.method;\r
-      this.options.method = 'post';\r
-    }\r
-\r
-    try {\r
-      this.url = url;\r
-      if (this.options.method == 'get' && parameters.length > 0)\r
-        this.url += (this.url.match(/\?/) ? '&' : '?') + parameters;\r
-\r
-      Ajax.Responders.dispatch('onCreate', this, this.transport);\r
-\r
-      this.transport.open(this.options.method, this.url,\r
-        this.options.asynchronous);\r
-\r
-      if (this.options.asynchronous)\r
-        setTimeout(function() { this.respondToReadyState(1) }.bind(this), 10);\r
-\r
-      this.transport.onreadystatechange = this.onStateChange.bind(this);\r
-      this.setRequestHeaders();\r
-\r
-      var body = this.options.postBody ? this.options.postBody : parameters;\r
-      this.transport.send(this.options.method == 'post' ? body : null);\r
-\r
-      /* Force Firefox to handle ready state 4 for synchronous requests */\r
-      if (!this.options.asynchronous && this.transport.overrideMimeType)\r
-        this.onStateChange();\r
-\r
-    } catch (e) {\r
-      this.dispatchException(e);\r
-    }\r
-  },\r
-\r
-  setRequestHeaders: function() {\r
-    var requestHeaders =\r
-      ['X-Requested-With', 'XMLHttpRequest',\r
-       'X-Prototype-Version', Prototype.Version,\r
-       'Accept', 'text/javascript, text/html, application/xml, text/xml, */*'];\r
-\r
-    if (this.options.method == 'post') {\r
-      requestHeaders.push('Content-type', this.options.contentType);\r
-\r
-      /* Force "Connection: close" for Mozilla browsers to work around\r
-       * a bug where XMLHttpReqeuest sends an incorrect Content-length\r
-       * header. See Mozilla Bugzilla #246651.\r
-       */\r
-      if (this.transport.overrideMimeType)\r
-        requestHeaders.push('Connection', 'close');\r
-    }\r
-\r
-    if (this.options.requestHeaders)\r
-      requestHeaders.push.apply(requestHeaders, this.options.requestHeaders);\r
-\r
-    for (var i = 0; i < requestHeaders.length; i += 2)\r
-      this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i+1]);\r
-  },\r
-\r
-  onStateChange: function() {\r
-    var readyState = this.transport.readyState;\r
-    if (readyState != 1)\r
-      this.respondToReadyState(this.transport.readyState);\r
-  },\r
-\r
-  header: function(name) {\r
-    try {\r
-      return this.transport.getResponseHeader(name);\r
-    } catch (e) {}\r
-  },\r
-\r
-  evalJSON: function() {\r
-    try {\r
-      return eval('(' + this.header('X-JSON') + ')');\r
-    } catch (e) {}\r
-  },\r
-\r
-  evalResponse: function() {\r
-    try {\r
-      return eval(this.transport.responseText);\r
-    } catch (e) {\r
-      this.dispatchException(e);\r
-    }\r
-  },\r
-\r
-  respondToReadyState: function(readyState) {\r
-    var event = Ajax.Request.Events[readyState];\r
-    var transport = this.transport, json = this.evalJSON();\r
-\r
-    if (event == 'Complete') {\r
-      try {\r
-        (this.options['on' + this.transport.status]\r
-         || this.options['on' + (this.responseIsSuccess() ? 'Success' : 'Failure')]\r
-         || Prototype.emptyFunction)(transport, json);\r
-      } catch (e) {\r
-        this.dispatchException(e);\r
-      }\r
-\r
-      if ((this.header('Content-type') || '').match(/^text\/javascript/i))\r
-        this.evalResponse();\r
-    }\r
-\r
-    try {\r
-      (this.options['on' + event] || Prototype.emptyFunction)(transport, json);\r
-      Ajax.Responders.dispatch('on' + event, this, transport, json);\r
-    } catch (e) {\r
-      this.dispatchException(e);\r
-    }\r
-\r
-    /* Avoid memory leak in MSIE: clean up the oncomplete event handler */\r
-    if (event == 'Complete')\r
-      this.transport.onreadystatechange = Prototype.emptyFunction;\r
-  },\r
-\r
-  dispatchException: function(exception) {\r
-    (this.options.onException || Prototype.emptyFunction)(this, exception);\r
-    Ajax.Responders.dispatch('onException', this, exception);\r
-  }\r
-});\r
-\r
-Ajax.Updater = Class.create();\r
-\r
-Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), {\r
-  initialize: function(container, url, options) {\r
-    this.containers = {\r
-      success: container.success ? $(container.success) : $(container),\r
-      failure: container.failure ? $(container.failure) :\r
-        (container.success ? null : $(container))\r
-    }\r
-\r
-    this.transport = Ajax.getTransport();\r
-    this.setOptions(options);\r
-\r
-    var onComplete = this.options.onComplete || Prototype.emptyFunction;\r
-    this.options.onComplete = (function(transport, object) {\r
-      this.updateContent();\r
-      onComplete(transport, object);\r
-    }).bind(this);\r
-\r
-    this.request(url);\r
-  },\r
-\r
-  updateContent: function() {\r
-    var receiver = this.responseIsSuccess() ?\r
-      this.containers.success : this.containers.failure;\r
-    var response = this.transport.responseText;\r
-\r
-    if (!this.options.evalScripts)\r
-      response = response.stripScripts();\r
-\r
-    if (receiver) {\r
-      if (this.options.insertion) {\r
-        new this.options.insertion(receiver, response);\r
-      } else {\r
-        Element.update(receiver, response);\r
-      }\r
-    }\r
-\r
-    if (this.responseIsSuccess()) {\r
-      if (this.onComplete)\r
-        setTimeout(this.onComplete.bind(this), 10);\r
-    }\r
-  }\r
-});\r
-\r
-Ajax.PeriodicalUpdater = Class.create();\r
-Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), {\r
-  initialize: function(container, url, options) {\r
-    this.setOptions(options);\r
-    this.onComplete = this.options.onComplete;\r
-\r
-    this.frequency = (this.options.frequency || 2);\r
-    this.decay = (this.options.decay || 1);\r
-\r
-    this.updater = {};\r
-    this.container = container;\r
-    this.url = url;\r
-\r
-    this.start();\r
-  },\r
-\r
-  start: function() {\r
-    this.options.onComplete = this.updateComplete.bind(this);\r
-    this.onTimerEvent();\r
-  },\r
-\r
-  stop: function() {\r
-    this.updater.options.onComplete = undefined;\r
-    clearTimeout(this.timer);\r
-    (this.onComplete || Prototype.emptyFunction).apply(this, arguments);\r
-  },\r
-\r
-  updateComplete: function(request) {\r
-    if (this.options.decay) {\r
-      this.decay = (request.responseText == this.lastText ?\r
-        this.decay * this.options.decay : 1);\r
-\r
-      this.lastText = request.responseText;\r
-    }\r
-    this.timer = setTimeout(this.onTimerEvent.bind(this),\r
-      this.decay * this.frequency * 1000);\r
-  },\r
-\r
-  onTimerEvent: function() {\r
-    this.updater = new Ajax.Updater(this.container, this.url, this.options);\r
-  }\r
-});\r
-function $() {\r
-  var results = [], element;\r
-  for (var i = 0; i < arguments.length; i++) {\r
-    element = arguments[i];\r
-    if (typeof element == 'string')\r
-      element = document.getElementById(element);\r
-    results.push(Element.extend(element));\r
-  }\r
-  return results.reduce();\r
-}\r
-\r
-document.getElementsByClassName = function(className, parentElement) {\r
-  var children = ($(parentElement) || document.body).getElementsByTagName('*');\r
-  return $A(children).inject([], function(elements, child) {\r
-    if (child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))\r
-      elements.push(Element.extend(child));\r
-    return elements;\r
-  });\r
-}\r
-\r
-/*--------------------------------------------------------------------------*/\r
-\r
-if (!window.Element)\r
-  var Element = new Object();\r
-\r
-Element.extend = function(element) {\r
-  if (!element) return;\r
-  if (_nativeExtensions || element.nodeType == 3) return element;\r
-\r
-  if (!element._extended && element.tagName && element != window) {\r
-    var methods = Object.clone(Element.Methods), cache = Element.extend.cache;\r
-\r
-    if (element.tagName == 'FORM')\r
-      Object.extend(methods, Form.Methods);\r
-    if (['INPUT', 'TEXTAREA', 'SELECT'].include(element.tagName))\r
-      Object.extend(methods, Form.Element.Methods);\r
-\r
-    for (var property in methods) {\r
-      var value = methods[property];\r
-      if (typeof value == 'function')\r
-        element[property] = cache.findOrStore(value);\r
-    }\r
-  }\r
-\r
-  element._extended = true;\r
-  return element;\r
-}\r
-\r
-Element.extend.cache = {\r
-  findOrStore: function(value) {\r
-    return this[value] = this[value] || function() {\r
-      return value.apply(null, [this].concat($A(arguments)));\r
-    }\r
-  }\r
-}\r
-\r
-Element.Methods = {\r
-  visible: function(element) {\r
-    return $(element).style.display != 'none';\r
-  },\r
-\r
-  toggle: function(element) {\r
-    element = $(element);\r
-    Element[Element.visible(element) ? 'hide' : 'show'](element);\r
-    return element;\r
-  },\r
-\r
-  hide: function(element) {\r
-    $(element).style.display = 'none';\r
-    return element;\r
-  },\r
-\r
-  show: function(element) {\r
-    $(element).style.display = '';\r
-    return element;\r
-  },\r
-\r
-  remove: function(element) {\r
-    element = $(element);\r
-    element.parentNode.removeChild(element);\r
-    return element;\r
-  },\r
-\r
-  update: function(element, html) {\r
-    $(element).innerHTML = html.stripScripts();\r
-    setTimeout(function() {html.evalScripts()}, 10);\r
-    return element;\r
-  },\r
-\r
-  replace: function(element, html) {\r
-    element = $(element);\r
-    if (element.outerHTML) {\r
-      element.outerHTML = html.stripScripts();\r
-    } else {\r
-      var range = element.ownerDocument.createRange();\r
-      range.selectNodeContents(element);\r
-      element.parentNode.replaceChild(\r
-        range.createContextualFragment(html.stripScripts()), element);\r
-    }\r
-    setTimeout(function() {html.evalScripts()}, 10);\r
-    return element;\r
-  },\r
-\r
-  inspect: function(element) {\r
-    element = $(element);\r
-    var result = '<' + element.tagName.toLowerCase();\r
-    $H({'id': 'id', 'className': 'class'}).each(function(pair) {\r
-      var property = pair.first(), attribute = pair.last();\r
-      var value = (element[property] || '').toString();\r
-      if (value) result += ' ' + attribute + '=' + value.inspect(true);\r
-    });\r
-    return result + '>';\r
-  },\r
-\r
-  recursivelyCollect: function(element, property) {\r
-    element = $(element);\r
-    var elements = [];\r
-    while (element = element[property])\r
-      if (element.nodeType == 1)\r
-        elements.push(Element.extend(element));\r
-    return elements;\r
-  },\r
-\r
-  ancestors: function(element) {\r
-    return $(element).recursivelyCollect('parentNode');\r
-  },\r
-\r
-  descendants: function(element) {\r
-    element = $(element);\r
-    return $A(element.getElementsByTagName('*'));\r
-  },\r
-\r
-  previousSiblings: function(element) {\r
-    return $(element).recursivelyCollect('previousSibling');\r
-  },\r
-\r
-  nextSiblings: function(element) {\r
-    return $(element).recursivelyCollect('nextSibling');\r
-  },\r
-\r
-  siblings: function(element) {\r
-    element = $(element);\r
-    return element.previousSiblings().reverse().concat(element.nextSiblings());\r
-  },\r
-\r
-  match: function(element, selector) {\r
-    element = $(element);\r
-    if (typeof selector == 'string')\r
-      selector = new Selector(selector);\r
-    return selector.match(element);\r
-  },\r
-\r
-  up: function(element, expression, index) {\r
-    return Selector.findElement($(element).ancestors(), expression, index);\r
-  },\r
-\r
-  down: function(element, expression, index) {\r
-    return Selector.findElement($(element).descendants(), expression, index);\r
-  },\r
-\r
-  previous: function(element, expression, index) {\r
-    return Selector.findElement($(element).previousSiblings(), expression, index);\r
-  },\r
-\r
-  next: function(element, expression, index) {\r
-    return Selector.findElement($(element).nextSiblings(), expression, index);\r
-  },\r
-\r
-  getElementsBySelector: function() {\r
-    var args = $A(arguments), element = $(args.shift());\r
-    return Selector.findChildElements(element, args);\r
-  },\r
-\r
-  getElementsByClassName: function(element, className) {\r
-    element = $(element);\r
-    return document.getElementsByClassName(className, element);\r
-  },\r
-\r
-  getHeight: function(element) {\r
-    element = $(element);\r
-    return element.offsetHeight;\r
-  },\r
-\r
-  classNames: function(element) {\r
-    return new Element.ClassNames(element);\r
-  },\r
-\r
-  hasClassName: function(element, className) {\r
-    if (!(element = $(element))) return;\r
-    return Element.classNames(element).include(className);\r
-  },\r
-\r
-  addClassName: function(element, className) {\r
-    if (!(element = $(element))) return;\r
-    Element.classNames(element).add(className);\r
-    return element;\r
-  },\r
-\r
-  removeClassName: function(element, className) {\r
-    if (!(element = $(element))) return;\r
-    Element.classNames(element).remove(className);\r
-    return element;\r
-  },\r
-\r
-  observe: function() {\r
-    Event.observe.apply(Event, arguments);\r
-    return $A(arguments).first();\r
-  },\r
-\r
-  stopObserving: function() {\r
-    Event.stopObserving.apply(Event, arguments);\r
-    return $A(arguments).first();\r
-  },\r
-\r
-  // removes whitespace-only text node children\r
-  cleanWhitespace: function(element) {\r
-    element = $(element);\r
-    var node = element.firstChild;\r
-    while (node) {\r
-      var nextNode = node.nextSibling;\r
-      if (node.nodeType == 3 && !/\S/.test(node.nodeValue))\r
-        element.removeChild(node);\r
-      node = nextNode;\r
-    }\r
-    return element;\r
-  },\r
-\r
-  empty: function(element) {\r
-    return $(element).innerHTML.match(/^\s*$/);\r
-  },\r
-\r
-  childOf: function(element, ancestor) {\r
-    element = $(element), ancestor = $(ancestor);\r
-    while (element = element.parentNode)\r
-      if (element == ancestor) return true;\r
-    return false;\r
-  },\r
-\r
-  scrollTo: function(element) {\r
-    element = $(element);\r
-    var x = element.x ? element.x : element.offsetLeft,\r
-        y = element.y ? element.y : element.offsetTop;\r
-    window.scrollTo(x, y);\r
-    return element;\r
-  },\r
-\r
-  getStyle: function(element, style) {\r
-    element = $(element);\r
-    var value = element.style[style.camelize()];\r
-    if (!value) {\r
-      if (document.defaultView && document.defaultView.getComputedStyle) {\r
-        var css = document.defaultView.getComputedStyle(element, null);\r
-        value = css ? css.getPropertyValue(style) : null;\r
-      } else if (element.currentStyle) {\r
-        value = element.currentStyle[style.camelize()];\r
-      }\r
-    }\r
-\r
-    if (window.opera && ['left', 'top', 'right', 'bottom'].include(style))\r
-      if (Element.getStyle(element, 'position') == 'static') value = 'auto';\r
-\r
-    return value == 'auto' ? null : value;\r
-  },\r
-\r
-  setStyle: function(element, style) {\r
-    element = $(element);\r
-    for (var name in style)\r
-      element.style[name.camelize()] = style[name];\r
-    return element;\r
-  },\r
-\r
-  getDimensions: function(element) {\r
-    element = $(element);\r
-    if (Element.getStyle(element, 'display') != 'none')\r
-      return {width: element.offsetWidth, height: element.offsetHeight};\r
-\r
-    // All *Width and *Height properties give 0 on elements with display none,\r
-    // so enable the element temporarily\r
-    var els = element.style;\r
-    var originalVisibility = els.visibility;\r
-    var originalPosition = els.position;\r
-    els.visibility = 'hidden';\r
-    els.position = 'absolute';\r
-    els.display = '';\r
-    var originalWidth = element.clientWidth;\r
-    var originalHeight = element.clientHeight;\r
-    els.display = 'none';\r
-    els.position = originalPosition;\r
-    els.visibility = originalVisibility;\r
-    return {width: originalWidth, height: originalHeight};\r
-  },\r
-\r
-  makePositioned: function(element) {\r
-    element = $(element);\r
-    var pos = Element.getStyle(element, 'position');\r
-    if (pos == 'static' || !pos) {\r
-      element._madePositioned = true;\r
-      element.style.position = 'relative';\r
-      // Opera returns the offset relative to the positioning context, when an\r
-      // element is position relative but top and left have not been defined\r
-      if (window.opera) {\r
-        element.style.top = 0;\r
-        element.style.left = 0;\r
-      }\r
-    }\r
-    return element;\r
-  },\r
-\r
-  undoPositioned: function(element) {\r
-    element = $(element);\r
-    if (element._madePositioned) {\r
-      element._madePositioned = undefined;\r
-      element.style.position =\r
-        element.style.top =\r
-        element.style.left =\r
-        element.style.bottom =\r
-        element.style.right = '';\r
-    }\r
-    return element;\r
-  },\r
-\r
-  makeClipping: function(element) {\r
-    element = $(element);\r
-    if (element._overflow) return;\r
-    element._overflow = element.style.overflow || 'auto';\r
-    if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden')\r
-      element.style.overflow = 'hidden';\r
-    return element;\r
-  },\r
-\r
-  undoClipping: function(element) {\r
-    element = $(element);\r
-    if (!element._overflow) return;\r
-    element.style.overflow = element._overflow == 'auto' ? '' : element._overflow;\r
-    element._overflow = null;\r
-    return element;\r
-  }\r
-}\r
-\r
-// IE is missing .innerHTML support for TABLE-related elements\r
-if(document.all){\r
-  Element.Methods.update = function(element, html) {\r
-    element = $(element);\r
-    var tagName = element.tagName.toUpperCase();\r
-    if (['THEAD','TBODY','TR','TD'].indexOf(tagName) > -1) {\r
-      var div = document.createElement('div');\r
-      switch (tagName) {\r
-        case 'THEAD':\r
-        case 'TBODY':\r
-          div.innerHTML = '<table><tbody>' +  html.stripScripts() + '</tbody></table>';\r
-          depth = 2;\r
-          break;\r
-        case 'TR':\r
-          div.innerHTML = '<table><tbody><tr>' +  html.stripScripts() + '</tr></tbody></table>';\r
-          depth = 3;\r
-          break;\r
-        case 'TD':\r
-          div.innerHTML = '<table><tbody><tr><td>' +  html.stripScripts() + '</td></tr></tbody></table>';\r
-          depth = 4;\r
-      }\r
-      $A(element.childNodes).each(function(node){\r
-        element.removeChild(node)\r
-      });\r
-      depth.times(function(){ div = div.firstChild });\r
-\r
-      $A(div.childNodes).each(\r
-        function(node){ element.appendChild(node) });\r
-    } else {\r
-      element.innerHTML = html.stripScripts();\r
-    }\r
-    setTimeout(function() {html.evalScripts()}, 10);\r
-    return element;\r
-  }\r
-}\r
-\r
-Object.extend(Element, Element.Methods);\r
-\r
-var _nativeExtensions = false;\r
-\r
-if (!window.HTMLElement && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) {\r
-  /* Emulate HTMLElement, HTMLFormElement, HTMLInputElement, HTMLTextAreaElement,\r
-     and HTMLSelectElement in Safari */\r
-  ['', 'Form', 'Input', 'TextArea', 'Select'].each(function(tag) {\r
-    var klass = window['HTML' + tag + 'Element'] = {};\r
-    klass.prototype = document.createElement(tag ? tag.toLowerCase() : 'div').__proto__;\r
-  });\r
-}\r
-\r
-Element.addMethods = function(methods) {\r
-  Object.extend(Element.Methods, methods || {});\r
-\r
-  function copy(methods, destination) {\r
-    var cache = Element.extend.cache;\r
-    for (var property in methods) {\r
-      var value = methods[property];\r
-      destination[property] = cache.findOrStore(value);\r
-    }\r
-  }\r
-\r
-  if (typeof HTMLElement != 'undefined') {\r
-    copy(Element.Methods, HTMLElement.prototype);\r
-    copy(Form.Methods, HTMLFormElement.prototype);\r
-    [HTMLInputElement, HTMLTextAreaElement, HTMLSelectElement].each(function(klass) {\r
-      copy(Form.Element.Methods, klass.prototype);\r
-    });\r
-    _nativeExtensions = true;\r
-  }\r
-}\r
-\r
-var Toggle = new Object();\r
-Toggle.display = Element.toggle;\r
-\r
-/*--------------------------------------------------------------------------*/\r
-\r
-Abstract.Insertion = function(adjacency) {\r
-  this.adjacency = adjacency;\r
-}\r
-\r
-Abstract.Insertion.prototype = {\r
-  initialize: function(element, content) {\r
-    this.element = $(element);\r
-    this.content = content.stripScripts();\r
-\r
-    if (this.adjacency && this.element.insertAdjacentHTML) {\r
-      try {\r
-        this.element.insertAdjacentHTML(this.adjacency, this.content);\r
-      } catch (e) {\r
-        var tagName = this.element.tagName.toLowerCase();\r
-        if (tagName == 'tbody' || tagName == 'tr') {\r
-          this.insertContent(this.contentFromAnonymousTable());\r
-        } else {\r
-          throw e;\r
-        }\r
-      }\r
-    } else {\r
-      this.range = this.element.ownerDocument.createRange();\r
-      if (this.initializeRange) this.initializeRange();\r
-      this.insertContent([this.range.createContextualFragment(this.content)]);\r
-    }\r
-\r
-    setTimeout(function() {content.evalScripts()}, 10);\r
-  },\r
-\r
-  contentFromAnonymousTable: function() {\r
-    var div = document.createElement('div');\r
-    div.innerHTML = '<table><tbody>' + this.content + '</tbody></table>';\r
-    return $A(div.childNodes[0].childNodes[0].childNodes);\r
-  }\r
-}\r
-\r
-var Insertion = new Object();\r
-\r
-Insertion.Before = Class.create();\r
-Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), {\r
-  initializeRange: function() {\r
-    this.range.setStartBefore(this.element);\r
-  },\r
-\r
-  insertContent: function(fragments) {\r
-    fragments.each((function(fragment) {\r
-      this.element.parentNode.insertBefore(fragment, this.element);\r
-    }).bind(this));\r
-  }\r
-});\r
-\r
-Insertion.Top = Class.create();\r
-Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), {\r
-  initializeRange: function() {\r
-    this.range.selectNodeContents(this.element);\r
-    this.range.collapse(true);\r
-  },\r
-\r
-  insertContent: function(fragments) {\r
-    fragments.reverse(false).each((function(fragment) {\r
-      this.element.insertBefore(fragment, this.element.firstChild);\r
-    }).bind(this));\r
-  }\r
-});\r
-\r
-Insertion.Bottom = Class.create();\r
-Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), {\r
-  initializeRange: function() {\r
-    this.range.selectNodeContents(this.element);\r
-    this.range.collapse(this.element);\r
-  },\r
-\r
-  insertContent: function(fragments) {\r
-    fragments.each((function(fragment) {\r
-      this.element.appendChild(fragment);\r
-    }).bind(this));\r
-  }\r
-});\r
-\r
-Insertion.After = Class.create();\r
-Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), {\r
-  initializeRange: function() {\r
-    this.range.setStartAfter(this.element);\r
-  },\r
-\r
-  insertContent: function(fragments) {\r
-    fragments.each((function(fragment) {\r
-      this.element.parentNode.insertBefore(fragment,\r
-        this.element.nextSibling);\r
-    }).bind(this));\r
-  }\r
-});\r
-\r
-/*--------------------------------------------------------------------------*/\r
-\r
-Element.ClassNames = Class.create();\r
-Element.ClassNames.prototype = {\r
-  initialize: function(element) {\r
-    this.element = $(element);\r
-  },\r
-\r
-  _each: function(iterator) {\r
-    this.element.className.split(/\s+/).select(function(name) {\r
-      return name.length > 0;\r
-    })._each(iterator);\r
-  },\r
-\r
-  set: function(className) {\r
-    this.element.className = className;\r
-  },\r
-\r
-  add: function(classNameToAdd) {\r
-    if (this.include(classNameToAdd)) return;\r
-    this.set(this.toArray().concat(classNameToAdd).join(' '));\r
-  },\r
-\r
-  remove: function(classNameToRemove) {\r
-    if (!this.include(classNameToRemove)) return;\r
-    this.set(this.select(function(className) {\r
-      return className != classNameToRemove;\r
-    }).join(' '));\r
-  },\r
-\r
-  toString: function() {\r
-    return this.toArray().join(' ');\r
-  }\r
-}\r
-\r
-Object.extend(Element.ClassNames.prototype, Enumerable);\r
-var Selector = Class.create();\r
-Selector.prototype = {\r
-  initialize: function(expression) {\r
-    this.params = {classNames: []};\r
-    this.expression = expression.toString().strip();\r
-    this.parseExpression();\r
-    this.compileMatcher();\r
-  },\r
-\r
-  parseExpression: function() {\r
-    function abort(message) { throw 'Parse error in selector: ' + message; }\r
-\r
-    if (this.expression == '')  abort('empty expression');\r
-\r
-    var params = this.params, expr = this.expression, match, modifier, clause, rest;\r
-    while (match = expr.match(/^(.*)\[([a-z0-9_:-]+?)(?:([~\|!]?=)(?:"([^"]*)"|([^\]\s]*)))?\]$/i)) {\r
-      params.attributes = params.attributes || [];\r
-      params.attributes.push({name: match[2], operator: match[3], value: match[4] || match[5] || ''});\r
-      expr = match[1];\r
-    }\r
-\r
-    if (expr == '*') return this.params.wildcard = true;\r
-\r
-    while (match = expr.match(/^([^a-z0-9_-])?([a-z0-9_-]+)(.*)/i)) {\r
-      modifier = match[1], clause = match[2], rest = match[3];\r
-      switch (modifier) {\r
-        case '#':       params.id = clause; break;\r
-        case '.':       params.classNames.push(clause); break;\r
-        case '':\r
-        case undefined: params.tagName = clause.toUpperCase(); break;\r
-        default:        abort(expr.inspect());\r
-      }\r
-      expr = rest;\r
-    }\r
-\r
-    if (expr.length > 0) abort(expr.inspect());\r
-  },\r
-\r
-  buildMatchExpression: function() {\r
-    var params = this.params, conditions = [], clause;\r
-\r
-    if (params.wildcard)\r
-      conditions.push('true');\r
-    if (clause = params.id)\r
-      conditions.push('element.id == ' + clause.inspect());\r
-    if (clause = params.tagName)\r
-      conditions.push('element.tagName.toUpperCase() == ' + clause.inspect());\r
-    if ((clause = params.classNames).length > 0)\r
-      for (var i = 0; i < clause.length; i++)\r
-        conditions.push('Element.hasClassName(element, ' + clause[i].inspect() + ')');\r
-    if (clause = params.attributes) {\r
-      clause.each(function(attribute) {\r
-        var value = 'element.getAttribute(' + attribute.name.inspect() + ')';\r
-        var splitValueBy = function(delimiter) {\r
-          return value + ' && ' + value + '.split(' + delimiter.inspect() + ')';\r
-        }\r
-\r
-        switch (attribute.operator) {\r
-          case '=':       conditions.push(value + ' == ' + attribute.value.inspect()); break;\r
-          case '~=':      conditions.push(splitValueBy(' ') + '.include(' + attribute.value.inspect() + ')'); break;\r
-          case '|=':      conditions.push(\r
-                            splitValueBy('-') + '.first().toUpperCase() == ' + attribute.value.toUpperCase().inspect()\r
-                          ); break;\r
-          case '!=':      conditions.push(value + ' != ' + attribute.value.inspect()); break;\r
-          case '':\r
-          case undefined: conditions.push(value + ' != null'); break;\r
-          default:        throw 'Unknown operator ' + attribute.operator + ' in selector';\r
-        }\r
-      });\r
-    }\r
-\r
-    return conditions.join(' && ');\r
-  },\r
-\r
-  compileMatcher: function() {\r
-    this.match = new Function('element', 'if (!element.tagName) return false; \\r
-      return ' + this.buildMatchExpression());\r
-  },\r
-\r
-  findElements: function(scope) {\r
-    var element;\r
-\r
-    if (element = $(this.params.id))\r
-      if (this.match(element))\r
-        if (!scope || Element.childOf(element, scope))\r
-          return [element];\r
-\r
-    scope = (scope || document).getElementsByTagName(this.params.tagName || '*');\r
-\r
-    var results = [];\r
-    for (var i = 0; i < scope.length; i++)\r
-      if (this.match(element = scope[i]))\r
-        results.push(Element.extend(element));\r
-\r
-    return results;\r
-  },\r
-\r
-  toString: function() {\r
-    return this.expression;\r
-  }\r
-}\r
-\r
-Object.extend(Selector, {\r
-  matchElements: function(elements, expression) {\r
-    var selector = new Selector(expression);\r
-    return elements.select(selector.match.bind(selector));\r
-  },\r
-\r
-  findElement: function(elements, expression, index) {\r
-    if (typeof expression == 'number') index = expression, expression = false;\r
-    return Selector.matchElements(elements, expression || '*')[index || 0];\r
-  },\r
-\r
-  findChildElements: function(element, expressions) {\r
-    return expressions.map(function(expression) {\r
-      return expression.strip().split(/\s+/).inject([null], function(results, expr) {\r
-        var selector = new Selector(expr);\r
-        return results.inject([], function(elements, result) {\r
-          return elements.concat(selector.findElements(result || element));\r
-        });\r
-      });\r
-    }).flatten();\r
-  }\r
-});\r
-\r
-function $$() {\r
-  return Selector.findChildElements(document, $A(arguments));\r
-}\r
-var Form = {\r
-  reset: function(form) {\r
-    $(form).reset();\r
-    return form;\r
-  }\r
-};\r
-\r
-Form.Methods = {\r
-  serialize: function(form) {\r
-    var elements = Form.getElements($(form));\r
-    var queryComponents = new Array();\r
-\r
-    for (var i = 0; i < elements.length; i++) {\r
-      var queryComponent = Form.Element.serialize(elements[i]);\r
-      if (queryComponent)\r
-        queryComponents.push(queryComponent);\r
-    }\r
-\r
-    return queryComponents.join('&');\r
-  },\r
-\r
-  getElements: function(form) {\r
-    form = $(form);\r
-    var elements = new Array();\r
-\r
-    for (var tagName in Form.Element.Serializers) {\r
-      var tagElements = form.getElementsByTagName(tagName);\r
-      for (var j = 0; j < tagElements.length; j++)\r
-        elements.push(tagElements[j]);\r
-    }\r
-    return elements;\r
-  },\r
-\r
-  getInputs: function(form, typeName, name) {\r
-    form = $(form);\r
-    var inputs = form.getElementsByTagName('input');\r
-\r
-    if (!typeName && !name)\r
-      return inputs;\r
-\r
-    var matchingInputs = new Array();\r
-    for (var i = 0; i < inputs.length; i++) {\r
-      var input = inputs[i];\r
-      if ((typeName && input.type != typeName) ||\r
-          (name && input.name != name))\r
-        continue;\r
-      matchingInputs.push(input);\r
-    }\r
-\r
-    return matchingInputs;\r
-  },\r
-\r
-  disable: function(form) {\r
-    form = $(form);\r
-    var elements = Form.getElements(form);\r
-    for (var i = 0; i < elements.length; i++) {\r
-      var element = elements[i];\r
-      element.blur();\r
-      element.disabled = 'true';\r
-    }\r
-    return form;\r
-  },\r
-\r
-  enable: function(form) {\r
-    form = $(form);\r
-    var elements = Form.getElements(form);\r
-    for (var i = 0; i < elements.length; i++) {\r
-      var element = elements[i];\r
-      element.disabled = '';\r
-    }\r
-    return form;\r
-  },\r
-\r
-  findFirstElement: function(form) {\r
-    return Form.getElements(form).find(function(element) {\r
-      return element.type != 'hidden' && !element.disabled &&\r
-        ['input', 'select', 'textarea'].include(element.tagName.toLowerCase());\r
-    });\r
-  },\r
-\r
-  focusFirstElement: function(form) {\r
-    form = $(form);\r
-    Field.activate(Form.findFirstElement(form));\r
-    return form;\r
-  }\r
-}\r
-\r
-Object.extend(Form, Form.Methods);\r
-\r
-/*--------------------------------------------------------------------------*/\r
-\r
-Form.Element = {\r
-  focus: function(element) {\r
-    $(element).focus();\r
-    return element;\r
-  },\r
-\r
-  select: function(element) {\r
-    $(element).select();\r
-    return element;\r
-  }\r
-}\r
-\r
-Form.Element.Methods = {\r
-  serialize: function(element) {\r
-    element = $(element);\r
-    var method = element.tagName.toLowerCase();\r
-    var parameter = Form.Element.Serializers[method](element);\r
-\r
-    if (parameter) {\r
-      var key = encodeURIComponent(parameter[0]);\r
-      if (key.length == 0) return;\r
-\r
-      if (parameter[1].constructor != Array)\r
-        parameter[1] = [parameter[1]];\r
-\r
-      return parameter[1].map(function(value) {\r
-        return key + '=' + encodeURIComponent(value);\r
-      }).join('&');\r
-    }\r
-  },\r
-\r
-  getValue: function(element) {\r
-    element = $(element);\r
-    var method = element.tagName.toLowerCase();\r
-    var parameter = Form.Element.Serializers[method](element);\r
-\r
-    if (parameter)\r
-      return parameter[1];\r
-  },\r
-\r
-  clear: function(element) {\r
-    $(element).value = '';\r
-    return element;\r
-  },\r
-\r
-  present: function(element) {\r
-    return $(element).value != '';\r
-  },\r
-\r
-  activate: function(element) {\r
-    element = $(element);\r
-    element.focus();\r
-    if (element.select)\r
-      element.select();\r
-    return element;\r
-  },\r
-\r
-  disable: function(element) {\r
-    element = $(element);\r
-    element.disabled = '';\r
-    return element;\r
-  },\r
-\r
-  enable: function(element) {\r
-    element = $(element);\r
-    element.blur();\r
-    element.disabled = 'true';\r
-    return element;\r
-  }\r
-}\r
-\r
-Object.extend(Form.Element, Form.Element.Methods);\r
-var Field = Form.Element;\r
-\r
-/*--------------------------------------------------------------------------*/\r
-\r
-Form.Element.Serializers = {\r
-  input: function(element) {\r
-    switch (element.type.toLowerCase()) {\r
-      case 'checkbox':\r
-      case 'radio':\r
-        return Form.Element.Serializers.inputSelector(element);\r
-      default:\r
-        return Form.Element.Serializers.textarea(element);\r
-    }\r
-    return false;\r
-  },\r
-\r
-  inputSelector: function(element) {\r
-    if (element.checked)\r
-      return [element.name, element.value];\r
-  },\r
-\r
-  textarea: function(element) {\r
-    return [element.name, element.value];\r
-  },\r
-\r
-  select: function(element) {\r
-    return Form.Element.Serializers[element.type == 'select-one' ?\r
-      'selectOne' : 'selectMany'](element);\r
-  },\r
-\r
-  selectOne: function(element) {\r
-    var value = '', opt, index = element.selectedIndex;\r
-    if (index >= 0) {\r
-      opt = element.options[index];\r
-      value = opt.value || opt.text;\r
-    }\r
-    return [element.name, value];\r
-  },\r
-\r
-  selectMany: function(element) {\r
-    var value = [];\r
-    for (var i = 0; i < element.length; i++) {\r
-      var opt = element.options[i];\r
-      if (opt.selected)\r
-        value.push(opt.value || opt.text);\r
-    }\r
-    return [element.name, value];\r
-  }\r
-}\r
-\r
-/*--------------------------------------------------------------------------*/\r
-\r
-var $F = Form.Element.getValue;\r
-\r
-/*--------------------------------------------------------------------------*/\r
-\r
-Abstract.TimedObserver = function() {}\r
-Abstract.TimedObserver.prototype = {\r
-  initialize: function(element, frequency, callback) {\r
-    this.frequency = frequency;\r
-    this.element   = $(element);\r
-    this.callback  = callback;\r
-\r
-    this.lastValue = this.getValue();\r
-    this.registerCallback();\r
-  },\r
-\r
-  registerCallback: function() {\r
-    setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);\r
-  },\r
-\r
-  onTimerEvent: function() {\r
-    var value = this.getValue();\r
-    if (this.lastValue != value) {\r
-      this.callback(this.element, value);\r
-      this.lastValue = value;\r
-    }\r
-  }\r
-}\r
-\r
-Form.Element.Observer = Class.create();\r
-Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {\r
-  getValue: function() {\r
-    return Form.Element.getValue(this.element);\r
-  }\r
-});\r
-\r
-Form.Observer = Class.create();\r
-Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {\r
-  getValue: function() {\r
-    return Form.serialize(this.element);\r
-  }\r
-});\r
-\r
-/*--------------------------------------------------------------------------*/\r
-\r
-Abstract.EventObserver = function() {}\r
-Abstract.EventObserver.prototype = {\r
-  initialize: function(element, callback) {\r
-    this.element  = $(element);\r
-    this.callback = callback;\r
-\r
-    this.lastValue = this.getValue();\r
-    if (this.element.tagName.toLowerCase() == 'form')\r
-      this.registerFormCallbacks();\r
-    else\r
-      this.registerCallback(this.element);\r
-  },\r
-\r
-  onElementEvent: function() {\r
-    var value = this.getValue();\r
-    if (this.lastValue != value) {\r
-      this.callback(this.element, value);\r
-      this.lastValue = value;\r
-    }\r
-  },\r
-\r
-  registerFormCallbacks: function() {\r
-    var elements = Form.getElements(this.element);\r
-    for (var i = 0; i < elements.length; i++)\r
-      this.registerCallback(elements[i]);\r
-  },\r
-\r
-  registerCallback: function(element) {\r
-    if (element.type) {\r
-      switch (element.type.toLowerCase()) {\r
-        case 'checkbox':\r
-        case 'radio':\r
-          Event.observe(element, 'click', this.onElementEvent.bind(this));\r
-          break;\r
-        default:\r
-          Event.observe(element, 'change', this.onElementEvent.bind(this));\r
-          break;\r
-      }\r
-    }\r
-  }\r
-}\r
-\r
-Form.Element.EventObserver = Class.create();\r
-Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {\r
-  getValue: function() {\r
-    return Form.Element.getValue(this.element);\r
-  }\r
-});\r
-\r
-Form.EventObserver = Class.create();\r
-Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {\r
-  getValue: function() {\r
-    return Form.serialize(this.element);\r
-  }\r
-});\r
-if (!window.Event) {\r
-  var Event = new Object();\r
-}\r
-\r
-Object.extend(Event, {\r
-  KEY_BACKSPACE: 8,\r
-  KEY_TAB:       9,\r
-  KEY_RETURN:   13,\r
-  KEY_ESC:      27,\r
-  KEY_LEFT:     37,\r
-  KEY_UP:       38,\r
-  KEY_RIGHT:    39,\r
-  KEY_DOWN:     40,\r
-  KEY_DELETE:   46,\r
-  KEY_HOME:     36,\r
-  KEY_END:      35,\r
-  KEY_PAGEUP:   33,\r
-  KEY_PAGEDOWN: 34,\r
-\r
-  element: function(event) {\r
-    return event.target || event.srcElement;\r
-  },\r
-\r
-  isLeftClick: function(event) {\r
-    return (((event.which) && (event.which == 1)) ||\r
-            ((event.button) && (event.button == 1)));\r
-  },\r
-\r
-  pointerX: function(event) {\r
-    return event.pageX || (event.clientX +\r
-      (document.documentElement.scrollLeft || document.body.scrollLeft));\r
-  },\r
-\r
-  pointerY: function(event) {\r
-    return event.pageY || (event.clientY +\r
-      (document.documentElement.scrollTop || document.body.scrollTop));\r
-  },\r
-\r
-  stop: function(event) {\r
-    if (event.preventDefault) {\r
-      event.preventDefault();\r
-      event.stopPropagation();\r
-    } else {\r
-      event.returnValue = false;\r
-      event.cancelBubble = true;\r
-    }\r
-  },\r
-\r
-  // find the first node with the given tagName, starting from the\r
-  // node the event was triggered on; traverses the DOM upwards\r
-  findElement: function(event, tagName) {\r
-    var element = Event.element(event);\r
-    while (element.parentNode && (!element.tagName ||\r
-        (element.tagName.toUpperCase() != tagName.toUpperCase())))\r
-      element = element.parentNode;\r
-    return element;\r
-  },\r
-\r
-  observers: false,\r
-\r
-  _observeAndCache: function(element, name, observer, useCapture) {\r
-    if (!this.observers) this.observers = [];\r
-    if (element.addEventListener) {\r
-      this.observers.push([element, name, observer, useCapture]);\r
-      element.addEventListener(name, observer, useCapture);\r
-    } else if (element.attachEvent) {\r
-      this.observers.push([element, name, observer, useCapture]);\r
-      element.attachEvent('on' + name, observer);\r
-    }\r
-  },\r
-\r
-  unloadCache: function() {\r
-    if (!Event.observers) return;\r
-    for (var i = 0; i < Event.observers.length; i++) {\r
-      Event.stopObserving.apply(this, Event.observers[i]);\r
-      Event.observers[i][0] = null;\r
-    }\r
-    Event.observers = false;\r
-  },\r
-\r
-  observe: function(element, name, observer, useCapture) {\r
-    element = $(element);\r
-    useCapture = useCapture || false;\r
-\r
-    if (name == 'keypress' &&\r
-        (navigator.appVersion.match(/Konqueror|Safari|KHTML/)\r
-        || element.attachEvent))\r
-      name = 'keydown';\r
-\r
-    Event._observeAndCache(element, name, observer, useCapture);\r
-  },\r
-\r
-  stopObserving: function(element, name, observer, useCapture) {\r
-    element = $(element);\r
-    useCapture = useCapture || false;\r
-\r
-    if (name == 'keypress' &&\r
-        (navigator.appVersion.match(/Konqueror|Safari|KHTML/)\r
-        || element.detachEvent))\r
-      name = 'keydown';\r
-\r
-    if (element.removeEventListener) {\r
-      element.removeEventListener(name, observer, useCapture);\r
-    } else if (element.detachEvent) {\r
-      try {\r
-        element.detachEvent('on' + name, observer);\r
-      } catch (e) {}\r
-    }\r
-  }\r
-});\r
-\r
-/* prevent memory leaks in IE */\r
-if (navigator.appVersion.match(/\bMSIE\b/))\r
-  Event.observe(window, 'unload', Event.unloadCache, false);\r
-var Position = {\r
-  // set to true if needed, warning: firefox performance problems\r
-  // NOT neeeded for page scrolling, only if draggable contained in\r
-  // scrollable elements\r
-  includeScrollOffsets: false,\r
-\r
-  // must be called before calling withinIncludingScrolloffset, every time the\r
-  // page is scrolled\r
-  prepare: function() {\r
-    this.deltaX =  window.pageXOffset\r
-                || document.documentElement.scrollLeft\r
-                || document.body.scrollLeft\r
-                || 0;\r
-    this.deltaY =  window.pageYOffset\r
-                || document.documentElement.scrollTop\r
-                || document.body.scrollTop\r
-                || 0;\r
-  },\r
-\r
-  realOffset: function(element) {\r
-    var valueT = 0, valueL = 0;\r
-    do {\r
-      valueT += element.scrollTop  || 0;\r
-      valueL += element.scrollLeft || 0;\r
-      element = element.parentNode;\r
-    } while (element);\r
-    return [valueL, valueT];\r
-  },\r
-\r
-  cumulativeOffset: function(element) {\r
-    var valueT = 0, valueL = 0;\r
-    do {\r
-      valueT += element.offsetTop  || 0;\r
-      valueL += element.offsetLeft || 0;\r
-      element = element.offsetParent;\r
-    } while (element);\r
-    return [valueL, valueT];\r
-  },\r
-\r
-  positionedOffset: function(element) {\r
-    var valueT = 0, valueL = 0;\r
-    do {\r
-      valueT += element.offsetTop  || 0;\r
-      valueL += element.offsetLeft || 0;\r
-      element = element.offsetParent;\r
-      if (element) {\r
-        p = Element.getStyle(element, 'position');\r
-        if (p == 'relative' || p == 'absolute') break;\r
-      }\r
-    } while (element);\r
-    return [valueL, valueT];\r
-  },\r
-\r
-  offsetParent: function(element) {\r
-    if (element.offsetParent) return element.offsetParent;\r
-    if (element == document.body) return element;\r
-\r
-    while ((element = element.parentNode) && element != document.body)\r
-      if (Element.getStyle(element, 'position') != 'static')\r
-        return element;\r
-\r
-    return document.body;\r
-  },\r
-\r
-  // caches x/y coordinate pair to use with overlap\r
-  within: function(element, x, y) {\r
-    if (this.includeScrollOffsets)\r
-      return this.withinIncludingScrolloffsets(element, x, y);\r
-    this.xcomp = x;\r
-    this.ycomp = y;\r
-    this.offset = this.cumulativeOffset(element);\r
-\r
-    return (y >= this.offset[1] &&\r
-            y <  this.offset[1] + element.offsetHeight &&\r
-            x >= this.offset[0] &&\r
-            x <  this.offset[0] + element.offsetWidth);\r
-  },\r
-\r
-  withinIncludingScrolloffsets: function(element, x, y) {\r
-    var offsetcache = this.realOffset(element);\r
-\r
-    this.xcomp = x + offsetcache[0] - this.deltaX;\r
-    this.ycomp = y + offsetcache[1] - this.deltaY;\r
-    this.offset = this.cumulativeOffset(element);\r
-\r
-    return (this.ycomp >= this.offset[1] &&\r
-            this.ycomp <  this.offset[1] + element.offsetHeight &&\r
-            this.xcomp >= this.offset[0] &&\r
-            this.xcomp <  this.offset[0] + element.offsetWidth);\r
-  },\r
-\r
-  // within must be called directly before\r
-  overlap: function(mode, element) {\r
-    if (!mode) return 0;\r
-    if (mode == 'vertical')\r
-      return ((this.offset[1] + element.offsetHeight) - this.ycomp) /\r
-        element.offsetHeight;\r
-    if (mode == 'horizontal')\r
-      return ((this.offset[0] + element.offsetWidth) - this.xcomp) /\r
-        element.offsetWidth;\r
-  },\r
-\r
-  page: function(forElement) {\r
-    var valueT = 0, valueL = 0;\r
-\r
-    var element = forElement;\r
-    do {\r
-      valueT += element.offsetTop  || 0;\r
-      valueL += element.offsetLeft || 0;\r
-\r
-      // Safari fix\r
-      if (element.offsetParent==document.body)\r
-        if (Element.getStyle(element,'position')=='absolute') break;\r
-\r
-    } while (element = element.offsetParent);\r
-\r
-    element = forElement;\r
-    do {\r
-      if (!window.opera || element.tagName=='BODY') {\r
-        valueT -= element.scrollTop  || 0;\r
-        valueL -= element.scrollLeft || 0;\r
-      }\r
-    } while (element = element.parentNode);\r
-\r
-    return [valueL, valueT];\r
-  },\r
-\r
-  clone: function(source, target) {\r
-    var options = Object.extend({\r
-      setLeft:    true,\r
-      setTop:     true,\r
-      setWidth:   true,\r
-      setHeight:  true,\r
-      offsetTop:  0,\r
-      offsetLeft: 0\r
-    }, arguments[2] || {})\r
-\r
-    // find page position of source\r
-    source = $(source);\r
-    var p = Position.page(source);\r
-\r
-    // find coordinate system to use\r
-    target = $(target);\r
-    var delta = [0, 0];\r
-    var parent = null;\r
-    // delta [0,0] will do fine with position: fixed elements,\r
-    // position:absolute needs offsetParent deltas\r
-    if (Element.getStyle(target,'position') == 'absolute') {\r
-      parent = Position.offsetParent(target);\r
-      delta = Position.page(parent);\r
-    }\r
-\r
-    // correct by body offsets (fixes Safari)\r
-    if (parent == document.body) {\r
-      delta[0] -= document.body.offsetLeft;\r
-      delta[1] -= document.body.offsetTop;\r
-    }\r
-\r
-    // set position\r
-    if(options.setLeft)   target.style.left  = (p[0] - delta[0] + options.offsetLeft) + 'px';\r
-    if(options.setTop)    target.style.top   = (p[1] - delta[1] + options.offsetTop) + 'px';\r
-    if(options.setWidth)  target.style.width = source.offsetWidth + 'px';\r
-    if(options.setHeight) target.style.height = source.offsetHeight + 'px';\r
-  },\r
-\r
-  absolutize: function(element) {\r
-    element = $(element);\r
-    if (element.style.position == 'absolute') return;\r
-    Position.prepare();\r
-\r
-    var offsets = Position.positionedOffset(element);\r
-    var top     = offsets[1];\r
-    var left    = offsets[0];\r
-    var width   = element.clientWidth;\r
-    var height  = element.clientHeight;\r
-\r
-    element._originalLeft   = left - parseFloat(element.style.left  || 0);\r
-    element._originalTop    = top  - parseFloat(element.style.top || 0);\r
-    element._originalWidth  = element.style.width;\r
-    element._originalHeight = element.style.height;\r
-\r
-    element.style.position = 'absolute';\r
-    element.style.top    = top + 'px';;\r
-    element.style.left   = left + 'px';;\r
-    element.style.width  = width + 'px';;\r
-    element.style.height = height + 'px';;\r
-  },\r
-\r
-  relativize: function(element) {\r
-    element = $(element);\r
-    if (element.style.position == 'relative') return;\r
-    Position.prepare();\r
-\r
-    element.style.position = 'relative';\r
-    var top  = parseFloat(element.style.top  || 0) - (element._originalTop || 0);\r
-    var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);\r
-\r
-    element.style.top    = top + 'px';\r
-    element.style.left   = left + 'px';\r
-    element.style.height = element._originalHeight;\r
-    element.style.width  = element._originalWidth;\r
-  }\r
-}\r
-\r
-// Safari returns margins on body which is incorrect if the child is absolutely\r
-// positioned.  For performance reasons, redefine Position.cumulativeOffset for\r
-// KHTML/WebKit only.\r
-if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) {\r
-  Position.cumulativeOffset = function(element) {\r
-    var valueT = 0, valueL = 0;\r
-    do {\r
-      valueT += element.offsetTop  || 0;\r
-      valueL += element.offsetLeft || 0;\r
-      if (element.offsetParent == document.body)\r
-        if (Element.getStyle(element, 'position') == 'absolute') break;\r
-\r
-      element = element.offsetParent;\r
-    } while (element);\r
-\r
-    return [valueL, valueT];\r
-  }\r
-}\r
-\r
-Element.addMethods();
\ No newline at end of file
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/resize.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/resize.js
deleted file mode 100644 (file)
index 3a936d0..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-// Copyright (c) 2005 Thomas Fakes (http://craz8.com)\r
-// \r
-// This code is substantially based on code from script.aculo.us which has the \r
-// following copyright and permission notice\r
-//\r
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-var Resizeable = Class.create();\r
-Resizeable.prototype = {\r
-  initialize: function(element) {\r
-    var options = Object.extend({\r
-      top: 6,\r
-      bottom: 6,\r
-      left: 6,\r
-      right: 6,\r
-      minHeight: 0,\r
-      minWidth: 0,\r
-      zindex: 1000,\r
-      resize: null\r
-    }, arguments[1] || {});\r
-\r
-    this.element      = $(element);\r
-    this.handle          = this.element;\r
-\r
-    Element.makePositioned(this.element); // fix IE    \r
-\r
-    this.options      = options;\r
-\r
-    this.active       = false;\r
-    this.resizing     = false;   \r
-    this.currentDirection = '';\r
-\r
-    this.eventMouseDown = this.startResize.bindAsEventListener(this);\r
-    this.eventMouseUp   = this.endResize.bindAsEventListener(this);\r
-    this.eventMouseMove = this.update.bindAsEventListener(this);\r
-    this.eventCursorCheck = this.cursor.bindAsEventListener(this);\r
-    this.eventKeypress  = this.keyPress.bindAsEventListener(this);\r
-    \r
-    this.registerEvents();\r
-  },\r
-  destroy: function() {\r
-    Event.stopObserving(this.handle, "mousedown", this.eventMouseDown);\r
-    this.unregisterEvents();\r
-  },\r
-  registerEvents: function() {\r
-    Event.observe(document, "mouseup", this.eventMouseUp);\r
-    Event.observe(document, "mousemove", this.eventMouseMove);\r
-    Event.observe(document, "keypress", this.eventKeypress);\r
-    Event.observe(this.handle, "mousedown", this.eventMouseDown);\r
-    Event.observe(this.element, "mousemove", this.eventCursorCheck);\r
-  },\r
-  unregisterEvents: function() {\r
-    //if(!this.active) return;\r
-    //Event.stopObserving(document, "mouseup", this.eventMouseUp);\r
-    //Event.stopObserving(document, "mousemove", this.eventMouseMove);\r
-    //Event.stopObserving(document, "mousemove", this.eventCursorCheck);\r
-    //Event.stopObserving(document, "keypress", this.eventKeypress);\r
-  },\r
-  startResize: function(event) {\r
-    if(Event.isLeftClick(event)) {\r
-      \r
-      // abort on form elements, fixes a Firefox issue\r
-      var src = Event.element(event);\r
-      if(src.tagName && (\r
-        src.tagName=='INPUT' ||\r
-        src.tagName=='SELECT' ||\r
-        src.tagName=='BUTTON' ||\r
-        src.tagName=='TEXTAREA')) return;\r
-\r
-         var dir = this.directions(event);\r
-         if (dir.length > 0) {      \r
-             this.active = true;\r
-         var offsets = Position.cumulativeOffset(this.element);\r
-             this.startTop = offsets[1];\r
-             this.startLeft = offsets[0];\r
-             this.startWidth = parseInt(Element.getStyle(this.element, 'width'));\r
-             this.startHeight = parseInt(Element.getStyle(this.element, 'height'));\r
-             this.startX = event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;\r
-             this.startY = event.clientY + document.body.scrollTop + document.documentElement.scrollTop;\r
-             \r
-             this.currentDirection = dir;\r
-             Event.stop(event);\r
-         }\r
-    }\r
-  },\r
-  finishResize: function(event, success) {\r
-    // this.unregisterEvents();\r
-\r
-    this.active = false;\r
-    this.resizing = false;\r
-\r
-    if(this.options.zindex)\r
-      this.element.style.zIndex = this.originalZ;\r
-      \r
-    if (this.options.resize) {\r
-       this.options.resize(this.element);\r
-    }\r
-  },\r
-  keyPress: function(event) {\r
-    if(this.active) {\r
-      if(event.keyCode==Event.KEY_ESC) {\r
-        this.finishResize(event, false);\r
-        Event.stop(event);\r
-      }\r
-    }\r
-  },\r
-  endResize: function(event) {\r
-    if(this.active && this.resizing) {\r
-      this.finishResize(event, true);\r
-      Event.stop(event);\r
-    }\r
-    this.active = false;\r
-    this.resizing = false;\r
-  },\r
-  draw: function(event) {\r
-    var pointer = [Event.pointerX(event), Event.pointerY(event)];\r
-    var style = this.element.style;\r
-    if (this.currentDirection.indexOf('n') != -1) {\r
-       var pointerMoved = this.startY - pointer[1];\r
-       var margin = Element.getStyle(this.element, 'margin-top') || "0";\r
-       var newHeight = this.startHeight + pointerMoved;\r
-       if (newHeight > this.options.minHeight) {\r
-               style.height = newHeight + "px";\r
-               style.top = (this.startTop - pointerMoved - parseInt(margin)) + "px";\r
-       }\r
-    }\r
-    if (this.currentDirection.indexOf('w') != -1) {\r
-       var pointerMoved = this.startX - pointer[0];\r
-       var margin = Element.getStyle(this.element, 'margin-left') || "0";\r
-       var newWidth = this.startWidth + pointerMoved;\r
-       if (newWidth > this.options.minWidth) {\r
-               style.left = (this.startLeft - pointerMoved - parseInt(margin))  + "px";\r
-               style.width = newWidth + "px";\r
-       }\r
-    }\r
-    if (this.currentDirection.indexOf('s') != -1) {\r
-       var newHeight = this.startHeight + pointer[1] - this.startY;\r
-       if (newHeight > this.options.minHeight) {\r
-               style.height = newHeight + "px";\r
-       }\r
-    }\r
-    if (this.currentDirection.indexOf('e') != -1) {\r
-       var newWidth = this.startWidth + pointer[0] - this.startX;\r
-       if (newWidth > this.options.minWidth) {\r
-               style.width = newWidth + "px";\r
-       }\r
-    }\r
-    if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering\r
-  },\r
-  between: function(val, low, high) {\r
-       return (val >= low && val < high);\r
-  },\r
-  directions: function(event) {\r
-    var pointer = [Event.pointerX(event), Event.pointerY(event)];\r
-    var offsets = Position.cumulativeOffset(this.element);\r
-    \r
-       var cursor = '';\r
-       if (this.between(pointer[1] - offsets[1], 0, this.options.top)) cursor += 'n';\r
-       if (this.between((offsets[1] + this.element.offsetHeight) - pointer[1], 0, this.options.bottom)) cursor += 's';\r
-       if (this.between(pointer[0] - offsets[0], 0, this.options.left)) cursor += 'w';\r
-       if (this.between((offsets[0] + this.element.offsetWidth) - pointer[0], 0, this.options.right)) cursor += 'e';\r
-\r
-       return cursor;\r
-  },\r
-  cursor: function(event) {\r
-       var cursor = this.directions(event);\r
-       if (cursor.length > 0) {\r
-               cursor += '-resize';\r
-       } else {\r
-               cursor = '';\r
-       }\r
-       this.element.style.cursor = cursor;             \r
-  },\r
-  update: function(event) {\r
-   if(this.active) {\r
-      if(!this.resizing) {\r
-        var style = this.element.style;\r
-        this.resizing = true;\r
-        \r
-        if(Element.getStyle(this.element,'position')=='') \r
-          style.position = "relative";\r
-        \r
-        if(this.options.zindex) {\r
-          this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0);\r
-          style.zIndex = this.options.zindex;\r
-        }\r
-      }\r
-      this.draw(event);\r
-\r
-      // fix AppleWebKit rendering\r
-      if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0); \r
-      Event.stop(event);\r
-      return false;\r
-   }\r
-  }\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/scriptaculous.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/scriptaculous.js
deleted file mode 100644 (file)
index af8a508..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// script.aculo.us scriptaculous.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006\r
-\r
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-var Scriptaculous = {\r
-  Version: '1.6.4',\r
-  require: function(libraryName) {\r
-    // inserting via DOM fails in Safari 2.0, so brute force approach\r
-    document.write('<script type="text/javascript" src="'+libraryName+'"></script>');\r
-  },\r
-  load: function() {\r
-    if((typeof Prototype=='undefined') || \r
-       (typeof Element == 'undefined') || \r
-       (typeof Element.Methods=='undefined') ||\r
-       parseFloat(Prototype.Version.split(".")[0] + "." +\r
-                  Prototype.Version.split(".")[1]) < 1.5)\r
-       throw("script.aculo.us requires the Prototype JavaScript framework >= 1.5.0");\r
-    \r
-    $A(document.getElementsByTagName("script")).findAll( function(s) {\r
-      return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/))\r
-    }).each( function(s) {\r
-      var path = s.src.replace(/scriptaculous\.js(\?.*)?$/,'');\r
-      var includes = s.src.match(/\?.*load=([a-z,]*)/);\r
-      (includes ? includes[1] : 'builder,effects,dragdrop,controls,slider').split(',').each(\r
-       function(include) { Scriptaculous.require(path+include+'.js') });\r
-    });\r
-  }\r
-}\r
-\r
-Scriptaculous.load();
\ No newline at end of file
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/slider.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/slider.js
deleted file mode 100644 (file)
index b90f083..0000000
+++ /dev/null
@@ -1,294 +0,0 @@
-// script.aculo.us slider.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006\r
-\r
-// Copyright (c) 2005 Marty Haught, Thomas Fuchs \r
-//\r
-// See http://script.aculo.us for more info\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-if(!Control) var Control = {};\r
-Control.Slider = Class.create();\r
-\r
-// options:\r
-//  axis: 'vertical', or 'horizontal' (default)\r
-//\r
-// callbacks:\r
-//  onChange(value)\r
-//  onSlide(value)\r
-Control.Slider.prototype = {\r
-  initialize: function(handle, track, options) {\r
-    var slider = this;\r
-    \r
-    if(handle instanceof Array) {\r
-      this.handles = handle.collect( function(e) { return $(e) });\r
-    } else {\r
-      this.handles = [$(handle)];\r
-    }\r
-    \r
-    this.track   = $(track);\r
-    this.options = options || {};\r
-\r
-    this.axis      = this.options.axis || 'horizontal';\r
-    this.increment = this.options.increment || 1;\r
-    this.step      = parseInt(this.options.step || '1');\r
-    this.range     = this.options.range || $R(0,1);\r
-    \r
-    this.value     = 0; // assure backwards compat\r
-    this.values    = this.handles.map( function() { return 0 });\r
-    this.spans     = this.options.spans ? this.options.spans.map(function(s){ return $(s) }) : false;\r
-    this.options.startSpan = $(this.options.startSpan || null);\r
-    this.options.endSpan   = $(this.options.endSpan || null);\r
-\r
-    this.restricted = this.options.restricted || false;\r
-\r
-    this.maximum   = this.options.maximum || this.range.end;\r
-    this.minimum   = this.options.minimum || this.range.start;\r
-\r
-    // Will be used to align the handle onto the track, if necessary\r
-    this.alignX = parseInt(this.options.alignX || '0');\r
-    this.alignY = parseInt(this.options.alignY || '0');\r
-    \r
-    this.trackLength = this.maximumOffset() - this.minimumOffset();\r
-\r
-    this.handleLength = this.isVertical() ? \r
-      (this.handles[0].offsetHeight != 0 ? \r
-        this.handles[0].offsetHeight : this.handles[0].style.height.replace(/px$/,"")) : \r
-      (this.handles[0].offsetWidth != 0 ? this.handles[0].offsetWidth : \r
-        this.handles[0].style.width.replace(/px$/,""));\r
-\r
-    this.active   = false;\r
-    this.dragging = false;\r
-    this.disabled = false;\r
-\r
-    if(this.options.disabled) this.setDisabled();\r
-\r
-    // Allowed values array\r
-    this.allowedValues = this.options.values ? this.options.values.sortBy(Prototype.K) : false;\r
-    if(this.allowedValues) {\r
-      this.minimum = this.allowedValues.min();\r
-      this.maximum = this.allowedValues.max();\r
-    }\r
-\r
-    this.eventMouseDown = this.startDrag.bindAsEventListener(this);\r
-    this.eventMouseUp   = this.endDrag.bindAsEventListener(this);\r
-    this.eventMouseMove = this.update.bindAsEventListener(this);\r
-\r
-    // Initialize handles in reverse (make sure first handle is active)\r
-    this.handles.each( function(h,i) {\r
-      i = slider.handles.length-1-i;\r
-      slider.setValue(parseFloat(\r
-        (slider.options.sliderValue instanceof Array ? \r
-          slider.options.sliderValue[i] : slider.options.sliderValue) || \r
-         slider.range.start), i);\r
-      Element.makePositioned(h); // fix IE\r
-      Event.observe(h, "mousedown", slider.eventMouseDown);\r
-    });\r
-    \r
-    Event.observe(this.track, "mousedown", this.eventMouseDown);\r
-    Event.observe(document, "mouseup", this.eventMouseUp);\r
-    Event.observe(document, "mousemove", this.eventMouseMove);\r
-    \r
-    this.initialized = true;\r
-  },\r
-  dispose: function() {\r
-    var slider = this;    \r
-    Event.stopObserving(this.track, "mousedown", this.eventMouseDown);\r
-    Event.stopObserving(document, "mouseup", this.eventMouseUp);\r
-    Event.stopObserving(document, "mousemove", this.eventMouseMove);\r
-    this.handles.each( function(h) {\r
-      Event.stopObserving(h, "mousedown", slider.eventMouseDown);\r
-    });\r
-  },\r
-  setDisabled: function(){\r
-    this.disabled = true;\r
-  },\r
-  setEnabled: function(){\r
-    this.disabled = false;\r
-  },  \r
-  getNearestValue: function(value){\r
-    if(this.allowedValues){\r
-      if(value >= this.allowedValues.max()) return(this.allowedValues.max());\r
-      if(value <= this.allowedValues.min()) return(this.allowedValues.min());\r
-      \r
-      var offset = Math.abs(this.allowedValues[0] - value);\r
-      var newValue = this.allowedValues[0];\r
-      this.allowedValues.each( function(v) {\r
-        var currentOffset = Math.abs(v - value);\r
-        if(currentOffset <= offset){\r
-          newValue = v;\r
-          offset = currentOffset;\r
-        } \r
-      });\r
-      return newValue;\r
-    }\r
-    if(value > this.range.end) return this.range.end;\r
-    if(value < this.range.start) return this.range.start;\r
-    return value;\r
-  },\r
-  setValue: function(sliderValue, handleIdx){\r
-    if(!this.active) {\r
-      this.activeHandleIdx = handleIdx || 0;\r
-      this.activeHandle    = this.handles[this.activeHandleIdx];\r
-      this.updateStyles();\r
-    }\r
-    handleIdx = handleIdx || this.activeHandleIdx || 0;\r
-    if(this.initialized && this.restricted) {\r
-      if((handleIdx>0) && (sliderValue<this.values[handleIdx-1]))\r
-        sliderValue = this.values[handleIdx-1];\r
-      if((handleIdx < (this.handles.length-1)) && (sliderValue>this.values[handleIdx+1]))\r
-        sliderValue = this.values[handleIdx+1];\r
-    }\r
-    sliderValue = this.getNearestValue(sliderValue);\r
-    this.values[handleIdx] = sliderValue;\r
-    this.value = this.values[0]; // assure backwards compat\r
-    \r
-    this.handles[handleIdx].style[this.isVertical() ? 'top' : 'left'] = \r
-      this.translateToPx(sliderValue);\r
-    \r
-    this.drawSpans();\r
-    if(!this.dragging || !this.event) this.updateFinished();\r
-  },\r
-  setValueBy: function(delta, handleIdx) {\r
-    this.setValue(this.values[handleIdx || this.activeHandleIdx || 0] + delta, \r
-      handleIdx || this.activeHandleIdx || 0);\r
-  },\r
-  translateToPx: function(value) {\r
-    return Math.round(\r
-      ((this.trackLength-this.handleLength)/(this.range.end-this.range.start)) * \r
-      (value - this.range.start)) + "px";\r
-  },\r
-  translateToValue: function(offset) {\r
-    return ((offset/(this.trackLength-this.handleLength) * \r
-      (this.range.end-this.range.start)) + this.range.start);\r
-  },\r
-  getRange: function(range) {\r
-    var v = this.values.sortBy(Prototype.K); \r
-    range = range || 0;\r
-    return $R(v[range],v[range+1]);\r
-  },\r
-  minimumOffset: function(){\r
-    return(this.isVertical() ? this.alignY : this.alignX);\r
-  },\r
-  maximumOffset: function(){\r
-    return(this.isVertical() ? \r
-      (this.track.offsetHeight != 0 ? this.track.offsetHeight :\r
-        this.track.style.height.replace(/px$/,"")) - this.alignY : \r
-      (this.track.offsetWidth != 0 ? this.track.offsetWidth : \r
-        this.track.style.width.replace(/px$/,"")) - this.alignY);\r
-  },  \r
-  isVertical:  function(){\r
-    return (this.axis == 'vertical');\r
-  },\r
-  drawSpans: function() {\r
-    var slider = this;\r
-    if(this.spans)\r
-      $R(0, this.spans.length-1).each(function(r) { slider.setSpan(slider.spans[r], slider.getRange(r)) });\r
-    if(this.options.startSpan)\r
-      this.setSpan(this.options.startSpan,\r
-        $R(0, this.values.length>1 ? this.getRange(0).min() : this.value ));\r
-    if(this.options.endSpan)\r
-      this.setSpan(this.options.endSpan, \r
-        $R(this.values.length>1 ? this.getRange(this.spans.length-1).max() : this.value, this.maximum));\r
-  },\r
-  setSpan: function(span, range) {\r
-    if(this.isVertical()) {\r
-      span.style.top = this.translateToPx(range.start);\r
-      span.style.height = this.translateToPx(range.end - range.start + this.range.start);\r
-    } else {\r
-      span.style.left = this.translateToPx(range.start);\r
-      span.style.width = this.translateToPx(range.end - range.start + this.range.start);\r
-    }\r
-  },\r
-  updateStyles: function() {\r
-    this.handles.each( function(h){ Element.removeClassName(h, 'selected') });\r
-    Element.addClassName(this.activeHandle, 'selected');\r
-  },\r
-  startDrag: function(event) {\r
-    if(Event.isLeftClick(event)) {\r
-      if(!this.disabled){\r
-        this.active = true;\r
-        \r
-        var handle = Event.element(event);\r
-        var pointer  = [Event.pointerX(event), Event.pointerY(event)];\r
-        var track = handle;\r
-        if(track==this.track) {\r
-          var offsets  = Position.cumulativeOffset(this.track); \r
-          this.event = event;\r
-          this.setValue(this.translateToValue( \r
-           (this.isVertical() ? pointer[1]-offsets[1] : pointer[0]-offsets[0])-(this.handleLength/2)\r
-          ));\r
-          var offsets  = Position.cumulativeOffset(this.activeHandle);\r
-          this.offsetX = (pointer[0] - offsets[0]);\r
-          this.offsetY = (pointer[1] - offsets[1]);\r
-        } else {\r
-          // find the handle (prevents issues with Safari)\r
-          while((this.handles.indexOf(handle) == -1) && handle.parentNode) \r
-            handle = handle.parentNode;\r
-        \r
-          this.activeHandle    = handle;\r
-          this.activeHandleIdx = this.handles.indexOf(this.activeHandle);\r
-          this.updateStyles();\r
-        \r
-          var offsets  = Position.cumulativeOffset(this.activeHandle);\r
-          this.offsetX = (pointer[0] - offsets[0]);\r
-          this.offsetY = (pointer[1] - offsets[1]);\r
-        }\r
-      }\r
-      Event.stop(event);\r
-    }\r
-  },\r
-  update: function(event) {\r
-   if(this.active) {\r
-      if(!this.dragging) this.dragging = true;\r
-      this.draw(event);\r
-      // fix AppleWebKit rendering\r
-      if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0);\r
-      Event.stop(event);\r
-   }\r
-  },\r
-  draw: function(event) {\r
-    var pointer = [Event.pointerX(event), Event.pointerY(event)];\r
-    var offsets = Position.cumulativeOffset(this.track);\r
-    pointer[0] -= this.offsetX + offsets[0];\r
-    pointer[1] -= this.offsetY + offsets[1];\r
-    this.event = event;\r
-    this.setValue(this.translateToValue( this.isVertical() ? pointer[1] : pointer[0] ));\r
-    if(this.initialized && this.options.onSlide)\r
-      this.options.onSlide(this.values.length>1 ? this.values : this.value, this);\r
-  },\r
-  endDrag: function(event) {\r
-    if(this.active && this.dragging) {\r
-      this.finishDrag(event, true);\r
-      Event.stop(event);\r
-    }\r
-    this.active = false;\r
-    this.dragging = false;\r
-  },  \r
-  finishDrag: function(event, success) {\r
-    this.active = false;\r
-    this.dragging = false;\r
-    this.updateFinished();\r
-  },\r
-  updateFinished: function() {\r
-    if(this.initialized && this.options.onChange) \r
-      this.options.onChange(this.values.length>1 ? this.values : this.value, this);\r
-    this.event = null;\r
-  }\r
-}
\ No newline at end of file
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/spinelz_util.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/spinelz_util.js
deleted file mode 100644 (file)
index cc869f6..0000000
+++ /dev/null
@@ -1,977 +0,0 @@
-// Copyright (c) 2006 spinelz.org (http://script.spinelz.org/)\r
-// \r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-/**\r
- * Element class\r
- */\r
-Object.extend(Element, {\r
-\r
-  getTagNodes: function(element, tree) {\r
-    return this.getElementsByNodeType(element, 1, tree);\r
-  },\r
-  \r
-  getTextNodes: function(element, tree) {\r
-    return this.getElementsByNodeType(element, 3, tree);\r
-  },\r
-  \r
-  getElementsByNodeType: function(element, nodeType, tree) {\r
-    \r
-    element = ($(element) || document.body);\r
-    var nodes = element.childNodes;\r
-    var result = [];\r
-    \r
-    for (var i = 0; i < nodes.length; i++) {\r
-      if (nodes[i].nodeType == nodeType)\r
-        result.push(nodes[i]);\r
-      if (tree && (nodes[i].nodeType == 1)) \r
-        result = result.concat(this.getElementsByNodeType(nodes[i], nodeType, tree));\r
-    }\r
-    \r
-    return result;\r
-  },\r
-  \r
-  getParentByClassName: function(className, element) {\r
-    var parent = element.parentNode;\r
-    if (!parent || (parent.tagName == 'BODY'))\r
-      return null;\r
-    else if (!parent.className) \r
-      return Element.getParentByClassName(className, parent);\r
-    else if (Element.hasClassName(parent, className))\r
-      return parent;\r
-    else\r
-      return Element.getParentByClassName(className, parent);\r
-  },\r
-  \r
-  getParentByTagName: function(tagNames, element) {\r
-    \r
-    var parent = element.parentNode;\r
-    if (parent.tagName == 'BODY')\r
-      return null;\r
-      \r
-    var index = tagNames.join('/').toUpperCase().indexOf(parent.tagName.toUpperCase(), 0);\r
-    if (index >= 0)\r
-      return parent;\r
-    else\r
-      return Element.getParentByTagName(tagNames, parent);\r
-  },\r
-  \r
-  getFirstElementByClassNames: function(element, classNames, tree) {\r
-    \r
-    if (!element || \r
-        !((typeof(classNames) == 'object') && (classNames.constructor == Array))) {\r
-      return;  \r
-    }\r
-  \r
-    element = (element || document.body);\r
-    var nodes = element.childNodes;\r
-    \r
-    for (var i = 0; i < nodes.length; i++) {\r
-      for (var j = 0; j < classNames.length; j++) {\r
-        if (nodes[i].nodeType != 1) {\r
-          continue;\r
-        \r
-        } else if (Element.hasClassName(nodes[i], classNames[j])) {\r
-          return nodes[i];\r
-        \r
-        } else if (tree) {\r
-          var result = this.getFirstElementByClassNames(nodes[i], classNames, tree);\r
-          if (result) return result;\r
-        }\r
-      }\r
-    }\r
-    \r
-    return;\r
-  },\r
-  \r
-  getElementsByClassNames: function(element, classNames) {\r
-    \r
-    if (!element || \r
-        !((typeof(classNames) == 'object') && (classNames.constructor == Array))) {\r
-      return;  \r
-    }\r
-  \r
-    var nodes = [];\r
-    classNames.each(function(c) {\r
-      nodes = nodes.concat(document.getElementsByClassName(c, element));\r
-    });\r
-    \r
-    return nodes;\r
-  },\r
-  \r
-  getWindowHeight: function() {\r
-      \r
-    if (window.innerHeight) {\r
-      return window.innerHeight; // Mozilla, Opera, NN4\r
-    } else if (document.documentElement && document.documentElement.offsetHeight){ // ?? IE\r
-      return document.documentElement.offsetHeight;\r
-    } else if (document.body && document.body.offsetHeight) {\r
-      return document.body.offsetHeight - 20;\r
-    }\r
-    return 0;\r
-  },\r
-  \r
-  getWindowWidth:function() {\r
-    \r
-    if(window.innerWidth) {\r
-      return window.innerWidth; // Mozilla, Opera, NN4\r
-    } else if (document.documentElement && document.documentElement.offsetWidth){ // ?? IE\r
-      return document.documentElement.offsetWidth - 20;\r
-    } else if (document.body && document.body.offsetWidth){\r
-      return document.body.offsetWidth - 20;\r
-    }\r
-    return 0;\r
-  },\r
-  \r
-  getMaxZindex: function(element) {\r
-    element = $(element);\r
-    if (!element) {\r
-      element = document.body;\r
-    }  \r
-    if (element.nodeType != 1) return 0;\r
-\r
-    var maxZindex = 0;\r
-    if (element.style) maxZindex = parseInt(Element.getStyle(element, "z-index"));  \r
-    if (isNaN(maxZindex)) maxZindex = 0;\r
-\r
-    var tmpZindex = 0;\r
-    var elements = element.childNodes;\r
-    for (var i = 0; i < elements.length; i++) {\r
-      if (elements[i] && elements[i].tagName) {\r
-        tmpZindex = Element.getMaxZindex(elements[i]);\r
-        if (maxZindex < tmpZindex) maxZindex = tmpZindex;\r
-      }\r
-    }\r
-\r
-    return maxZindex;\r
-  },\r
-\r
-  select: function(element, value) {\r
-    $A($(element).options).each(function(opt) {\r
-      if (opt.value == value) {\r
-        opt.selected = true;\r
-      } else {\r
-        opt.selected = false;\r
-      }\r
-    });\r
-  }\r
-});\r
-\r
-\r
-/**\r
- * Array\r
- */\r
-Object.extend(Array.prototype, {\r
-  insert : function(index, element) {\r
-    this.splice(index, 0 , element);\r
-  },\r
-  \r
-  remove : function(index) {\r
-    this.splice(index, 1);\r
-  }\r
-});\r
-\r
-\r
-/**\r
- * String\r
- */\r
-Object.extend(String.prototype, {\r
-  \r
-  getPrefix: function(delimiter) {\r
-  \r
-    if (!delimiter) delimiter = '_';\r
-    return this.split(delimiter)[0];\r
-  },\r
-  \r
-  getSuffix: function(delimiter) {\r
-    \r
-    if (!delimiter) delimiter = '_';\r
-    return this.split(delimiter).pop();\r
-  },\r
-\r
-  appendPrefix: function(prefix, delimiter) {\r
-  \r
-    if (!delimiter) delimiter = '_';\r
-    return this + delimiter + prefix;\r
-  },\r
-  \r
-  appendSuffix: function(suffix, delimiter) {\r
-  \r
-    if (!delimiter) delimiter = '_';\r
-    return this + delimiter + suffix;\r
-  },\r
-  \r
-  // for firefox\r
-  println: function() {\r
-    dump(this + '\n');\r
-  }\r
-});\r
-\r
-\r
-/**\r
- * CssUtil\r
- */\r
-var CssUtil = Class.create();\r
-\r
-CssUtil.appendPrefix = function(prefix, suffixes) {\r
-  var newHash = {};\r
-  $H(suffixes).each(function(pair) {\r
-    newHash[pair[0]] = prefix + suffixes[pair[0]];\r
-  });\r
-  return newHash;\r
-}\r
-\r
-CssUtil.getCssRules = function(sheet) {\r
-  return sheet.rules || sheet.cssRules;\r
-}\r
-\r
-CssUtil.getCssRuleBySelectorText = function(selector) {\r
-  var rule = null;\r
-  $A(document.styleSheets).each(function(s) {\r
-    var rules = CssUtil.getCssRules(s);\r
-    rule =  $A(rules).detect(function(r) {\r
-      if (!r.selectorText) return false;\r
-      return r.selectorText.toLowerCase() == selector.toLowerCase();\r
-    });\r
-    if (rule) throw $break;\r
-  });\r
-  return rule;\r
-}\r
-\r
-/*\r
-CssUtil.require = function(file, attributes, parent) {\r
-  var links = document.getElementsByTagName('link');\r
-  var regex = /^.*\.css/; \r
-  var match = file.match(regex)\r
-  alert(file)\r
-  regex.compile(match);\r
-\r
-  $A(links).each(function(ln) {\r
-    if (ln.href.match(regex)) {\r
-    }\r
-  });\r
-  \r
-//  attributes = Object.extend({\r
-//                  href: file, \r
-//                  media: 'screen', \r
-//                  rel: 'stylesheet', \r
-//                  type: 'text/css'}, attributes);\r
-//  var node = Builder.node('link', attributes);\r
-//  if (!parent) parent = document.body;\r
-//  parent.appendChild(node);\r
-//  alert(file);\r
-}\r
-*/\r
-\r
-CssUtil.prototype = {\r
-  \r
-  initialize: function(styles) {\r
-    if (!((typeof(styles) == 'object') && (styles.constructor == Array))) {\r
-      throw 'CssUtil#initialize: argument must be a Array object!';    \r
-    }\r
-    \r
-    this.styles = styles;\r
-  },\r
-\r
-  getClasses: function(key) {\r
-    return this.styles.collect(function(s) {\r
-      return s[key];\r
-    });\r
-  },\r
-  \r
-  joinClassNames: function(key) {\r
-    return this.getClasses(key).join(' ');\r
-  },\r
-  \r
-  addClassNames: function(element, key) {\r
-    this.styles.each(function(s) {\r
-      Element.addClassName(element, s[key]);\r
-    });\r
-  },\r
-  \r
-  removeClassNames: function(element, key) {\r
-    this.styles.each(function(s) {\r
-      Element.removeClassName(element, s[key]);\r
-    });\r
-  },\r
-  \r
-  refreshClassNames: function(element, key) {\r
-    element.className = '';\r
-    this.addClassNames(element, key);\r
-  },\r
-  \r
-  hasClassName: function(element, key) {\r
-    return this.styles.any(function(s) {\r
-      return Element.hasClassName(element, s[key]);\r
-    });\r
-  }\r
-}\r
-\r
-\r
-/** \r
- * Hover \r
- */\r
-var Hover = Class.create();\r
-Hover.prototype = {\r
-\r
-  initialize: function(element) {\r
-    this.options = Object.extend({\r
-      defaultClass: '',\r
-      hoverClass: '',\r
-      cssUtil: '',\r
-      list: false\r
-    }, arguments[1] || {});\r
-    \r
-    var element = $(element);\r
-    if (this.options.list) {\r
-      var nodes = element.childNodes;\r
-      for (var i = 0; i < nodes.length; i++) {\r
-        if (nodes[i].nodeType == 1) {\r
-          this.build(nodes[i]);\r
-        }\r
-      }\r
-    } else {\r
-      this.build(element);\r
-    }\r
-  },\r
-  \r
-  build: function(element) {\r
-    this.normal = this.getNormalClass(element);\r
-    this.hover = this.getHoverClass(this.normal);\r
-    \r
-    if (this.options.cssUtil) {\r
-      this.normal = this.options.cssUtil.joinClassNames(normal);\r
-      this.hover = this.options.cssUtil.joinClassNames(hover);    \r
-    }\r
-    this.setHoverEvent(element);\r
-  },\r
-\r
-  setHoverEvent: function(element) {\r
-    Event.observe(element, "mouseout", this.toggle.bindAsEventListener(this, element, this.normal));\r
-    Event.observe(element, "mouseover", this.toggle.bindAsEventListener(this, element, this.hover));\r
-  },\r
-\r
-  toggle: function(event, element, className) {\r
-    Event.stop(event);\r
-    element.className = className;\r
-  },\r
-\r
-  getNormalClass: function(element) {\r
-    var className = (this.options.defaultClass || element.className);\r
-    return (className || '');\r
-  },\r
-  \r
-  getHoverClass: function(defaultClass) {\r
-    var className = this.options.hoverClass;\r
-    if (!className) {\r
-      className = defaultClass.split(' ').collect(function(c) {\r
-        return c + 'Hover';\r
-      }).join(' ');\r
-    }  \r
-     return className;\r
-  }\r
-}\r
-\r
-\r
-/**\r
- * Date\r
- */\r
-Object.extend(Date.prototype, {\r
-  msPerDay: function() {\r
-    return 24 * 60 * 60 * 1000;\r
-  },\r
-\r
-  advance: function(options) {\r
-    return new Date(this.getTime() + this.msPerDay() * options.days);\r
-  },\r
-\r
-  days: function() {\r
-    var date = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);\r
-    return Math.round(date.getTime() / this.msPerDay());\r
-  },\r
-\r
-  toHash: function() {\r
-    return {\r
-      year:  this.getFullYear(),\r
-      month: this.getMonth(),\r
-      day:   this.getDate(),\r
-      hour:  this.getHours(),\r
-      min:   this.getMinutes(),\r
-      sec:   this.getSeconds()\r
-    }\r
-  },\r
-\r
-  sameYear: function(date) {\r
-    return this.getFullYear() == date.getFullYear();\r
-  },\r
-\r
-  sameMonth: function(date) {\r
-    return this.sameYear(date) && this.getMonth() == date.getMonth();\r
-  },\r
-\r
-  sameDate: function(date) {\r
-    return this.sameYear(date) && this.sameMonth(date) && this.getDate() == date.getDate();\r
-  },\r
-\r
-  betweenDate: function(start, finish) {\r
-    var myDays = this.days();\r
-    return (start.days() <= myDays && myDays <= finish.days());\r
-  },\r
-\r
-  betweenTime: function(start, finish) {\r
-    var myTime = this.getTime();\r
-    return (start.getTime() <= myTime && myTime <= finish.getTime());\r
-  }\r
-});\r
-\r
-\r
-/**\r
- * DateUtil\r
- */\r
-var DateUtil = {\r
-\r
-  dayOfWeek: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\r
-\r
-  months: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\r
-\r
-  daysOfMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\r
-\r
-  numberOfDays: function(start, finish) {\r
-    return finish.days() - start.days();\r
-  },\r
-\r
-  isLeapYear: function(year) {\r
-    if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))\r
-      return true;\r
-    return false;\r
-  }, \r
-\r
-  nextDate: function(date) {\r
-    return new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1);\r
-  },\r
-\r
-  previousDate: function(date) {\r
-    return new Date(date.getFullYear(), date.getMonth(), date.getDate() - 1);\r
-  },\r
-  \r
-  afterDays: function(date, after) {\r
-    return new Date(date.getFullYear(), date.getMonth(), date.getDate() + after);\r
-  },\r
-  \r
-  getLastDate: function(year, month) {\r
-    var last = this.daysOfMonth[month];\r
-    if ((month == 1) && this.isLeapYear(year)) {\r
-      return new Date(year, month, last + 1);\r
-    }\r
-    return new Date(year, month, last);\r
-  },\r
-  \r
-  getFirstDate: function(year, month) {\r
-    if (year.constructor == Date) {\r
-      return new Date(year.getFullYear(), year.getMonth(), 1);\r
-    }\r
-    return new Date(year, month, 1);\r
-  },\r
-\r
-  getWeekTurn: function(date, firstDWeek) {\r
-    var limit = 6 - firstDWeek + 1;\r
-    var turn = 0;\r
-    while (limit < date) {\r
-      date -= 7;\r
-      turn++;\r
-    }\r
-    return turn;\r
-  },\r
-\r
-  toDateString: function(date) {\r
-    return date.toDateString();\r
-  },\r
-  \r
-  toLocaleDateString: function(date) {\r
-    return date.toLocaleDateString();\r
-  },\r
-  \r
-  simpleFormat: function(formatStr) {\r
-    return function(date) {\r
-      var formated = formatStr.replace(/M+/g, DateUtil.zerofill((date.getMonth() + 1).toString(), 2));\r
-      formated = formated.replace(/d+/g, DateUtil.zerofill(date.getDate().toString(), 2));\r
-      formated = formated.replace(/y{4}/g, date.getFullYear());\r
-      formated = formated.replace(/y{1,3}/g, new String(date.getFullYear()).substr(2));\r
-      formated = formated.replace(/E+/g, DateUtil.dayOfWeek[date.getDay()]);\r
-      \r
-      return formated;\r
-    }\r
-  },\r
-\r
-  zerofill: function(date,digit){\r
-    var result = date;\r
-    if(date.length < digit){\r
-      var tmp = digit - date.length;\r
-      for(i=0; i < tmp; i++){\r
-        result = "0" + result;\r
-      }\r
-    }\r
-    return result;\r
-  },\r
-\r
-  toDate: function(hash) {\r
-    return new Date(hash.year, hash.month, hash.day, hash.hour, hash.min, hash.sec || 0);\r
-  }\r
-}\r
-\r
-\r
-/**\r
- * ZindexManager\r
- */\r
-var ZindexManager = {\r
-  zIndex: 1000,\r
-\r
-  getIndex: function(zIndex) {\r
-    if (zIndex) {\r
-      if (isNaN(zIndex)) {\r
-        zIndex = Element.getMaxZindex() + 1;\r
-      } else if (ZindexManager.zIndex > zIndex) {\r
-        zIndex = ZindexManager.zIndex;\r
-      }\r
-    } else {\r
-      zIndex = ZindexManager.zIndex;\r
-    }\r
-    ZindexManager.zIndex = zIndex + 1;\r
-    return zIndex;\r
-  }\r
-}\r
-\r
-\r
-/**\r
- * Modal\r
- */\r
-var Modal = {\r
-  maskId:         'modalMask',\r
-  maskClass:      'modal_mask',\r
-  maskClassIE:    'modal_mask_ie',\r
-  element:        null,\r
-  snaps:          null,\r
-  listener:       null,\r
-  resizeListener: null,\r
-  cover:          null,\r
-  excepteds:      null,\r
-\r
-  mask: function(excepted) {\r
-    var options = Object.extend({\r
-      cssPrefix: 'custom_',\r
-      zIndex: null\r
-    }, arguments[1] || {});\r
-\r
-    if (Modal.element) {\r
-      Modal._snap(excepted);\r
-      Modal._rebuildMask();\r
-    } else {\r
-      Modal.snaps = [];\r
-      Modal.excepteds = [];\r
-      Modal._buildMask(options.cssPrefix);\r
-      Modal.cover = new IECover(Modal.element, {transparent: true});\r
-    }\r
-    Modal._setZindex(excepted, options.zIndex);\r
-    Modal._setFullSize();\r
-    if (!Modal.hasExcepted(excepted)) Modal.excepteds.push(excepted);\r
-  },\r
-\r
-  unmask: function() {\r
-    if (Modal.element) {\r
-      if (Modal.snaps.length == 0) {\r
-        Element.hide(Modal.element);\r
-        Modal._removeEvent();\r
-        Modal.excepteds = [];\r
-        Element.remove(Modal.element);\r
-        Modal.element = null;\r
-      } else {\r
-        Element.setStyle(Modal.element, {zIndex: Modal.snaps.pop()});\r
-        Modal.excepteds.pop();\r
-      }\r
-    }\r
-  },\r
-\r
-  _addEvent: function() {\r
-    if (!Modal.listener) {\r
-      Modal.listener = Modal._handleEvent.bindAsEventListener();\r
-      Modal.resizeListener = Modal._onResize.bindAsEventListener();\r
-    }\r
-    Event.observe(document, "keypress", Modal.listener);\r
-    Event.observe(document, "keydown", Modal.listener);\r
-    Event.observe(document, "keyup", Modal.listener);\r
-    Event.observe(document, "focus", Modal.listener);\r
-    Event.observe(window, "resize", Modal.resizeListener);\r
-  },\r
-\r
-  _removeEvent: function() {\r
-    Event.stopObserving(document, "keypress", Modal.listener);\r
-    Event.stopObserving(document, "keydown", Modal.listener);\r
-    Event.stopObserving(document, "keyup", Modal.listener);\r
-    Event.stopObserving(document, "focus", Modal.listener);\r
-    Event.stopObserving(window, "resize", Modal.resizeListener);\r
-  },\r
-\r
-  _isMasked: function() {\r
-    return Modal.element && Element.visible(Modal.element);\r
-  },\r
-\r
-  _snap: function(excepted) {\r
-    var index = Element.getStyle(Modal.element, 'zIndex');\r
-    if (index && Modal._isMasked() && !Modal.hasExcepted(excepted)) Modal.snaps.push(index);\r
-  },\r
-\r
-  _setZindex: function(excepted, zIndex) {\r
-    zIndex = ZindexManager.getIndex(zIndex);\r
-    Element.setStyle(Modal.element, {zIndex:  zIndex});\r
-    excepted = Element.makePositioned($(excepted));\r
-    Element.setStyle(excepted, {zIndex: ++zIndex});\r
-  },\r
-\r
-  _setFullSize: function() {\r
-    Modal.element.setStyle({\r
-      width:  Element.getWindowWidth() + 'px',\r
-      height: Element.getWindowHeight() + 'px'\r
-    });\r
-    if (Modal.cover) Modal.cover.resetSize();\r
-  },\r
-\r
-  _buildMask: function(cssPrefix) {\r
-    var mask = Builder.node('div', {id: Modal.maskId});\r
-    Modal._setClassNames(mask, cssPrefix);\r
-    document.body.appendChild(mask);\r
-    Modal.element = mask;\r
-    Modal._addEvent();\r
-  },\r
-\r
-  _setClassNames: function(element, cssPrefix) {\r
-    var className = (UserAgent.isIE()) ? Modal.maskClassIE : Modal.maskClass;\r
-    Element.addClassName(element, className);\r
-    Element.addClassName(element, cssPrefix + className);\r
-  },\r
-\r
-  _rebuildMask: function() {\r
-    document.body.appendChild(Modal.element);\r
-    Element.show(Modal.element);\r
-  },\r
-\r
-  _isOutOfModal: function(src) {\r
-    var limit = Element.getStyle(Modal.element, 'zIndex');\r
-    var zIndex = null;\r
-    while ((src = src.parentNode) && src != document.body) {\r
-      if (src.style && (zIndex = Element.getStyle(src, 'zIndex'))) {\r
-        if (zIndex > limit) {\r
-          return true;\r
-        } else {\r
-          return false;\r
-        }\r
-      }\r
-    }\r
-    return false;\r
-  },\r
-\r
-  _handleEvent: function (event) {\r
-    var src = Event.element(event);\r
-    if (!Modal._isOutOfModal(src)) {\r
-      Event.stop(event);\r
-    }\r
-  },\r
-\r
-  _onResize: function(event) {\r
-    Modal._setFullSize();\r
-  },\r
-\r
-  hasExcepted: function(excepted) {\r
-    return Modal.excepteds && Modal.excepteds.include(excepted);\r
-  }\r
-}\r
-\r
-\r
-/**\r
- * IECover\r
- */\r
-var IECover = Class.create();\r
-IECover.src = '/blank.html';\r
-IECover.prototype = {\r
-  idSuffix: 'iecover',\r
-\r
-  initialize: function(parent) {\r
-    this.options = Object.extend({\r
-      transparent : false,\r
-      padding     : 0\r
-    }, arguments[1] || {});\r
-\r
-    if (document.all) {\r
-      parent = $(parent);\r
-      this.id = parent.id.appendSuffix(this.idSuffix);\r
-      this._build(parent);\r
-      this.resetSize();\r
-    }\r
-  },\r
-\r
-  resetSize: function() {\r
-    if (this.element) {\r
-      var parent = this.element.parentNode;\r
-      var padding = this.options.padding;\r
-      this.element.width = parent.offsetWidth - padding + 'px';\r
-      this.element.height = Element.getHeight(parent) - padding + 'px';\r
-    }\r
-  },\r
-\r
-  _build: function(parent) {\r
-    var padding = this.options.padding / 2;\r
-    var styles = {\r
-      position : 'absolute',\r
-      top      : padding + 'px',\r
-      left     : padding + 'px'\r
-    };\r
-    if (this.options.transparent) styles.filter = 'alpha(opacity=0)';\r
-    this.element = Builder.node('iframe', {src: IECover.src, id: this.id, frameborder: 0});\r
-    Element.setStyle(this.element, styles);\r
-    var firstNode = Element.down(parent, 0);\r
-    if (firstNode) Element.makePositioned(firstNode);\r
-    parent.insertBefore(this.element, parent.firstChild);\r
-  }\r
-}\r
-\r
-/**\r
- * UserAgent\r
- */\r
-var UserAgent = {\r
-  getUserAgent: function() {\r
-    return navigator.userAgent;\r
-  },\r
-  isIE: function() {\r
-    if(document.all && this.getUserAgent().toLowerCase().indexOf('msie') != -1) {\r
-      return true;\r
-    }\r
-  },\r
-  isIE7: function() {\r
-    if(document.all && this.getUserAgent().toLowerCase().indexOf('msie 7') != -1) {\r
-      return true;\r
-    }\r
-  }\r
-}\r
-\r
-/**\r
- * ShortcutManager\r
- */\r
-var ShortcutManager = {\r
-  initialize: function() {\r
-    var defaultOptions  = {\r
-      initialStarted:   true,\r
-      preventDefault:   true\r
-    }\r
-    this.options            = Object.extend(defaultOptions, arguments[0] || {});\r
-    if(this.documentListener) {\r
-      Event.stopObserving(document, 'keydown', this.documentListener);\r
-    }\r
-    this.documentListener   = this.eventKeydown.bindAsEventListener(this);\r
-    this.functions          = new Object();\r
-    this.functions['a']     = new Object();\r
-    this.functions['ac']    = new Object();\r
-    this.functions['as']    = new Object();\r
-    this.functions['acs']   = new Object();\r
-    this.functions['c']     = new Object();\r
-    this.functions['cs']    = new Object();\r
-    this.functions['n']     = new Object();\r
-    this.functions['s']     = new Object();\r
-    this.keyCode            = {\r
-      'backspace':      8,\r
-      'tab':            9,\r
-      'return':        13,\r
-      'enter':         13,\r
-      'pause':         19,\r
-      'break':         19,\r
-      'caps':          20,\r
-      'capslock':      20,\r
-      'esc':           27,\r
-      'escape':        27,\r
-      'space':         32,\r
-      'pageup':        33,\r
-      'pgup':          33,\r
-      'pagedown':      34,\r
-      'pgdn':          34,\r
-      'end':           35,\r
-      'home':          36,\r
-      'left':          37,\r
-      'up':            38,\r
-      'right':         39,\r
-      'down':          40,\r
-      'insert':        45,\r
-      'delete':        46,\r
-      '0':             48,\r
-      '1':             49,\r
-      '2':             50,\r
-      '3':             51,\r
-      '4':             52,\r
-      '5':             53,\r
-      '6':             54,\r
-      '7':             55,\r
-      '8':             56,\r
-      '9':             57,\r
-      'a':             65,\r
-      'b':             66,\r
-      'c':             67,\r
-      'd':             68,\r
-      'e':             69,\r
-      'f':             70,\r
-      'g':             71,\r
-      'h':             72,\r
-      'i':             73,\r
-      'j':             74,\r
-      'k':             75,\r
-      'l':             76,\r
-      'm':             77,\r
-      'n':             78,\r
-      'o':             79,\r
-      'p':             80,\r
-      'q':             81,\r
-      'r':             82,\r
-      's':             83,\r
-      't':             84,\r
-      'u':             85,\r
-      'v':             86,\r
-      'w':             87,\r
-      'x':             88,\r
-      'y':             89,\r
-      'z':             90,\r
-      'f1':           112,\r
-      'f2':           113,\r
-      'f3':           114,\r
-      'f4':           115,\r
-      'f5':           116,\r
-      'f6':           117,\r
-      'f7':           118,\r
-      'f8':           119,\r
-      'f9':           120,\r
-      'f10':          121,\r
-      'f11':          122,\r
-      'f12':          123,\r
-      'numlock':      144,\r
-      'nmlk':         144,\r
-      'scrolllock':   145,\r
-      'scflk':        145\r
-    };\r
-    this.numKeys = {\r
-      96:   48,\r
-      97:   49,\r
-      98:   50,\r
-      99:   51,\r
-      100:  52,\r
-      101:  53,\r
-      102:  54,\r
-      103:  55,\r
-      104:  56,\r
-      105:  57\r
-    };\r
-    if(this.options.initialStarted) {\r
-      this.start();\r
-    } else {\r
-      this.stop();\r
-    }\r
-    Event.observe(document, 'keydown', this.documentListener);\r
-  },\r
-  add: function(shortcut, callback) {\r
-    this._add_or_remove_function(shortcut, callback);\r
-  },\r
-  destroy: function() {\r
-    Event.stopObserving(document, 'keydown', this.documentListener);\r
-  },\r
-  eventKeydown: function(event) {\r
-    if(this.executable) {\r
-      var code;\r
-      var key = '';\r
-      event = event || window.event;\r
-      if(event.keyCode) {\r
-        if(event.altKey) {\r
-          key += 'a';\r
-        }\r
-        if(event.ctrlKey) {\r
-          key += 'c';\r
-        }\r
-        if(event.shiftKey) {\r
-          key += 's';\r
-        }\r
-        if(key == '') {\r
-          key = 'n';\r
-        }\r
-        code = this._mergeNumKey(event.keyCode);\r
-        if(this.functions[key][code]) {\r
-          this.functions[key][code]();\r
-          if(this.options.preventDefault) {\r
-            Event.stop(event);\r
-          }\r
-        }\r
-      }\r
-    }\r
-  },\r
-  remove: function(shortcut) {\r
-    this._add_or_remove_function(shortcut);\r
-  },\r
-  start: function() {\r
-    this.executable = true;\r
-  },\r
-  stop: function() {\r
-    this.executable = false;\r
-  },\r
-  _add_or_remove_function: function(shortcut, callback) {\r
-    var pressed_key_code;\r
-    var additional_keys = new Array();\r
-    var self = this;\r
-    $A(shortcut.toLowerCase().split("+")).each(\r
-      function(key) {\r
-        if(key == 'alt') {\r
-          additional_keys.push('a');\r
-        } else if(key == 'ctrl') {\r
-          additional_keys.push('c');\r
-        } else if(key == 'shift') {\r
-          additional_keys.push('s');\r
-        } else {\r
-          pressed_key_code = self.keyCode[key];\r
-        }\r
-      }\r
-    );\r
-    var key = additional_keys.sortBy(function(value, index) {return value;}).join('');\r
-    if(key == '') {\r
-      key = 'n';\r
-    }\r
-    if(callback) {\r
-      this.functions[key][pressed_key_code] = callback;\r
-    } else {\r
-      this.functions[key][pressed_key_code] = null;\r
-    }\r
-  },\r
-  _mergeNumKey: function(code) {\r
-    return (this.numKeys[code]) ? this.numKeys[code] : code;\r
-  }\r
-}\r
-\r
-\r
-/**\r
- * Function\r
- */\r
-Function.prototype.callAfterLoading = function(object) {\r
-  object = object || this;\r
-  if (UserAgent.isIE() && document.readyState != 'complete') {\r
-    Event.observe(window, 'load', this.bind(object));\r
-  } else {\r
-    this.call(object);\r
-  }\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/unittest.js b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/javascripts/spinelz_lib/unittest.js
deleted file mode 100644 (file)
index 017800d..0000000
+++ /dev/null
@@ -1,552 +0,0 @@
-// script.aculo.us unittest.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006\r
-\r
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)\r
-//           (c) 2005 Jon Tirsen (http://www.tirsen.com)\r
-//           (c) 2005 Michael Schuerig (http://www.schuerig.de/michael/)\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-\r
-\r
-// experimental, Firefox-only\r
-Event.simulateMouse = function(element, eventName) {\r
-  var options = Object.extend({\r
-    pointerX: 0,\r
-    pointerY: 0,\r
-    buttons: 0\r
-  }, arguments[2] || {});\r
-  var oEvent = document.createEvent("MouseEvents");\r
-  oEvent.initMouseEvent(eventName, true, true, document.defaultView, \r
-    options.buttons, options.pointerX, options.pointerY, options.pointerX, options.pointerY, \r
-    false, false, false, false, 0, $(element));\r
-  \r
-  if(this.mark) Element.remove(this.mark);\r
-  this.mark = document.createElement('div');\r
-  this.mark.appendChild(document.createTextNode(" "));\r
-  document.body.appendChild(this.mark);\r
-  this.mark.style.position = 'absolute';\r
-  this.mark.style.top = options.pointerY + "px";\r
-  this.mark.style.left = options.pointerX + "px";\r
-  this.mark.style.width = "5px";\r
-  this.mark.style.height = "5px;";\r
-  this.mark.style.borderTop = "1px solid red;"\r
-  this.mark.style.borderLeft = "1px solid red;"\r
-  \r
-  if(this.step)\r
-    alert('['+new Date().getTime().toString()+'] '+eventName+'/'+Test.Unit.inspect(options));\r
-  \r
-  $(element).dispatchEvent(oEvent);\r
-};\r
-\r
-// Note: Due to a fix in Firefox 1.0.5/6 that probably fixed "too much", this doesn't work in 1.0.6 or DP2.\r
-// You need to downgrade to 1.0.4 for now to get this working\r
-// See https://bugzilla.mozilla.org/show_bug.cgi?id=289940 for the fix that fixed too much\r
-Event.simulateKey = function(element, eventName) {\r
-  var options = Object.extend({\r
-    ctrlKey: false,\r
-    altKey: false,\r
-    shiftKey: false,\r
-    metaKey: false,\r
-    keyCode: 0,\r
-    charCode: 0\r
-  }, arguments[2] || {});\r
-\r
-  var oEvent = document.createEvent("KeyEvents");\r
-  oEvent.initKeyEvent(eventName, true, true, window, \r
-    options.ctrlKey, options.altKey, options.shiftKey, options.metaKey,\r
-    options.keyCode, options.charCode );\r
-  $(element).dispatchEvent(oEvent);\r
-};\r
-\r
-Event.simulateKeys = function(element, command) {\r
-  for(var i=0; i<command.length; i++) {\r
-    Event.simulateKey(element,'keypress',{charCode:command.charCodeAt(i)});\r
-  }\r
-};\r
-\r
-var Test = {}\r
-Test.Unit = {};\r
-\r
-// security exception workaround\r
-Test.Unit.inspect = Object.inspect;\r
-\r
-Test.Unit.Logger = Class.create();\r
-Test.Unit.Logger.prototype = {\r
-  initialize: function(log) {\r
-    this.log = $(log);\r
-    if (this.log) {\r
-      this._createLogTable();\r
-    }\r
-  },\r
-  start: function(testName) {\r
-    if (!this.log) return;\r
-    this.testName = testName;\r
-    this.lastLogLine = document.createElement('tr');\r
-    this.statusCell = document.createElement('td');\r
-    this.nameCell = document.createElement('td');\r
-    this.nameCell.appendChild(document.createTextNode(testName));\r
-    this.messageCell = document.createElement('td');\r
-    this.lastLogLine.appendChild(this.statusCell);\r
-    this.lastLogLine.appendChild(this.nameCell);\r
-    this.lastLogLine.appendChild(this.messageCell);\r
-    this.loglines.appendChild(this.lastLogLine);\r
-  },\r
-  finish: function(status, summary) {\r
-    if (!this.log) return;\r
-    this.lastLogLine.className = status;\r
-    this.statusCell.innerHTML = status;\r
-    this.messageCell.innerHTML = this._toHTML(summary);\r
-  },\r
-  message: function(message) {\r
-    if (!this.log) return;\r
-    this.messageCell.innerHTML = this._toHTML(message);\r
-  },\r
-  summary: function(summary) {\r
-    if (!this.log) return;\r
-    this.logsummary.innerHTML = this._toHTML(summary);\r
-  },\r
-  _createLogTable: function() {\r
-    this.log.innerHTML =\r
-    '<div id="logsummary"></div>' +\r
-    '<table id="logtable">' +\r
-    '<thead><tr><th>Status</th><th>Test</th><th>Message</th></tr></thead>' +\r
-    '<tbody id="loglines"></tbody>' +\r
-    '</table>';\r
-    this.logsummary = $('logsummary')\r
-    this.loglines = $('loglines');\r
-  },\r
-  _toHTML: function(txt) {\r
-    return txt.escapeHTML().replace(/\n/g,"<br/>");\r
-  }\r
-}\r
-\r
-Test.Unit.Runner = Class.create();\r
-Test.Unit.Runner.prototype = {\r
-  initialize: function(testcases) {\r
-    this.options = Object.extend({\r
-      testLog: 'testlog'\r
-    }, arguments[1] || {});\r
-    this.options.resultsURL = this.parseResultsURLQueryParameter();\r
-    if (this.options.testLog) {\r
-      this.options.testLog = $(this.options.testLog) || null;\r
-    }\r
-    if(this.options.tests) {\r
-      this.tests = [];\r
-      for(var i = 0; i < this.options.tests.length; i++) {\r
-        if(/^test/.test(this.options.tests[i])) {\r
-          this.tests.push(new Test.Unit.Testcase(this.options.tests[i], testcases[this.options.tests[i]], testcases["setup"], testcases["teardown"]));\r
-        }\r
-      }\r
-    } else {\r
-      if (this.options.test) {\r
-        this.tests = [new Test.Unit.Testcase(this.options.test, testcases[this.options.test], testcases["setup"], testcases["teardown"])];\r
-      } else {\r
-        this.tests = [];\r
-        for(var testcase in testcases) {\r
-          if(/^test/.test(testcase)) {\r
-            this.tests.push(\r
-               new Test.Unit.Testcase(\r
-                 this.options.context ? ' -> ' + this.options.titles[testcase] : testcase, \r
-                 testcases[testcase], testcases["setup"], testcases["teardown"]\r
-               ));\r
-          }\r
-        }\r
-      }\r
-    }\r
-    this.currentTest = 0;\r
-    this.logger = new Test.Unit.Logger(this.options.testLog);\r
-    setTimeout(this.runTests.bind(this), 1000);\r
-  },\r
-  parseResultsURLQueryParameter: function() {\r
-    return window.location.search.parseQuery()["resultsURL"];\r
-  },\r
-  // Returns:\r
-  //  "ERROR" if there was an error,\r
-  //  "FAILURE" if there was a failure, or\r
-  //  "SUCCESS" if there was neither\r
-  getResult: function() {\r
-    var hasFailure = false;\r
-    for(var i=0;i<this.tests.length;i++) {\r
-      if (this.tests[i].errors > 0) {\r
-        return "ERROR";\r
-      }\r
-      if (this.tests[i].failures > 0) {\r
-        hasFailure = true;\r
-      }\r
-    }\r
-    if (hasFailure) {\r
-      return "FAILURE";\r
-    } else {\r
-      return "SUCCESS";\r
-    }\r
-  },\r
-  postResults: function() {\r
-    if (this.options.resultsURL) {\r
-      new Ajax.Request(this.options.resultsURL, \r
-        { method: 'get', parameters: 'result=' + this.getResult(), asynchronous: false });\r
-    }\r
-  },\r
-  runTests: function() {\r
-    var test = this.tests[this.currentTest];\r
-    if (!test) {\r
-      // finished!\r
-      this.postResults();\r
-      this.logger.summary(this.summary());\r
-      return;\r
-    }\r
-    if(!test.isWaiting) {\r
-      this.logger.start(test.name);\r
-    }\r
-    test.run();\r
-    if(test.isWaiting) {\r
-      this.logger.message("Waiting for " + test.timeToWait + "ms");\r
-      setTimeout(this.runTests.bind(this), test.timeToWait || 1000);\r
-    } else {\r
-      this.logger.finish(test.status(), test.summary());\r
-      this.currentTest++;\r
-      // tail recursive, hopefully the browser will skip the stackframe\r
-      this.runTests();\r
-    }\r
-  },\r
-  summary: function() {\r
-    var assertions = 0;\r
-    var failures = 0;\r
-    var errors = 0;\r
-    var messages = [];\r
-    for(var i=0;i<this.tests.length;i++) {\r
-      assertions +=   this.tests[i].assertions;\r
-      failures   +=   this.tests[i].failures;\r
-      errors     +=   this.tests[i].errors;\r
-    }\r
-    return (\r
-      (this.options.context ? this.options.context + ': ': '') + \r
-      this.tests.length + " tests, " + \r
-      assertions + " assertions, " + \r
-      failures   + " failures, " +\r
-      errors     + " errors");\r
-  }\r
-}\r
-\r
-Test.Unit.Assertions = Class.create();\r
-Test.Unit.Assertions.prototype = {\r
-  initialize: function() {\r
-    this.assertions = 0;\r
-    this.failures   = 0;\r
-    this.errors     = 0;\r
-    this.messages   = [];\r
-  },\r
-  summary: function() {\r
-    return (\r
-      this.assertions + " assertions, " + \r
-      this.failures   + " failures, " +\r
-      this.errors     + " errors" + "\n" +\r
-      this.messages.join("\n"));\r
-  },\r
-  pass: function() {\r
-    this.assertions++;\r
-  },\r
-  fail: function(message) {\r
-    this.failures++;\r
-    this.messages.push("Failure: " + message);\r
-  },\r
-  info: function(message) {\r
-    this.messages.push("Info: " + message);\r
-  },\r
-  error: function(error) {\r
-    this.errors++;\r
-    this.messages.push(error.name + ": "+ error.message + "(" + Test.Unit.inspect(error) +")");\r
-  },\r
-  status: function() {\r
-    if (this.failures > 0) return 'failed';\r
-    if (this.errors > 0) return 'error';\r
-    return 'passed';\r
-  },\r
-  assert: function(expression) {\r
-    var message = arguments[1] || 'assert: got "' + Test.Unit.inspect(expression) + '"';\r
-    try { expression ? this.pass() : \r
-      this.fail(message); }\r
-    catch(e) { this.error(e); }\r
-  },\r
-  assertEqual: function(expected, actual) {\r
-    var message = arguments[2] || "assertEqual";\r
-    try { (expected == actual) ? this.pass() :\r
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) + \r
-        '", actual "' + Test.Unit.inspect(actual) + '"'); }\r
-    catch(e) { this.error(e); }\r
-  },\r
-  assertEnumEqual: function(expected, actual) {\r
-    var message = arguments[2] || "assertEnumEqual";\r
-    try { $A(expected).length == $A(actual).length && \r
-      expected.zip(actual).all(function(pair) { return pair[0] == pair[1] }) ?\r
-        this.pass() : this.fail(message + ': expected ' + Test.Unit.inspect(expected) + \r
-          ', actual ' + Test.Unit.inspect(actual)); }\r
-    catch(e) { this.error(e); }\r
-  },\r
-  assertNotEqual: function(expected, actual) {\r
-    var message = arguments[2] || "assertNotEqual";\r
-    try { (expected != actual) ? this.pass() : \r
-      this.fail(message + ': got "' + Test.Unit.inspect(actual) + '"'); }\r
-    catch(e) { this.error(e); }\r
-  },\r
-  assertIdentical: function(expected, actual) { \r
-    var message = arguments[2] || "assertIdentical"; \r
-    try { (expected === actual) ? this.pass() : \r
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  \r
-        '", actual "' + Test.Unit.inspect(actual) + '"'); } \r
-    catch(e) { this.error(e); } \r
-  },\r
-  assertNotIdentical: function(expected, actual) { \r
-    var message = arguments[2] || "assertNotIdentical"; \r
-    try { !(expected === actual) ? this.pass() : \r
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  \r
-        '", actual "' + Test.Unit.inspect(actual) + '"'); } \r
-    catch(e) { this.error(e); } \r
-  },\r
-  assertNull: function(obj) {\r
-    var message = arguments[1] || 'assertNull'\r
-    try { (obj==null) ? this.pass() : \r
-      this.fail(message + ': got "' + Test.Unit.inspect(obj) + '"'); }\r
-    catch(e) { this.error(e); }\r
-  },\r
-  assertMatch: function(expected, actual) {\r
-    var message = arguments[2] || 'assertMatch';\r
-    var regex = new RegExp(expected);\r
-    try { (regex.exec(actual)) ? this.pass() :\r
-      this.fail(message + ' : regex: "' +  Test.Unit.inspect(expected) + ' did not match: ' + Test.Unit.inspect(actual) + '"'); }\r
-    catch(e) { this.error(e); }\r
-  },\r
-  assertHidden: function(element) {\r
-    var message = arguments[1] || 'assertHidden';\r
-    this.assertEqual("none", element.style.display, message);\r
-  },\r
-  assertNotNull: function(object) {\r
-    var message = arguments[1] || 'assertNotNull';\r
-    this.assert(object != null, message);\r
-  },\r
-  assertType: function(expected, actual) {\r
-    var message = arguments[2] || 'assertType';\r
-    try { \r
-      (actual.constructor == expected) ? this.pass() : \r
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  \r
-        '", actual "' + (actual.constructor) + '"'); }\r
-    catch(e) { this.error(e); }\r
-  },\r
-  assertNotOfType: function(expected, actual) {\r
-    var message = arguments[2] || 'assertNotOfType';\r
-    try { \r
-      (actual.constructor != expected) ? this.pass() : \r
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  \r
-        '", actual "' + (actual.constructor) + '"'); }\r
-    catch(e) { this.error(e); }\r
-  },\r
-  assertInstanceOf: function(expected, actual) {\r
-    var message = arguments[2] || 'assertInstanceOf';\r
-    try { \r
-      (actual instanceof expected) ? this.pass() : \r
-      this.fail(message + ": object was not an instance of the expected type"); }\r
-    catch(e) { this.error(e); } \r
-  },\r
-  assertNotInstanceOf: function(expected, actual) {\r
-    var message = arguments[2] || 'assertNotInstanceOf';\r
-    try { \r
-      !(actual instanceof expected) ? this.pass() : \r
-      this.fail(message + ": object was an instance of the not expected type"); }\r
-    catch(e) { this.error(e); } \r
-  },\r
-  assertRespondsTo: function(method, obj) {\r
-    var message = arguments[2] || 'assertRespondsTo';\r
-    try {\r
-      (obj[method] && typeof obj[method] == 'function') ? this.pass() : \r
-      this.fail(message + ": object doesn't respond to [" + method + "]"); }\r
-    catch(e) { this.error(e); }\r
-  },\r
-  assertReturnsTrue: function(method, obj) {\r
-    var message = arguments[2] || 'assertReturnsTrue';\r
-    try {\r
-      var m = obj[method];\r
-      if(!m) m = obj['is'+method.charAt(0).toUpperCase()+method.slice(1)];\r
-      m() ? this.pass() : \r
-      this.fail(message + ": method returned false"); }\r
-    catch(e) { this.error(e); }\r
-  },\r
-  assertReturnsFalse: function(method, obj) {\r
-    var message = arguments[2] || 'assertReturnsFalse';\r
-    try {\r
-      var m = obj[method];\r
-      if(!m) m = obj['is'+method.charAt(0).toUpperCase()+method.slice(1)];\r
-      !m() ? this.pass() : \r
-      this.fail(message + ": method returned true"); }\r
-    catch(e) { this.error(e); }\r
-  },\r
-  assertRaise: function(exceptionName, method) {\r
-    var message = arguments[2] || 'assertRaise';\r
-    try { \r
-      method();\r
-      this.fail(message + ": exception expected but none was raised"); }\r
-    catch(e) {\r
-      (e.name==exceptionName) ? this.pass() : this.error(e); \r
-    }\r
-  },\r
-  assertElementsMatch: function() {\r
-    var expressions = $A(arguments), elements = $A(expressions.shift());\r
-    if (elements.length != expressions.length) {\r
-      this.fail('assertElementsMatch: size mismatch: ' + elements.length + ' elements, ' + expressions.length + ' expressions');\r
-      return false;\r
-    }\r
-    elements.zip(expressions).all(function(pair, index) {\r
-      var element = $(pair.first()), expression = pair.last();\r
-      if (element.match(expression)) return true;\r
-      this.fail('assertElementsMatch: (in index ' + index + ') expected ' + expression.inspect() + ' but got ' + element.inspect());\r
-    }.bind(this)) && this.pass();\r
-  },\r
-  assertElementMatches: function(element, expression) {\r
-    this.assertElementsMatch([element], expression);\r
-  },\r
-  benchmark: function(operation, iterations) {\r
-    var startAt = new Date();\r
-    (iterations || 1).times(operation);\r
-    var timeTaken = ((new Date())-startAt);\r
-    this.info((arguments[2] || 'Operation') + ' finished ' + \r
-       iterations + ' iterations in ' + (timeTaken/1000)+'s' );\r
-    return timeTaken;\r
-  },\r
-  _isVisible: function(element) {\r
-    element = $(element);\r
-    if(!element.parentNode) return true;\r
-    this.assertNotNull(element);\r
-    if(element.style && Element.getStyle(element, 'display') == 'none')\r
-      return false;\r
-    \r
-    return this._isVisible(element.parentNode);\r
-  },\r
-  assertNotVisible: function(element) {\r
-    this.assert(!this._isVisible(element), Test.Unit.inspect(element) + " was not hidden and didn't have a hidden parent either. " + ("" || arguments[1]));\r
-  },\r
-  assertVisible: function(element) {\r
-    this.assert(this._isVisible(element), Test.Unit.inspect(element) + " was not visible. " + ("" || arguments[1]));\r
-  },\r
-  benchmark: function(operation, iterations) {\r
-    var startAt = new Date();\r
-    (iterations || 1).times(operation);\r
-    var timeTaken = ((new Date())-startAt);\r
-    this.info((arguments[2] || 'Operation') + ' finished ' + \r
-       iterations + ' iterations in ' + (timeTaken/1000)+'s' );\r
-    return timeTaken;\r
-  }\r
-}\r
-\r
-Test.Unit.Testcase = Class.create();\r
-Object.extend(Object.extend(Test.Unit.Testcase.prototype, Test.Unit.Assertions.prototype), {\r
-  initialize: function(name, test, setup, teardown) {\r
-    Test.Unit.Assertions.prototype.initialize.bind(this)();\r
-    this.name           = name;\r
-    \r
-    if(typeof test == 'string') {\r
-      test = test.gsub(/(\.should[^\(]+\()/,'#{0}this,');\r
-      test = test.gsub(/(\.should[^\(]+)\(this,\)/,'#{1}(this)');\r
-      this.test = function() {\r
-        eval('with(this){'+test+'}');\r
-      }\r
-    } else {\r
-      this.test = test || function() {};\r
-    }\r
-    \r
-    this.setup          = setup || function() {};\r
-    this.teardown       = teardown || function() {};\r
-    this.isWaiting      = false;\r
-    this.timeToWait     = 1000;\r
-  },\r
-  wait: function(time, nextPart) {\r
-    this.isWaiting = true;\r
-    this.test = nextPart;\r
-    this.timeToWait = time;\r
-  },\r
-  run: function() {\r
-    try {\r
-      try {\r
-        if (!this.isWaiting) this.setup.bind(this)();\r
-        this.isWaiting = false;\r
-        this.test.bind(this)();\r
-      } finally {\r
-        if(!this.isWaiting) {\r
-          this.teardown.bind(this)();\r
-        }\r
-      }\r
-    }\r
-    catch(e) { this.error(e); }\r
-  }\r
-});\r
-\r
-// *EXPERIMENTAL* BDD-style testing to please non-technical folk\r
-// This draws many ideas from RSpec http://rspec.rubyforge.org/\r
-\r
-Test.setupBDDExtensionMethods = function(){\r
-  var METHODMAP = {\r
-    shouldEqual:     'assertEqual',\r
-    shouldNotEqual:  'assertNotEqual',\r
-    shouldEqualEnum: 'assertEnumEqual',\r
-    shouldBeA:       'assertType',\r
-    shouldNotBeA:    'assertNotOfType',\r
-    shouldBeAn:      'assertType',\r
-    shouldNotBeAn:   'assertNotOfType',\r
-    shouldBeNull:    'assertNull',\r
-    shouldNotBeNull: 'assertNotNull',\r
-    \r
-    shouldBe:        'assertReturnsTrue',\r
-    shouldNotBe:     'assertReturnsFalse',\r
-    shouldRespondTo: 'assertRespondsTo'\r
-  };\r
-  Test.BDDMethods = {};\r
-  for(m in METHODMAP) {\r
-    Test.BDDMethods[m] = eval(\r
-      'function(){'+\r
-      'var args = $A(arguments);'+\r
-      'var scope = args.shift();'+\r
-      'scope.'+METHODMAP[m]+'.apply(scope,(args || []).concat([this])); }');\r
-  }\r
-  [Array.prototype, String.prototype, Number.prototype].each(\r
-    function(p){ Object.extend(p, Test.BDDMethods) }\r
-  );\r
-}\r
-\r
-Test.context = function(name, spec, log){\r
-  Test.setupBDDExtensionMethods();\r
-  \r
-  var compiledSpec = {};\r
-  var titles = {};\r
-  for(specName in spec) {\r
-    switch(specName){\r
-      case "setup":\r
-      case "teardown":\r
-        compiledSpec[specName] = spec[specName];\r
-        break;\r
-      default:\r
-        var testName = 'test'+specName.gsub(/\s+/,'-').camelize();\r
-        var body = spec[specName].toString().split('\n').slice(1);\r
-        if(/^\{/.test(body[0])) body = body.slice(1);\r
-        body.pop();\r
-        body = body.map(function(statement){ \r
-          return statement.strip()\r
-        });\r
-        compiledSpec[testName] = body.join('\n');\r
-        titles[testName] = specName;\r
-    }\r
-  }\r
-  new Test.Unit.Runner(compiledSpec, { titles: titles, testLog: log || 'testlog', context: name });\r
-};
\ No newline at end of file
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/accordion.css b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/accordion.css
deleted file mode 100644 (file)
index 0b41d7f..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-.accordion{\r
-  border-bottom:              1px solid #999999;\r
-}\r
-.accordion_panel{\r
-  border-left:                1px solid #999999;\r
-  border-right:               1px solid #999999;\r
-  overflow:                   auto;\r
-  visibility:                 visible;\r
-}\r
-\r
-.accordion_tab {\r
-  position:                   relative;\r
-  height:                     26px;\r
-  cursor:                     pointer;\r
-}  \r
-\r
-.accordion_tab div{\r
-  height:                     26px;\r
-}\r
-\r
-.accordion_tabLeftInactive {\r
-  background:                 url('../../images/spinelz/accordion_tab_left_inactive.gif') no-repeat;\r
-  position:                   absolute;\r
-  left:                       0;\r
-  width:                      10px;\r
-}\r
-\r
-.accordion_tabLeftActive {\r
-  background:                 url('../../images/spinelz/accordion_tab_left_active.gif') no-repeat;\r
-  position:                   absolute;\r
-  left:                       0;\r
-  width:                      10px;\r
-}\r
-\r
-.accordion_tabMiddleInactive {\r
-  background:                 url('../../images/spinelz/accordion_tab_middle_inactive.gif') repeat-x;\r
-  margin:                     0 10px;\r
-}\r
-\r
-.accordion_tabMiddleActive {\r
-  background:                 url('../../images/spinelz/accordion_tab_middle_active.gif') repeat-x;\r
-  margin:                     0 10px;\r
-}\r
-\r
-.accordion_tabRightInactive {\r
-  background:                 url('../../images/spinelz/accordion_tab_right_inactive.gif') no-repeat;\r
-  position:                   absolute;\r
-  top:                        0;\r
-  right:                      0;\r
-  width:                      10px;\r
-}\r
-\r
-.accordion_tabRightActive {\r
-  background:                 url('../../images/spinelz/accordion_tab_right_active.gif') no-repeat;\r
-  position:                   absolute;\r
-  top:                        0;\r
-  right:                      0;\r
-  width:                      10px;\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/balloon.css b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/balloon.css
deleted file mode 100644 (file)
index f879691..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-div.balloon_tooltip {\r
-  position: absolute;\r
-}\r
-\r
-/* ---- Top ---- */\r
-div.balloon_top {\r
-  width: 100%;\r
-  height: 30px;\r
-  position: relative;\r
-}\r
-\r
-div.balloon_top_left {\r
-  position: absolute;\r
-  top: 0;\r
-  left: 0;\r
-  width: 70px;\r
-  height: 30px;\r
-  background-image: url(../../images/spinelz/balloon_top_left.gif);\r
-  background-repeat: no-repeat;\r
-}\r
-\r
-div.balloon_top_middle {\r
-  height: 30px;\r
-  background-image: url(../../images/spinelz/balloon_top_middle.gif);\r
-  background-repeat: repeat-x;\r
-  margin: 0 70px;\r
-}\r
-\r
-div.balloon_top_right {\r
-  width: 70px;\r
-  height: 30px;\r
-  background-image: url(../../images/spinelz/balloon_top_right.gif);\r
-  background-repeat: no-repeat;\r
-  position: absolute;\r
-  top: 0;\r
-  right: 0;\r
-}\r
-\r
-/* ---- Middle ---- */\r
-div.balloon_middle {\r
-  width: 100%;\r
-  position: relative;\r
-}\r
-\r
-div.balloon_middle_left {\r
-  position: absolute;\r
-  top: 0;\r
-  left: 0;\r
-  width: 70px;\r
-}\r
-\r
-div.balloon_middle_left_row {\r
-  width: 70px;\r
-  height: 20px;\r
-  background-image: url(../../images/spinelz/balloon_middle_left.gif);\r
-  background-repeat: repeat-y;\r
-}\r
-\r
-div.balloon_middle_right {\r
-  position: absolute;\r
-  top: 0;\r
-  right: 0;\r
-  width: 70px;\r
-}\r
-\r
-div.balloon_middle_right_row {\r
-  width: 70px;\r
-  height: 20px;\r
-  background-image: url(../../images/spinelz/balloon_middle_right.gif);\r
-  background-repeat: repeat-y;\r
-}\r
-\r
-div.balloon_left_arrow {\r
-  width: 70px;\r
-  height: 60px;\r
-}\r
-\r
-div.balloon_left_up_arrow {\r
-  width: 70px;\r
-  height: 60px;\r
-  background-image: url(../../images/spinelz/balloon_left_up_arrow.gif);\r
-  background-repeat: no-repeat;\r
-}\r
-\r
-div.balloon_left_down_arrow {\r
-  width: 70px;\r
-  height: 60px;\r
-  background-image: url(../../images/spinelz/balloon_left_down_arrow.gif);\r
-  background-repeat: no-repeat;\r
-}\r
-\r
-div.balloon_right_arrow {\r
-  width: 70px;\r
-  height: 60px;\r
-}\r
-\r
-div.balloon_right_up_arrow {\r
-  width: 70px;\r
-  height: 60px;\r
-  background-image: url(../../images/spinelz/balloon_right_up_arrow.gif);\r
-  background-repeat: no-repeat;\r
-}\r
-\r
-div.balloon_right_down_arrow {\r
-  width: 70px;\r
-  height: 60px;\r
-  background-image: url(../../images/spinelz/balloon_right_down_arrow.gif);\r
-  background-repeat: no-repeat;\r
-}\r
-\r
-div.balloon_body {\r
-  margin: 0 70px;\r
-  background-image: url(../../images/spinelz/balloon_back.gif);\r
-  background-repeat: no-repeat;\r
-  background-color: #f8ffee;\r
-  overflow: hidden;\r
-}\r
-\r
-/* ---- Bottom ---- */\r
-div.balloon_bottom {\r
-  width: 100%;\r
-  height: 30px;\r
-  position: relative;\r
-}\r
-\r
-div.balloon_bottom_left {\r
-  position: absolute;\r
-  top: 0;\r
-  left: 0;\r
-  width: 70px;\r
-  height: 30px;\r
-  background-image: url(../../images/spinelz/balloon_bottom_left.gif);\r
-  background-repeat: no-repeat;\r
-}\r
-\r
-div.balloon_bottom_middle {\r
-  height: 30px;\r
-  background-image: url(../../images/spinelz/balloon_bottom_middle.gif);\r
-  background-repeat: repeat-x;\r
-  margin: 0 70px;\r
-}\r
-\r
-div.balloon_bottom_right {\r
-  width: 70px;\r
-  height: 30px;\r
-  background-image: url(../../images/spinelz/balloon_bottom_right.gif);\r
-  background-repeat: no-repeat;\r
-  position: absolute;\r
-  top: 0;\r
-  right: 0;\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/calendar.css b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/calendar.css
deleted file mode 100644 (file)
index 254e2c1..0000000
+++ /dev/null
@@ -1,493 +0,0 @@
-.calendar {\r
-  margin:                     0;\r
-  padding:                    0;\r
-  text-decoration:            none;\r
-  text-transform:             none;\r
-  text-indent:                0;\r
-  font-weight:                normal;\r
-  font-size:                  13px;\r
-  font-family:                Verdana, monospace;\r
-  width:                      100%;\r
-  background:                 #ffffff;\r
-  color:                      #4F4534;\r
-  border:                     1px solid #999999;\r
-}\r
-\r
-/* header */\r
-.calendar_scheduleHandler {\r
-  background:                 url('../../images/spinelz/calendar_default_handler.gif') no-repeat;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  cursor:                     move;\r
-  float:                      left;\r
-}\r
-\r
-.calendar_header {\r
-  background:                 url(../../images/spinelz/calender_back.gif) repeat-x;\r
-  color:                      #4F4534; \r
-  width:                      100%;\r
-  height:                     26px; \r
-  border-bottom:              1px solid #999999;\r
-  border-collapse:            collapse;\r
-  font-size:                  13px;\r
-  font-weight:                bold; \r
-}\r
-\r
-.calendar_preYears {\r
-  text-align:                 left;\r
-  width: 35px;\r
-}\r
-\r
-.calendar_years {\r
-  text-align:                 center;\r
-}\r
-\r
-.calendar_years span {\r
-  font-weight:                bolder;\r
-  font-size:                  105%;\r
-}\r
-\r
-.calendar_nextYears {\r
-  text-align:                 right;\r
-  width: 35px;\r
-}\r
-\r
-.calendar_nextMonthMark {\r
-  background:                 url('../../images/spinelz/calendar_next.gif') no-repeat;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  cursor:                     pointer;\r
-  float:                      left;\r
-}\r
-\r
-.calendar_nextYearMark {\r
-  background:                 url('../../images/spinelz/calendar_next_second.gif') no-repeat;;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  cursor:                     pointer;\r
-  margin-left:                16px;\r
-}\r
-\r
-.calendar_nextWeekMark {\r
-  background:                 url('../../images/spinelz/calendar_next.gif') no-repeat;;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  cursor:                     pointer;\r
-  margin:                     0 0 0 auto;\r
-}\r
-\r
-.calendar_preMonthMark {\r
-  background:                 url('../../images/spinelz/calendar_pre.gif') no-repeat;;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  cursor:                     pointer;\r
-  margin-left:                16px;\r
-}\r
-\r
-.calendar_preYearMark {\r
-  background:                 url('../../images/spinelz/calendar_pre_second.gif') no-repeat;;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  cursor:                     pointer;\r
-  float:                      left;\r
-}\r
-\r
-.calendar_preWeekMark {\r
-  background:                 url('../../images/spinelz/calendar_pre.gif') no-repeat;;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.calendar_markHover {\r
-  margin-left:                5px;\r
-  margin-right:               5px;\r
-  cursor:                     pointer;\r
-  color:                      #FF8080;\r
-  background-color:           #E6E6FA;\r
-}\r
-\r
-.calendar_ym {\r
-  margin-left:                5px;\r
-}\r
-\r
-.calendar_table {\r
-  font-size:                  12px;\r
-  border-collapse:            collapse;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  width:                      100%;\r
-  table-layout:               fixed;\r
-}\r
-\r
-.calendar_table TH {\r
-  border-right:               1px solid #999999;\r
-  border-bottom:              1px solid gray;\r
-  text-align:                 center;\r
-  background:                 url(../../images/spinelz/calender_back_second.gif) #FFFFFF;\r
-  color:                      #4F4534;\r
-  cursor:                     pointer;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  height:                     24px;\r
-}\r
-\r
-.calendar_table TH.right {\r
-  border-right-style:         none;\r
-}\r
-\r
-.calendar_table TD {\r
-  border-right:               1px solid #999999;\r
-  border-bottom:              1px solid #999999;\r
-  vertical-align:             text-top;\r
-  height:                     100px;\r
-  margin:                     0;\r
-  padding:                    0;\r
-}\r
-\r
-.calendar_table TD.right {\r
-  border-right-style:         none;\r
-}\r
-\r
-.calendar_table TD.bottom {\r
-  border-bottom-style:        none;\r
-}\r
-\r
-.calendar_date {\r
-  cursor:                     pointer;\r
-  color:                      #000000;\r
-  background:                 #FFFFFF;\r
-  font-weight:                bold;\r
-}\r
-.calendar_holidayContainer span {\r
-  padding:                    2px;\r
-}\r
-.calendar_regularHoliday {\r
-  cursor:                     pointer;\r
-  background:                 #ededed;\r
-  color:                      #285A94;\r
-  font-weight:                bold;\r
-}\r
-\r
-.calendar_holiday {\r
-  cursor:                     pointer;\r
-  background-color:           #dedede;\r
-  color:                      #285A94;\r
-  font-weight:                bold;\r
-  overflow:                   hidden;\r
-}\r
-\r
-.calendar_schedule {\r
-  cursor:                     pointer;\r
-  background:                 url(../../images/spinelz/calendar_schedule.gif) repeat-x;\r
-  color:                      #285A94;\r
-  font-weight:                bold;\r
-}\r
-\r
-.calendar_highlightDay {\r
-  cursor:                     pointer;\r
-  font-weight:                bold;\r
-  text-decoration:            underline;\r
-  color:                      red;\r
-}\r
-\r
-.calendar_selected {\r
-  background:                 #285A94;\r
-  color:                      #ffffff;\r
-}\r
-\r
-.calendar_dateContainer {\r
-  width:                      100%;\r
-  overflow:                   hidden;\r
-  height:                     15px;\r
-}\r
-\r
-/*\r
-.calendar_holidayContainer {\r
-  width:                      100%;\r
-  overflow:                   hidden;\r
-}\r
-*/\r
-\r
-.calendar_holidayName {\r
-  margin-left:                10px;\r
-}\r
-\r
-.calendar_schedule .calendar_scheduleListContainer {\r
-  color: #000000;\r
-  margin-top: 5px;\r
-}\r
-\r
-.calendar_selected .calendar_scheduleListContainer {\r
-  color:                      #FFFFFF;\r
-  margin-top:                 5px;\r
-}\r
-\r
-.calendar_scheduleListContainer UL {\r
-  list-style:                 square outside;\r
-  font-weight:                normal;\r
-  padding:                    0;\r
-  margin:                     0 0 0 15px;\r
-}\r
-\r
-.calendar_scheduleItem {\r
-  font-size: 10px;\r
-}\r
-\r
-.calendar_scheduleItem DIV {\r
-  overflow:                   hidden;\r
-  font-size: 10px;\r
-}\r
-\r
-/* small size */\r
-.calendar_small {\r
-  border:                     1px solid #999999;\r
-  font-size:                  13px;\r
-  width:                      175px;\r
-  background:                 #FFFFFF;\r
-  color:                      #4F4534;\r
-}\r
-\r
-.calendar_calendar_small {\r
-  background:                 #FFFFFF;\r
-  color:                      #4F4534;\r
-  font-size:                  11px;\r
-}\r
-\r
-.calendar_header_small {\r
-  background:                 url(../../images/spinelz/calender_back.gif) repeat-x;\r
-  color:                      #4F4534;\r
-  width:                      100%;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  font-size:                  11px;\r
-  font-weight:                bold;\r
-  border-collapse:            collapse; \r
-  border-bottom:              1px solid #999999;\r
-  height:                     26px;\r
-}\r
-\r
-.calendar_tableSmall {\r
-  font-size:                  11px;\r
-  text-align:                 left;\r
-  width:                      100%;\r
-  border-collapse:            collapse;\r
-  margin:                     0 0 0 0;\r
-  padding:                    0;\r
-  table-layout:               fixed;\r
-}\r
-\r
-.calendar_tableSmall TH {\r
-  text-align:                 center;\r
-  background:                 url(../../images/spinelz/calender_back_second.gif) #FFFFFF;\r
-  color:                      #4F4534;\r
-  width:                      14%;\r
-  cursor:                     pointer;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  height:                     24px;\r
-}\r
-\r
-.calendar_tableSmall TD {\r
-  text-align:                 center;\r
-  vertical-align:             text-top;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  height:                     20px;\r
-  vertical-align:             middle;\r
-}\r
-\r
-\r
-/* week */\r
-.calendar_weekContainerTable {\r
-  width:                      100%;\r
-  border-collapse:            collapse;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  font-size:                  11px;\r
-}\r
-\r
-.calendar_weekContainerTable TH {\r
-  background:                 url(../../images/spinelz/calender_back_second.gif) #FFFFFF;\r
-  color:                      #4F4534;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  height:                     24px;\r
-}\r
-\r
-.calendar_weekContainerTable TD {\r
-  margin:                     0;\r
-  padding:                    0;\r
-}\r
-\r
-.calendar_timeline {\r
-  margin:                     0;\r
-  padding:                    0;\r
-  width:                      50px;\r
-}\r
-\r
-.calendar_timelineTimeTop {\r
-  height:                     23px;\r
-  text-align:                 center;\r
-}\r
-\r
-.calendar_timelineTime {\r
-  height:                     51px;\r
-  border-top:                 1px solid #999999;\r
-  text-align:                 center;\r
-}\r
-\r
-.calendar_headerColumn {\r
-  border-left:                1px solid #999999;\r
-  border-bottom:              1px solid #999999;\r
-  height:                     23px;\r
-  overflow:                   hidden;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.calendar_headerColumn a {\r
-  position: relative;\r
-  top: 4px;\r
-}\r
-\r
-.calendar_columnTopDate {\r
-  height:                     25px;\r
-  border-left:                1px solid #999999;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.calendar_columnDate {\r
-  height:                     25px;\r
-  border-top:                 1px solid #999999;\r
-  border-left:                1px solid #999999;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.calendar_columnOddDate {\r
-  height:                     25px;\r
-  border-top:                 1px dashed #999999;\r
-  border-left:                1px solid #999999;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.calendar_scheduleItemSmall {\r
-  font-size:                  10px;\r
-  height:                     25px;\r
-  width:                      100%;\r
-  background-color:           #E6E6FA; \r
-  position:                   absolute;\r
-  left:                       0;\r
-  top:                        0;\r
-/*   opacity:                    0.7; */\r
-  z-index:                    1000;\r
-  overflow:                   hidden;\r
-}\r
-\r
-.calendar_scheduleItemLarge {\r
-  font-size:                  10px;\r
-  height:                     17px;\r
-  width:                      100%;\r
-  background-color:           #E6E6FA; \r
-  position:                   absolute;\r
-  left:                       0;\r
-  top:                        0;\r
-  z-index:                    1000;\r
-  overflow:                   hidden;\r
-  border:                     2px solid #285A94;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.calendar_scheduleItemNoBorder {\r
-  padding-top:                2px;\r
-  font-size:                  10px;\r
-  height:                     16px;\r
-  width:                      100%;\r
-  position:                   absolute;\r
-  left:                       0;\r
-  top:                        0;\r
-  z-index:                    1000;\r
-  overflow:                   hidden;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.calendar_scheduleItemNoBorder div {\r
-  height:                     16px;\r
-}\r
-\r
-.calendar_scheduleItemSelect {\r
-  border:                     2px solid red;\r
-}\r
-\r
-/*\r
-.calendar_detailItem UL {\r
-  list-style:                 square outside;\r
-  font-weight:                normal;\r
-  padding:                    0;\r
-  margin:                     0 0 0 15px;\r
-}\r
-*/\r
-\r
-.calendar_weekMainTable {\r
-  width:                      100%;\r
-  border-collapse:            collapse;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  font-size:                  11px;\r
-}\r
-\r
-.calendar_weekMainTable TH {\r
-  background:                 url(../../images/spinelz/calender_back_second.gif) #FFFFFF;\r
-  color:                      #4F4534;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  text-align:                 center;\r
-}\r
-\r
-.calendar_weekMainTable TD {\r
-  margin:                     0;\r
-  padding:                    0;\r
-}\r
-\r
-.calendar_weekScheduleContainer {\r
-}\r
-\r
-.calendar_deleteImage {\r
-  background:                 url(../../images/spinelz/calendar_delete.gif) no-repeat;\r
-  position:                   absolute;\r
-  top:                        0;\r
-  right:                      0;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  font-size:                  5px;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.calendar_privateImage {\r
-  background:                 url(../../images/spinelz/calendar_private_icon.gif) no-repeat;\r
-  float:                      left;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  font-size:                  5px;\r
-}\r
-\r
-.calendar_selector {\r
-  position: absolute;\r
-  top: 0;\r
-  left: 0;\r
-  border:                      2px solid #9b0f0f;\r
-  background:                  #FFC0CB;\r
-}\r
-\r
-.calendar_scheduleItemTimeArea {\r
-  margin-right: 3px;\r
-  font-size: 9px;\r
-}\r
-\r
-.calendar_cover {\r
-  width:                      100%;\r
-  height:                     100px;\r
-  position:                   absolute;\r
-  left:                       0;\r
-  top:                        0;\r
-  z-index:                    1000;\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/datepicker.css b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/datepicker.css
deleted file mode 100644 (file)
index 75ee343..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-.datepicker {\r
-  border:                     1px solid #999999;\r
-  font-size:                  13px;\r
-  width:                      200px;\r
-  height:                     160px;\r
-  background:                 #FFFFFF;\r
-  color:                      #000000;\r
-}\r
-\r
-.datepicker table tr td {\r
-  padding:                    0px;\r
-  margin:                     0px;\r
-  border:                     none;\r
-}\r
-\r
-/* header */\r
-.datepicker_header {\r
-  padding-top:                3px;\r
-  width:                      100%;\r
-  height:                     26px;\r
-  background:                 url('../../images/spinelz/datepicker_back.gif') repeat-x;\r
-  color:                      #808080;\r
-  border-bottom:              1px solid #999999;\r
-  font-weight:                bold;\r
-}\r
-\r
-.datepicker_nextMonthMark {\r
-  background:                 url('../../images/spinelz/datepicker_next.gif') no-repeat;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  cursor:                     pointer;\r
-  float:                      left;\r
-}\r
-\r
-.datepicker_nextYearMark {\r
-  background:                 url('../../images/spinelz/datepicker_next_second.gif') no-repeat;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  cursor:                     pointer;\r
-  margin-left:                16px;\r
-}\r
-\r
-.datepicker_preMonthMark {\r
-  background:                 url('../../images/spinelz/datepicker_pre.gif') no-repeat;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  cursor:                     pointer;\r
-  margin-left:                16px;\r
-}\r
-\r
-.datepicker_preYearMark {\r
-  background:                 url('../../images/spinelz/datepicker_pre_second.gif') no-repeat;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  cursor:                     pointer;\r
-  float:                      left;\r
-}\r
-\r
-.datepicker_nextYears {\r
-  text-align:                 right;\r
-  width:                      35px;\r
-}\r
-\r
-.datepicker_preYears {\r
-  text-align:                 left;\r
-  width:                      35px;\r
-}\r
-\r
-.datepicker_years {\r
-  text-align:                 center;\r
-}\r
-\r
-.datepicker_nextYears {\r
-  text-align:                 right;\r
-  width:                      35px;\r
-}\r
-\r
-.datepicker_ym {\r
-  margin-left:                10px;\r
-}\r
-\r
-/* calendar */\r
-.datepicker_calendar {\r
-  padding-top:                5px;\r
-  background:                 #FFFFFF;\r
-  color:                      #000000;\r
-}\r
-\r
-.datepicker_table {\r
-  font-size:                  11px;\r
-  text-align:                 center;\r
-  width:                      100%;\r
-  background-position:        top;\r
-}\r
-\r
-.datepicker_tableTh {\r
-  color:                      #999999;\r
-}\r
-\r
-.datepicker_date {\r
-  cursor:                     pointer;\r
-  background:                 #FFFFFF;\r
-  color:                      #000000;\r
-  width:              14%;\r
-}\r
-\r
-.datepicker_holiday {\r
-  cursor:                     pointer;\r
-  background:                 #FFFFFF;\r
-  font-weight:                bold;\r
-  color:                      #285A94;\r
-  width:              14%;\r
-}\r
-\r
-.datepicker_dateHover {\r
-  cursor:                     pointer;\r
-  background:                 #D5DFE8;\r
-  font-weight:                bold;\r
-  color:                      #674534;\r
-  width:              14%;\r
-}\r
-\r
-.datepicker_holidayHover {\r
-  cursor:                     pointer;\r
-  background-color:           #D5DFE8;\r
-  font-weight:                bold;\r
-  color:                      #674534;\r
-  width:              14%;\r
-}\r
-\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/grid.css b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/grid.css
deleted file mode 100644 (file)
index 124034b..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-.grid_container {\r
-  position:                   relative;\r
-  width:                      500px;\r
-  height:                     200px;\r
-  overflow:                   scroll;\r
-}\r
-.grid_baseTable{\r
-  background-color:           #F6F6F6;\r
-  color:                      #000000;\r
-  empty-cells:                show;\r
-  z-index:                    2;  \r
-}\r
-.grid_headerIdCol{\r
-  background:           url(../../images/spinelz/table_back.gif) repeat-x #ffffff;\r
-  color:                      #000000;\r
-}\r
-.grid_headerTable{\r
-  background-color:           #F6F6F6;\r
-  color:                      #000000;\r
-  z-index: 1;\r
-}\r
-.grid_headerRow{\r
-  background-color:           #F6F6F6;\r
-  color:                      #000000;\r
-  \r
-}\r
-.grid_headerCell{\r
-  background-color:           #F6F6F6;\r
-  color:                      #000000;\r
-}\r
-\r
-.grid_headerCellDrag {\r
-  background-color:           #F6F6F6;\r
-  color:                      #000000;\r
-  overflow:                   hidden;\r
-  cursor:                     move;  \r
-}\r
-.grid_headerCellVal {\r
-  background-color:           #F6F6F6;\r
-  color:                      #000000;\r
-  text-align:                 center;\r
-  font-weight:                bold;\r
-  overflow:                   hidden;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.grid_idTable {\r
-  background-color:           #F6F6F6;\r
-  color:                      #000000;\r
-  z-index:                    1;    \r
-}\r
-\r
-.grid_idRow {\r
-  background-color:           #F6F6F6;  \r
-  color:                      #000000;\r
-}\r
-\r
-.grid_idCell{\r
-  background-color:           #F6F6F6;\r
-  color:                      #000000;\r
-  overflow:                   hidden;\r
-  \r
-}\r
-.grid_idCellVal{\r
-  background-color:           #F6F6F6;\r
-  color:                      #000000;\r
-  cursor:                     move;\r
-  overflow:                   hidden;\r
-  text-align:                 center;\r
-}\r
-\r
-.grid_cellTable{\r
-  overflow:                   hidden;\r
-}\r
-.grid_cellTbody{\r
-  position:                   relative;\r
-}\r
-\r
-.grid_cellRow{\r
-  background-color:           #F6F6F6;\r
-  color:                      #000000;\r
-  position:                   relative;\r
-  overflow:                   hidden;\r
-  top:                        0;\r
-  left:                       0;\r
-}\r
-\r
-.grid_cell{\r
-  overflow:                   hidden;\r
-  background-color:           #FFFFFF;\r
-  color:                      #000000;\r
-  position:                   relative;  \r
-}\r
-\r
-.grid_cellVal{\r
-  overflow:                   hidden;\r
-  position:                   relative;\r
-}\r
-\r
-.grid_cellSelected{\r
-  background-color:           #becfeb;\r
-  color:                      #000000;\r
-}\r
-.cellHover{\r
-  background-color:           #becfeb;\r
-  color:                      #000000;\r
-  font-weight:                bold;\r
-}\r
-\r
-.grid_state {\r
-  background-image:           url(../../images/spinelz/grid_state.gif);\r
-  background-repeat:          no-repeat;\r
-  background-position:        0px -22px;\r
-  height:                     11px;\r
-  width:                      11px;\r
-  overflow:                   hidden;\r
-}\r
-.grid_stateEmpty {\r
-  background-position:        0px -22px;\r
-}\r
-\r
-.grid_stateClose {\r
-  cursor:                     pointer;\r
-  background-position:        0px -11px;\r
-}\r
-\r
-.grid_stateOpen {\r
-  cursor:                      pointer; \r
-  background-position:         0px 0px;\r
-}\r
-\r
-.grid_inplaceEditor{\r
-  margin:                      0;\r
-  padding:                     0;\r
-  width :                      100%;\r
-  height:                      100%;\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/menubar.css b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/menubar.css
deleted file mode 100644 (file)
index a44dd6b..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-* {\r
-  margin:                     0;\r
-  padding:                    0;\r
-  text-decoration:            none;\r
-  text-transform:             none;\r
-  text-indent:                0;\r
-  font-weight:                normal;\r
-  list-style-type:            none;\r
-}\r
-\r
-.menubar {\r
-  background:                 url(../../images/spinelz/menubar_back.gif) repeat-x;\r
-  border:                     1px solid #999999;\r
-  font-size:                  0.8em;\r
-  line-height:                1.3em;\r
-  height:                     26px;\r
-}\r
-\r
-.menubar_menu {\r
-}\r
-\r
-.menubar_menuBody {\r
-  float:                      left;\r
-  cursor:                     pointer;\r
-  padding:                    3px 8px;\r
-  height:                     20px;\r
-  line-height:                1.8em;\r
-}\r
-\r
-.menubar_menuBodyHover {\r
-  float:                      left;\r
-  cursor:                     pointer;\r
-  background:                 #defa93;\r
-  padding:                    3px 8px;\r
-  height:                     20px;\r
-  line-height:                1.8em;\r
-}\r
-\r
-.menubar_subMenu {\r
-}\r
-\r
-.menubar_subMenuBody {\r
-  background:                 url(../../images/spinelz/menubar_subcontents_back.gif) repeat-x #fff;\r
-  color:                      #4F4534;\r
-  padding:                    0 3px;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.menubar_subMenuBodyHover {\r
-  background:                 #C8CEF6;\r
-  color:                      #4F4534;\r
-  padding:                    0 3px;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.menubar_subMenuBody A {\r
-  background:                 #FFFFFF;\r
-  color:                      gray;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.menubar_subMenuBodyHover A {\r
-  background-color:           #C8CEF6;\r
-  color:                      #FFFFFF;\r
-  cursor:                     pointer;\r
-\r
-}\r
-\r
-.menubar_menuContainer {\r
-  border:                     1px solid #999999;\r
-  position:                   absolute;\r
-  width:                      100px;\r
-}\r
-\r
-.menubar_dirMark {\r
-  position:                   relative;\r
-  top:                        -17px;\r
-  left:                       0;\r
-  float:                      right;\r
-  color:                      #999999;\r
-  cursor:                     pointer;\r
-}\r
-\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/modal.css b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/modal.css
deleted file mode 100644 (file)
index 2e1c6c3..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-.modal_mask {\r
-  position: fixed;\r
-  top: 0px;\r
-  right:0px;\r
-  left: 0px;\r
-  width: 100%;\r
-  height: 100%;\r
-  opacity: .2;\r
-  background-color: #CCCCCC;\r
-  color: #FFFFFF;\r
-}\r
-\r
-.modal_mask_ie {\r
-  position: absolute;\r
-  top: expression(eval(document.documentElement.scrollTop));\r
-  left: expression(eval(document.documentElement.scrollLeft));\r
-  width: 100%;\r
-  height: 100%;\r
-  filter: alpha(opacity=20);  \r
-  background-color: #CCCCCC;\r
-  color: #FFFFFF;\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/navPanel.css b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/navPanel.css
deleted file mode 100644 (file)
index 79b6228..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-.navPanel{\r
-  border-bottom:              1px solid #919b9c;\r
-}\r
-\r
-.navPanel_panel{\r
-  border-left:                1px solid #999999;\r
-  border-right:               1px solid #999999;\r
-  padding:                    10px;\r
-  overflow:                   auto;\r
-}\r
-\r
-.navPanel_tab {\r
-  height:                     26px;\r
-  position:                   relative;\r
-  cursor:                     pointer;\r
-}  \r
-.navPanel_tab div{\r
-  height:                     26px;\r
-}  \r
-.navPanel_tabLeftInactive {\r
-  background:                 url('../../images/spinelz/navPanel_tab_left_inactive.gif') no-repeat;\r
-  position:                   absolute;\r
-  left:                       0;\r
-  width:                      10px;\r
-}\r
-\r
-.navPanel_tabLeftActive {\r
-  background:                 url('../../images/spinelz/navPanel_tab_left_active.gif') no-repeat;\r
-  position:                   absolute;\r
-  left:                       0;\r
-  width:                      10px;\r
-}\r
-\r
-.navPanel_tabMiddleInactive {\r
-  background:                 url('../../images/spinelz/navPanel_tab_middle_inactive.gif') repeat-x;\r
-  margin:                     0 10px;\r
-}\r
-\r
-.navPanel_tabMiddleActive {\r
-  background:                 url('../../images/spinelz/navPanel_tab_middle_active.gif') repeat-x;\r
-  margin:                     0 10px;\r
-}\r
-\r
-.navPanel_tabRightInactive {\r
-  background:                 url('../../images/spinelz/navPanel_tab_right_inactive.gif') no-repeat;\r
-  position:                   absolute;\r
-  top:                        0;\r
-  right:                      0;\r
-  width:                      10px;\r
-}\r
-\r
-.navPanel_tabRightActive {\r
-  background:                 url('../../images/spinelz/navPanel_tab_right_active.gif') no-repeat;\r
-  position:                   absolute;\r
-  top:                        0;\r
-  right:                      0;\r
-  width:                      10px;\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/selectableTable.css b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/selectableTable.css
deleted file mode 100644 (file)
index 78250fe..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-.selectableTable_table {\r
-  border-collapse:      collapse;\r
-  margin:               0px;\r
-  padding:              0px;\r
-  width:                100%;\r
-}\r
-\r
-.selectableTable_tr {\r
-  margin:               0px;\r
-  padding:              0px;\r
-}\r
-\r
-.selectableTable_tr td {\r
-  border-bottom:        1px dotted black;\r
-  border-top:           1px dotted black;\r
-}\r
-\r
-.selectableTable_trSelected {\r
-  background:           url(../../images/spinelz/selectabletable_selected.gif) repeat-x;\r
-  margin:               0px;\r
-  padding:              0px;\r
-}\r
-\r
-.selectableTable_trHover {\r
-  background-color:     #eeffcc;\r
-  margin:               0px;\r
-  padding:              0px;\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/sideBarBox.css b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/sideBarBox.css
deleted file mode 100644 (file)
index fd0a496..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-* {\r
-  margin:                     0;\r
-  padding:                    0;\r
-  text-decoration:            none;\r
-  text-transform:             none;\r
-  text-indent:                0;\r
-  font-weight:                normal;\r
-  list-style-type:            none;\r
-}\r
-\r
-.sideBarBox_panelContainer {\r
-  float:                      left;\r
-  border:                     1px solid #999999;\r
-  padding:                    5px;\r
-  position:                   relative;\r
-  z-index:                    5;\r
-  width:                      200px;\r
-  height:                     200px;\r
-}\r
-\r
-.sideBarBox_tabContainer {\r
-  position:                   relative;\r
-  float:                      left;\r
-  width:                      40px;\r
-}\r
-\r
-.sideBarBox_tabContent {\r
-}\r
-\r
-.sideBarBox_tabTitle {\r
-  position:                   relative;\r
-  left:                       10px;  \r
-}\r
-\r
-.sideBarBox_tab div{  \r
-  cursor:                     pointer;\r
-  width:                      40px;\r
-  position:                   relative;\r
-  left:                       -1px;\r
-}\r
-\r
-.sideBarBox_tabTopInactive {\r
-  background:                 url('../../images/spinelz/sideBarBox_tabTopInactive.gif') no-repeat;\r
-  background-position:        0 1px;\r
-  height:                     10px;\r
-  z-index:                    1;\r
-  font-size:                  1px;\r
-}\r
-\r
-.sideBarBox_tabTopActive {\r
-  background:                 url('../../images/spinelz/sideBarBox_tabTopActive.gif') no-repeat;\r
-  background-position:        0 1px;\r
-  height:                     10px;\r
-  z-index:                    10;\r
-  font-size:                  1px;\r
-}\r
-\r
-.sideBarBox_tabMiddleInactive {\r
-  background:                 url('../../images/spinelz/sideBarBox_tabMiddleInactive.gif') repeat-y;\r
-  background-position:        left top;\r
-  top:                        -2px;\r
-  z-index:                    1;\r
-}\r
-\r
-.sideBarBox_tabMiddleActive {\r
-  background:                 url('../../images/spinelz/sideBarBox_tabMiddleActive.gif') repeat-y;\r
-  background-position:        left top;\r
-  top:                        -2px;\r
-  z-index:                    10;\r
-}\r
-\r
-.sideBarBox_tabBottomInactive {\r
-  display:                    block;\r
-  background:                 url('../../images/spinelz/sideBarBox_tabBottomInactive.gif') no-repeat;\r
-  background-position:        left top;\r
-  height:                     10px;\r
-  top:                        -5px;\r
-}\r
-\r
-.sideBarBox_tabBottomActive {\r
-  display:                    block;\r
-  background:                 url('../../images/spinelz/sideBarBox_tabBottomActive.gif') no-repeat;\r
-  background-position:        left top;\r
-  height:                     10px;\r
-  top:                        -5px;\r
-  z-index:                    10;\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/sortableTable.css b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/sortableTable.css
deleted file mode 100644 (file)
index 8b812b7..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-\r
-.sortableTable_header {\r
-  width:                      100%;\r
-  border:                     none;\r
-}\r
-\r
-.sortableTable_thead {\r
-  background:                 url(../../images/spinelz/table_back.gif) repeat-x #ffffff;\r
-  height:                     26px;\r
-  border:                     1px solid #999;\r
-}\r
-\r
-.sortableTable_thead th { \r
-  border:                     0;\r
-  padding:                    0;\r
-}\r
-.sortableTable_tbody {\r
-  background:                 #ffffff;\r
-}\r
-\r
-.sortableTable_tbody th { \r
- border:                      0;\r
-}\r
-\r
-.sortableTable_title {\r
-  float:                      left;\r
-  width:                      100%;\r
-  font-weight:                bold;\r
-  height:                     26px;\r
-}\r
-\r
-.sortableTable_empty {\r
-  height:                     16px;\r
-  width:                      16px;\r
-}\r
-\r
-.sortableTable_down {\r
-  background:                 url(../../images/spinelz/sortableTable_down.gif) no-repeat;\r
-  cursor:                     pointer; \r
-  height:                     16px;\r
-  width:                      16px;\r
-  overflow:                   hidden;\r
-}\r
-\r
-.sortableTable_up {\r
-  background:                 url(../../images/spinelz/sortableTable_up.gif) no-repeat;\r
-  cursor:                     pointer; \r
-  height:                     16px;\r
-  width:                      16px;\r
-  overflow:                   hidden;\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/switcher.css b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/switcher.css
deleted file mode 100644 (file)
index 2f7a487..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-.switcher_state_close {\r
-  float:               left;\r
-  background-image:    url('../../images/spinelz/switcher_close.gif');\r
-  background-repeat:   no-repeat;\r
-  cursor:              pointer; \r
-  height:              16px;\r
-  width:               16px;\r
-  background-position: center center;\r
-  overflow:            visible;\r
-}\r
-\r
-.switcher_state_open {\r
-  float:               left;\r
-  background-image:    url('../../images/spinelz/switcher_open.gif');\r
-  background-repeat:   no-repeat;\r
-  cursor:              pointer; \r
-  height:              16px;\r
-  width:               16px;\r
-  background-position: center center;\r
-  overflow:            visible;\r
-}\r
-\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/tabBox.css b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/tabBox.css
deleted file mode 100644 (file)
index ee8e002..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-.tabBox_tabBox {\r
-  margin:                     0;\r
-  padding:                    0;\r
-  text-decoration:            none;\r
-  text-transform:             none;\r
-  text-indent:                0;\r
-  font-weight:                normal;\r
-}\r
-\r
-.tabBox_panelContainer {\r
-  clear:                      left;\r
-  border-left:                1px solid #999999;\r
-  border-right:               1px solid #999999;\r
-  border-bottom:              1px solid #999999;\r
-}\r
-\r
-.tabBox_tabContainer{\r
-  height:                     42px;\r
-  background:                 url(../../images/spinelz/tab_bar.gif) repeat-x;\r
-  background-position:        bottom;\r
-  padding-left:               5px;\r
-}\r
-\r
-.tabBox_tab {\r
-  float:                      left;\r
-}\r
-\r
-.tabBox_tab div{\r
-  float:                      left;\r
-  height:                     24px;  \r
-  cursor:                     pointer;\r
-  overflow:                   hidden;\r
-}\r
-\r
-.tabBox_tabLeftInactive {\r
-  background:                 url('../../images/spinelz/tabBox_tabLeftInactive.gif') no-repeat;\r
-  width:                      8px;\r
-  margin-left:                4px;\r
-}\r
-\r
-.tabBox_tabLeftActive {\r
-  background:                 url('../../images/spinelz/tabBox_tabLeftActive.gif') no-repeat;\r
-  width:                      8px;\r
-  margin-left:                4px;\r
-}\r
-\r
-.tabBox_tabMiddleInactive {\r
-  background:                 url('../../images/spinelz/tabBox_tabMiddleInactive.gif') repeat-x;\r
-  line-height:                1.8em;\r
-}\r
-\r
-.tabBox_tabMiddleActive {\r
-  background:                 url('../../images/spinelz/tabBox_tabMiddleActive.gif') repeat-x;\r
-  line-height:                1.8em;\r
-}\r
-\r
-.tabBox_tabRightInactive {\r
-  background:                 url('../../images/spinelz/tabBox_tabRightInactive.gif') no-repeat;\r
-  width:                      10px;\r
-  padding:                    0;\r
-}\r
-\r
-.tabBox_tabRightActive {\r
-  background:                 url('../../images/spinelz/tabBox_tabRightActive.gif') no-repeat;\r
-  width:                      10px;\r
-}\r
-\r
-.tabBox_tabTitle {\r
-  font-weight:                bold;\r
-  line-height:                1.5em;\r
-  padding:                    0 10px !important;\r
-}\r
-\r
-.tabBox_closeButton {\r
-  border:                     0;\r
-  overflow:                   hidden;\r
-  cursor:                     pointer;\r
-  font-size:                  5px;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  background:                 url('../../images/spinelz/tabBox_close.gif') no-repeat;\r
-  position:                   relative;\r
-  top:                        5px;\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/timepicker.css b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/timepicker.css
deleted file mode 100644 (file)
index 1e2ca04..0000000
+++ /dev/null
@@ -1,508 +0,0 @@
-.timepicker_container {\r
-  margin:                     0;\r
-  padding:                    0;\r
-  text-decoration:            none;\r
-  text-transform:             none;\r
-  text-indent:                0;\r
-  font-weight:                normal;\r
-  font-size:                  13px;\r
-  font-family:                Verdana, monospace;\r
-  width:                      150px;\r
-  background:                 #ffffff;\r
-  color:                      #4F4534;\r
-  border:                     1px solid #999999;\r
-}\r
-\r
-/* header */\r
-.timepicker_scheduleHandler {\r
-  background:                 url('../../images/spinelz/calendar_default_handler.gif') no-repeat;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  cursor:                     move;\r
-  float:                      left;\r
-}\r
-\r
-.timepicker_header {\r
-  background:                 url(../../images/spinelz/calender_back.gif) repeat-x;\r
-  color:                      #4F4534; \r
-  width:                      100%;\r
-  height:                     26px; \r
-  border-bottom:              1px solid #999999;\r
-  border-collapse:            collapse;\r
-  font-size:                  13px;\r
-  font-weight:                bold; \r
-}\r
-\r
-.timepicker_preYears {\r
-  text-align:                 left;\r
-  width: 35px;\r
-}\r
-\r
-.timepicker_years {\r
-  text-align:                 center;\r
-}\r
-\r
-.timepicker_years span {\r
-  font-weight:                bolder;\r
-  font-size:                  105%;\r
-}\r
-\r
-.timepicker_nextYears {\r
-  text-align:                 right;\r
-  width: 35px;\r
-}\r
-\r
-.timepicker_nextMonthMark {\r
-  background:                 url('../../images/spinelz/calendar_next.gif') no-repeat;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  cursor:                     pointer;\r
-  float:                      left;\r
-}\r
-\r
-.timepicker_nextYearMark {\r
-  background:                 url('../../images/spinelz/calendar_next_second.gif') no-repeat;;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  cursor:                     pointer;\r
-  margin-left:                16px;\r
-}\r
-\r
-.timepicker_nextWeekMark {\r
-  background:                 url('../../images/spinelz/calendar_next.gif') no-repeat;;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  cursor:                     pointer;\r
-  margin:                     0 0 0 auto;\r
-}\r
-\r
-.timepicker_preMonthMark {\r
-  background:                 url('../../images/spinelz/calendar_pre.gif') no-repeat;;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  cursor:                     pointer;\r
-  margin-left:                16px;\r
-}\r
-\r
-.timepicker_preYearMark {\r
-  background:                 url('../../images/spinelz/calendar_pre_second.gif') no-repeat;;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  cursor:                     pointer;\r
-  float:                      left;\r
-}\r
-\r
-.timepicker_preWeekMark {\r
-  background:                 url('../../images/spinelz/calendar_pre.gif') no-repeat;;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.timepicker_markHover {\r
-  margin-left:                5px;\r
-  margin-right:               5px;\r
-  cursor:                     pointer;\r
-  color:                      #FF8080;\r
-  background-color:           #E6E6FA;\r
-}\r
-\r
-.timepicker_ym {\r
-  margin-left:                5px;\r
-}\r
-\r
-.timepicker_table {\r
-  font-size:                  12px;\r
-  border-collapse:            collapse;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  width:                      100%;\r
-  table-layout:               fixed;\r
-}\r
-\r
-.timepicker_table TH {\r
-  border-right:               1px solid #999999;\r
-  border-bottom:              1px solid gray;\r
-  text-align:                 center;\r
-  background:                 url(../../images/spinelz/calender_back_second.gif) #FFFFFF;\r
-  color:                      #4F4534;\r
-  cursor:                     pointer;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  height:                     24px;\r
-}\r
-\r
-.timepicker_table TH.right {\r
-  border-right-style:         none;\r
-}\r
-\r
-.timepicker_table TD {\r
-  border-right:               1px solid #999999;\r
-  border-bottom:              1px solid #999999;\r
-  vertical-align:             text-top;\r
-  height:                     100px;\r
-  margin:                     0;\r
-  padding:                    0;\r
-}\r
-\r
-.timepicker_table TD.right {\r
-  border-right-style:         none;\r
-}\r
-\r
-.timepicker_table TD.bottom {\r
-  border-bottom-style:        none;\r
-}\r
-\r
-.timepicker_date {\r
-  cursor:                     pointer;\r
-  color:                      #000000;\r
-  background:                 #FFFFFF;\r
-  font-weight:                bold;\r
-}\r
-.timepicker_holidayContainer span {\r
-  padding:                    2px;\r
-}\r
-.timepicker_regularHoliday {\r
-  cursor:                     pointer;\r
-  background:                 #ededed;\r
-  color:                      #285A94;\r
-  font-weight:                bold;\r
-}\r
-\r
-.timepicker_holiday {\r
-  cursor:                     pointer;\r
-  background-color:           #dedede;\r
-  color:                      #285A94;\r
-  font-weight:                bold;\r
-  overflow:                   hidden;\r
-}\r
-\r
-.timepicker_schedule {\r
-  cursor:                     pointer;\r
-  background:                 url(../../images/spinelz/timepicker_schedule.gif) repeat-x;\r
-  color:                      #285A94;\r
-  font-weight:                bold;\r
-}\r
-\r
-.timepicker_highlightDay {\r
-  cursor:                     pointer;\r
-  font-weight:                bold;\r
-  text-decoration:            underline;\r
-}\r
-\r
-.timepicker_selected {\r
-  background:                 #285A94;\r
-  color:                      #ffffff;\r
-}\r
-\r
-.timepicker_dateContainer {\r
-  width:                      100%;\r
-  overflow:                   hidden;\r
-  height:                     15px;\r
-}\r
-\r
-/*\r
-.timepicker_holidayContainer {\r
-  width:                      100%;\r
-  overflow:                   hidden;\r
-}\r
-*/\r
-\r
-.timepicker_holidayName {\r
-  margin-left:                10px;\r
-}\r
-\r
-.timepicker_schedule .timepicker_scheduleListContainer {\r
-  color: #000000;\r
-  margin-top: 5px;\r
-}\r
-\r
-.timepicker_selected .timepicker_scheduleListContainer {\r
-  color:                      #FFFFFF;\r
-  margin-top:                 5px;\r
-}\r
-\r
-.timepicker_scheduleListContainer UL {\r
-  list-style:                 square outside;\r
-  font-weight:                normal;\r
-  padding:                    0;\r
-  margin:                     0 0 0 15px;\r
-}\r
-\r
-.timepicker_scheduleItem {\r
-  font-size: 10px;\r
-}\r
-\r
-.timepicker_scheduleItem DIV {\r
-  overflow:                   hidden;\r
-  font-size: 10px;\r
-}\r
-\r
-/* small size */\r
-.timepicker_small {\r
-  border:                     1px solid #999999;\r
-  font-size:                  13px;\r
-  width:                      175px;\r
-  background:                 #FFFFFF;\r
-  color:                      #4F4534;\r
-}\r
-\r
-.timepicker_timepicker_small {\r
-  background:                 #FFFFFF;\r
-  color:                      #4F4534;\r
-  font-size:                  11px;\r
-}\r
-\r
-.timepicker_header_small {\r
-  background:                 url(../../images/spinelz/calender_back.gif) repeat-x;\r
-  color:                      #4F4534;\r
-  width:                      100%;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  font-size:                  11px;\r
-  font-weight:                bold;\r
-  border-collapse:            collapse; \r
-  border-bottom:              1px solid #999999;\r
-  height:                     26px;\r
-}\r
-\r
-.timepicker_tableSmall {\r
-  font-size:                  11px;\r
-  text-align:                 left;\r
-  width:                      100%;\r
-  border-collapse:            collapse;\r
-  margin:                     0 0 0 0;\r
-  padding:                    0;\r
-  table-layout:               fixed;\r
-}\r
-\r
-.timepicker_tableSmall TH {\r
-  text-align:                 center;\r
-  background:                 url(../../images/spinelz/calender_back_second.gif) #FFFFFF;\r
-  color:                      #4F4534;\r
-  width:                      14%;\r
-  cursor:                     pointer;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  height:                     24px;\r
-}\r
-\r
-.timepicker_tableSmall TD {\r
-  text-align:                 center;\r
-  vertical-align:             text-top;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  height:                     20px;\r
-  vertical-align:             middle;\r
-}\r
-\r
-\r
-/* week */\r
-.timepicker_weekContainerTable {\r
-  width:                      100%;\r
-  border-collapse:            collapse;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  font-size:                  11px;\r
-}\r
-\r
-.timepicker_weekContainerTable TH {\r
-  background:                 url(../../images/spinelz/calender_back_second.gif) #FFFFFF;\r
-  color:                      #4F4534;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  height:                     24px;\r
-}\r
-\r
-.timepicker_weekContainerTable TD {\r
-  margin:                     0;\r
-  padding:                    0;\r
-}\r
-\r
-.timepicker_timeline {\r
-  margin:                     0;\r
-  padding:                    0;\r
-  width:                      25px;\r
-}\r
-\r
-.timepicker_timelineTimeTop {\r
-  height:                     23px;\r
-  text-align:                 center;\r
-}\r
-\r
-.timepicker_timelineTime_ie {\r
-  height:                     27px;\r
-  border-top:                 1px solid #999999;\r
-  text-align:                 center;\r
-}\r
-\r
-.timepicker_timelineTime_ieTop {\r
-  height:                     28px;\r
-  border-top:                 1px solid #999999;\r
-  text-align:                 center;\r
-}\r
-\r
-.timepicker_timelineTime {\r
-  height:                     25px;\r
-  border-top:                 1px solid #999999;\r
-  text-align:                 center;\r
-}\r
-\r
-.timepicker_headerColumn {\r
-  border-left:                1px solid #999999;\r
-  border-bottom:              1px solid #999999;\r
-  height:                     23px;\r
-  overflow:                   hidden;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.timepicker_headerColumn a {\r
-  position: relative;\r
-  top: 4px;\r
-}\r
-\r
-.timepicker_columnTopDate {\r
-  height:                     12px;\r
-  border-left:                1px solid #999999;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.timepicker_columnDate {\r
-  height:                     12px;\r
-  border-top:                 1px solid #999999;\r
-  border-left:                1px solid #999999;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.timepicker_columnOddDate {\r
-  height:                     12px;\r
-  border-top:                 1px dashed #999999;\r
-  border-left:                1px solid #999999;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.timepicker_scheduleItemSmall {\r
-  font-size:                  10px;\r
-  height:                     25px;\r
-  width:                      100%;\r
-  background-color:           #E6E6FA; \r
-  position:                   absolute;\r
-  left:                       0;\r
-  top:                        0;\r
-/*   opacity:                    0.7; */\r
-  z-index:                    1000;\r
-  overflow:                   hidden;\r
-}\r
-\r
-.timepicker_scheduleItemLarge {\r
-  font-size:                  10px;\r
-  height:                     17px;\r
-  width:                      100%;\r
-  background-color:           #E6E6FA; \r
-  position:                   absolute;\r
-  left:                       0;\r
-  top:                        0;\r
-  z-index:                    1000;\r
-  overflow:                   hidden;\r
-  border:                     2px solid #285A94;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.timepicker_scheduleItemNoBorder {\r
-  padding-top:                2px;\r
-  font-size:                  10px;\r
-  height:                     16px;\r
-  width:                      100%;\r
-  position:                   absolute;\r
-  left:                       0;\r
-  top:                        0;\r
-  z-index:                    1000;\r
-  overflow:                   hidden;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.timepicker_scheduleItemNoBorder div {\r
-  height:                     16px;\r
-}\r
-\r
-.timepicker_scheduleItemSelect {\r
-  border:                     2px solid red;\r
-}\r
-\r
-/*\r
-.timepicker_detailItem UL {\r
-  list-style:                 square outside;\r
-  font-weight:                normal;\r
-  padding:                    0;\r
-  margin:                     0 0 0 15px;\r
-}\r
-*/\r
-\r
-.timepicker_weekMainTable {\r
-  width:                      100%;\r
-  border-collapse:            collapse;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  font-size:                  11px;\r
-}\r
-\r
-.timepicker_weekMainTable TH {\r
-  background:                 url(../../images/spinelz/calender_back_second.gif) #FFFFFF;\r
-  color:                      #4F4534;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  text-align:                 center;\r
-}\r
-\r
-.timepicker_weekMainTable TD {\r
-  margin:                     0;\r
-  padding:                    0;\r
-}\r
-\r
-.timepicker_weekScheduleContainer {\r
-}\r
-\r
-.timepicker_deleteImage {\r
-  background:                 url(../../images/spinelz/timepicker_delete.gif) no-repeat;\r
-  position:                   absolute;\r
-  top:                        0;\r
-  right:                      0;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  font-size:                  5px;\r
-  cursor:                     pointer;\r
-}\r
-\r
-.timepicker_privateImage {\r
-  background:                 url(../../images/spinelz/timepicker_private_icon.gif) no-repeat;\r
-  float:                      left;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  font-size:                  5px;\r
-}\r
-\r
-.timepicker_selector {\r
-  position: absolute;\r
-  top: 0;\r
-  left: 0;\r
-  border:                      2px solid #9b0f0f;\r
-  background:                  #FFC0CB;\r
-}\r
-\r
-.timepicker_scheduleItemTimeArea {\r
-  margin-right: 3px;\r
-  font-size: 9px;\r
-}\r
-\r
-.timepicker_cover {\r
-  width:                      100%;\r
-  height:                     100px;\r
-  position:                   absolute;\r
-  left:                       0;\r
-  top:                        0;\r
-  z-index:                    1000;\r
-}\r
-\r
-.timepicker_displayToggle {\r
-   font-weight:               normal;\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/toolbar.css b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/toolbar.css
deleted file mode 100644 (file)
index 86f121f..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-.toolbar_container {\r
-  position: relative;\r
-  height: 25px;\r
-}\r
-\r
-.toolbar_containerLeft {\r
-  background-repeat:no-repeat;\r
-  background-image:url('../../images/spinelz/toolbar_left.gif');\r
-  position:absolute;\r
-  left:0px;\r
-  height: 25px;  \r
-  width: 2px;  \r
-}\r
-\r
-.toolbar_containerMiddle {\r
-  height: 25px;  \r
-  background-repeat:repeat-x;\r
-  background-image:url('../../images/spinelz/toolbar_middle.gif');\r
-  margin-left: 2px;\r
-  margin-right: 3px;\r
-  padding-top: 2px;\r
-}\r
-\r
-.toolbar_containerRight {\r
-  background-repeat: no-repeat;\r
-  background-image: url('../../images/spinelz/toolbar_right.gif');\r
-  position:absolute;\r
-  top: 0px;\r
-  right:0px;\r
-  height: 25px;  \r
-  width: 3px;\r
-}\r
-\r
-.toolbar_item {\r
-  position:relative;\r
-  margin-right:3px;\r
-  height:20px;\r
-  padding: 1px;\r
-  float:left;\r
-}\r
-\r
-.toolbar_itemHov {\r
-  position:relative;\r
-  margin-right:3px;\r
-  height:20px;\r
-  padding: 0px;\r
-  float:left;\r
-  border: 1px solid #b9cfd8;  \r
-}\r
-\r
-.toolbar_itemPres {\r
-  position:relative;\r
-  margin-right:3px;\r
-  height:20px;\r
-  padding: 0px;\r
-  float:left;\r
-  border-width: 1px;\r
-  border-style: solid;\r
-  border-color: #b9cfd8 #ffffff #ffffff #b9cfd8;  \r
-}\r
-\r
-.toolbar_content {\r
-  position:relative;\r
-  height: 18px;\r
-  font-size:11px;\r
-  padding: 2px 5px 0 5px;\r
-  overflow: hidden;\r
-  cursor: pointer;\r
-  float: left;\r
-}\r
-\r
-.toolbar_contentPres {\r
-  position:relative;\r
-  height: 18px;\r
-  font-size:0px;\r
-  padding: 2px 5px 0 5px;\r
-  overflow: hidden;\r
-  cursor: pointer;\r
-  float: left;\r
-  background-color: #ffffff;\r
-  color: #000000;\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/treeview.css b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/treeview.css
deleted file mode 100644 (file)
index 20c5543..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-.treeview {\r
-  list-style: none outside;\r
-  font-size: 12px;\r
-}\r
-\r
-.treeview_dir {\r
-  margin-top: 2px;\r
-  height: auto;\r
-  width: auto;\r
-}\r
-\r
-.treeview_dirBody {\r
-  cursor: pointer;\r
-  height: 15px;\r
-  width: auto;\r
-}\r
-\r
-.treeview_dirBodyText {\r
-  background-color: #FFFFFF;\r
-  color: black;\r
-}\r
-\r
-.treeview_dirBodyTextActive {\r
-  background-color: #becfeb;\r
-  color: black;\r
-}\r
-\r
-.treeview_dirContainerHover {\r
-  background-color: #becfeb; \r
-}\r
-\r
-.treeview_dirContainer {\r
-  list-style: none outside;\r
-  padding: 1px 0 3px 20px;\r
-  margin: 0px;\r
-  height: auto;\r
-  width: auto;\r
-}\r
-\r
-.treeview_file {\r
-  margin-top: 2px;\r
-  margin-left: 17px;\r
-/*   position: relative; */\r
-/*   top: 0px; */\r
-/*   left: 0px; */\r
-}\r
-\r
-.treeview_fileBody {\r
-  height: 15px;\r
-  cursor: pointer;\r
-}\r
-\r
-.treeview_fileBodyText {\r
-  background-color: #FFFFFF;\r
-  color: black;\r
-}\r
-\r
-.treeview_fileBodyTextActive {\r
-  background-color: #becfeb;\r
-  color: black;\r
-}\r
-\r
-.treeview_stateEmpty {\r
-  float: left;\r
-  background-image: url(../../images/spinelz/treeview_state.gif);\r
-  background-repeat: no-repeat;\r
-  cursor: pointer; \r
-  height: 11px;\r
-  width: 11px;\r
-  margin-right: 5px;\r
-  background-position: 0px -22px;\r
-  overflow: hidden;\r
-}\r
-\r
-.treeview_stateClose {\r
-  float: left;\r
-  background-image: url(../../images/spinelz/treeview_state.gif);\r
-  background-repeat: no-repeat;\r
-  cursor: pointer; \r
-  height: 11px;\r
-  width: 11px;\r
-  margin-right: 5px;\r
-  background-position: 0px -11px;\r
-  overflow: hidden;\r
-}\r
-\r
-.treeview_stateOpen {\r
-  float: left;\r
-  background-image: url(../../images/spinelz/treeview_state.gif);\r
-  background-repeat: no-repeat;\r
-  cursor: pointer; \r
-  height: 11px;\r
-  width: 11px;\r
-  margin-right: 5px;\r
-  background-position: 0px 0px;\r
-  overflow: hidden;\r
-}\r
-\r
-.treeview_dirIcon {\r
-  float: left;\r
-  background-image: url(../../images/spinelz/treeview_dir.gif);\r
-  background-repeat: no-repeat;\r
-  cursor: pointer; \r
-  height: 16px;\r
-  width: 16px;\r
-  margin-right: 5px;\r
-  background-position: 0px 0px;\r
-  overflow: hidden;\r
-}\r
-\r
-.treeview_fileIcon {\r
-  float: left;\r
-  background-image: url(../../images/spinelz/treeview_file.gif);\r
-  background-repeat: no-repeat;\r
-  cursor: pointer; \r
-  height: 16px;\r
-  width: 16px;\r
-  margin-right: 2px;\r
-  background-position: 0px 0px;\r
-  overflow: hidden;\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/window.css b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/spinelz/window.css
deleted file mode 100644 (file)
index 9cb8ade..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-.window {\r
-  position:                   absolute;\r
-  margin:                     0;\r
-  padding:                    0;\r
-  text-decoration:            none;\r
-  text-transform:             none;\r
-  text-indent:                0;\r
-  font-weight:                normal;\r
-}\r
-\r
-.window_header{\r
-  width:                      100%;\r
-  height:                     45px;\r
-  position:                   relative;\r
-}\r
-\r
-.window_headerLeft{\r
-  width:                      30px;\r
-  height:                     45px;\r
-  top:                        0;\r
-  position:                   absolute;\r
-  left:                       0;\r
-  background:                 url('../../images/spinelz/window_top_left.gif') no-repeat;\r
-}\r
-\r
-.window_headerMiddle{\r
-  height:                     45px;\r
-  top:                        0;\r
-  margin:                     0 30px;\r
-  background:                 url('../../images/spinelz/window_top_middle.gif') repeat-x;\r
-  cursor:                     move;\r
-  line-height:                3.0em;\r
-  overflow:                   hidden;\r
-}\r
-\r
-.window_headerRight{\r
-  width:                      30px;\r
-  height:                     45px;\r
-  top:                        0;\r
-  position:                   absolute;\r
-  right:                      0;\r
-  background:                 url('../../images/spinelz/window_top_right.gif') no-repeat;\r
-}\r
-\r
-.window_buttonHolder{\r
-  width:                      60px;\r
-  height:                     16px;\r
-  position:                   absolute;\r
-  top:                        0;\r
-  right:                      32px;\r
-  margin-top:                 10px;\r
-}\r
-\r
-.window_closeButton{\r
-  float:                      right;\r
-  overflow:                   hidden;\r
-  font-size:                  5px;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  background:                 url('../../images/spinelz/window_close.gif') no-repeat;\r
-  cursor:pointer;\r
-}\r
-\r
-.window_maxButton{\r
-  float:                      right;\r
-  overflow:                   hidden;\r
-  cursor:                     pointer;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  background:                 url('../../images/spinelz/window_max.gif') no-repeat;\r
-}\r
-\r
-.window_minButton{\r
-  float:                      right;\r
-  overflow:                   hidden;\r
-  cursor:                     pointer;\r
-  width:                      16px;\r
-  height:                     16px;\r
-  background:                 url('../../images/spinelz/window_min.gif') no-repeat;\r
-}\r
-\r
-.window_body{\r
-  width:                      100%;\r
-  background:                 transparent;\r
-  color:                      #000000;\r
-  position:                   relative;\r
-}\r
-\r
-.window_bodyLeft{\r
-  top:                        0;\r
-  width:                      30px;\r
-  position:                   absolute;\r
-  left:                       0;\r
-  background:                 url('../../images/spinelz/window_middle_left.gif') repeat-y;\r
-}\r
-\r
-.window_bodyMiddle{\r
-  top:                        0;\r
-  position:                   relative;\r
-  margin:                     0 30px;\r
-  background:                 #fff;\r
-  color:                      #000000;\r
-  overflow:                   auto;\r
-}\r
-\r
-.window_bodyRight{\r
-  top:                        0;\r
-  width:                      30px;\r
-  position:                   absolute;\r
-  right:                      0;\r
-  background:                 url('../../images/spinelz/window_middle_right.gif') repeat-y;\r
-}\r
-\r
-.window_bottom{\r
-  width:                      100%;\r
-  height:                     35px;\r
-  position:                   relative;\r
-}\r
-\r
-.window_bottomLeft{\r
-  width:                      30px;\r
-  height:                     35px;\r
-  position:                   absolute;\r
-  left:                       0;\r
-  background:                 url('../../images/spinelz/window_bottom_left.gif') no-repeat;\r
-}\r
-\r
-.window_bottomMiddle{\r
-  height:                     35px;\r
-  margin:                     0 30px;\r
-  background: url('../../images/spinelz/window_bottom_middle.gif') repeat-x;\r
-}\r
-\r
-.window_bottomRight{\r
-  width:                      30px;\r
-  height:                     35px;\r
-  position:                   absolute;\r
-  top:                        0;\r
-  right:                      0;\r
-  background:                 url('../../images/spinelz/window_bottom_right.gif') no-repeat;\r
-}\r
diff --git a/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/style.css b/war/WEB-INF/classes/jp/sourceforge/manganetwork/page/stylesheets/style.css
deleted file mode 100644 (file)
index 138f083..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-body { background-color: #fff; color: #333; }\r
-\r
-body, p, ol, ul, td {\r
-  font-family: verdana, arial, helvetica, sans-serif;\r
-  font-size:   13px;\r
-  line-height: 18px;\r
-}\r
-\r
-pre {\r
-  background-color: #eee;\r
-  padding: 10px;\r
-  font-size: 11px;\r
-}\r
-\r
-a { color: #000; }\r
-a:visited { color: #666; }\r
-a:hover { color: #fff; background-color:#000; }\r
-\r
-ul.menu {\r
-       list-style-type: none;  \r
-}\r
-\r
-ul.menu li {\r
-       float: left;\r
-       background-color: white;\r
-       margin-left: 10px;\r
-       border: 1px solid black;\r
-       padding: 2px;\r
-}\r
-\r
-div.tabpanel div.tab-row li {\r
-    margin: 0;\r
-    padding: 0;\r
-    display: inline;\r
-    list-style-type: none;\r
-}\r
-\r
-div.tabpanel div.tab-row a:link,\r
- div.tabpanel div.tab-row a:visited {\r
-    float: left;\r
-    background: #f3f3f3;\r
-    font-size: 12px;\r
-    line-height: 14px;\r
-    font-weight: bold;\r
-    padding: 2px 10px 2px 10px;\r
-    margin-right: 4px;\r
-    border: 1px solid #ccc;\r
-    text-decoration: none;\r
-    color: #666;\r
-}\r
-\r
-div.tabpanel div.tab-row li.selected a:link,\r
- div.tabpanel div.tab-row a:visited.active {\r
-    border-bottom: 1px solid #fff;\r
-    background: #fff;\r
-    color: #000;\r
-}\r
-\r
-div.tabpanel div.tab-row a:hover {\r
-    background: #fff;\r
-}
\ No newline at end of file
diff --git a/war/WEB-INF/classes/log4j.properties b/war/WEB-INF/classes/log4j.properties
deleted file mode 100644 (file)
index c1021db..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-# A default log4j configuration for log4j users.\r
-#\r
-# To use this configuration, deploy it into your application's WEB-INF/classes\r
-# directory.  You are also encouraged to edit it as you like.\r
-\r
-# Configure the console as our one appender\r
-log4j.appender.A1=org.apache.log4j.ConsoleAppender\r
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout\r
-log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%c] - %m%n\r
-\r
-# tighten logging on the DataNucleus Categories\r
-log4j.category.DataNucleus.JDO=WARN, A1\r
-log4j.category.DataNucleus.Persistence=WARN, A1\r
-log4j.category.DataNucleus.Cache=WARN, A1\r
-log4j.category.DataNucleus.MetaData=WARN, A1\r
-log4j.category.DataNucleus.General=WARN, A1\r
-log4j.category.DataNucleus.Utility=WARN, A1\r
-log4j.category.DataNucleus.Transaction=WARN, A1\r
-log4j.category.DataNucleus.Datastore=WARN, A1\r
-log4j.category.DataNucleus.ClassLoading=WARN, A1\r
-log4j.category.DataNucleus.Plugin=WARN, A1\r
-log4j.category.DataNucleus.ValueGeneration=WARN, A1\r
-log4j.category.DataNucleus.Enhancer=WARN, A1\r
-log4j.category.DataNucleus.SchemaTool=WARN, A1\r
diff --git a/war/WEB-INF/lib/cglib-2.2.jar b/war/WEB-INF/lib/cglib-2.2.jar
deleted file mode 100644 (file)
index 084ef6e..0000000
Binary files a/war/WEB-INF/lib/cglib-2.2.jar and /dev/null differ
diff --git a/war/WEB-INF/lib/guice-1.0.jar b/war/WEB-INF/lib/guice-1.0.jar
deleted file mode 100644 (file)
index d78cd33..0000000
Binary files a/war/WEB-INF/lib/guice-1.0.jar and /dev/null differ
diff --git a/war/WEB-INF/lib/wicket-guice-1.3.5.jar b/war/WEB-INF/lib/wicket-guice-1.3.5.jar
deleted file mode 100644 (file)
index 247e88b..0000000
Binary files a/war/WEB-INF/lib/wicket-guice-1.3.5.jar and /dev/null differ
index 89410e2..39712b3 100644 (file)
@@ -6,7 +6,7 @@
 <web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">\r
        <filter>\r
                <filter-name>wicket.appengine-sample</filter-name>\r
-               <filter-class>jp.sourceforge.manganetwork.ReloadingWicketFilter</filter-class>\r
+               <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>\r
                <init-param>\r
                        <param-name>applicationClassName</param-name>\r
                        <param-value>jp.sourceforge.manganetwork.WicketApplication</param-value>\r
                <url-pattern>/*</url-pattern>\r
        </filter-mapping>\r
        \r
-       <servlet>\r
-               <servlet-name>cloudmanganetwork</servlet-name>\r
-               <servlet-class>jp.sourceforge.manganetwork.CloudMangaNetworkServlet</servlet-class>\r
-       </servlet>\r
-       <servlet-mapping>\r
-               <servlet-name>cloudmanganetwork</servlet-name>\r
-               <url-pattern>/cloudmanganetwork</url-pattern>\r
-       </servlet-mapping>\r
-       <welcome-file-list>\r
-               <welcome-file>index.html</welcome-file>\r
-       </welcome-file-list>\r
+   <listener>\r
+      <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-class>\r
+   </listener> \r
 </web-app>\r
diff --git a/war/index.html b/war/index.html
deleted file mode 100644 (file)
index 48c4e98..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r
-<!-- The HTML 4.01 Transitional DOCTYPE declaration-->\r
-<!-- above set at the top of the file will set     -->\r
-<!-- the browser's rendering engine into           -->\r
-<!-- "Quirks Mode". Replacing this declaration     -->\r
-<!-- with a "Standards Mode" doctype is supported, -->\r
-<!-- but may lead to some differences in layout.   -->\r
-\r
-<html>\r
-  <head>\r
-    <meta http-equiv="content-type" content="text/html; charset=UTF-8">\r
-    \r
-    <!--                                           -->\r
-    <!-- Any title is fine                         -->\r
-    <!--                                           -->\r
-    <title>Hello App Engine</title>\r
-  </head>\r
-\r
-  <!--                                           -->\r
-  <!-- The body can have arbitrary html, or      -->\r
-  <!-- you can leave the body empty if you want  -->\r
-  <!-- to create a completely dynamic UI.        -->\r
-  <!--                                           -->\r
-  <body>\r
-    <h1>Hello App Engine!</h1>\r
-       \r
-    <table>\r
-      <tr>\r
-        <td colspan="2" style="font-weight:bold;">Available Servlets:</td>        \r
-      </tr>\r
-      <tr>\r
-        <td><a href="cloudmanganetwork"/>CloudMangaNetworkServlet</td>\r
-      </tr>\r
-    </table>\r
-  </body>\r
-</html>\r