major rewrite of the foundation:
- de-maveniziation (uses the same code that Acre uses to drive jetty directly) - removed all dependencies on external javascript code (jquery and suggest) by making a local copy (this makes gridworks totally self-serving, meaning that you can use it even if you don't have any internet connectivity) - fixed a NPE when the servlet is shutdown before any project is loaded - found a way to spawn a browser directly from the java code (untested in windows) - added two ant tasks to generate windows and macosx stand-alone binaries (unused just yet) To run, just type "./gridworks run" at the command line git-svn-id: http://google-refine.googlecode.com/svn/trunk@65 7d457c2a-affb-35e4-300a-418c747d4874
This commit is contained in:
parent
8f186a5f10
commit
1343162a75
14
.classpath
Normal file
14
.classpath
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="src" path="src/main/java"/>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||||
|
<classpathentry kind="lib" path="lib/servlet-api-2.5.jar" sourcepath="lib-src/servlet-api-2.5-sources.jar"/>
|
||||||
|
<classpathentry kind="lib" path="lib/jetty-6.1.22.jar" sourcepath="lib-src/jetty-6.1.22-sources.jar"/>
|
||||||
|
<classpathentry kind="lib" path="lib/jetty-util-6.1.22.jar" sourcepath="lib-src/jetty-util-6.1.22-sources.jar"/>
|
||||||
|
<classpathentry kind="lib" path="lib/log4j-1.2.15.jar" sourcepath="lib-src/log4j-1.2.15-sources.jar"/>
|
||||||
|
<classpathentry kind="lib" path="lib/commons-codec-1.3.jar" sourcepath="lib-src/commons-codec-1.3-sources.jar"/>
|
||||||
|
<classpathentry kind="lib" path="lib/commons-lang-2.4.jar" sourcepath="lib-src/commons-lang-2.4-sources.jar"/>
|
||||||
|
<classpathentry kind="lib" path="lib/poi-3.6.jar" sourcepath="lib-src/poi-3.6-sources.jar"/>
|
||||||
|
<classpathentry kind="lib" path="lib/cos-05Nov2002.jar"/>
|
||||||
|
<classpathentry kind="output" path="build/classes"/>
|
||||||
|
</classpath>
|
12
.project
Normal file
12
.project
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<projectDescription>
|
||||||
|
<name>gridworks</name>
|
||||||
|
<projects/>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
12
.settings/org.eclipse.jdt.core.prefs
Normal file
12
.settings/org.eclipse.jdt.core.prefs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#Sat Feb 06 22:08:10 PST 2010
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
|
org.eclipse.jdt.core.compiler.compliance=1.5
|
||||||
|
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||||
|
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||||
|
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||||
|
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.source=1.5
|
4
LICENSE.txt
Normal file
4
LICENSE.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
/*
|
||||||
|
* (c) Copyright 2010 Metaweb Technologies, Inc. All rights reserved.
|
||||||
|
*
|
||||||
|
*/
|
23
README.txt
Normal file
23
README.txt
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
G r i d w o r k s
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
What is this?
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Gridworks is a tabular data exploration and manipulation tool.
|
||||||
|
|
||||||
|
|
||||||
|
[more soon]
|
||||||
|
|
||||||
|
|
||||||
|
- o -
|
||||||
|
|
||||||
|
|
||||||
|
Thank you for your interest.
|
||||||
|
|
||||||
|
|
39
build.xml
Normal file
39
build.xml
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--+
|
||||||
|
|
|
||||||
|
| Gridworks Build File
|
||||||
|
|
|
||||||
|
+-->
|
||||||
|
|
||||||
|
<project name="gridworks" default="compile" basedir=".">
|
||||||
|
|
||||||
|
<property environment="env"/>
|
||||||
|
|
||||||
|
<property name="src.dir" value="${basedir}/src/main/java" />
|
||||||
|
<property name="lib.dir" value="${basedir}/lib" />
|
||||||
|
<property name="build.dir" value="${basedir}/build" />
|
||||||
|
<property name="classes.dir" value="${build.dir}/classes" />
|
||||||
|
|
||||||
|
<path id="class.path">
|
||||||
|
<fileset dir="${lib.dir}">
|
||||||
|
<include name="**/*.jar" />
|
||||||
|
</fileset>
|
||||||
|
</path>
|
||||||
|
|
||||||
|
<target name="compile">
|
||||||
|
<mkdir dir="${classes.dir}" />
|
||||||
|
<javac srcdir="${src.dir}" destdir="${classes.dir}" debug="true">
|
||||||
|
<classpath refid="class.path" />
|
||||||
|
</javac>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="clean">
|
||||||
|
<delete dir="${classes.dir}" />
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="distclean">
|
||||||
|
<delete dir="${build.dir}" />
|
||||||
|
</target>
|
||||||
|
|
||||||
|
</project>
|
200
gridworks
200
gridworks
@ -1,16 +1,20 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
fail () {
|
##########################################################
|
||||||
cat <<EOF
|
# Gridworks Control System #
|
||||||
|
##########################################################
|
||||||
|
|
||||||
|
fail() {
|
||||||
|
cat <<EOF
|
||||||
ERROR: $1
|
ERROR: $1
|
||||||
Usage: $0 [options] <action>
|
Usage: $0 [options] <action>
|
||||||
-h for more details
|
-h for more details
|
||||||
EOF
|
EOF
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
Usage: $0 [options] <action>
|
Usage: $0 [options] <action>
|
||||||
where [options] include:
|
where [options] include:
|
||||||
|
|
||||||
@ -19,111 +23,151 @@ where [options] include:
|
|||||||
-p <port> the port that gridworks will listen to
|
-p <port> the port that gridworks will listen to
|
||||||
default: 3333
|
default: 3333
|
||||||
|
|
||||||
-d enable JVM debugging (on port 8000)
|
-i <interface> the host interface gridworks should bind to
|
||||||
|
default: 127.0.0.1
|
||||||
-s <mode> enable profiling
|
|
||||||
(available modes are "hprof" and "yourkit")
|
-w <path> path to the webapp
|
||||||
|
default: src/main/webapp
|
||||||
|
|
||||||
-x enable JMX monitoring (for jconsole and friends)
|
-d enable JVM debugging (on port 8000)
|
||||||
|
|
||||||
|
-x enable JMX monitoring (for jconsole)
|
||||||
|
|
||||||
and <action> is one of
|
and <action> is one of
|
||||||
|
|
||||||
run Run Gridworks (default)
|
build ..... Build Gridworks
|
||||||
|
run ....... Run Gridworks
|
||||||
eclipse Build Eclipse project files
|
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
absolute_path () {
|
add_option() {
|
||||||
case $1 in
|
OPTS="$OPTS $1"
|
||||||
/*) echo $1; ;;
|
|
||||||
*) echo `pwd`/$1; ;;
|
|
||||||
esac
|
|
||||||
}
|
}
|
||||||
|
|
||||||
add_option () {
|
OPTS="$GRIDWORKS_OPTS"
|
||||||
MAVEN_OPTS="$MAVEN_OPTS $1"
|
|
||||||
|
# ----- actions -------------------------------------------------
|
||||||
|
|
||||||
|
build() {
|
||||||
|
if [ ! -d $GRIDWORKS_BUILD_DIR ] ; then
|
||||||
|
mkdir $GRIDWORKS_BUILD_DIR || exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
ANT=`which ant`
|
||||||
|
if [ "$ANT" = "" ] ; then
|
||||||
|
ANT_TAR=`ls thirdparty | grep apache-ant`
|
||||||
|
ANT_DIR="$GRIDWORKS_BUILD_DIR/ant"
|
||||||
|
ANT="$ANT_DIR/bin/ant"
|
||||||
|
if [ ! -d $ANT_DIR ] ; then
|
||||||
|
tar xzf $ANT_TAR -C $BUILD_DIR || exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
$ANT -f build.xml compile || exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
### Parse the command line args.
|
run() {
|
||||||
|
if [ ! -d $GRIDWORKS_BUILD_DIR/classes ] ; then
|
||||||
|
build
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
CLASSPATH="$GRIDWORKS_BUILD_DIR/classes:$GRIDWORKS_LIB_DIR/*.jar"
|
||||||
|
|
||||||
MAVEN_OPTS="$GRIDWORKS_OPTS -Djava.awt.headless=true"
|
RUN_CMD="$JAVA -cp $CLASSPATH $OPTS com.metaweb.gridworks.Gridworks"
|
||||||
|
|
||||||
|
echo "Starting Gridworks at 'http://${GRIDWORKS_HOST}:${GRIDWORKS_PORT}/'"
|
||||||
|
echo ""
|
||||||
|
#echo "$RUN_CMD"
|
||||||
|
#echo ""
|
||||||
|
|
||||||
|
exec $RUN_CMD
|
||||||
|
}
|
||||||
|
|
||||||
|
# ----- We called without arguments print the usage -------------
|
||||||
|
|
||||||
|
[ $# -gt 0 ] || usage
|
||||||
|
|
||||||
|
# ----- Normalize the current directory -------------------------
|
||||||
|
|
||||||
|
cd `dirname $0`
|
||||||
|
|
||||||
|
# ----- Make sure there is a java environment installed -------------------------
|
||||||
|
|
||||||
|
if [ ! -z "$JAVA_HOME" ] ; then
|
||||||
|
JAVA="$JAVA_HOME/bin/java"
|
||||||
|
else
|
||||||
|
JAVA=`which java`
|
||||||
|
if [ -z "$JAVA" ] ; then
|
||||||
|
system=`uname`
|
||||||
|
|
||||||
|
if [ "$system" = 'Darwin' ] ; then
|
||||||
|
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
|
||||||
|
else
|
||||||
|
echo "The 'java' command should be in your path or the 'JAVA_HOME' environment variable should be set"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ----- Parse the command line args ------------------------------------------
|
||||||
|
|
||||||
while [ $# -ne 0 ] ; do
|
while [ $# -ne 0 ] ; do
|
||||||
case "x$1" in
|
case "$1" in
|
||||||
x-p) shift; GRIDWORKS_PORT="$1"; shift; ;;
|
-p) shift; GRIDWORKS_PORT="$1"; shift; continue;;
|
||||||
x-d) shift; add_option '-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n'; ;;
|
-i) shift; GRIDWORKS_HOST="$1"; shift; continue;;
|
||||||
x-s) shift;
|
-w) shift; GRIDWORKS_WEBAPP="$1"; shift; continue;;
|
||||||
case "$1" in
|
-d) shift; add_option '-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n'; continue;;
|
||||||
profile)
|
-x) shift; add_option '-Dcom.sun.management.jmxremote'; continue;;
|
||||||
add_option '-Xrunhprof:heap=all,cpu=samples,thread=y,depth=3'; ;;
|
-*) fail "Invalid option: $1";;
|
||||||
shark)
|
*) break;;
|
||||||
add_option '-Xrunshark'; ;;
|
|
||||||
yourkit)
|
|
||||||
if [ "$YOURKIT_HOME" = "" ] ; then
|
|
||||||
echo "YOURKIT_HOME should be set to Yourkit Java Profiler absolute path"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
if [ `uname` = 'Linux' ] ; then
|
|
||||||
if [ "`uname -a | grep x86_64`" ] ; then
|
|
||||||
# Assume Linux AMD 64 has 64-bit Java
|
|
||||||
export LD_LIBRARY_PATH="$YOURKIT_HOME/bin/linux-amd64:$LD_LIBRARY_PATH"
|
|
||||||
else
|
|
||||||
# 32-bit Java
|
|
||||||
export LD_LIBRARY_PATH="$YOURKIT_HOME/bin/linux-x86-32:$LD_LIBRARY_PATH"
|
|
||||||
fi
|
|
||||||
elif [ `uname` = 'Darwin' ] ; then
|
|
||||||
# Mac OS X
|
|
||||||
export DYLD_LIBRARY_PATH="$YOURKIT_HOME/bin/mac:$DYLD_LIBRARY_PATH"
|
|
||||||
elif [ `uname` = 'SunOS' ] ; then
|
|
||||||
# Solaris, unlike Linux, probes entire LD_LIBRARY_PATH instead of stopping after first improper shared library
|
|
||||||
LD_LIBRARY_PATH="$YOURKIT_HOME/bin/solaris-sparc-32:$YOURKIT_HOME/bin/solaris-sparc-64:$YOURKIT_HOME/bin/solaris-x86-32:$YOURKIT_HOME/bin/solaris-x86-64:$LD_LIBRARY_PATH"
|
|
||||||
export LD_LIBRARY_PATH
|
|
||||||
fi
|
|
||||||
add_option '-agentlib:yjpagent=sessionname=Gridworks'; ;;
|
|
||||||
esac
|
|
||||||
shift; ;;
|
|
||||||
x-x) shift; add_option '-Dcom.sun.management.jmxremote'; ;;
|
|
||||||
x-h) usage; ;;
|
|
||||||
*) ACTION="$1"; shift; ;;
|
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
ACTION=$1; shift
|
||||||
|
|
||||||
# ----- Verify and Set Required Environment Variables -------------------------
|
# ----- Verify and Set Required Environment Variables -------------------------
|
||||||
|
|
||||||
if [ "$JAVA_OPTIONS" = "" ] ; then
|
if [ "$JAVA_OPTIONS" == "" ] ; then
|
||||||
JAVA_OPTIONS="-Xms256M -Xmx1024M"
|
JAVA_OPTIONS="-Xms256M -Xmx1024M"
|
||||||
fi
|
fi
|
||||||
add_option "$JAVA_OPTIONS"
|
add_option "$JAVA_OPTIONS"
|
||||||
|
|
||||||
if [ "$GRIDWORKS_PORT" = "" ] ; then
|
if [ "$GRIDWORKS_PORT" == "" ] ; then
|
||||||
GRIDWORKS_PORT="3333"
|
GRIDWORKS_PORT="3333"
|
||||||
fi
|
fi
|
||||||
add_option "-Djetty.port=$GRIDWORKS_PORT"
|
add_option "-Dgridworks.port=$GRIDWORKS_PORT"
|
||||||
|
|
||||||
# ----- Respond to the action given. ----------------------------------------------------------
|
if [ "$GRIDWORKS_HOST" == "" ] ; then
|
||||||
|
GRIDWORKS_HOST="127.0.0.1"
|
||||||
|
fi
|
||||||
|
add_option "-Dgridworks.host=$GRIDWORKS_HOST"
|
||||||
|
|
||||||
if [ "$ACTION" == '' ] ; then
|
if [ "$GRIDWORKS_WEBAPP" == "" ] ; then
|
||||||
ACTION='run'
|
GRIDWORKS_WEBAPP="src/main/webapp"
|
||||||
|
fi
|
||||||
|
add_option "-Dgridworks.webapp=$GRIDWORKS_WEBAPP"
|
||||||
|
|
||||||
|
if [ "$GRIDWORKS_BUILD_DIR" == "" ] ; then
|
||||||
|
GRIDWORKS_BUILD_DIR="build"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$GRIDWORKS_LIB_DIR" == "" ] ; then
|
||||||
|
GRIDWORKS_LIB_DIR="lib"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# ----- Respond to the action given --------------------------------------------
|
||||||
|
|
||||||
case "$ACTION" in
|
case "$ACTION" in
|
||||||
|
build)
|
||||||
|
build;;
|
||||||
|
|
||||||
run)
|
run)
|
||||||
OPEN=`which 'open'`
|
run;;
|
||||||
if [ $OPEN != '' ] ; then
|
|
||||||
$OPEN "http://127.0.0.1:$GRIDWORKS_PORT/"
|
|
||||||
fi
|
|
||||||
|
|
||||||
export MAVEN_OPTS
|
|
||||||
echo "[INFO] MAVEN_OPTS: '$MAVEN_OPTS'"
|
|
||||||
exec mvn $MAVEN_PARAMS jetty:run; ;;
|
|
||||||
|
|
||||||
eclipse)
|
|
||||||
mvn eclipse:clean
|
|
||||||
mvn eclipse:eclipse; ;;
|
|
||||||
|
|
||||||
*)
|
*)
|
||||||
fail "Unknown action '$ACTION'"; ;;
|
usage; ;;
|
||||||
esac
|
esac
|
||||||
|
@ -8,6 +8,9 @@ rem
|
|||||||
rem JAVA_OPTIONS
|
rem JAVA_OPTIONS
|
||||||
rem Extra options to pass to the JVM
|
rem Extra options to pass to the JVM
|
||||||
rem
|
rem
|
||||||
|
|
||||||
|
if "%OS%"=="Windows_NT" @setlocal
|
||||||
|
if "%OS%"=="WINNT" @setlocal
|
||||||
|
|
||||||
rem --- First two utilities for exiting --------------------------------------------
|
rem --- First two utilities for exiting --------------------------------------------
|
||||||
|
|
||||||
@ -22,19 +25,20 @@ echo.
|
|||||||
echo /p <port> the port that Gridworks will listen to
|
echo /p <port> the port that Gridworks will listen to
|
||||||
echo default: 3333
|
echo default: 3333
|
||||||
echo.
|
echo.
|
||||||
|
echo /i <interface> the host interface gridworks should bind to
|
||||||
|
echo default: 127.0.0.1
|
||||||
|
echo.
|
||||||
|
echo /w <path> path to the webapp
|
||||||
|
echo default src\main\webapp
|
||||||
|
echo.
|
||||||
echo /d enable JVM debugging (on port 8000)
|
echo /d enable JVM debugging (on port 8000)
|
||||||
echo.
|
echo.
|
||||||
echo /s <mode> enable profiling
|
|
||||||
echo (available modes are "hprof" and "yourkit")
|
|
||||||
echo.
|
|
||||||
echo /x enable JMX monitoring (for jconsole and friends)
|
echo /x enable JMX monitoring (for jconsole and friends)
|
||||||
echo.
|
echo.
|
||||||
echo and <action> is one of
|
echo and <action> is one of
|
||||||
echo.
|
echo.
|
||||||
echo run Run Gridworks (default)
|
echo build ..... Build Gridworks
|
||||||
echo.
|
echo run ....... Run Gridworks
|
||||||
echo eclipse Build Eclipse project files
|
|
||||||
echo.
|
|
||||||
echo.
|
echo.
|
||||||
goto end
|
goto end
|
||||||
|
|
||||||
@ -49,7 +53,7 @@ echo You must set JAVA_HOME to point at your Java Development Kit installation
|
|||||||
goto fail
|
goto fail
|
||||||
:gotJavaHome
|
:gotJavaHome
|
||||||
|
|
||||||
set MAVEN_OPTS=%GRIDWORKS_OPTS% -Djava.awt.headless=true
|
set OPTS=%GRIDWORKS_OPTS%
|
||||||
|
|
||||||
rem --- Argument parsing --------------------------------------------
|
rem --- Argument parsing --------------------------------------------
|
||||||
|
|
||||||
@ -57,8 +61,9 @@ rem --- Argument parsing --------------------------------------------
|
|||||||
if ""%1"" == """" goto endArgumentParsing
|
if ""%1"" == """" goto endArgumentParsing
|
||||||
if ""%1"" == ""/h"" goto usage
|
if ""%1"" == ""/h"" goto usage
|
||||||
if ""%1"" == ""/p"" goto arg-p
|
if ""%1"" == ""/p"" goto arg-p
|
||||||
|
if ""%1"" == ""/i"" goto arg-i
|
||||||
|
if ""%1"" == ""/w"" goto arg-w
|
||||||
if ""%1"" == ""/d"" goto arg-d
|
if ""%1"" == ""/d"" goto arg-d
|
||||||
if ""%1"" == ""/s"" goto arg-s
|
|
||||||
if ""%1"" == ""/x"" goto arg-x
|
if ""%1"" == ""/x"" goto arg-x
|
||||||
goto endArgumentParsing
|
goto endArgumentParsing
|
||||||
|
|
||||||
@ -66,26 +71,20 @@ goto endArgumentParsing
|
|||||||
set GRIDWORKS_PORT=%2
|
set GRIDWORKS_PORT=%2
|
||||||
goto shift2loop
|
goto shift2loop
|
||||||
|
|
||||||
:arg-d
|
:arg-i
|
||||||
set MAVEN_OPTS=%MAVEN_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
|
set GRIDWORKS_HOST=%2
|
||||||
goto shift2loop
|
|
||||||
|
|
||||||
:arg-s
|
|
||||||
set PROFILE_MODE=%2
|
|
||||||
if ""%PROFILE_MODE%"" == ""hprof"" goto profileWithHprof
|
|
||||||
if ""%PROFILE_MODE%"" == ""yourkit"" goto profileWithYourkit
|
|
||||||
goto shift2loop
|
goto shift2loop
|
||||||
|
|
||||||
:profileWithHprof
|
:arg-w
|
||||||
set MAVEN_OPTS=%MAVEN_OPTS% -Xrunhprof:heap=all,cpu=samples,thread=y,depth=3
|
set GRIDWORKS_WEBAPP=%2
|
||||||
goto shift2loop
|
goto shift2loop
|
||||||
|
|
||||||
:profileWithYourkit
|
:arg-d
|
||||||
set MAVEN_OPTS=%MAVEN_OPTS% -agentlib:yjpagent=sessionname=Gridworks
|
set OPTS=%OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
|
||||||
goto shift2loop
|
goto shift2loop
|
||||||
|
|
||||||
:arg-x
|
:arg-x
|
||||||
set MAVEN_OPTS=%MAVEN_OPTS% -Dcom.sun.management.jmxremote
|
set OPTS=%OPTS% -Dcom.sun.management.jmxremote
|
||||||
goto shift2loop
|
goto shift2loop
|
||||||
|
|
||||||
:shift2loop
|
:shift2loop
|
||||||
@ -100,12 +99,30 @@ rem --- Fold in Environment Vars --------------------------------------------
|
|||||||
if not "%JAVA_OPTIONS%" == "" goto gotJavaOptions
|
if not "%JAVA_OPTIONS%" == "" goto gotJavaOptions
|
||||||
set JAVA_OPTIONS=-Xms32M -Xmx256M
|
set JAVA_OPTIONS=-Xms32M -Xmx256M
|
||||||
:gotJavaOptions
|
:gotJavaOptions
|
||||||
set MAVEN_OPTS=%MAVEN_OPTS% %JAVA_OPTIONS%
|
set OPTS=%OPTS% %JAVA_OPTIONS%
|
||||||
|
|
||||||
if not "%GRIDWORKS_PORT%" == "" goto gotPort
|
if not "%GRIDWORKS_PORT%" == "" goto gotPort
|
||||||
set GRIDWORKS_PORT=3333
|
set GRIDWORKS_PORT=3333
|
||||||
:gotPort
|
:gotPort
|
||||||
set MAVEN_OPTS=%MAVEN_OPTS% -Djetty.port=%GRIDWORKS_PORT%
|
set OPTS=%OPTS% -Dgridworks.port=%GRIDWORKS_PORT%
|
||||||
|
|
||||||
|
if not "%GRIDWORKS_HOST%" == "" goto gotHost
|
||||||
|
set GRIDWORKS_HOST=127.0.0.1
|
||||||
|
:gotHOST
|
||||||
|
set OPTS=%OPTS% -Dgridworks.host=%GRIDWORKS_HOST%
|
||||||
|
|
||||||
|
if not "%GRIDWORKS_WEBAPP%" == "" goto gotHost
|
||||||
|
set GRIDWORKS_WEBAPP=src\main\webapp
|
||||||
|
:gotHOST
|
||||||
|
set OPTS=%OPTS% -Dgridworks.webapp=%GRIDWORKS_WEBAPP%
|
||||||
|
|
||||||
|
if not "%GRIDWORKS_BUILD_DIR%" == "" goto gotBuildDir
|
||||||
|
set GRIDWORKS_BUILD_DIR=build
|
||||||
|
:gotBuildDir
|
||||||
|
|
||||||
|
if not "%GRIDWORKS_LIB_DIR%" == "" goto gotLibDir
|
||||||
|
set GRIDWORKS_LIB_DIR=lib
|
||||||
|
:gotLibDir
|
||||||
|
|
||||||
rem ----- Respond to the action ----------------------------------------------------------
|
rem ----- Respond to the action ----------------------------------------------------------
|
||||||
|
|
||||||
@ -113,21 +130,20 @@ set ACTION=%1
|
|||||||
|
|
||||||
if not "%ACTION%" == "" goto gotAction
|
if not "%ACTION%" == "" goto gotAction
|
||||||
set ACTION="run"
|
set ACTION="run"
|
||||||
:gotJavaOptions
|
:gotAction
|
||||||
set MAVEN_OPTS=%MAVEN_OPTS% %JAVA_OPTIONS%
|
|
||||||
|
|
||||||
|
if ""%ACTION%"" == ""build"" goto doBuild
|
||||||
if ""%ACTION%"" == ""run"" goto doRun
|
if ""%ACTION%"" == ""run"" goto doRun
|
||||||
if ""%ACTION%"" == ""eclipse"" goto doEclipse
|
|
||||||
|
goto usage
|
||||||
|
|
||||||
|
:doBuild
|
||||||
|
ant -f build.xml compile
|
||||||
|
goto end
|
||||||
|
|
||||||
:doRun
|
:doRun
|
||||||
echo MAVEN_OPTS=%MAVEN_OPTS%
|
CLASSPATH="%GRIDWORKS_BUILD_DIR%\classes;%GRIDWORKS_LIB_DIR%\*.jar"
|
||||||
start http://127.0.0.1:%GRIDWORKS_PORT%/
|
"%JAVA_HOME%\bin\java.exe" -cp %CLASSPATH% %OPTS% com.metaweb.gridworks.Gridworks
|
||||||
mvn %MAVEN_PARAMS% jetty:run
|
|
||||||
goto end
|
|
||||||
|
|
||||||
:doEclipse
|
|
||||||
mvn eclipse:clean
|
|
||||||
mvn eclipse:eclipse
|
|
||||||
goto end
|
goto end
|
||||||
|
|
||||||
:end
|
:end
|
||||||
|
BIN
lib-src/commons-codec-1.3-sources.jar
Normal file
BIN
lib-src/commons-codec-1.3-sources.jar
Normal file
Binary file not shown.
BIN
lib-src/commons-lang-2.4-sources.jar
Normal file
BIN
lib-src/commons-lang-2.4-sources.jar
Normal file
Binary file not shown.
BIN
lib-src/jcl-over-slf4j-1.5.6-sources.jar
Normal file
BIN
lib-src/jcl-over-slf4j-1.5.6-sources.jar
Normal file
Binary file not shown.
BIN
lib-src/jetty-6.1.22-sources.jar
Normal file
BIN
lib-src/jetty-6.1.22-sources.jar
Normal file
Binary file not shown.
BIN
lib-src/jetty-util-6.1.22-sources.jar
Normal file
BIN
lib-src/jetty-util-6.1.22-sources.jar
Normal file
Binary file not shown.
BIN
lib-src/log4j-1.2.15-sources.jar
Normal file
BIN
lib-src/log4j-1.2.15-sources.jar
Normal file
Binary file not shown.
BIN
lib-src/poi-3.6-sources.jar
Normal file
BIN
lib-src/poi-3.6-sources.jar
Normal file
Binary file not shown.
BIN
lib-src/servlet-api-2.5-sources.jar
Normal file
BIN
lib-src/servlet-api-2.5-sources.jar
Normal file
Binary file not shown.
BIN
lib-src/slf4j-api-1.5.6-sources.jar
Normal file
BIN
lib-src/slf4j-api-1.5.6-sources.jar
Normal file
Binary file not shown.
BIN
lib-src/slf4j-log4j12-1.5.6-sources.jar
Normal file
BIN
lib-src/slf4j-log4j12-1.5.6-sources.jar
Normal file
Binary file not shown.
BIN
lib/commons-codec-1.3.jar
Normal file
BIN
lib/commons-codec-1.3.jar
Normal file
Binary file not shown.
BIN
lib/commons-lang-2.4.jar
Normal file
BIN
lib/commons-lang-2.4.jar
Normal file
Binary file not shown.
BIN
lib/cos-05Nov2002.jar
Normal file
BIN
lib/cos-05Nov2002.jar
Normal file
Binary file not shown.
BIN
lib/jcl-over-slf4j-1.5.6.jar
Normal file
BIN
lib/jcl-over-slf4j-1.5.6.jar
Normal file
Binary file not shown.
BIN
lib/jetty-6.1.22.jar
Normal file
BIN
lib/jetty-6.1.22.jar
Normal file
Binary file not shown.
BIN
lib/jetty-util-6.1.22.jar
Normal file
BIN
lib/jetty-util-6.1.22.jar
Normal file
Binary file not shown.
BIN
lib/log4j-1.2.15.jar
Normal file
BIN
lib/log4j-1.2.15.jar
Normal file
Binary file not shown.
BIN
lib/poi-3.6.jar
Normal file
BIN
lib/poi-3.6.jar
Normal file
Binary file not shown.
BIN
lib/servlet-api-2.5.jar
Normal file
BIN
lib/servlet-api-2.5.jar
Normal file
Binary file not shown.
BIN
lib/slf4j-api-1.5.6.jar
Normal file
BIN
lib/slf4j-api-1.5.6.jar
Normal file
Binary file not shown.
BIN
lib/slf4j-log4j12-1.5.6.jar
Normal file
BIN
lib/slf4j-log4j12-1.5.6.jar
Normal file
Binary file not shown.
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
40
src/main/java/com/metaweb/gridworks/Configurations.java
Normal file
40
src/main/java/com/metaweb/gridworks/Configurations.java
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
package com.metaweb.gridworks;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Centralized configuration facility.
|
||||||
|
*/
|
||||||
|
public class Configurations {
|
||||||
|
|
||||||
|
public static String get(String name) {
|
||||||
|
return System.getProperty(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String get(String name, String def) {
|
||||||
|
String val = get(name);
|
||||||
|
return (val == null) ? def : val;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean getBoolean(String name, boolean def) {
|
||||||
|
String val = get(name);
|
||||||
|
return (val == null) ? def : Boolean.parseBoolean(val);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getInteger(String name, int def) {
|
||||||
|
String val = get(name);
|
||||||
|
try {
|
||||||
|
return (val == null) ? def : Integer.parseInt(val);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
throw new RuntimeException("Could not parse '" + val + "' as an integer number.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float getFloat(String name, float def) {
|
||||||
|
String val = get(name);
|
||||||
|
try {
|
||||||
|
return (val == null) ? def : Float.parseFloat(val);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
throw new RuntimeException("Could not parse '" + val + "' as a floating point number.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
215
src/main/java/com/metaweb/gridworks/Gridworks.java
Normal file
215
src/main/java/com/metaweb/gridworks/Gridworks.java
Normal file
@ -0,0 +1,215 @@
|
|||||||
|
package com.metaweb.gridworks;
|
||||||
|
|
||||||
|
import java.awt.Desktop;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileFilter;
|
||||||
|
import java.net.URI;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.LinkedBlockingQueue;
|
||||||
|
import java.util.concurrent.ThreadPoolExecutor;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import org.apache.log4j.Appender;
|
||||||
|
import org.apache.log4j.ConsoleAppender;
|
||||||
|
import org.apache.log4j.Level;
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.mortbay.jetty.Connector;
|
||||||
|
import org.mortbay.jetty.Server;
|
||||||
|
import org.mortbay.jetty.bio.SocketConnector;
|
||||||
|
import org.mortbay.jetty.webapp.WebAppContext;
|
||||||
|
import org.mortbay.log.Log;
|
||||||
|
import org.mortbay.util.Scanner;
|
||||||
|
|
||||||
|
import com.metaweb.util.logging.IndentingLayout;
|
||||||
|
import com.metaweb.util.signal.SignalHandler;
|
||||||
|
import com.metaweb.util.threads.ThreadPoolExecutorAdapter;
|
||||||
|
|
||||||
|
public class Gridworks extends Server {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
|
||||||
|
// tell jetty to use SLF4J for logging instead of its own stuff
|
||||||
|
System.setProperty("VERBOSE","false");
|
||||||
|
System.setProperty("org.mortbay.log.class","org.mortbay.log.Slf4jLog");
|
||||||
|
|
||||||
|
// initialize the log4j system
|
||||||
|
Appender console = new ConsoleAppender(new IndentingLayout());
|
||||||
|
|
||||||
|
Logger root = Logger.getRootLogger();
|
||||||
|
root.setLevel(Level.ALL);
|
||||||
|
root.addAppender(console);
|
||||||
|
|
||||||
|
Logger jetty_logger = Logger.getLogger("org.mortbay.log");
|
||||||
|
jetty_logger.setLevel(Level.INFO);
|
||||||
|
|
||||||
|
// get main configurations
|
||||||
|
int port = Configurations.getInteger("gridworks.port",3333);
|
||||||
|
String host = Configurations.get("gridworks.host","127.0.0.1");
|
||||||
|
|
||||||
|
// create acre's server (which is a thin wrapper around Jetty)
|
||||||
|
Gridworks server = new Gridworks(host,port);
|
||||||
|
|
||||||
|
// hook up the signal handlers
|
||||||
|
new ShutdownSignalHandler("TERM", server);
|
||||||
|
|
||||||
|
// start the server
|
||||||
|
server.start();
|
||||||
|
|
||||||
|
// start the browser
|
||||||
|
URI starting_url = new URI("http://" + host + ":" + port + "/");
|
||||||
|
Desktop.getDesktop().browse(starting_url);
|
||||||
|
|
||||||
|
// join this thread
|
||||||
|
server.join();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------- Gridworks HTTP server ----------------- */
|
||||||
|
|
||||||
|
private ThreadPoolExecutor threadPool;
|
||||||
|
|
||||||
|
public Gridworks(String host, int port) throws Exception {
|
||||||
|
|
||||||
|
int maxThreads = Configurations.getInteger("gridworks.queue.size", 10);
|
||||||
|
int maxQueue = Configurations.getInteger("gridworks.queue.max_size", 50);
|
||||||
|
long keepAliveTime = Configurations.getInteger("gridworks.queue.idle_time", 60);
|
||||||
|
|
||||||
|
LinkedBlockingQueue<Runnable> queue = new LinkedBlockingQueue<Runnable>(maxQueue);
|
||||||
|
|
||||||
|
threadPool = new ThreadPoolExecutor(maxThreads, maxQueue, keepAliveTime, TimeUnit.SECONDS, queue);
|
||||||
|
|
||||||
|
this.setThreadPool(new ThreadPoolExecutorAdapter(threadPool));
|
||||||
|
|
||||||
|
// NOTE(SM): we use a BIO connector instead of the NIO connector
|
||||||
|
// because NIO can't deal with thread deaths: if the execution
|
||||||
|
// of a script is taking too long and acre kills it, that automatically
|
||||||
|
// shuts down the I/O channel to the user and we can't communicate
|
||||||
|
// that error back to the user (which also causes the I/O channel
|
||||||
|
// to be abruptly terminated and causes all sorts of proxy errors
|
||||||
|
// down the line). This is a performance penalty, but not severe
|
||||||
|
// enough to compensate for this problem.
|
||||||
|
|
||||||
|
Connector connector = new SocketConnector();
|
||||||
|
connector.setPort(port);
|
||||||
|
connector.setHost(host);
|
||||||
|
connector.setMaxIdleTime(Configurations.getInteger("gridworks.connection.max_idle_time",60000));
|
||||||
|
connector.setStatsOn(false);
|
||||||
|
this.addConnector(connector);
|
||||||
|
|
||||||
|
final File contextRoot = new File(Configurations.get("gridworks.webapp","webapp"));
|
||||||
|
final String contextPath = Configurations.get("gridworks.context_path","/");
|
||||||
|
|
||||||
|
File webXml = new File(contextRoot, "WEB-INF/web.xml");
|
||||||
|
if (!webXml.isFile()) {
|
||||||
|
Log.warn("Warning: Failed to find web application. Could not find 'web.xml' at '" + webXml.getAbsolutePath() + "'");
|
||||||
|
System.exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.info("Initializing context: '" + contextPath + "' from '" + contextRoot.getAbsolutePath() + "'");
|
||||||
|
WebAppContext context = new WebAppContext(contextRoot.getAbsolutePath(), contextPath);
|
||||||
|
//context.setCopyWebDir(false);
|
||||||
|
//context.setDefaultsDescriptor(null);
|
||||||
|
|
||||||
|
this.setHandler(context);
|
||||||
|
this.setStopAtShutdown(true);
|
||||||
|
this.setSendServerVersion(true);
|
||||||
|
|
||||||
|
// Enable context autoreloading
|
||||||
|
if (Configurations.getBoolean("gridworks.autoreloading",false)) {
|
||||||
|
scanForUpdates(contextRoot, context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doStop() throws Exception {
|
||||||
|
try {
|
||||||
|
// shutdown our scheduled tasks first, if any
|
||||||
|
if (threadPool != null) threadPool.shutdown();
|
||||||
|
|
||||||
|
// then let the parent stop
|
||||||
|
super.doStop();
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void scanForUpdates(final File contextRoot, final WebAppContext context) {
|
||||||
|
List<File> scanList = new ArrayList<File>();
|
||||||
|
|
||||||
|
scanList.add(new File(contextRoot, "WEB-INF/web.xml"));
|
||||||
|
findFiles(".class", new File(contextRoot, "WEB-INF"), scanList);
|
||||||
|
findFiles(".js", new File(contextRoot, "WEB-INF"), scanList);
|
||||||
|
|
||||||
|
Log.info("Starting autoreloading scanner...");
|
||||||
|
|
||||||
|
Scanner scanner = new Scanner();
|
||||||
|
scanner.setScanInterval(Configurations.getInteger("gridworks.scanner.period",1));
|
||||||
|
scanner.setScanDirs(scanList);
|
||||||
|
scanner.setReportExistingFilesOnStartup(false);
|
||||||
|
|
||||||
|
scanner.addListener(new Scanner.BulkListener() {
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public void filesChanged(List changedFiles) {
|
||||||
|
try {
|
||||||
|
Log.info("Stopping context: " + contextRoot.getAbsolutePath());
|
||||||
|
context.stop();
|
||||||
|
|
||||||
|
Log.info("Starting context: " + contextRoot.getAbsolutePath());
|
||||||
|
context.start();
|
||||||
|
} catch (Exception ex) {
|
||||||
|
throw new RuntimeException(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
scanner.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
static private void findFiles(final String extension, File baseDir, final Collection<File> found) {
|
||||||
|
baseDir.listFiles(new FileFilter() {
|
||||||
|
public boolean accept(File pathname) {
|
||||||
|
if (pathname.isDirectory()) {
|
||||||
|
findFiles(extension, pathname, found);
|
||||||
|
} else if (pathname.getName().endsWith(extension)) {
|
||||||
|
found.add(pathname);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class ShutdownSignalHandler extends SignalHandler {
|
||||||
|
|
||||||
|
private Gridworks _server;
|
||||||
|
|
||||||
|
public ShutdownSignalHandler(String sigName, Gridworks server) {
|
||||||
|
super(sigName);
|
||||||
|
this._server = server;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean handle(String signame) {
|
||||||
|
|
||||||
|
System.err.println("Received Signal: " + signame);
|
||||||
|
|
||||||
|
// Tell the server we want to try and shutdown gracefully
|
||||||
|
// this means that the server will stop accepting new connections
|
||||||
|
// right away but it will continue to process the ones that
|
||||||
|
// are in execution for the given timeout before attempting to stop
|
||||||
|
// NOTE: this is *not* a blocking method, it just sets a parameter
|
||||||
|
// that _server.stop() will rely on
|
||||||
|
_server.setGracefulShutdown(3000);
|
||||||
|
|
||||||
|
try {
|
||||||
|
_server.stop();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -79,9 +79,11 @@ public class GridworksServlet extends HttpServlet {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void destroy() {
|
public void destroy() {
|
||||||
ProjectManager.singleton.saveAllProjects();
|
if (ProjectManager.singleton != null) {
|
||||||
ProjectManager.singleton.save();
|
ProjectManager.singleton.saveAllProjects();
|
||||||
ProjectManager.singleton = null;
|
ProjectManager.singleton.save();
|
||||||
|
ProjectManager.singleton = null;
|
||||||
|
}
|
||||||
|
|
||||||
super.destroy();
|
super.destroy();
|
||||||
}
|
}
|
||||||
|
144
src/main/java/com/metaweb/util/logging/IndentingLayout.java
Normal file
144
src/main/java/com/metaweb/util/logging/IndentingLayout.java
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
package com.metaweb.util.logging;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) Massachusetts Institute of Technology, 2007
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* 3. The name of the author may not be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||||
|
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||||
|
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||||
|
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||||
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||||
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* Original code: http://simile.mit.edu/repository/tracer/trunk/
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import org.apache.log4j.Layout;
|
||||||
|
import org.apache.log4j.spi.LoggingEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is a special Log4j log formatter that is capable of reacting on special log messages
|
||||||
|
* and 'indent' the logs accordingly. This is very useful to visually inspect a debug log
|
||||||
|
* and see what calls what. An example of logs are "> method()" and "< method()" where > and <
|
||||||
|
* are used to indicate respectively "entering" and "exiting".
|
||||||
|
*/
|
||||||
|
public class IndentingLayout extends Layout {
|
||||||
|
|
||||||
|
protected static final int CONTEXT_SIZE = 25;
|
||||||
|
protected static final long MAX_DELTA = 10000;
|
||||||
|
|
||||||
|
protected final StringBuffer buf = new StringBuffer(256);
|
||||||
|
protected Calendar calendar = Calendar.getInstance();
|
||||||
|
protected long previousTime = 0;
|
||||||
|
protected int indentation = 0;
|
||||||
|
|
||||||
|
public void activateOptions() {
|
||||||
|
// no options at this time
|
||||||
|
}
|
||||||
|
|
||||||
|
public String format(LoggingEvent event) {
|
||||||
|
String message = event.getRenderedMessage();
|
||||||
|
if (message == null) return "";
|
||||||
|
if (message.length() < 2) return message;
|
||||||
|
|
||||||
|
char leader = message.charAt(0);
|
||||||
|
char secondLeader = message.charAt(1);
|
||||||
|
if ((leader == '<') && (secondLeader == ' ') && (this.indentation > 0)) this.indentation--;
|
||||||
|
|
||||||
|
// Reset buf
|
||||||
|
buf.setLength(0);
|
||||||
|
|
||||||
|
Date date = new Date();
|
||||||
|
long now = date.getTime();
|
||||||
|
calendar.setTime(date);
|
||||||
|
|
||||||
|
long delta = 0;
|
||||||
|
if (previousTime > 0) {
|
||||||
|
delta = now - previousTime;
|
||||||
|
}
|
||||||
|
previousTime = now;
|
||||||
|
|
||||||
|
// if ((previousTime == 0) || (delta > MAX_DELTA)) {
|
||||||
|
// buf.append('\n');
|
||||||
|
// indentation = 0; // reset indentation after a while, as we might
|
||||||
|
// // have runaway/unmatched log entries
|
||||||
|
// }
|
||||||
|
|
||||||
|
int hour = calendar.get(Calendar.HOUR_OF_DAY);
|
||||||
|
if (hour < 10) buf.append('0');
|
||||||
|
buf.append(hour);
|
||||||
|
buf.append(':');
|
||||||
|
|
||||||
|
int mins = calendar.get(Calendar.MINUTE);
|
||||||
|
if (mins < 10) buf.append('0');
|
||||||
|
buf.append(mins);
|
||||||
|
buf.append(':');
|
||||||
|
|
||||||
|
int secs = calendar.get(Calendar.SECOND);
|
||||||
|
if (secs < 10) buf.append('0');
|
||||||
|
buf.append(secs);
|
||||||
|
buf.append('.');
|
||||||
|
|
||||||
|
int millis = (int) (now % 1000);
|
||||||
|
if (millis < 100) buf.append('0');
|
||||||
|
if (millis < 10) buf.append('0');
|
||||||
|
buf.append(millis);
|
||||||
|
|
||||||
|
buf.append(" [");
|
||||||
|
String context = ((String) event.getMDC("LogEvent"));
|
||||||
|
if (context == null) {
|
||||||
|
context = event.getLoggerName();
|
||||||
|
}
|
||||||
|
if (context.length() < CONTEXT_SIZE) {
|
||||||
|
pad(buf, CONTEXT_SIZE - context.length(), ' ');
|
||||||
|
buf.append(context);
|
||||||
|
} else {
|
||||||
|
buf.append("..");
|
||||||
|
buf.append(context.substring(context.length() - CONTEXT_SIZE + 2));
|
||||||
|
}
|
||||||
|
buf.append("] ");
|
||||||
|
|
||||||
|
pad(buf, indentation, ' ');
|
||||||
|
|
||||||
|
buf.append(message);
|
||||||
|
|
||||||
|
buf.append(" (");
|
||||||
|
buf.append(delta);
|
||||||
|
buf.append("ms)\n");
|
||||||
|
|
||||||
|
if ((leader == '>') && (secondLeader == ' ')) indentation++;
|
||||||
|
|
||||||
|
return buf.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void pad(StringBuffer buffer, int pads, char padchar) {
|
||||||
|
for (int i = 0; i < pads; i++) {
|
||||||
|
buf.append(padchar);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean ignoresThrowable() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
22
src/main/java/com/metaweb/util/signal/SignalHandler.java
Normal file
22
src/main/java/com/metaweb/util/signal/SignalHandler.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package com.metaweb.util.signal;
|
||||||
|
|
||||||
|
public abstract class SignalHandler {
|
||||||
|
|
||||||
|
SignalHandlerWrapper _wrapper;
|
||||||
|
|
||||||
|
public SignalHandler(String signalName) {
|
||||||
|
try {
|
||||||
|
_wrapper = new SignalHandlerWrapper(signalName, this);
|
||||||
|
} catch (Throwable e) {
|
||||||
|
new java.lang.RuntimeException("Signal handling facilities are not available in this JVM.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The method that handles the signal this handler has been registered for.
|
||||||
|
* If the method returns false or throws, the chain of invocation is stopped;
|
||||||
|
* this includes the handlers the JVM already registered for those signals.
|
||||||
|
*/
|
||||||
|
public abstract boolean handle(String signame);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
package com.metaweb.util.signal;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This class allows our own SignalHandler class to fail more gracefully
|
||||||
|
* in case the "sun.misc.Signal*" classes are not found in the current jvm.
|
||||||
|
*/
|
||||||
|
final class SignalHandlerWrapper implements sun.misc.SignalHandler {
|
||||||
|
|
||||||
|
private final sun.misc.SignalHandler existingHandler;
|
||||||
|
|
||||||
|
private final SignalHandler handler;
|
||||||
|
|
||||||
|
SignalHandlerWrapper(String signalName, SignalHandler handler) {
|
||||||
|
this.handler = handler;
|
||||||
|
sun.misc.Signal signal = new sun.misc.Signal(signalName);
|
||||||
|
existingHandler = sun.misc.Signal.handle(signal, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void handle(sun.misc.Signal sig) {
|
||||||
|
if (handler.handle(sig.getName()) && (existingHandler != null)) {
|
||||||
|
existingHandler.handle(sig);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,109 @@
|
|||||||
|
package com.metaweb.util.threads;
|
||||||
|
|
||||||
|
//========================================================================
|
||||||
|
//$$Id: ThreadPoolExecutorAdapter.java,v 1.3 2007/11/02 12:39:41 ludovic_orban Exp $$
|
||||||
|
//
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
//Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
//you may not use this file except in compliance with the License.
|
||||||
|
//You may obtain a copy of the License at
|
||||||
|
//http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//Unless required by applicable law or agreed to in writing, software
|
||||||
|
//distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
//See the License for the specific language governing permissions and
|
||||||
|
//limitations under the License.
|
||||||
|
//========================================================================
|
||||||
|
|
||||||
|
import java.util.concurrent.RejectedExecutionException;
|
||||||
|
import java.util.concurrent.ThreadPoolExecutor;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import org.mortbay.component.LifeCycle;
|
||||||
|
import org.mortbay.log.Log;
|
||||||
|
import org.mortbay.thread.ThreadPool;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Jetty {@link ThreadPool} that bridges requests to a
|
||||||
|
* {@link ThreadPoolExecutor}.
|
||||||
|
*/
|
||||||
|
public class ThreadPoolExecutorAdapter implements ThreadPool, LifeCycle {
|
||||||
|
|
||||||
|
private ThreadPoolExecutor executor;
|
||||||
|
|
||||||
|
public ThreadPoolExecutorAdapter(ThreadPoolExecutor executor) {
|
||||||
|
this.executor = executor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean dispatch(Runnable job) {
|
||||||
|
try {
|
||||||
|
executor.execute(job);
|
||||||
|
return true;
|
||||||
|
} catch (RejectedExecutionException e) {
|
||||||
|
Log.warn(e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getIdleThreads() {
|
||||||
|
return executor.getPoolSize() - executor.getActiveCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getThreads() {
|
||||||
|
return executor.getPoolSize();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isLowOnThreads() {
|
||||||
|
return executor.getActiveCount() >= executor.getMaximumPoolSize();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void join() throws InterruptedException {
|
||||||
|
executor.awaitTermination(Long.MAX_VALUE, TimeUnit.MILLISECONDS);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFailed() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRunning() {
|
||||||
|
return !executor.isTerminated() && !executor.isTerminating();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isStarted() {
|
||||||
|
return !executor.isTerminated() && !executor.isTerminating();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isStarting() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isStopped() {
|
||||||
|
return executor.isTerminated();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isStopping() {
|
||||||
|
return executor.isTerminating();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void start() throws Exception {
|
||||||
|
if (executor.isTerminated() || executor.isTerminating()
|
||||||
|
|| executor.isShutdown()) {
|
||||||
|
throw new IllegalStateException("Cannot restart");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void stop() throws Exception {
|
||||||
|
executor.shutdown();
|
||||||
|
if (!executor.awaitTermination(60, TimeUnit.SECONDS)) {
|
||||||
|
executor.shutdownNow();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addLifeCycleListener(Listener listener) {
|
||||||
|
System.err.println("we should implement this!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeLifeCycleListener(Listener listener) {
|
||||||
|
System.err.println("we should implement this!");
|
||||||
|
}
|
||||||
|
}
|
@ -6,13 +6,18 @@
|
|||||||
|
|
||||||
<web-app>
|
<web-app>
|
||||||
<servlet>
|
<servlet>
|
||||||
<servlet-name>Gridworks</servlet-name>
|
<servlet-name>gridworks</servlet-name>
|
||||||
<servlet-class>com.metaweb.gridworks.GridworksServlet</servlet-class>
|
<servlet-class>com.metaweb.gridworks.GridworksServlet</servlet-class>
|
||||||
<load-on-startup>1</load-on-startup>
|
<load-on-startup>1</load-on-startup>
|
||||||
</servlet>
|
</servlet>
|
||||||
|
|
||||||
<servlet-mapping>
|
<servlet-mapping>
|
||||||
<servlet-name>Gridworks</servlet-name>
|
<servlet-name>gridworks</servlet-name>
|
||||||
<url-pattern>/command/*</url-pattern>
|
<url-pattern>/command/*</url-pattern>
|
||||||
</servlet-mapping>
|
</servlet-mapping>
|
||||||
|
|
||||||
|
<welcome-file-list>
|
||||||
|
<welcome-file>index.html</welcome-file>
|
||||||
|
</welcome-file-list>
|
||||||
|
|
||||||
</web-app>
|
</web-app>
|
||||||
|
152
src/main/webapp/externals/jquery-1.4.1.min.js
vendored
Normal file
152
src/main/webapp/externals/jquery-1.4.1.min.js
vendored
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
/*!
|
||||||
|
* jQuery JavaScript Library v1.4.1
|
||||||
|
* http://jquery.com/
|
||||||
|
*
|
||||||
|
* Copyright 2010, John Resig
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* Includes Sizzle.js
|
||||||
|
* http://sizzlejs.com/
|
||||||
|
* Copyright 2010, The Dojo Foundation
|
||||||
|
* Released under the MIT, BSD, and GPL Licenses.
|
||||||
|
*
|
||||||
|
* Date: Mon Jan 25 19:43:33 2010 -0500
|
||||||
|
*/
|
||||||
|
(function(z,v){function la(){if(!c.isReady){try{r.documentElement.doScroll("left")}catch(a){setTimeout(la,1);return}c.ready()}}function Ma(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,i){var j=a.length;if(typeof b==="object"){for(var n in b)X(a,n,b[n],f,e,d);return a}if(d!==v){f=!i&&f&&c.isFunction(d);for(n=0;n<j;n++)e(a[n],b,f?d.call(a[n],n,e(a[n],b)):d,i);return a}return j?
|
||||||
|
e(a[0],b):null}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function ma(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function na(a){var b,d=[],f=[],e=arguments,i,j,n,o,m,s,x=c.extend({},c.data(this,"events").live);if(!(a.button&&a.type==="click")){for(o in x){j=x[o];if(j.live===a.type||j.altLive&&c.inArray(a.type,j.altLive)>-1){i=j.data;i.beforeFilter&&i.beforeFilter[a.type]&&!i.beforeFilter[a.type](a)||f.push(j.selector)}else delete x[o]}i=c(a.target).closest(f,
|
||||||
|
a.currentTarget);m=0;for(s=i.length;m<s;m++)for(o in x){j=x[o];n=i[m].elem;f=null;if(i[m].selector===j.selector){if(j.live==="mouseenter"||j.live==="mouseleave")f=c(a.relatedTarget).closest(j.selector)[0];if(!f||f!==n)d.push({elem:n,fn:j})}}m=0;for(s=d.length;m<s;m++){i=d[m];a.currentTarget=i.elem;a.data=i.fn.data;if(i.fn.apply(i.elem,e)===false){b=false;break}}return b}}function oa(a,b){return"live."+(a?a+".":"")+b.replace(/\./g,"`").replace(/ /g,"&")}function pa(a){return!a||!a.parentNode||a.parentNode.nodeType===
|
||||||
|
11}function qa(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var i in f)for(var j in f[i])c.event.add(this,i,f[i][j],f[i][j].data)}}})}function ra(a,b,d){var f,e,i;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&a[0].indexOf("<option")<0&&(c.support.checkClone||!sa.test(a[0]))){e=true;if(i=c.fragments[a[0]])if(i!==1)f=i}if(!f){b=b&&b[0]?b[0].ownerDocument||b[0]:r;f=b.createDocumentFragment();
|
||||||
|
c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=i?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(ta.concat.apply([],ta.slice(0,b)),function(){d[this]=a});return d}function ua(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Na=z.jQuery,Oa=z.$,r=z.document,S,Pa=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Qa=/^.[^:#\[\.,]*$/,Ra=/\S/,Sa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Ta=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,O=navigator.userAgent,
|
||||||
|
va=false,P=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,Q=Array.prototype.slice,wa=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(typeof a==="string")if((d=Pa.exec(a))&&(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:r;if(a=Ta.exec(a))if(c.isPlainObject(b)){a=[r.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=ra([d[1]],
|
||||||
|
[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}}else{if(b=r.getElementById(d[2])){if(b.id!==d[2])return S.find(a);this.length=1;this[0]=b}this.context=r;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=r;a=r.getElementsByTagName(a)}else return!b||b.jquery?(b||S).find(a):c(b).find(a);else if(c.isFunction(a))return S.ready(a);if(a.selector!==v){this.selector=a.selector;this.context=a.context}return c.isArray(a)?this.setArray(a):c.makeArray(a,
|
||||||
|
this)},selector:"",jquery:"1.4.1",length:0,size:function(){return this.length},toArray:function(){return Q.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){a=c(a||null);a.prevObject=this;a.context=this.context;if(b==="find")a.selector=this.selector+(this.selector?" ":"")+d;else if(b)a.selector=this.selector+"."+b+"("+d+")";return a},setArray:function(a){this.length=0;ba.apply(this,a);return this},each:function(a,b){return c.each(this,
|
||||||
|
a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(r,c);else P&&P.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(Q.apply(this,arguments),"slice",Q.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};
|
||||||
|
c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,i,j,n;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(i in e){j=a[i];n=e[i];if(a!==n)if(f&&n&&(c.isPlainObject(n)||c.isArray(n))){j=j&&(c.isPlainObject(j)||c.isArray(j))?j:c.isArray(n)?[]:{};a[i]=c.extend(f,j,n)}else if(n!==v)a[i]=n}return a};c.extend({noConflict:function(a){z.$=
|
||||||
|
Oa;if(a)z.jQuery=Na;return c},isReady:false,ready:function(){if(!c.isReady){if(!r.body)return setTimeout(c.ready,13);c.isReady=true;if(P){for(var a,b=0;a=P[b++];)a.call(r,c);P=null}c.fn.triggerHandler&&c(r).triggerHandler("ready")}},bindReady:function(){if(!va){va=true;if(r.readyState==="complete")return c.ready();if(r.addEventListener){r.addEventListener("DOMContentLoaded",L,false);z.addEventListener("load",c.ready,false)}else if(r.attachEvent){r.attachEvent("onreadystatechange",L);z.attachEvent("onload",
|
||||||
|
c.ready);var a=false;try{a=z.frameElement==null}catch(b){}r.documentElement.doScroll&&a&&la()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,"isPrototypeOf"))return false;var b;for(b in a);return b===v||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;
|
||||||
|
return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return z.JSON&&z.JSON.parse?z.JSON.parse(a):(new Function("return "+a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Ra.test(a)){var b=r.getElementsByTagName("head")[0]||
|
||||||
|
r.documentElement,d=r.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(r.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,i=a.length,j=i===v||c.isFunction(a);if(d)if(j)for(f in a){if(b.apply(a[f],d)===false)break}else for(;e<i;){if(b.apply(a[e++],d)===false)break}else if(j)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=
|
||||||
|
a[0];e<i&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Sa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==
|
||||||
|
v;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,i=a.length;e<i;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,i=0,j=a.length;i<j;i++){e=b(a[i],i,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=v}else if(b&&!c.isFunction(b)){d=b;b=v}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},
|
||||||
|
uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});O=c.uaMatch(O);if(O.browser){c.browser[O.browser]=true;c.browser.version=O.version}if(c.browser.webkit)c.browser.safari=true;if(wa)c.inArray=function(a,b){return wa.call(b,a)};S=c(r);if(r.addEventListener)L=function(){r.removeEventListener("DOMContentLoaded",
|
||||||
|
L,false);c.ready()};else if(r.attachEvent)L=function(){if(r.readyState==="complete"){r.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=r.documentElement,b=r.createElement("script"),d=r.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=d.getElementsByTagName("*"),i=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!i)){c.support=
|
||||||
|
{leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(i.getAttribute("style")),hrefNormalized:i.getAttribute("href")==="/a",opacity:/^0.55$/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:r.createElement("select").appendChild(r.createElement("option")).selected,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};
|
||||||
|
b.type="text/javascript";try{b.appendChild(r.createTextNode("window."+f+"=1;"))}catch(j){}a.insertBefore(b,a.firstChild);if(z[f]){c.support.scriptEval=true;delete z[f]}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function n(){c.support.noCloneEvent=false;d.detachEvent("onclick",n)});d.cloneNode(true).fireEvent("onclick")}d=r.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=r.createDocumentFragment();a.appendChild(d.firstChild);
|
||||||
|
c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var n=r.createElement("div");n.style.width=n.style.paddingLeft="1px";r.body.appendChild(n);c.boxModel=c.support.boxModel=n.offsetWidth===2;r.body.removeChild(n).style.display="none"});a=function(n){var o=r.createElement("div");n="on"+n;var m=n in o;if(!m){o.setAttribute(n,"return;");m=typeof o[n]==="function"}return m};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=i=null}})();c.props=
|
||||||
|
{"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ua=0,xa={},Va={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var f=a[G],e=c.cache;if(!b&&!f)return null;f||(f=++Ua);if(typeof b==="object"){a[G]=f;e=e[f]=c.extend(true,
|
||||||
|
{},b)}else e=e[f]?e[f]:typeof d==="undefined"?Va:(e[f]={});if(d!==v){a[G]=f;e[b]=d}return typeof b==="string"?e[b]:e}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{try{delete a[G]}catch(i){a.removeAttribute&&a.removeAttribute(G)}delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,
|
||||||
|
a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===v){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===v&&this.length)f=c.data(this[0],a);return f===v&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);
|
||||||
|
return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===v)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||
|
||||||
|
a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var ya=/[\n\t]/g,ca=/\s+/,Wa=/\r/g,Xa=/href|src|style/,Ya=/(button|input)/i,Za=/(button|input|object|select|textarea)/i,$a=/^(a|area)$/i,za=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(o){var m=
|
||||||
|
c(this);m.addClass(a.call(this,o,m.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className)for(var i=" "+e.className+" ",j=0,n=b.length;j<n;j++){if(i.indexOf(" "+b[j]+" ")<0)e.className+=" "+b[j]}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var m=c(this);m.removeClass(a.call(this,o,m.attr("class")))});if(a&&typeof a==="string"||a===v)for(var b=(a||"").split(ca),
|
||||||
|
d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var i=(" "+e.className+" ").replace(ya," "),j=0,n=b.length;j<n;j++)i=i.replace(" "+b[j]+" "," ");e.className=i.substring(1,i.length-1)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var i=c(this);i.toggleClass(a.call(this,e,i.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,i=0,j=c(this),n=b,o=
|
||||||
|
a.split(ca);e=o[i++];){n=f?n:!j.hasClass(e);j[n?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(ya," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===v){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||
|
||||||
|
{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var i=b?d:0;for(d=b?d+1:e.length;i<d;i++){var j=e[i];if(j.selected){a=c(j).val();if(b)return a;f.push(a)}}return f}if(za.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Wa,"")}return v}var n=c.isFunction(a);return this.each(function(o){var m=c(this),s=a;if(this.nodeType===1){if(n)s=a.call(this,o,m.val());
|
||||||
|
if(typeof s==="number")s+="";if(c.isArray(s)&&za.test(this.type))this.checked=c.inArray(m.val(),s)>=0;else if(c.nodeName(this,"select")){var x=c.makeArray(s);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),x)>=0});if(!x.length)this.selectedIndex=-1}else this.value=s}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return v;if(f&&b in c.attrFn)return c(a)[b](d);
|
||||||
|
f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==v;b=f&&c.props[b]||b;if(a.nodeType===1){var i=Xa.test(b);if(b in a&&f&&!i){if(e){b==="type"&&Ya.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:Za.test(a.nodeName)||$a.test(a.nodeName)&&a.href?0:v;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=
|
||||||
|
""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&i?a.getAttribute(b,2):a.getAttribute(b);return a===null?v:a}return c.style(a,b,d)}});var ab=function(a){return a.replace(/[^\w\s\.\|`]/g,function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==z&&!a.frameElement)a=z;if(!d.guid)d.guid=c.guid++;if(f!==v){d=c.proxy(d);d.data=f}var e=c.data(a,"events")||c.data(a,"events",{}),i=c.data(a,"handle"),j;if(!i){j=
|
||||||
|
function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(j.elem,arguments):v};i=c.data(a,"handle",j)}if(i){i.elem=a;b=b.split(/\s+/);for(var n,o=0;n=b[o++];){var m=n.split(".");n=m.shift();if(o>1){d=c.proxy(d);if(f!==v)d.data=f}d.type=m.slice(0).sort().join(".");var s=e[n],x=this.special[n]||{};if(!s){s=e[n]={};if(!x.setup||x.setup.call(a,f,m,d)===false)if(a.addEventListener)a.addEventListener(n,i,false);else a.attachEvent&&a.attachEvent("on"+n,i)}if(x.add)if((m=x.add.call(a,
|
||||||
|
d,f,m,s))&&c.isFunction(m)){m.guid=m.guid||d.guid;m.data=m.data||d.data;m.type=m.type||d.type;d=m}s[d.guid]=d;this.global[n]=true}a=null}}},global:{},remove:function(a,b,d){if(!(a.nodeType===3||a.nodeType===8)){var f=c.data(a,"events"),e,i,j;if(f){if(b===v||typeof b==="string"&&b.charAt(0)===".")for(i in f)this.remove(a,i+(b||""));else{if(b.type){d=b.handler;b=b.type}b=b.split(/\s+/);for(var n=0;i=b[n++];){var o=i.split(".");i=o.shift();var m=!o.length,s=c.map(o.slice(0).sort(),ab);s=new RegExp("(^|\\.)"+
|
||||||
|
s.join("\\.(?:.*\\.)?")+"(\\.|$)");var x=this.special[i]||{};if(f[i]){if(d){j=f[i][d.guid];delete f[i][d.guid]}else for(var A in f[i])if(m||s.test(f[i][A].type))delete f[i][A];x.remove&&x.remove.call(a,o,j);for(e in f[i])break;if(!e){if(!x.teardown||x.teardown.call(a,o)===false)if(a.removeEventListener)a.removeEventListener(i,c.data(a,"handle"),false);else a.detachEvent&&a.detachEvent("on"+i,c.data(a,"handle"));e=null;delete f[i]}}}}for(e in f)break;if(!e){if(A=c.data(a,"handle"))A.elem=null;c.removeData(a,
|
||||||
|
"events");c.removeData(a,"handle")}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();this.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return v;a.result=v;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,
|
||||||
|
b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(i){}if(!a.isPropagationStopped()&&f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){d=a.target;var j;if(!(c.nodeName(d,"a")&&e==="click")&&!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()])){try{if(d[e]){if(j=d["on"+e])d["on"+e]=null;this.triggered=true;d[e]()}}catch(n){}if(j)d["on"+e]=j;this.triggered=false}}},handle:function(a){var b,
|
||||||
|
d;a=arguments[0]=c.event.fix(a||z.event);a.currentTarget=this;d=a.type.split(".");a.type=d.shift();b=!d.length&&!a.exclusive;var f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)");d=(c.data(this,"events")||{})[a.type];for(var e in d){var i=d[e];if(b||f.test(i.type)){a.handler=i;a.data=i.data;i=i.apply(this,arguments);if(i!==v){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
|
||||||
|
fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||r;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=r.documentElement;d=r.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
|
||||||
|
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==v)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a,b){c.extend(a,b||{});a.guid+=b.selector+b.live;b.liveProxy=a;c.event.add(this,b.live,na,b)},remove:function(a){if(a.length){var b=
|
||||||
|
0,d=new RegExp("(^|\\.)"+a[0]+"(\\.|$)");c.each(c.data(this,"events").live||{},function(){d.test(this.type)&&b++});b<1&&c.event.remove(this,a[0],na)}},special:{}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};
|
||||||
|
c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y};var Aa=function(a){for(var b=
|
||||||
|
a.relatedTarget;b&&b!==this;)try{b=b.parentNode}catch(d){break}if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}},Ba=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ba:Aa,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ba:Aa)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(a,b,d){if(this.nodeName.toLowerCase()!==
|
||||||
|
"form"){c.event.add(this,"click.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="submit"||i==="image")&&c(e).closest("form").length)return ma("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="text"||i==="password")&&c(e).closest("form").length&&f.keyCode===13)return ma("submit",this,arguments)})}else return false},remove:function(a,b){c.event.remove(this,"click.specialSubmit"+(b?"."+b.guid:""));c.event.remove(this,
|
||||||
|
"keypress.specialSubmit"+(b?"."+b.guid:""))}};if(!c.support.changeBubbles){var da=/textarea|input|select/i;function Ca(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d}function ea(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Ca(d);if(a.type!=="focusout"||
|
||||||
|
d.type!=="radio")c.data(d,"_change_data",e);if(!(f===v||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}}c.event.special.change={filters:{focusout:ea,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return ea.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return ea.call(this,a)},beforeactivate:function(a){a=
|
||||||
|
a.target;a.nodeName.toLowerCase()==="input"&&a.type==="radio"&&c.data(a,"_change_data",Ca(a))}},setup:function(a,b,d){for(var f in T)c.event.add(this,f+".specialChange."+d.guid,T[f]);return da.test(this.nodeName)},remove:function(a,b){for(var d in T)c.event.remove(this,d+".specialChange"+(b?"."+b.guid:""),T[d]);return da.test(this.nodeName)}};var T=c.event.special.change.filters}r.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,
|
||||||
|
f)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var i in d)this[b](i,f,d[i],e);return this}if(c.isFunction(f)){e=f;f=v}var j=b==="one"?c.proxy(e,function(n){c(this).unbind(n,j);return e.apply(this,arguments)}):e;return d==="unload"&&b!=="one"?this.one(d,f,e):this.each(function(){c.event.add(this,d,j,f)})}});c.fn.extend({unbind:function(a,
|
||||||
|
b){if(typeof a==="object"&&!a.preventDefault){for(var d in a)this.unbind(d,a[d]);return this}return this.each(function(){c.event.remove(this,a,b)})},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+
|
||||||
|
a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e){var i,j=0;if(c.isFunction(f)){e=f;f=v}for(d=(d||"").split(/\s+/);(i=d[j++])!=null;){i=i==="focus"?"focusin":i==="blur"?"focusout":i==="hover"?d.push("mouseleave")&&"mouseenter":i;b==="live"?c(this.context).bind(oa(i,this.selector),{data:f,selector:this.selector,
|
||||||
|
live:i},e):c(this.context).unbind(oa(i,this.selector),e?{guid:e.guid+this.selector+i}:null)}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});z.attachEvent&&!z.addEventListener&&z.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
|
||||||
|
(function(){function a(g){for(var h="",k,l=0;g[l];l++){k=g[l];if(k.nodeType===3||k.nodeType===4)h+=k.nodeValue;else if(k.nodeType!==8)h+=a(k.childNodes)}return h}function b(g,h,k,l,q,p){q=0;for(var u=l.length;q<u;q++){var t=l[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===k){y=l[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=k;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}l[q]=y}}}function d(g,h,k,l,q,p){q=0;for(var u=l.length;q<u;q++){var t=l[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===
|
||||||
|
k){y=l[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=k;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(o.filter(h,[t]).length>0){y=t;break}}t=t[g]}l[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,i=Object.prototype.toString,j=false,n=true;[0,0].sort(function(){n=false;return 0});var o=function(g,h,k,l){k=k||[];var q=h=h||r;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||
|
||||||
|
typeof g!=="string")return k;for(var p=[],u,t,y,R,H=true,M=w(h),I=g;(f.exec(""),u=f.exec(I))!==null;){I=u[3];p.push(u[1]);if(u[2]){R=u[3];break}}if(p.length>1&&s.exec(g))if(p.length===2&&m.relative[p[0]])t=fa(p[0]+p[1],h);else for(t=m.relative[p[0]]?[h]:o(p.shift(),h);p.length;){g=p.shift();if(m.relative[g])g+=p.shift();t=fa(g,t)}else{if(!l&&p.length>1&&h.nodeType===9&&!M&&m.match.ID.test(p[0])&&!m.match.ID.test(p[p.length-1])){u=o.find(p.shift(),h,M);h=u.expr?o.filter(u.expr,u.set)[0]:u.set[0]}if(h){u=
|
||||||
|
l?{expr:p.pop(),set:A(l)}:o.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=u.expr?o.filter(u.expr,u.set):u.set;if(p.length>0)y=A(t);else H=false;for(;p.length;){var D=p.pop();u=D;if(m.relative[D])u=p.pop();else D="";if(u==null)u=h;m.relative[D](y,u,M)}}else y=[]}y||(y=t);y||o.error(D||g);if(i.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))k.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&
|
||||||
|
y[g].nodeType===1&&k.push(t[g]);else k.push.apply(k,y);else A(y,k);if(R){o(R,q,k,l);o.uniqueSort(k)}return k};o.uniqueSort=function(g){if(C){j=n;g.sort(C);if(j)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};o.matches=function(g,h){return o(g,null,null,h)};o.find=function(g,h,k){var l,q;if(!g)return[];for(var p=0,u=m.order.length;p<u;p++){var t=m.order[p];if(q=m.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");l=m.find[t](q,
|
||||||
|
h,k);if(l!=null){g=g.replace(m.match[t],"");break}}}}l||(l=h.getElementsByTagName("*"));return{set:l,expr:g}};o.filter=function(g,h,k,l){for(var q=g,p=[],u=h,t,y,R=h&&h[0]&&w(h[0]);g&&h.length;){for(var H in m.filter)if((t=m.leftMatch[H].exec(g))!=null&&t[2]){var M=m.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(u===p)p=[];if(m.preFilter[H])if(t=m.preFilter[H](t,u,k,p,l,R)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=u[U])!=null;U++)if(D){I=M(D,t,U,u);var Da=
|
||||||
|
l^!!I;if(k&&I!=null)if(Da)y=true;else u[U]=false;else if(Da){p.push(D);y=true}}if(I!==v){k||(u=p);g=g.replace(m.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)o.error(g);else break;q=g}return u};o.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var m=o.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
|
||||||
|
TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,h){var k=typeof h==="string",l=k&&!/\W/.test(h);k=k&&!l;if(l)h=h.toLowerCase();l=0;for(var q=g.length,
|
||||||
|
p;l<q;l++)if(p=g[l]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[l]=k||p&&p.nodeName.toLowerCase()===h?p||false:p===h}k&&o.filter(h,g,true)},">":function(g,h){var k=typeof h==="string";if(k&&!/\W/.test(h)){h=h.toLowerCase();for(var l=0,q=g.length;l<q;l++){var p=g[l];if(p){k=p.parentNode;g[l]=k.nodeName.toLowerCase()===h?k:false}}}else{l=0;for(q=g.length;l<q;l++)if(p=g[l])g[l]=k?p.parentNode:p.parentNode===h;k&&o.filter(h,g,true)}},"":function(g,h,k){var l=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=
|
||||||
|
h=h.toLowerCase();q=b}q("parentNode",h,l,g,p,k)},"~":function(g,h,k){var l=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,l,g,p,k)}},find:{ID:function(g,h,k){if(typeof h.getElementById!=="undefined"&&!k)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var k=[];h=h.getElementsByName(g[1]);for(var l=0,q=h.length;l<q;l++)h[l].getAttribute("name")===g[1]&&k.push(h[l]);return k.length===0?null:k}},
|
||||||
|
TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,k,l,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var u;(u=h[p])!=null;p++)if(u)if(q^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))k||l.push(u);else if(k)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&
|
||||||
|
"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,k,l,q,p){h=g[1].replace(/\\/g,"");if(!p&&m.attrMap[h])g[1]=m.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,k,l,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=o(g[3],null,null,h);else{g=o.filter(g[3],h,k,true^q);k||l.push.apply(l,g);return false}else if(m.match.POS.test(g[0])||m.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);
|
||||||
|
return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,k){return!!o(k[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===
|
||||||
|
g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,h){return h===0},last:function(g,h,k,l){return h===l.length-1},even:function(g,h){return h%2===
|
||||||
|
0},odd:function(g,h){return h%2===1},lt:function(g,h,k){return h<k[3]-0},gt:function(g,h,k){return h>k[3]-0},nth:function(g,h,k){return k[3]-0===h},eq:function(g,h,k){return k[3]-0===h}},filter:{PSEUDO:function(g,h,k,l){var q=h[1],p=m.filters[q];if(p)return p(g,k,h,l);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=h[3];k=0;for(l=h.length;k<l;k++)if(h[k]===g)return false;return true}else o.error("Syntax error, unrecognized expression: "+
|
||||||
|
q)},CHILD:function(g,h){var k=h[1],l=g;switch(k){case "only":case "first":for(;l=l.previousSibling;)if(l.nodeType===1)return false;if(k==="first")return true;l=g;case "last":for(;l=l.nextSibling;)if(l.nodeType===1)return false;return true;case "nth":k=h[2];var q=h[3];if(k===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var u=0;for(l=p.firstChild;l;l=l.nextSibling)if(l.nodeType===1)l.nodeIndex=++u;p.sizcache=h}g=g.nodeIndex-q;return k===0?g===0:g%k===0&&g/k>=
|
||||||
|
0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var k=h[1];g=m.attrHandle[k]?m.attrHandle[k](g):g[k]!=null?g[k]:g.getAttribute(k);k=g+"";var l=h[2];h=h[4];return g==null?l==="!=":l==="="?k===h:l==="*="?k.indexOf(h)>=0:l==="~="?(" "+k+" ").indexOf(h)>=0:!h?k&&g!==false:l==="!="?k!==h:l==="^="?
|
||||||
|
k.indexOf(h)===0:l==="$="?k.substr(k.length-h.length)===h:l==="|="?k===h||k.substr(0,h.length+1)===h+"-":false},POS:function(g,h,k,l){var q=m.setFilters[h[2]];if(q)return q(g,k,h,l)}}},s=m.match.POS;for(var x in m.match){m.match[x]=new RegExp(m.match[x].source+/(?![^\[]*\])(?![^\(]*\))/.source);m.leftMatch[x]=new RegExp(/(^(?:.|\r|\n)*?)/.source+m.match[x].source.replace(/\\(\d+)/g,function(g,h){return"\\"+(h-0+1)}))}var A=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};
|
||||||
|
try{Array.prototype.slice.call(r.documentElement.childNodes,0)}catch(B){A=function(g,h){h=h||[];if(i.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var k=0,l=g.length;k<l;k++)h.push(g[k]);else for(k=0;g[k];k++)h.push(g[k]);return h}}var C;if(r.documentElement.compareDocumentPosition)C=function(g,h){if(!g.compareDocumentPosition||!h.compareDocumentPosition){if(g==h)j=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===
|
||||||
|
h?0:1;if(g===0)j=true;return g};else if("sourceIndex"in r.documentElement)C=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)j=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)j=true;return g};else if(r.createRange)C=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)j=true;return g.ownerDocument?-1:1}var k=g.ownerDocument.createRange(),l=h.ownerDocument.createRange();k.setStart(g,0);k.setEnd(g,0);l.setStart(h,0);l.setEnd(h,0);g=k.compareBoundaryPoints(Range.START_TO_END,
|
||||||
|
l);if(g===0)j=true;return g};(function(){var g=r.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var k=r.documentElement;k.insertBefore(g,k.firstChild);if(r.getElementById(h)){m.find.ID=function(l,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(l[1]))?q.id===l[1]||typeof q.getAttributeNode!=="undefined"&&q.getAttributeNode("id").nodeValue===l[1]?[q]:v:[]};m.filter.ID=function(l,q){var p=typeof l.getAttributeNode!=="undefined"&&l.getAttributeNode("id");
|
||||||
|
return l.nodeType===1&&p&&p.nodeValue===q}}k.removeChild(g);k=g=null})();(function(){var g=r.createElement("div");g.appendChild(r.createComment(""));if(g.getElementsByTagName("*").length>0)m.find.TAG=function(h,k){k=k.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var l=0;k[l];l++)k[l].nodeType===1&&h.push(k[l]);k=h}return k};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")m.attrHandle.href=function(h){return h.getAttribute("href",
|
||||||
|
2)};g=null})();r.querySelectorAll&&function(){var g=o,h=r.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){o=function(l,q,p,u){q=q||r;if(!u&&q.nodeType===9&&!w(q))try{return A(q.querySelectorAll(l),p)}catch(t){}return g(l,q,p,u)};for(var k in g)o[k]=g[k];h=null}}();(function(){var g=r.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===
|
||||||
|
0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){m.order.splice(1,0,"CLASS");m.find.CLASS=function(h,k,l){if(typeof k.getElementsByClassName!=="undefined"&&!l)return k.getElementsByClassName(h[1])};g=null}}})();var E=r.compareDocumentPosition?function(g,h){return g.compareDocumentPosition(h)&16}:function(g,h){return g!==h&&(g.contains?g.contains(h):true)},w=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},fa=function(g,h){var k=[],
|
||||||
|
l="",q;for(h=h.nodeType?[h]:h;q=m.match.PSEUDO.exec(g);){l+=q[0];g=g.replace(m.match.PSEUDO,"")}g=m.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)o(g,h[q],k);return o.filter(l,k)};c.find=o;c.expr=o.selectors;c.expr[":"]=c.expr.filters;c.unique=o.uniqueSort;c.getText=a;c.isXMLDoc=w;c.contains=E})();var bb=/Until$/,cb=/^(?:parents|prevUntil|prevAll)/,db=/,/;Q=Array.prototype.slice;var Ea=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,i){return!!b.call(e,i,e)===d});else if(b.nodeType)return c.grep(a,
|
||||||
|
function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Qa.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;c.find(a,this[f],b);if(f>0)for(var i=d;i<b.length;i++)for(var j=0;j<d;j++)if(b[j]===b[i]){b.splice(i--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=
|
||||||
|
0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ea(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ea(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,i={},j;if(f&&a.length){e=0;for(var n=a.length;e<n;e++){j=a[e];i[j]||(i[j]=c.expr.match.POS.test(j)?c(j,b||this.context):j)}for(;f&&f.ownerDocument&&f!==b;){for(j in i){e=i[j];if(e.jquery?e.index(f)>
|
||||||
|
-1:c(f).is(e)){d.push({selector:j,elem:f});delete i[j]}}f=f.parentNode}}return d}var o=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(m,s){for(;s&&s.ownerDocument&&s!==b;){if(o?o.index(s)>-1:c(s).is(a))return s;s=s.parentNode}return null})},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),
|
||||||
|
a);return this.pushStack(pa(a[0])||pa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},
|
||||||
|
nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);bb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):
|
||||||
|
e;if((this.length>1||db.test(f))&&cb.test(a))e=e.reverse();return this.pushStack(e,a,Q.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===v||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==
|
||||||
|
b&&d.push(a);return d}});var Fa=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ga=/(<([\w:]+)[^>]*?)\/>/g,eb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,Ha=/<([\w:]+)/,fb=/<tbody/i,gb=/<|&\w+;/,sa=/checked\s*(?:[^=]|=\s*.checked.)/i,Ia=function(a,b,d){return eb.test(d)?a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],
|
||||||
|
col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==v)return this.empty().append((this[0]&&this[0].ownerDocument||r).createTextNode(a));return c.getText(this)},
|
||||||
|
wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?
|
||||||
|
d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,
|
||||||
|
false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&
|
||||||
|
!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Fa,"").replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){qa(this,b);qa(this.find("*"),b.find("*"))}return b},html:function(a){if(a===v)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Fa,""):null;else if(typeof a==="string"&&!/<script/i.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(Ha.exec(a)||
|
||||||
|
["",""])[1].toLowerCase()]){a=a.replace(Ga,Ia);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var i=c(this),j=i.html();i.empty().append(function(){return a.call(this,e,j)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,
|
||||||
|
b,f))});else a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(s){return c.nodeName(s,"table")?s.getElementsByTagName("tbody")[0]||s.appendChild(s.ownerDocument.createElement("tbody")):s}var e,i,j=a[0],n=[];if(!c.support.checkClone&&arguments.length===3&&typeof j===
|
||||||
|
"string"&&sa.test(j))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(j))return this.each(function(s){var x=c(this);a[0]=j.call(this,s,b?x.html():v);x.domManip(a,b,d)});if(this[0]){e=a[0]&&a[0].parentNode&&a[0].parentNode.nodeType===11?{fragment:a[0].parentNode}:ra(a,this,n);if(i=e.fragment.firstChild){b=b&&c.nodeName(i,"tr");for(var o=0,m=this.length;o<m;o++)d.call(b?f(this[o],i):this[o],e.cacheable||this.length>1||o>0?e.fragment.cloneNode(true):e.fragment)}n&&c.each(n,
|
||||||
|
Ma)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);for(var e=0,i=d.length;e<i;e++){var j=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),j);f=f.concat(j)}return this.pushStack(f,a,d.selector)}});c.each({remove:function(a,b){if(!a||c.filter(a,[this]).length){if(!b&&this.nodeType===1){c.cleanData(this.getElementsByTagName("*"));c.cleanData([this])}this.parentNode&&
|
||||||
|
this.parentNode.removeChild(this)}},empty:function(){for(this.nodeType===1&&c.cleanData(this.getElementsByTagName("*"));this.firstChild;)this.removeChild(this.firstChild)}},function(a,b){c.fn[a]=function(){return this.each(b,arguments)}});c.extend({clean:function(a,b,d,f){b=b||r;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||r;var e=[];c.each(a,function(i,j){if(typeof j==="number")j+="";if(j){if(typeof j==="string"&&!gb.test(j))j=b.createTextNode(j);else if(typeof j===
|
||||||
|
"string"){j=j.replace(Ga,Ia);var n=(Ha.exec(j)||["",""])[1].toLowerCase(),o=F[n]||F._default,m=o[0];i=b.createElement("div");for(i.innerHTML=o[1]+j+o[2];m--;)i=i.lastChild;if(!c.support.tbody){m=fb.test(j);n=n==="table"&&!m?i.firstChild&&i.firstChild.childNodes:o[1]==="<table>"&&!m?i.childNodes:[];for(o=n.length-1;o>=0;--o)c.nodeName(n[o],"tbody")&&!n[o].childNodes.length&&n[o].parentNode.removeChild(n[o])}!c.support.leadingWhitespace&&V.test(j)&&i.insertBefore(b.createTextNode(V.exec(j)[0]),i.firstChild);
|
||||||
|
j=c.makeArray(i.childNodes)}if(j.nodeType)e.push(j);else e=c.merge(e,j)}});if(d)for(a=0;e[a];a++)if(f&&c.nodeName(e[a],"script")&&(!e[a].type||e[a].type.toLowerCase()==="text/javascript"))f.push(e[a].parentNode?e[a].parentNode.removeChild(e[a]):e[a]);else{e[a].nodeType===1&&e.splice.apply(e,[a+1,0].concat(c.makeArray(e[a].getElementsByTagName("script"))));d.appendChild(e[a])}return e},cleanData:function(a){for(var b=0,d;(d=a[b])!=null;b++){c.event.remove(d);c.removeData(d)}}});var hb=/z-?index|font-?weight|opacity|zoom|line-?height/i,
|
||||||
|
Ja=/alpha\([^)]*\)/,Ka=/opacity=([^)]*)/,ga=/float/i,ha=/-([a-z])/ig,ib=/([A-Z])/g,jb=/^-?\d+(?:px)?$/i,kb=/^-?\d/,lb={position:"absolute",visibility:"hidden",display:"block"},mb=["Left","Right"],nb=["Top","Bottom"],ob=r.defaultView&&r.defaultView.getComputedStyle,La=c.support.cssFloat?"cssFloat":"styleFloat",ia=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===v)return c.curCSS(d,f);if(typeof e==="number"&&!hb.test(f))e+="px";c.style(d,f,e)})};
|
||||||
|
c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return v;if((b==="width"||b==="height")&&parseFloat(d)<0)d=v;var f=a.style||a,e=d!==v;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=Ja.test(a)?a.replace(Ja,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Ka.exec(f.filter)[1])/100+"":""}if(ga.test(b))b=La;b=b.replace(ha,ia);if(e)f[b]=d;return f[b]},css:function(a,
|
||||||
|
b,d,f){if(b==="width"||b==="height"){var e,i=b==="width"?mb:nb;function j(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(i,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,"border"+this+"Width",true))||0})}a.offsetWidth!==0?j():c.swap(a,lb,j);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&
|
||||||
|
a.currentStyle){f=Ka.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ga.test(b))b=La;if(!d&&e&&e[b])f=e[b];else if(ob){if(ga.test(b))b="float";b=b.replace(ib,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ha,ia);f=a.currentStyle[b]||a.currentStyle[d];if(!jb.test(f)&&kb.test(f)){b=e.left;var i=a.runtimeStyle.left;a.runtimeStyle.left=
|
||||||
|
a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=i}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var pb=
|
||||||
|
J(),qb=/<script(.|\s)*?\/script>/gi,rb=/select|textarea/i,sb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ja=/\?/,tb=/(\?|&)_=.*?(&|$)/,ub=/^(\w+:)?\/\/([^\/?#]+)/,vb=/%20/g;c.fn.extend({_load:c.fn.load,load:function(a,b,d){if(typeof a!=="string")return this._load(a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=
|
||||||
|
c.param(b,c.ajaxSettings.traditional);f="POST"}var i=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(j,n){if(n==="success"||n==="notmodified")i.html(e?c("<div />").append(j.responseText.replace(qb,"")).find(e):j.responseText);d&&i.each(d,[j.responseText,n,j])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&
|
||||||
|
(this.checked||rb.test(this.nodeName)||sb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,
|
||||||
|
b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:z.XMLHttpRequest&&(z.location.protocol!=="file:"||!z.ActiveXObject)?function(){return new z.XMLHttpRequest}:
|
||||||
|
function(){try{return new z.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&e.success.call(o,n,j,w);e.global&&f("ajaxSuccess",[w,e])}function d(){e.complete&&e.complete.call(o,w,j);e.global&&f("ajaxComplete",[w,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}
|
||||||
|
function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),i,j,n,o=a&&a.context||e,m=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(m==="GET")N.test(e.url)||(e.url+=(ja.test(e.url)?"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||
|
||||||
|
N.test(e.url))){i=e.jsonpCallback||"jsonp"+pb++;if(e.data)e.data=(e.data+"").replace(N,"="+i+"$1");e.url=e.url.replace(N,"="+i+"$1");e.dataType="script";z[i]=z[i]||function(q){n=q;b();d();z[i]=v;try{delete z[i]}catch(p){}A&&A.removeChild(B)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===false&&m==="GET"){var s=J(),x=e.url.replace(tb,"$1_="+s+"$2");e.url=x+(x===e.url?(ja.test(e.url)?"&":"?")+"_="+s:"")}if(e.data&&m==="GET")e.url+=(ja.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&
|
||||||
|
c.event.trigger("ajaxStart");s=(s=ub.exec(e.url))&&(s[1]&&s[1]!==location.protocol||s[2]!==location.host);if(e.dataType==="script"&&m==="GET"&&s){var A=r.getElementsByTagName("head")[0]||r.documentElement,B=r.createElement("script");B.src=e.url;if(e.scriptCharset)B.charset=e.scriptCharset;if(!i){var C=false;B.onload=B.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;b();d();B.onload=B.onreadystatechange=null;A&&B.parentNode&&
|
||||||
|
A.removeChild(B)}}}A.insertBefore(B,A.firstChild);return v}var E=false,w=e.xhr();if(w){e.username?w.open(m,e.url,e.async,e.username,e.password):w.open(m,e.url,e.async);try{if(e.data||a&&a.contentType)w.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[e.url]);c.etag[e.url]&&w.setRequestHeader("If-None-Match",c.etag[e.url])}s||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",
|
||||||
|
e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(fa){}if(e.beforeSend&&e.beforeSend.call(o,w,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");w.abort();return false}e.global&&f("ajaxSend",[w,e]);var g=w.onreadystatechange=function(q){if(!w||w.readyState===0||q==="abort"){E||d();E=true;if(w)w.onreadystatechange=c.noop}else if(!E&&w&&(w.readyState===4||q==="timeout")){E=true;w.onreadystatechange=c.noop;j=q==="timeout"?"timeout":!c.httpSuccess(w)?
|
||||||
|
"error":e.ifModified&&c.httpNotModified(w,e.url)?"notmodified":"success";var p;if(j==="success")try{n=c.httpData(w,e.dataType,e)}catch(u){j="parsererror";p=u}if(j==="success"||j==="notmodified")i||b();else c.handleError(e,w,j,p);d();q==="timeout"&&w.abort();if(e.async)w=null}};try{var h=w.abort;w.abort=function(){w&&h.call(w);g("abort")}}catch(k){}e.async&&e.timeout>0&&setTimeout(function(){w&&!E&&g("timeout")},e.timeout);try{w.send(m==="POST"||m==="PUT"||m==="DELETE"?e.data:null)}catch(l){c.handleError(e,
|
||||||
|
w,null,l);d()}e.async||g();return w}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=
|
||||||
|
f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(j,n){if(c.isArray(n))c.each(n,
|
||||||
|
function(o,m){b?f(j,m):d(j+"["+(typeof m==="object"||c.isArray(m)?o:"")+"]",m)});else!b&&n!=null&&typeof n==="object"?c.each(n,function(o,m){d(j+"["+o+"]",m)}):f(j,n)}function f(j,n){n=c.isFunction(n)?n():n;e[e.length]=encodeURIComponent(j)+"="+encodeURIComponent(n)}var e=[];if(b===v)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var i in a)d(i,a[i]);return e.join("&").replace(vb,"+")}});var ka={},wb=/toggle|show|hide/,xb=/^([+-]=)?([\d+-.]+)(.*)$/,
|
||||||
|
W,ta=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(ka[d])f=ka[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();
|
||||||
|
ka[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&
|
||||||
|
c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var i=c.extend({},e),j,n=this.nodeType===1&&c(this).is(":hidden"),
|
||||||
|
o=this;for(j in a){var m=j.replace(ha,ia);if(j!==m){a[m]=a[j];delete a[j];j=m}if(a[j]==="hide"&&n||a[j]==="show"&&!n)return i.complete.call(this);if((j==="height"||j==="width")&&this.style){i.display=c.css(this,"display");i.overflow=this.style.overflow}if(c.isArray(a[j])){(i.specialEasing=i.specialEasing||{})[j]=a[j][1];a[j]=a[j][0]}}if(i.overflow!=null)this.style.overflow="hidden";i.curAnim=c.extend({},a);c.each(a,function(s,x){var A=new c.fx(o,i,s);if(wb.test(x))A[x==="toggle"?n?"show":"hide":x](a);
|
||||||
|
else{var B=xb.exec(x),C=A.cur(true)||0;if(B){x=parseFloat(B[2]);var E=B[3]||"px";if(E!=="px"){o.style[s]=(x||1)+E;C=(x||1)/A.cur(true)*C;o.style[s]=C+E}if(B[1])x=(B[1]==="-="?-1:1)*x+C;A.custom(C,x,E)}else A.custom(C,x,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",
|
||||||
|
1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration==="number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,
|
||||||
|
b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==
|
||||||
|
null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(i){return e.step(i)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop===
|
||||||
|
"width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=
|
||||||
|
this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=
|
||||||
|
c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=
|
||||||
|
null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in r.documentElement?function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),
|
||||||
|
f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(s){c.offset.setOffset(this,a,s)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=
|
||||||
|
b,e=b.ownerDocument,i,j=e.documentElement,n=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var o=b.offsetTop,m=b.offsetLeft;(b=b.parentNode)&&b!==n&&b!==j;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;i=e?e.getComputedStyle(b,null):b.currentStyle;o-=b.scrollTop;m-=b.scrollLeft;if(b===d){o+=b.offsetTop;m+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){o+=parseFloat(i.borderTopWidth)||
|
||||||
|
0;m+=parseFloat(i.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&i.overflow!=="visible"){o+=parseFloat(i.borderTopWidth)||0;m+=parseFloat(i.borderLeftWidth)||0}f=i}if(f.position==="relative"||f.position==="static"){o+=n.offsetTop;m+=n.offsetLeft}if(c.offset.supportsFixedPosition&&f.position==="fixed"){o+=Math.max(j.scrollTop,n.scrollTop);m+=Math.max(j.scrollLeft,n.scrollLeft)}return{top:o,left:m}};c.offset={initialize:function(){var a=r.body,b=r.createElement("div"),
|
||||||
|
d,f,e,i=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);
|
||||||
|
d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i;a.removeChild(b);c.offset.initialize=c.noop},
|
||||||
|
bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),i=parseInt(c.curCSS(a,"top",true),10)||0,j=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,d,e);d={top:b.top-e.top+i,left:b.left-
|
||||||
|
e.left+j};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=
|
||||||
|
this.offsetParent||r.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],i;if(!e)return null;if(f!==v)return this.each(function(){if(i=ua(this))i.scrollTo(!a?f:c(i).scrollLeft(),a?f:c(i).scrollTop());else this[d]=f});else return(i=ua(e))?"pageXOffset"in i?i[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&i.document.documentElement[d]||i.document.body[d]:e[d]}});
|
||||||
|
c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(i){var j=c(this);j[d](f.call(this,i,j[d]()))});return"scrollTo"in e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||
|
||||||
|
e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===v?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});z.jQuery=z.$=c})(window);
|
114
src/main/webapp/externals/suggest/css/suggest-1.0.3.min.css
vendored
Normal file
114
src/main/webapp/externals/suggest/css/suggest-1.0.3.min.css
vendored
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* All source and examples in this project are subject to the
|
||||||
|
* following copyright, unless specifically stated otherwise
|
||||||
|
* in the file itself:
|
||||||
|
*
|
||||||
|
* Copyright (c) 2007-2009, Metaweb Technologies, Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above
|
||||||
|
* copyright notice, this list of conditions and the following
|
||||||
|
* disclaimer in the documentation and/or other materials provided
|
||||||
|
* with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY METAWEB TECHNOLOGIES ``AS IS'' AND ANY
|
||||||
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL METAWEB TECHNOLOGIES BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||||
|
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
.fbs-reset,.fbs-reset h1,.fbs-reset h2,.fbs-reset h3,.fbs-reset h4,.fbs-reset h5,.fbs-reset h6,.fbs-reset p,.fbs-reset img,.fbs-reset dl,.fbs-reset dt,.fbs-reset dd,.fbs-reset ol,.fbs-reset ul,.fbs-reset li{margin:0;padding:0;border:0;outline:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;}
|
||||||
|
.fbs-pane,.fbs-flyout-pane,li.fbs-nomatch,a.fbs-more-link,li.fbs-selected,.fbs-flyout-images,#fbs-topic-image{background:#fff;}
|
||||||
|
.fbs-suggestnew{color:#444;}
|
||||||
|
.fbs-pane,.fbs-flyout-pane,.fbs-flyout-subtitle,.fbs-topic-properties strong{color:#666;}
|
||||||
|
h3.fbs-topic-properties,.fbs-flyout-pane p{color:#444;}
|
||||||
|
.fbs-item-name,li.fbs-help-on-focus,li.fbs-nomatch,.fbs-nomatch-text,.fbs-flyout-pane h3,.fbs-properties-header{color:#333;}
|
||||||
|
.fbs-pane,.fbs-flyout-pane{border:1px solid #bbb;padding:2px;}
|
||||||
|
.fbs-flyout-pane{border-color:#ccc;}
|
||||||
|
.fbs-list,.fbs-list-icons,.fbs-flyout-content,.fbs-attribution,.fbs-header{background-color:#f5f5f5;}
|
||||||
|
.fbs-header{background:#fefefe;}
|
||||||
|
li.fbs-help-on-focus,li.fbs-nomatch{border-bottom:1px solid #dae3e9;}
|
||||||
|
.fbs-item-name{border:1px solid #f5f5f5;}
|
||||||
|
h1#fbs-flyout-title,li.fbs-selected .fbs-item-name{color:#f60;}
|
||||||
|
li.fbs-selected .fbs-item-name{border-color:#f60;background:#fff;}
|
||||||
|
.fbs-nomatch-text{border-bottom:1px solid #dae3e9;background:#f8f8f8;}
|
||||||
|
.fbs-suggestnew{background:#eeeeee;border-top:1px solid #dae3e9;}
|
||||||
|
#fbs-flyout-title .fbs-flyout-label{color:#aaa;}
|
||||||
|
#fbs-topic-image,.fbs-flyout-images{border:1px solid #a9a9a9;}
|
||||||
|
.fbs-suggestnew-button,.fbs-flyout-pane{border:1px solid #9a9a9a;color:#999999;}
|
||||||
|
.fbs-suggestnew-button{color:#444444;}
|
||||||
|
ul.fbs-list,.fbs-flyout-content,.fbs-attribution,.fbs-header{border:1px solid #dae3e9;}
|
||||||
|
.fbs-header{border-bottom:0;}
|
||||||
|
li.fbs-item{border-bottom:1px solid #dae3e9;}
|
||||||
|
.fbs-attribution{border-top:0;}
|
||||||
|
.fbs-pane,.fbs-flyout-pane{font-size:16px;font-family:Helvetica Neue, Arial, Helvetica, sans-serif;}
|
||||||
|
ul.fbs-list,.fbs-flyout-content,.fbs-attribution,div.fbs-header{font-size:62.5%;}
|
||||||
|
.fbs-pane strong,.fbs-flyout-pane strong{font-weight:bold;}
|
||||||
|
.fbs-flyout-content,.fbs-attribution{margin:2px;}
|
||||||
|
.fbs-flyout-content{margin-bottom:0;}
|
||||||
|
.fbs-attribution{margin-top:0;}
|
||||||
|
.fbs-pane{width:325px;}
|
||||||
|
.fbs-flyout-pane{width:319px;margin-left:3px;}
|
||||||
|
ul.fbs-list{max-height:320px;overflow:auto;overflow-x:hidden;border-bottom:0;border-top:0;}
|
||||||
|
.fbs-flyout-content,.fbs-attribution{padding:5px;}
|
||||||
|
.fbs-flyout-content:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
|
||||||
|
li.fbs-help-on-focus,li.fbs-nomatch{padding:6px 8px 7px 6px;font-size:1.4em;line-height:1;}
|
||||||
|
li.fbs-more{padding:0;background:transparent;}
|
||||||
|
a.fbs-more-link{display:block;padding:4px;font-weight:bold;font-size:12px;}
|
||||||
|
.fbs-more .fbs-help{display:none;}
|
||||||
|
.fbs-header{font-weight:bold;padding:4px 6px;margin:2px 2px -2px 2px;}
|
||||||
|
.fbs-item-name label{font-size:0.9em;}
|
||||||
|
.fbs-item-type,.fbs-item-name label{display:block;overflow:hidden;white-space:nowrap;}
|
||||||
|
.fbs-item-name{padding:2px 8px 1px 6px;font-size:1.4em;line-height:1.4em;background:#f4f8fb;}
|
||||||
|
.fbs-item-name strong{font-weight:bold;}
|
||||||
|
.fbs-item-type{color:#777;float:right;font-size:0.7em;max-width:40%;padding-left:0.25em;}
|
||||||
|
li.fbs-selected{cursor:pointer;}
|
||||||
|
.fbs-status{border:1px solid #dae3e9;padding:4px 5px;color:#000;font-size:0.7em;}
|
||||||
|
li.fbs-nomatch{padding:0;}
|
||||||
|
.fbs-nomatch-text{display:block;font-weight:bold;line-height:1;font-size:.9em;}
|
||||||
|
.fbs-nomatch-text,.fbs-nomatch h3,ul.fbs-search-tips{padding:6px 8px 7px 6px;}
|
||||||
|
.fbs-nomatch h3{font-weight:bold;font-size:0.9em;}
|
||||||
|
ul.fbs-search-tips li{list-style:disc;margin-left:1.6em;margin-bottom:0.3em;font-size:0.9em;}
|
||||||
|
.fbs-suggestnew{padding:0.4em 0.3em 0.5em 8px;}
|
||||||
|
.fbs-suggestnew-button{cursor:pointer;padding:0.2em 0.3em;margin-left:0px !important;max-width:17em;font-size:.8em;}
|
||||||
|
.fbs-suggestnew-description{margin-bottom:0.6em;font-size:0.7em;}
|
||||||
|
.fbs-more-shortcut,.fbs-suggestnew-shortcut{margin-left:0.4em;font-size:70%;color:#999999;}
|
||||||
|
.fbs-placeholder{color:#99a;font-style:italic;}
|
||||||
|
h1#fbs-flyout-title{font-size:1.2em;font-weight:bold;margin-bottom:0.5em;margin-top:0.3em;}
|
||||||
|
h1#fbs-flyout-title .fbs-flyout-template-label{color:#999999;font-size:0.8em;}
|
||||||
|
#fbs-flyout-title .fbs-flyout-label{font-weight:normal;}
|
||||||
|
#fbs-topic-image{float:left;padding:1px;margin-right:5px;margin-bottom:5px;}
|
||||||
|
.fbs-flyout-images{float:left;margin:0 10px 0 0;padding:1px 0 1px 1px;}
|
||||||
|
.fbs-flyout-images img{float:left;margin-right:1px;}
|
||||||
|
.fbs-flyout-subtitle{font-size:1.1em;margin-bottom:0.5em;}
|
||||||
|
.fbs-flyout-pane h3{font-size:1em;line-height:1.4;margin-bottom:0.25em;}
|
||||||
|
.fbs-properties-header{font-size:1em;font-weight:bold;margin:0.5em 0;}
|
||||||
|
h3.fbs-topic-properties{font-size:1.2em;font-weight:bold;}
|
||||||
|
.fbs-topic-properties strong{display:inline;font-size:0.8em;}
|
||||||
|
.fbs-flyout-pane p{font-size:1.2em;line-height:1.4;}
|
||||||
|
p.fbs-flyout-image-true,h3.fbs-flyout-image-true,h1.fbs-flyout-image-true{margin-left:85px;}
|
||||||
|
.fbs-meta-info{margin-left:110px;}
|
||||||
|
#fbs-user-flyout li{margin-left:100px;}
|
||||||
|
#fbs-domain-flyout .fbs-meta-info{margin-left:145px;}
|
||||||
|
.fbs-flyout-list li{font-size:1em;margin-left:15px;}
|
||||||
|
#fbs-domain-flyout #fbs-flyout-title{margin-bottom:0.5em;}
|
||||||
|
.fbs-attribution{padding-right:72px;background-image:url(http://www.freebase.com/resources/images/fbs-attribution.png);background-repeat:no-repeat;background-position:center right;min-height:15px;}
|
||||||
|
.fbs-flyout-types{font-style:italic;line-height:1;font-size:1.2em;}
|
||||||
|
* html .fbs-list,* html .fbs-list-icons{height:expression( this.scrollHeight > 410 ? "410" : "auto" );}
|
||||||
|
* html .fbs-item-name{width:253px !important;}
|
||||||
|
* html .fbs-item-name{width:100%;}
|
||||||
|
* html .fbs-flyout-content:after{height:1px;}
|
||||||
|
/* Version:r87595 Built:Tue Jan 05 2010 by daepark */
|
149
src/main/webapp/externals/suggest/suggest-1.0.3.min.js
vendored
Normal file
149
src/main/webapp/externals/suggest/suggest-1.0.3.min.js
vendored
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* All source and examples in this project are subject to the
|
||||||
|
* following copyright, unless specifically stated otherwise
|
||||||
|
* in the file itself:
|
||||||
|
*
|
||||||
|
* Copyright (c) 2007-2009, Metaweb Technologies, Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above
|
||||||
|
* copyright notice, this list of conditions and the following
|
||||||
|
* disclaimer in the documentation and/or other materials provided
|
||||||
|
* with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY METAWEB TECHNOLOGIES ``AS IS'' AND ANY
|
||||||
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL METAWEB TECHNOLOGIES BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||||
|
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(function($,undefined){if(!window.console){window.console={log:function(){},info:function(){},debug:function(){},warn:function(){},error:function(){}};}
|
||||||
|
$.suggest=function(name,prototype){$.fn[name]=function(options){if(!this.length){console.warn('Suggest: invoked on empty element set');}
|
||||||
|
return this.each(function(){if(this.nodeName){if(this.nodeName.toUpperCase()==='INPUT'){if(this.type&&this.type.toUpperCase()!=='TEXT'){console.warn('Suggest: unsupported INPUT type: '+this.type);}}else{console.warn('Suggest: unsupported DOM element: '+this.nodeName);}}
|
||||||
|
var instance=$.data(this,name);if(instance){instance._destroy();}
|
||||||
|
$.data(this,name,new $.suggest[name](this,options))._init();});};$.fn.placeholder=function(){return this.each(function(){var $this=$(this);if($this.attr("placeholder")&&!("placeholder"in this)){$this.unbind(".placeholder").bind("focus.placeholder",function(e){var self=$(this);if(self.val()===self.attr("placeholder")){self.val("");}
|
||||||
|
else{self.select();}
|
||||||
|
self.removeClass("fbs-placeholder");}).bind("blur.placeholder",function(e){var self=$(this);if(self.val()===""){self.val(self.attr("placeholder")).addClass("fbs-placeholder");}});if($this.val()===''){$this.val($this.attr("placeholder")).addClass("fbs-placeholder");}}});};$.suggest[name]=function(input,options){var self=this,o=this.options=$.extend(true,{},$.suggest.defaults,$.suggest[name].defaults,options),p=o.css_prefix=o.css_prefix||"",css=o.css;this.name=name;$.each(css,function(k,v){css[k]=p+css[k];});o.ac_param={};$.each(["type","type_strict","mql_filter","as_of_time","exclude_guids","category"],function(i,n){var v=o[n];if(v===null||v===""){return;}
|
||||||
|
if(typeof v==="object"){if(typeof JSON==="undefined"){init_JSON();}
|
||||||
|
v=JSON.stringify(v);}
|
||||||
|
o.ac_param[n]=v;});if(o.ac_param.type){this.options._type=$.map(o.ac_param.type.split(/[, ]/),function(n,i){return n.replace(/[\"\[\]]/g,"");});};this._status={START:"",LOADING:"",SELECT:""};if(o.status&&o.status instanceof Array&&o.status.length==3){this._status.START=o.status[0]||"";this._status.LOADING=o.status[1]||"";this._status.SELECT=o.status[2]||"";}
|
||||||
|
var s=this.status=$('<div style="display:none;">').addClass(css.status),l=this.list=$("<ul>").addClass(css.list),p=this.pane=$('<div style="display:none;" class="fbs-reset">').addClass(css.pane);p.append(s).append(l);if(o.parent){$(o.parent).append(p);}
|
||||||
|
else{p.css("position","absolute");$(document.body).append(p);}
|
||||||
|
p.bind("mousedown",function(e){self.input.data("dont_hide",true);e.stopPropagation();}).bind("mouseup",function(e){if(self.input.data("dont_hide")){self.input.focus();}
|
||||||
|
self.input.removeData("dont_hide");e.stopPropagation();}).bind("click",function(e){e.stopPropagation();var s=self.get_selected();if(s){self.onselect(s,true);self.hide_all();}});var hoverover=function(e){self.hoverover_list(e);};var hoverout=function(e){self.hoverout_list(e);};l.hover(hoverover,hoverout);this.input=$(input).attr("autocomplete","off").unbind(".suggest").bind("keydown.suggest",function(e){self.keydown(e);}).bind("keypress.suggest",function(e){self.keypress(e);}).bind("keyup.suggest",function(e){self.keyup(e);}).bind("blur.suggest",function(e){self.blur(e);}).bind("textchange.suggest",function(e){self.textchange();}).bind("focus.suggest",function(e){self.focus(e);}).bind($.browser.msie?"paste.suggest":"input.suggest",function(e){clearTimeout(self.paste_timeout);self.paste_timeout=setTimeout(function(){self.textchange();},0);});this.input.placeholder();this.onresize=function(e){self.invalidate_position();if(p.is(":visible")){self.position();if(o.flyout&&self.flyoutpane&&self.flyoutpane.is(":visible")){var s=self.get_selected();if(s){self.flyout_position(s);}}}};$(window).bind("resize.suggest",this.onresize).bind("scroll.suggest",this.onresize);};$.suggest[name].prototype=$.extend({},$.suggest.prototype,prototype);};$.suggest.prototype={_init:function(){},_destroy:function(){this.pane.remove();this.list.remove();this.input.unbind(".suggest");$(window).unbind("resize.suggest",this.onresize).unbind("scroll.suggest",this.onresize);this.input.removeData("data.suggest");},invalidate_position:function(){self._position=null;},status_start:function(){this.hide_all();this.status.siblings().hide();if(this._status.START){this.status.text(this._status.START).show();if(!this.pane.is(":visible")){this.position();this.pane_show();}}
|
||||||
|
if(this._status.LOADING){this.status.removeClass("loading");}},status_loading:function(){this.status.siblings().show();if(this._status.LOADING){this.status.addClass("loading").text(this._status.LOADING).show();if(!this.pane.is(":visible")){this.position();this.pane_show();}}
|
||||||
|
else{this.status.hide();}},status_select:function(){this.status.siblings().show();if(this._status.SELECT){this.status.text(this._status.SELECT).show();}
|
||||||
|
else{this.status.hide();}
|
||||||
|
if(this._status.LOADING){this.status.removeClass("loading");}},focus:function(e){var o=this.options,v=this.input.val();if(v===""||v===this.input.attr("placeholder")){this.status_start();}
|
||||||
|
else{this.focus_hook(e);}},focus_hook:function(e){if(!this.input.data("data.suggest")&&!this.pane.is(":visible")&&$("."+this.options.css.item,this.list).length){this.position();this.pane_show();}},keydown:function(e){var key=e.keyCode;if(key===9){this.tab(e);}
|
||||||
|
else if(key===38||key===40){if(!e.shiftKey){e.preventDefault();}}},keypress:function(e){var key=e.keyCode;if(key===38||key===40){if(!e.shiftKey){e.preventDefault();}}
|
||||||
|
else if(key===13){this.enter(e);}},keyup:function(e){var key=e.keyCode;if(key===38){e.preventDefault();this.up(e);}
|
||||||
|
else if(key===40){e.preventDefault();this.down(e);}
|
||||||
|
else if(e.ctrlKey&&key===77){$(".fbs-more-link",this.pane).click();}
|
||||||
|
else if($.suggest.is_char(e)){clearTimeout(this.keypress.timeout);var self=this;this.keypress.timeout=setTimeout(function(){self.textchange();},0);}
|
||||||
|
else if(key===27){this.escape(e);}
|
||||||
|
return true;},blur:function(e){if(this.input.data("dont_hide")){return;}
|
||||||
|
var data=this.input.data("data.suggest");if(!data){this.check_required(e);}
|
||||||
|
this.hide_all();},tab:function(e){if(e.shiftKey||e.metaKey||e.ctrlKey){return;}
|
||||||
|
var o=this.options,visible=this.pane.is(":visible")&&$("."+o.css.item,this.list).length,s=this.get_selected();if(visible&&s){this.onselect(s);this.hide_all();}},enter:function(e){var o=this.options,visible=this.pane.is(":visible");if(visible){if(e.shiftKey){this.shift_enter(e);e.preventDefault();}
|
||||||
|
else if($("."+o.css.item,this.list).length){var s=this.get_selected();if(s){this.onselect(s);this.hide_all();e.preventDefault();}
|
||||||
|
else{var data=this.input.data("data.suggest");if(o.soft){if(!data){this.check_required(e);}}
|
||||||
|
else{if($("."+this.options.css.item+":visible",this.list).length){this.updown(false);e.preventDefault();}
|
||||||
|
else if(!data){this.check_required(e);}}}}}},shift_enter:function(e){},escape:function(e){this.hide_all();},up:function(e){this.updown(true,e.ctrlKey||e.shiftKey);},down:function(e){this.updown(false,null,e.ctrlKey||e.shiftKey);},updown:function(goup,gofirst,golast){var o=this.options,css=o.css,p=this.pane,l=this.list;if(!p.is(":visible")){if(!goup){this.textchange();}
|
||||||
|
return;}
|
||||||
|
var li=$("."+css.item+":visible",l);if(!li.length){return;}
|
||||||
|
var first=$(li[0]),last=$(li[li.length-1]),cur=this.get_selected()||[];clearTimeout(this.ignore_mouseover.timeout);this._ignore_mouseover=false;if(goup){if(gofirst){this._goto(first);}
|
||||||
|
else if(!cur.length){this._goto(last);}
|
||||||
|
else if(cur[0]==first[0]){first.removeClass(css.selected);this.input.val(this.input.data("original.suggest"));this.hoverout_list();}
|
||||||
|
else{var prev=cur.prevAll("."+css.item+":visible:first");this._goto(prev);}}
|
||||||
|
else{if(golast){this._goto(last);}
|
||||||
|
else if(!cur.length){this._goto(first);}
|
||||||
|
else if(cur[0]==last[0]){last.removeClass(css.selected);this.input.val(this.input.data("original.suggest"));this.hoverout_list();}
|
||||||
|
else{var next=cur.nextAll("."+css.item+":visible:first");this._goto(next);}}},_goto:function(li){li.trigger("mouseover.suggest");var d=li.data("data.suggest");this.input.val(d?d.name:this.input.data("original.suggest"));this.scroll_to(li);},scroll_to:function(item){var l=this.list,scrollTop=l.scrollTop(),scrollBottom=scrollTop+l.innerHeight(),item_height=item.outerHeight(),offsetTop=item.prevAll().length*item_height,offsetBottom=offsetTop+item_height;if(offsetTop<scrollTop){this.ignore_mouseover();l.scrollTop(offsetTop);}
|
||||||
|
else if(offsetBottom>scrollBottom){this.ignore_mouseover();l.scrollTop(scrollTop+offsetBottom-scrollBottom);}},textchange:function(){this.input.removeData("data.suggest");this.input.trigger("fb-textchange",this);var v=this.input.val();if(v===""){this.status_start();return;}
|
||||||
|
else{this.status_loading();}
|
||||||
|
this.request(v);},request:function(){},response:function(data){if("cost"in data){this.trackEvent(this.name,"response","cost",data.cost);}
|
||||||
|
if(!this.check_response(data)){return;}
|
||||||
|
var result=[];if($.isArray(data)){result=data;}
|
||||||
|
else if("result"in data){result=data.result;}
|
||||||
|
var args=$.map(arguments,function(a){return a;});this.response_hook.apply(this,args);var first=null,self=this,o=this.options;$.each(result,function(i,n){var li=self.create_item(n,data).bind("mouseover.suggest",function(e){self.mouseover_item(e);}).data("data.suggest",n);self.list.append(li);if(i===0){first=li;}});this.input.data("original.suggest",this.input.val());if($("."+o.css.item,this.list).length===0&&o.nomatch){var $nomatch=$('<li class="fbs-nomatch">').html(o.nomatch).bind("click.suggest",function(e){e.stopPropagation();});this.list.append($nomatch);}
|
||||||
|
args.push(first);this.show_hook.apply(this,args);this.position();this.pane_show();},pane_show:function(){var show=false;if($("> li",this.list).length){show=true;}
|
||||||
|
if(!show){this.pane.children(":not(."+this.options.css.list+")").each(function(){show=$(this).is(":visible");return!show;});}
|
||||||
|
if(show){if(this.options.animate){var self=this;this.pane.slideDown("fast",function(){self.input.trigger("fb-pane-show",self);});}
|
||||||
|
else{this.pane.show();this.input.trigger("fb-pane-show",this);}}
|
||||||
|
else{this.pane.hide();this.input.trigger("fb-pane-hide",this);}},create_item:function(data,response_data){var css=this.options.css;li=$("<li>").addClass(css.item);var label=$("<label>").text(data.name);data.name=label.text();li.append($("<div>").addClass(css.item_name).append(label));return li;},mouseover_item:function(e){if(this._ignore_mouseover){return;}
|
||||||
|
var target=e.target;if(target.nodeName.toLowerCase()!=="li"){target=$(target).parents("li:first");}
|
||||||
|
var li=$(target),css=this.options.css,l=this.list;$("."+css.item,l).each(function(){if(this!==li[0]){$(this).removeClass(css.selected);}});if(!li.hasClass(css.selected)){li.addClass(css.selected);this.mouseover_item_hook(li);}},mouseover_item_hook:function($li){},hoverover_list:function(e){},hoverout_list:function(e){},check_response:function(response_data){return true;},response_hook:function(response_data){this.list.empty();},show_hook:function(response_data){this.status_select();},position:function(){var p=this.pane,o=this.options;if(o.parent){return;}
|
||||||
|
if(!self._position){var inp=this.input,pos=inp.offset(),input_width=inp.outerWidth(true),input_height=inp.outerHeight(true);pos.top+=input_height;var pane_width=p.outerWidth(),pane_height=p.outerHeight(),pane_right=pos.left+pane_width,pane_bottom=pos.top+pane_height,pane_half=pos.top+pane_height/2,scroll_left=$(window).scrollLeft(),scroll_top=$(window).scrollTop(),window_width=$(window).width(),window_height=$(window).height(),window_right=window_width+scroll_left,window_bottom=window_height+scroll_top;var left=true;if('left'==o.align){left=true;}
|
||||||
|
else if('right'==o.align){left=false;}
|
||||||
|
else if(pos.left>(scroll_left+window_width/2)){left=false;}
|
||||||
|
if(!left){left=pos.left-(pane_width-input_width);if(left>scroll_left){pos.left=left;}}
|
||||||
|
if(pane_half>window_bottom){var top=pos.top-input_height-pane_height;if(top>scroll_top){pos.top=top;}}
|
||||||
|
this._position=pos;}
|
||||||
|
p.css({top:this._position.top,left:this._position.left});},ignore_mouseover:function(e){this._ignore_mouseover=true;var self=this;this.ignore_mouseover.timeout=setTimeout(function(){self.ignore_mouseover_reset();},1000);},ignore_mouseover_reset:function(){this._ignore_mouseover=false;},get_selected:function(){var selected=null,select_class=this.options.css.selected;$("li",this.list).each(function(){var $this=$(this);if($this.hasClass(select_class)&&$this.is(":visible")){selected=$this;return false;}});return selected;},onselect:function($selected,focus){var data=$selected.data("data.suggest");if(data){this.input.val(data.name).data("data.suggest",data).trigger("fb-select",data);this.trackEvent(this.name,"fb-select","index",$selected.prevAll().length);}
|
||||||
|
else{}
|
||||||
|
if(focus){}},trackEvent:function(category,action,label,value){this.input.trigger("fb-track-event",{category:category,action:action,label:label,value:value});},check_required:function(e){var required=this.options.required;if(required===true){var v=this.input.val();if(!(v===""||v===this.input.attr("placeholder"))){this.input.trigger("fb-required",{domEvent:e});return false;}}
|
||||||
|
else if(required==="always"){this.input.trigger("fb-required",{domEvent:e});return false;}
|
||||||
|
return true;},hide_all:function(e){this.pane.hide();this.input.trigger("fb-pane-hide",this);}};$.extend($.suggest,{defaults:{status:['Start typing to get suggestions...','Searching...','Select an item from the list:'],required:false,soft:false,nomatch:"no matches",css:{pane:"fbs-pane",list:"fbs-list",item:"fbs-item",item_name:"fbs-item-name",selected:"fbs-selected",status:"fbs-status"},css_prefix:null,parent:null,animate:false},$$:function(cls,ctx){return $("."+cls,ctx);},use_jsonp:function(service_url){if(!service_url){return false;}
|
||||||
|
var pathname_len=window.location.pathname.length;var hostname=window.location.href;hostname=hostname.substr(0,hostname.length-pathname_len);if(hostname===service_url){return false;}
|
||||||
|
return true;},strongify:function(str,substr){var strong=str;var index=str.toLowerCase().indexOf(substr.toLowerCase());if(index>=0){var substr_len=substr.length;strong=$("<div>").text(str.substring(0,index)).append($("<strong>").text(str.substring(index,index+substr_len))).append(document.createTextNode(str.substring(index+substr_len))).html();}
|
||||||
|
return strong;},keyCode:{CAPS_LOCK:20,CONTROL:17,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ENTER:108,PAGE_DOWN:34,PAGE_UP:33,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,OPTION:18,APPLE:224},is_char:function(e){if(e.type==="keypress"){if((e.metaKey||e.ctrlKey)&&e.charCode===118){return true;}
|
||||||
|
else if("isChar"in e){return e.isChar;}}
|
||||||
|
else{var not_char=$.suggest.keyCode.not_char;if(!not_char){not_char={};$.each($.suggest.keyCode,function(k,v){not_char[''+v]=1;});$.suggest.keyCode.not_char=not_char;}
|
||||||
|
return!((''+e.keyCode)in not_char);}}});var base={_destroy:$.suggest.prototype._destroy,show_hook:$.suggest.prototype.show_hook};$.suggest("suggest",{_init:function(){var self=this,o=this.options;if(!o.flyout_service_url){o.flyout_service_url=o.service_url;}
|
||||||
|
this.jsonp=$.suggest.use_jsonp(o.service_url);if(!$.suggest.cache){$.suggest.cache={};}
|
||||||
|
if(o.flyout){this.flyoutpane=$('<div style="display:none;" class="fbs-reset">').addClass(o.css.flyoutpane);if(o.flyout_parent){$(o.flyout_parent).append(this.flyoutpane);}
|
||||||
|
else{this.flyoutpane.css("position","absolute");$(document.body).append(this.flyoutpane);}
|
||||||
|
var hoverover=function(e){self.hoverover_list(e);};var hoverout=function(e){self.hoverout_list(e);};this.flyoutpane.hover(hoverover,hoverout).bind("mousedown.suggest",function(e){e.stopPropagation();self.pane.click();});if(!$.suggest.flyout){$.suggest.flyout={};}
|
||||||
|
if(!$.suggest.flyout.cache){$.suggest.flyout.cache={};}}},_destroy:function(){base._destroy.call(this);if(this.flyoutpane){this.flyoutpane.remove();}
|
||||||
|
this.input.removeData("request.count.suggest");this.input.removeData("flyout.request.count.suggest");},shift_enter:function(e){if(this.options.suggest_new){this.suggest_new();this.hide_all();}
|
||||||
|
else{this.check_required(e);}},hide_all:function(e){this.pane.hide();if(this.flyoutpane){this.flyoutpane.hide();}
|
||||||
|
this.input.trigger("fb-pane-hide",this);},request:function(val,start){var self=this,o=this.options;if(this.ac_xhr){this.ac_xhr.abort();this.ac_xhr=null;}
|
||||||
|
var data={prefix:val};if(start){data.start=start;}
|
||||||
|
$.extend(data,o.ac_param);var url=o.service_url+o.service_path+"?"+$.param(data),cached=$.suggest.cache[url];if(cached){this.response(cached,start?start:-1,true);return;}
|
||||||
|
clearTimeout(this.request.timeout);this.request.timeout=setTimeout(function(){self.ac_xhr=$.ajax({url:o.service_url+o.service_path,data:data,beforeSend:function(){var calls=self.input.data("request.count.suggest")||0;if(!calls){self.trackEvent(self.name,"start_session");}
|
||||||
|
calls+=1;self.trackEvent(self.name,"request","count",calls);self.input.data("request.count.suggest",calls);},success:function(data){$.suggest.cache[url]=data;self.response(data,start?start:-1);},error:function(xhr){self.trackEvent(self.name,"request","error",{url:this.url,response:xhr?xhr.responseText:''});},complete:function(xhr){if(xhr){self.trackEvent(self.name,"request","tid",xhr.getResponseHeader("X-Metaweb-TID"));}},dataType:self.jsonp?"jsonp":"json",cache:true});},o.xhr_delay);},create_item:function(data,response_data){var css=this.options.css;var li=$("<li>").addClass(css.item);var name=$("<div>").addClass(css.item_name).append($("<label>").append($.suggest.strongify(data.name||data.guid,response_data.prefix))),types=data.type;data.name=name.text();li.append(name);var nt=data['n:type']||data['notable:type'];if(nt){if(typeof nt==='object'){name.prepend($("<div>").addClass(css.item_type).text(nt.name));}
|
||||||
|
else{var notable,type,is_topic=false;$.each(data.type,function(i,n){if(n.id===nt){notable=n.name;}
|
||||||
|
if(n.id==='/common/topic'){is_topic='Topic';}
|
||||||
|
else if(!type){type=n.name;}});if(notable||type||is_topic){name.prepend($("<div>").addClass(css.item_type).text(notable||type||is_topic));}}}
|
||||||
|
return li;},mouseover_item_hook:function(li){var data=li.data("data.suggest");if(this.options.flyout){if(data){this.flyout_request(data);}
|
||||||
|
else{}}},check_response:function(response_data){return response_data.prefix===this.input.val();},response_hook:function(response_data,start){if(this.flyoutpane){this.flyoutpane.hide();}
|
||||||
|
if(start>0){$(".fbs-more",this.pane).remove();}
|
||||||
|
else{this.list.empty();}},show_hook:function(response_data,start,first){base.show_hook.apply(this,[response_data]);var o=this.options,self=this,p=this.pane,l=this.list,result=response_data.result;var more=$(".fbs-more",p),suggestnew=$(".fbs-suggestnew",p);if(result&&result.length&&"start"in response_data){if(!more.length){var more_link=$('<a class="fbs-more-link" href="#" title="(Ctrl+m)">view more</a>');more=$('<div class="fbs-more">').append(more_link);more_link.bind("click.suggest",function(e){e.preventDefault();e.stopPropagation();var m=$(this).parent(".fbs-more");self.more(m.data("start.suggest"));});l.after(more);}
|
||||||
|
more.data("start.suggest",response_data.start);more.show();}
|
||||||
|
else{more.remove();}
|
||||||
|
if(o.suggest_new){if(!suggestnew.length){var button=$('<button class="fbs-suggestnew-button">');button.text(o.suggest_new);suggestnew=$('<div class="fbs-suggestnew">').append('<div class="fbs-suggestnew-description">Your item not in the list?</div>').append(button).append('<span class="fbs-suggestnew-shortcut">(Shift+Enter)</span>').bind("click.suggest",function(e){e.stopPropagation();self.suggest_new(e);});p.append(suggestnew);}
|
||||||
|
suggestnew.show();}
|
||||||
|
else{suggestnew.remove();}
|
||||||
|
if(first&&first.length&&start>0){var top=first.prevAll().length*first.outerHeight();var scrollTop=l.scrollTop();l.animate({scrollTop:top},"slow",function(){first.trigger("mouseover.suggest");});}},suggest_new:function(e){var v=this.input.val();if(v===""||v===this.input.attr("placeholder")){return;}
|
||||||
|
this.input.data("data.suggest",v).trigger("fb-select-new",v);this.trackEvent(this.name,"fb-select-new","index","new");this.hide_all();},more:function(start){if(start){var orig=this.input.data("original.suggest");if(orig!==null){this.input.val(orig);}
|
||||||
|
this.request(this.input.val(),start);this.trackEvent(this.name,"more","start",start);}
|
||||||
|
return false;},flyout_request:function(data){var self=this;if(this.flyout_xhr){this.flyout_xhr.abort();this.flyout_xhr=null;}
|
||||||
|
var o=this.options,sug_data=this.flyoutpane.data("data.suggest");if(sug_data&&data.id===sug_data.id){if(!this.flyoutpane.is(":visible")){var s=this.get_selected();this.flyout_position(s);this.flyoutpane.show();}
|
||||||
|
return;}
|
||||||
|
var cached=$.suggest.flyout.cache[data.id];if(cached){this.flyout_response(cached);return;}
|
||||||
|
var submit_data={id:data.id};if(o.as_of_time){submit_data.as_of_time=o.as_of_time;}
|
||||||
|
clearTimeout(this.flyout_request.timeout);this.flyout_request.timeout=setTimeout(function(){self.flyout_xhr=$.ajax({url:o.flyout_service_url+o.flyout_service_path,data:submit_data,beforeSend:function(){var calls=self.input.data("flyout.request.count.suggest")||0;calls+=1;self.trackEvent(self.name,"flyout.request","count",calls);self.input.data("flyout.request.count.suggest",calls);},success:function(data){data=self.jsonp?data:{id:submit_data.id,html:data};$.suggest.flyout.cache[data.id]=data;self.flyout_response(data);},error:function(xhr){self.trackEvent(self.name,"flyout","error",{url:this.url,response:xhr?xhr.responseText:''});},complete:function(xhr){if(xhr){self.trackEvent(self.name,"flyout","tid",xhr.getResponseHeader("X-Metaweb-TID"));}},dataType:self.jsonp?"jsonp":"html",cache:true});},o.xhr_delay);},flyout_response:function(data){var o=this.options,p=this.pane,s=this.get_selected()||[];if(p.is(":visible")&&s.length){var sug_data=s.data("data.suggest");if(sug_data&&data.id===sug_data.id){this.flyoutpane.html(data.html);this.flyout_position(s);this.flyoutpane.show().data("data.suggest",sug_data);}}},flyout_position:function($item){if(this.options.flyout_parent){return;}
|
||||||
|
var p=this.pane,fp=this.flyoutpane,css=this.options.css,pos=undefined,old_pos={top:parseInt(fp.css("top"),10),left:parseInt(fp.css("left"),10)},pane_pos=p.offset(),pane_width=p.outerWidth(),flyout_height=fp.outerHeight(),flyout_width=fp.outerWidth();if(this.options.flyout==="bottom"){pos=pane_pos;var input_pos=this.input.offset();if(pane_pos.top<input_pos.top){pos.top-=flyout_height;}
|
||||||
|
else{pos.top+=p.outerHeight();}
|
||||||
|
fp.addClass(css.flyoutpane+"-bottom");}
|
||||||
|
else{pos=$item.offset();var item_height=$item.outerHeight();pos.left+=pane_width;var flyout_right=pos.left+flyout_width,scroll_left=$(document.body).scrollLeft(),window_right=$(window).width()+scroll_left;pos.top=pos.top+item_height-flyout_height;if(pos.top<pane_pos.top){pos.top=pane_pos.top;}
|
||||||
|
if(flyout_right>window_right){var left=pos.left-(pane_width+flyout_width);if(left>scroll_left){pos.left=left;}}
|
||||||
|
fp.removeClass(css.flyoutpane+"-bottom");}
|
||||||
|
if(!(pos.top===old_pos.top&&pos.left===old_pos.left)){fp.css({top:pos.top,left:pos.left});}},hoverout_list:function(e){if(this.flyoutpane&&!this.get_selected()){this.flyoutpane.hide();}}});$.extend($.suggest.suggest,{defaults:{type:null,type_strict:"any",mql_filter:null,as_of_time:null,service_url:"http://www.freebase.com",service_path:"/private/suggest",align:null,flyout:true,flyout_service_url:null,flyout_service_path:"/private/flyout",flyout_parent:null,suggest_new:null,nomatch:'<em class="fbs-nomatch-text">No suggested matches.</em><h3>Tips on getting better suggestions:</h3><ul class="fbs-search-tips"><li>Enter more or fewer characters</li><li>Add words related to your original search</li><li>Try alternate spellings</li><li>Check your spelling</li></ul>',css:{item_type:"fbs-item-type",flyoutpane:"fbs-flyout-pane"},xhr_delay:200}});function init_JSON(){if(!this.JSON){JSON={}}(function(){function f(n){return n<10?"0"+n:n}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function(key){return this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z"};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()}}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==="object"&&typeof value.toJSON==="function"){value=value.toJSON(key)}if(typeof rep==="function"){value=rep.call(holder,key,value)}switch(typeof value){case"string":return quote(value);case"number":return isFinite(value)?String(value):"null";case"boolean":case"null":return String(value);case"object":if(!value){return"null"}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==="[object Array]"){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||"null"}v=partial.length===0?"[]":gap?"[\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"]":"["+partial.join(",")+"]";gap=mind;return v}if(rep&&typeof rep==="object"){length=rep.length;for(i=0;i<length;i+=1){k=rep[i];if(typeof k==="string"){v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}else{for(k in value){if(Object.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}v=partial.length===0?"{}":gap?"{\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"}":"{"+partial.join(",")+"}";gap=mind;return v}}if(typeof JSON.stringify!=="function"){JSON.stringify=function(value,replacer,space){var i;gap="";indent="";if(typeof space==="number"){for(i=0;i<space;i+=1){indent+=" "}}else{if(typeof space==="string"){indent=space}}rep=replacer;if(replacer&&typeof replacer!=="function"&&(typeof replacer!=="object"||typeof replacer.length!=="number")){throw new Error("JSON.stringify")}return str("",{"":value})}}if(typeof JSON.parse!=="function"){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==="object"){for(k in value){if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver==="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse")}}}());}})(jQuery);
|
||||||
|
|
||||||
|
jQuery.suggest.version='Version:r87595 Built:Tue Jan 05 2010 by daepark';
|
@ -1 +1,3 @@
|
|||||||
<html>
<head>
<title>Gridworks</title>
<link rel="stylesheet" href="/styles/common.css" />
<link rel="stylesheet" href="/styles/index.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript" src="scripts/util/string.js"></script>
<script type="text/javascript" src="scripts/index.js"></script>
<script type="text/javascript" src="externals/date.js"></script>
</head>
<body>
<div id="header">
<h1>Gridworks</h1>
</div>
<div id="body">
<div id="projects"></div>
<h2>New Project</h2>
<p>Create a new project by uploading a tab-separated value or comma-separated value file.</p>
<form id="file-upload-form" method="post" enctype="multipart/form-data" action="/command/create-project-from-upload">
<table cellspacing="10">
<tr><td>Project Name:</td><td><input type="text" size="30" id="project-name-input" name="project-name" /></td></tr>
<tr><td>Project Password:</td><td><input type="password" size="30" id="project-password-input" name="project-password" /><br/>optional, not protected, so use some password you don't care to reveal</td></tr>
<tr><td>Upload File:</td><td>
<input type="file" id="project-file-input" name="project-file" size="50" />
</td></tr>
<tr><td></td><td>
<input type="submit" value="Create Project" id="upload-file-button" />
</td></tr>
</table>
</form>
</div>
</body>
</html>
|
<html>
<head>
<title>Gridworks</title>
<link rel="stylesheet" href="/styles/common.css" />
<link rel="stylesheet" href="/styles/index.css" />
<script type="text/javascript" src="externals/jquery-1.4.1.min.js"></script>
<script type="text/javascript" src="externals/date.js"></script>
|
||||||
|
|
||||||
|
<script type="text/javascript" src="scripts/util/string.js"></script>
<script type="text/javascript" src="scripts/index.js"></script>
</head>
<body>
<div id="header">
<h1>Gridworks</h1>
</div>
<div id="body">
<div id="projects"></div>
<h2>New Project</h2>
<p>Create a new project by uploading a tab-separated value or comma-separated value file.</p>
<form id="file-upload-form" method="post" enctype="multipart/form-data" action="/command/create-project-from-upload">
<table cellspacing="10">
<tr><td>Project Name:</td><td><input type="text" size="30" id="project-name-input" name="project-name" /></td></tr>
<tr><td>Project Password:</td><td><input type="password" size="30" id="project-password-input" name="project-password" /><br/>optional, not protected, so use some password you don't care to reveal</td></tr>
<tr><td>Upload File:</td><td>
<input type="file" id="project-file-input" name="project-file" size="50" />
</td></tr>
<tr><td></td><td>
<input type="submit" value="Create Project" id="upload-file-button" />
</td></tr>
</table>
</form>
</div>
</body>
</html>
|
@ -1 +1,2 @@
|
|||||||
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Gridlock</title>
<link type="text/css" rel="stylesheet" href="http://freebaselibs.com/static/suggest/1.0.3/suggest.min.css" />
<link type="text/css" rel="stylesheet" href="externals/jquery-ui/css/ui-lightness/jquery-ui-1.7.2.custom.css" />
<link rel="stylesheet" href="/styles/common.css" />
<link rel="stylesheet" href="/styles/menu.css" />
<link rel="stylesheet" href="/styles/dialog.css" />
<link rel="stylesheet" href="/styles/project.css" />
<link rel="stylesheet" href="/styles/data-table-view.css" />
<link rel="stylesheet" href="/styles/history.css" />
<link rel="stylesheet" href="/styles/browsing.css" />
<link rel="stylesheet" href="/styles/process.css" />
<link rel="stylesheet" href="/styles/expression-preview-dialog.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript" src="http://freebaselibs.com/static/suggest/1.0.3/suggest.min.js"></script>
<script type="text/javascript" src="externals/jquery-ui/jquery-ui-1.7.2.custom.min.js"></script>
<script type="text/javascript" src="scripts/util/misc.js"></script>
<script type="text/javascript" src="scripts/util/url.js"></script>
<script type="text/javascript" src="scripts/util/string.js"></script>
<script type="text/javascript" src="scripts/util/ajax.js"></script>
<script type="text/javascript" src="scripts/util/menu.js"></script>
<script type="text/javascript" src="scripts/util/dialog.js"></script>
<script type="text/javascript" src="scripts/project.js"></script>
<script type="text/javascript" src="scripts/project/list-facet.js"></script>
<script type="text/javascript" src="scripts/project/range-facet.js"></script>
<script type="text/javascript" src="scripts/project/text-search-facet.js"></script>
<script type="text/javascript" src="scripts/project/browsing-engine.js"></script>
<script type="text/javascript" src="scripts/project/data-table-view.js"></script>
<script type="text/javascript" src="scripts/project/history-widget.js"></script>
<script type="text/javascript" src="scripts/project/process-widget.js"></script>
<script type="text/javascript" src="scripts/project/recon-dialog.js"></script>
<script type="text/javascript" src="scripts/project/expression-preview-dialog.js"></script>
<script type="text/javascript" src="scripts/project/schema-alignment.js"></script>
</head>
<body>
<div id="header">
<div id="path"><a class="app-path-section" href="./index.html">Gridworks</a> » </div>
</div>
<div id="body">
<div id="loading-message"><img src="images/large-spinner.gif" /> starting up ...</div>
</div>
</body>
</html>
|
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Gridlock</title>
<link type="text/css" rel="stylesheet" href="externals/suggest/css/suggest-1.0.3.min.css" />
<link type="text/css" rel="stylesheet" href="externals/jquery-ui/css/ui-lightness/jquery-ui-1.7.2.custom.css" />
<link rel="stylesheet" href="/styles/common.css" />
<link rel="stylesheet" href="/styles/menu.css" />
<link rel="stylesheet" href="/styles/dialog.css" />
<link rel="stylesheet" href="/styles/project.css" />
<link rel="stylesheet" href="/styles/data-table-view.css" />
<link rel="stylesheet" href="/styles/history.css" />
<link rel="stylesheet" href="/styles/browsing.css" />
<link rel="stylesheet" href="/styles/process.css" />
<link rel="stylesheet" href="/styles/expression-preview-dialog.css" />
|
||||||
|
<script type="text/javascript" src="externals/jquery-1.4.1.min.js"></script>
<script type="text/javascript" src="externals/suggest/suggest-1.0.3.min.js"></script>
<script type="text/javascript" src="externals/jquery-ui/jquery-ui-1.7.2.custom.min.js"></script>
<script type="text/javascript" src="scripts/util/misc.js"></script>
<script type="text/javascript" src="scripts/util/url.js"></script>
<script type="text/javascript" src="scripts/util/string.js"></script>
<script type="text/javascript" src="scripts/util/ajax.js"></script>
<script type="text/javascript" src="scripts/util/menu.js"></script>
<script type="text/javascript" src="scripts/util/dialog.js"></script>
<script type="text/javascript" src="scripts/project.js"></script>
<script type="text/javascript" src="scripts/project/list-facet.js"></script>
<script type="text/javascript" src="scripts/project/range-facet.js"></script>
<script type="text/javascript" src="scripts/project/text-search-facet.js"></script>
<script type="text/javascript" src="scripts/project/browsing-engine.js"></script>
<script type="text/javascript" src="scripts/project/data-table-view.js"></script>
<script type="text/javascript" src="scripts/project/history-widget.js"></script>
<script type="text/javascript" src="scripts/project/process-widget.js"></script>
<script type="text/javascript" src="scripts/project/recon-dialog.js"></script>
<script type="text/javascript" src="scripts/project/expression-preview-dialog.js"></script>
<script type="text/javascript" src="scripts/project/schema-alignment.js"></script>
</head>
<body>
<div id="header">
<div id="path"><a class="app-path-section" href="./index.html">Gridworks</a> » </div>
</div>
<div id="body">
<div id="loading-message"><img src="images/large-spinner.gif" /> starting up ...</div>
</div>
</body>
</html>
|
BIN
thirdparty/apache-ant-1.8.0RC1-slim.tar.gz
vendored
Normal file
BIN
thirdparty/apache-ant-1.8.0RC1-slim.tar.gz
vendored
Normal file
Binary file not shown.
BIN
thirdparty/jarbundler-2.1.0.jar
vendored
Normal file
BIN
thirdparty/jarbundler-2.1.0.jar
vendored
Normal file
Binary file not shown.
BIN
thirdparty/launch4j-3.01.jar
vendored
Normal file
BIN
thirdparty/launch4j-3.01.jar
vendored
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user