();
+
+ public LevelManager() {
+ Level topLevel = new Level("toplevel");
+ levels.add(topLevel);
+ for (int i = 1; i < 10; i++) {
+ Level prev = levels.get(i - 1);
+ Level curr = new Level("level" + i);
+ curr.setUp(prev);
+ prev.setDown(curr);
+ levels.add(curr);
+ }
+ }
+
+ public void traverse() {
+ for (Level each : levels) {
+ each.down();
+ }
+ }
+
+}
diff --git a/src/main/resources/NimmMockupServer.xml b/src/main/resources/NimmMockupServer.xml
new file mode 100644
index 000000000..f0943165e
--- /dev/null
+++ b/src/main/resources/NimmMockupServer.xml
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3000
+ 256
+ 0
+
+
+
diff --git a/src/main/resources/applicationContext-datasource.xml b/src/main/resources/applicationContext-datasource.xml
new file mode 100644
index 000000000..56fa6db1f
--- /dev/null
+++ b/src/main/resources/applicationContext-datasource.xml
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/create_table.sql b/src/main/resources/create_table.sql
new file mode 100755
index 000000000..b58488eb6
--- /dev/null
+++ b/src/main/resources/create_table.sql
@@ -0,0 +1,5 @@
+CREATE TABLE IF NOT EXISTS member (
+ id varchar(11) primary key,
+ name varchar(20) not null,
+ joined date
+);
\ No newline at end of file
diff --git a/src/main/resources/cubrid/SqlMapConfig.xml b/src/main/resources/cubrid/SqlMapConfig.xml
new file mode 100644
index 000000000..e72ef6d6a
--- /dev/null
+++ b/src/main/resources/cubrid/SqlMapConfig.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/cubrid/sql-member.xml b/src/main/resources/cubrid/sql-member.xml
new file mode 100755
index 000000000..6be6e908c
--- /dev/null
+++ b/src/main/resources/cubrid/sql-member.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+ delete from member where id = #id#
+
+
+
+ insert into member (id, name, joined) values(#id#, #name#, #joined#)
+
+
+
+ insert into member (id, name, joined) values($id$, $name$, #joined#);
+
+
+
+
+ update member set name = #name#, joined = #joined# where id = #id#
+
+
+
+ select * from member where id = #id#
+
+
+
+ select * from member order by id
+
+
diff --git a/src/main/resources/cubrid/test-sql.xml b/src/main/resources/cubrid/test-sql.xml
new file mode 100644
index 000000000..ee2aebcae
--- /dev/null
+++ b/src/main/resources/cubrid/test-sql.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+ select 1
+
+
+
diff --git a/src/main/resources/database.properties b/src/main/resources/database.properties
new file mode 100755
index 000000000..d3d651a89
--- /dev/null
+++ b/src/main/resources/database.properties
@@ -0,0 +1 @@
+hibernate.dialect=org.hibernate.dialect.HSQLDialect
diff --git a/src/main/resources/log4j.dtd b/src/main/resources/log4j.dtd
new file mode 100644
index 000000000..7d5ef9f24
--- /dev/null
+++ b/src/main/resources/log4j.dtd
@@ -0,0 +1,166 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/log4j.xml b/src/main/resources/log4j.xml
new file mode 100644
index 000000000..2593c35dd
--- /dev/null
+++ b/src/main/resources/log4j.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mysql/SqlMapConfig.xml b/src/main/resources/mysql/SqlMapConfig.xml
new file mode 100644
index 000000000..2bebe3d4c
--- /dev/null
+++ b/src/main/resources/mysql/SqlMapConfig.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mysql/sql-member.xml b/src/main/resources/mysql/sql-member.xml
new file mode 100755
index 000000000..6be6e908c
--- /dev/null
+++ b/src/main/resources/mysql/sql-member.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+ delete from member where id = #id#
+
+
+
+ insert into member (id, name, joined) values(#id#, #name#, #joined#)
+
+
+
+ insert into member (id, name, joined) values($id$, $name$, #joined#);
+
+
+
+
+ update member set name = #name#, joined = #joined# where id = #id#
+
+
+
+ select * from member where id = #id#
+
+
+
+ select * from member order by id
+
+
diff --git a/src/main/resources/mysql/test-sql.xml b/src/main/resources/mysql/test-sql.xml
new file mode 100644
index 000000000..bfb52dbaa
--- /dev/null
+++ b/src/main/resources/mysql/test-sql.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+ select 1
+
+
+
diff --git a/src/main/resources/oracle/SqlMapConfig.xml b/src/main/resources/oracle/SqlMapConfig.xml
new file mode 100644
index 000000000..4b2e1d7f9
--- /dev/null
+++ b/src/main/resources/oracle/SqlMapConfig.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/oracle/test-sql.xml b/src/main/resources/oracle/test-sql.xml
new file mode 100755
index 000000000..3c7aadc45
--- /dev/null
+++ b/src/main/resources/oracle/test-sql.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+ select 1 from dual
+
+
+
diff --git a/src/main/resources/orm/mybatis/mapper/memberMapper.xml b/src/main/resources/orm/mybatis/mapper/memberMapper.xml
new file mode 100644
index 000000000..8bc4632c1
--- /dev/null
+++ b/src/main/resources/orm/mybatis/mapper/memberMapper.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ SELECT
+ id,
+ name,
+ joined
+ FROM member
+ WHERE id = #{id}
+
+
+
+ SELECT
+ id,
+ name,
+ joined,
+ invalid_column
+ FROM member
+
+
+
+ INSERT INTO member (
+ id, name, joined
+ ) VALUES (
+ #{id}, #{name}, #{joined}
+ )
+
+
+
+ UPDATE member
+ SET name = #{name},
+ joined = #{joined}
+ WHERE id = #{id}
+
+
+
+ DELETE FROM member
+ WHERE id = #{id}
+
+
+
diff --git a/src/main/resources/orm/mybatis/mybatis-config.xml b/src/main/resources/orm/mybatis/mybatis-config.xml
new file mode 100644
index 000000000..0ae5d7ca2
--- /dev/null
+++ b/src/main/resources/orm/mybatis/mybatis-config.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/orm/mybatis/mybatis-dao-config.xml b/src/main/resources/orm/mybatis/mybatis-dao-config.xml
new file mode 100644
index 000000000..91311b399
--- /dev/null
+++ b/src/main/resources/orm/mybatis/mybatis-dao-config.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/root-context.xml b/src/main/resources/root-context.xml
new file mode 100644
index 000000000..8b498a52f
--- /dev/null
+++ b/src/main/resources/root-context.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/servlet-context.xml b/src/main/resources/servlet-context.xml
new file mode 100644
index 000000000..968ddb056
--- /dev/null
+++ b/src/main/resources/servlet-context.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/META-INF/MANIFEST.MF b/src/main/webapp/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..5e9495128
--- /dev/null
+++ b/src/main/webapp/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path:
+
diff --git a/src/main/webapp/WEB-INF/views/docs.jsp b/src/main/webapp/WEB-INF/views/docs.jsp
new file mode 100644
index 000000000..737789092
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/docs.jsp
@@ -0,0 +1,31 @@
+<%@ page session="false" contentType="text/html; charset=UTF-8"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
+
+
+Endpoint list
+
+
+
+
+
+ Controller
+ URL
+
+
+
+
+
+ ${item.key}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/orm/ibatis.jsp b/src/main/webapp/WEB-INF/views/orm/ibatis.jsp
new file mode 100644
index 000000000..aecc0b223
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/orm/ibatis.jsp
@@ -0,0 +1,3 @@
+<%@ page language="java" contentType="text/html; charset=EUC-KR"
+ pageEncoding="EUC-KR" %>
+IBATIS
diff --git a/src/main/webapp/WEB-INF/views/orm/mybatis.jsp b/src/main/webapp/WEB-INF/views/orm/mybatis.jsp
new file mode 100644
index 000000000..3458e66ab
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/orm/mybatis.jsp
@@ -0,0 +1,3 @@
+<%@ page language="java" contentType="text/html; charset=EUC-KR"
+ pageEncoding="EUC-KR" %>
+MYBATIS
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 000000000..3cbf84a87
--- /dev/null
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,69 @@
+
+
+
+
+ log4jConfigLocation
+ classpath:log4j.xml
+
+
+
+
+ contextConfigLocation
+ classpath:root-context.xml
+
+
+
+
+ org.springframework.web.context.ContextLoaderListener
+
+
+
+
+
+ pinpoint-testweb
+ org.springframework.web.servlet.DispatcherServlet
+
+ contextConfigLocation
+ classpath:servlet-context.xml
+
+ 1
+
+
+
+
+ pinpoint-testweb
+ *.pinpoint
+
+
+
+ encodingFilter
+ org.springframework.web.filter.CharacterEncodingFilter
+
+ encoding
+ UTF-8
+
+
+
+
+ encodingFilter
+ /*
+
+
+
+ default
+ *.css
+ *.js
+ *.gif
+ *.png
+ *.ico
+ *.swf
+ *.html
+
+
\ No newline at end of file
diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html
new file mode 100644
index 000000000..58caf2b03
--- /dev/null
+++ b/src/main/webapp/index.html
@@ -0,0 +1,69 @@
+
+
+
+
+ pinpoint Test web
+
+
+
+
+pinpoint Test web
+
+
+
+/combination.pinpoint
+/mysql.pinpoint
+
+/mysqlStatement.pinpoint 바인드 변수 + 상수값 파싱 로직테스트.
+/donothing.pinpoint
+/remotecombination.pinpoint
+
+/httperror.pinpoint
+
+
+/remotecombination2.pinpoint
+/combination2.pinpoint
+
+oracle
+
+/selectOne.pinpoint preparedStatement 테스트. resultset은 가지고 오지 않음.
+/createStatement.pinpoint statement 테스트. resultset은 가지고 오지 않음.
+
+mysql
+
+/selectOne.pinpoint preparedStatement 테스트. resultset은 가지고 오지 않음.
+/createStatement.pinpoint statement 테스트. resultset은 가지고 오지 않음.
+
+
+arcus
+
+/arcus
+
+
+nestedcall test
+
+/nested.pinpoint
+
+
+/httpclient4
+
+/httpclient4/cookie.pinpoint 에러시 cookie덤프
+
+/httpclient4/post.pinpoint 에러시 post덤프
+
+
+
+/exceptionalcase/rootslow
+
+
+/exceptionalcase/rootslow.pinpoint root의 완료가 지연될경우 parent가 완료된 데이터를 정상적으로 확인가능지.
+
+
+
+
+
+
+
diff --git a/src/main/webapp/jsp.jsp b/src/main/webapp/jsp.jsp
new file mode 100644
index 000000000..2226753c8
--- /dev/null
+++ b/src/main/webapp/jsp.jsp
@@ -0,0 +1 @@
+This is JSP.
\ No newline at end of file
diff --git a/src/main/webapp/sankey/data.json b/src/main/webapp/sankey/data.json
new file mode 100644
index 000000000..605942274
--- /dev/null
+++ b/src/main/webapp/sankey/data.json
@@ -0,0 +1,93 @@
+{
+ "nodes":[
+ {
+ "name":"Apache"
+ },
+ {
+ "name":"BLOC_1"
+ },
+ {
+ "name":"BLOC_2"
+ },
+ {
+ "name":"BLOC_3"
+ },
+ {
+ "name":"Arcus11211"
+ },
+ {
+ "name":"Arcus11212"
+ },
+ {
+ "name":"Arcus11213"
+ }
+ ],
+
+ "links":[
+
+ {
+ "source":0,
+ "target":1,
+ "value":11
+ },
+ {
+ "source":0,
+ "target":2,
+ "value":31
+ },
+ {
+ "source":0,
+ "target":3,
+ "value":11
+ },
+
+ {
+ "source":1,
+ "target":4,
+ "value":11
+ },
+ {
+ "source":1,
+ "target":5,
+ "value":41
+ },
+ {
+ "source":1,
+ "target":6,
+ "value":11
+ },
+
+ {
+ "source":2,
+ "target":4,
+ "value":111
+ },
+ {
+ "source":2,
+ "target":5,
+ "value":114
+ },
+ {
+ "source":2,
+ "target":6,
+ "value":11
+ },
+
+ {
+ "source":3,
+ "target":4,
+ "value":114
+ },
+ {
+ "source":3,
+ "target":5,
+ "value":11
+ },
+ {
+ "source":3,
+ "target":6,
+ "value":81
+ }
+
+ ]
+}
\ No newline at end of file
diff --git a/src/main/webapp/sankey/data.org.json b/src/main/webapp/sankey/data.org.json
new file mode 100644
index 000000000..972571671
--- /dev/null
+++ b/src/main/webapp/sankey/data.org.json
@@ -0,0 +1,488 @@
+{"nodes":[
+ {
+ "name":"Agricultural 'waste'"
+ },
+ {
+ "name":"Bio-conversion"
+ },
+ {
+ "name":"Liquid"
+ },
+ {
+ "name":"Losses"
+ },
+ {
+ "name":"Solid"
+ },
+ {
+ "name":"Gas"
+ },
+ {
+ "name":"Biofuel imports"
+ },
+ {
+ "name":"Biomass imports"
+ },
+ {
+ "name":"Coal imports"
+ },
+ {
+ "name":"Coal"
+ },
+ {
+ "name":"Coal reserves"
+ },
+ {
+ "name":"District heating"
+ },
+ {
+ "name":"Industry"
+ },
+ {
+ "name":"Heating and cooling - commercial"
+ },
+ {
+ "name":"Heating and cooling - homes"
+ },
+ {
+ "name":"Electricity grid"
+ },
+ {
+ "name":"Over generation / exports"
+ },
+ {
+ "name":"H2 conversion"
+ },
+ {
+ "name":"Road transport"
+ },
+ {
+ "name":"Agriculture"
+ },
+ {
+ "name":"Rail transport"
+ },
+ {
+ "name":"Lighting & appliances - commercial"
+ },
+ {
+ "name":"Lighting & appliances - homes"
+ },
+ {
+ "name":"Gas imports"
+ },
+ {
+ "name":"Ngas"
+ },
+ {
+ "name":"Gas reserves"
+ },
+ {
+ "name":"Thermal generation"
+ },
+ {
+ "name":"Geothermal"
+ },
+ {
+ "name":"H2"
+ },
+ {
+ "name":"Hydro"
+ },
+ {
+ "name":"International shipping"
+ },
+ {
+ "name":"Domestic aviation"
+ },
+ {
+ "name":"International aviation"
+ },
+ {
+ "name":"National navigation"
+ },
+ {
+ "name":"Marine algae"
+ },
+ {
+ "name":"Nuclear"
+ },
+ {
+ "name":"Oil imports"
+ },
+ {
+ "name":"Oil"
+ },
+ {
+ "name":"Oil reserves"
+ },
+ {
+ "name":"Other waste"
+ },
+ {
+ "name":"Pumped heat"
+ },
+ {
+ "name":"Solar PV"
+ },
+ {
+ "name":"Solar Thermal"
+ },
+ {
+ "name":"Solar"
+ },
+ {
+ "name":"Tidal"
+ },
+ {
+ "name":"UK land based bioenergy"
+ },
+ {
+ "name":"Wave"
+ },
+ {
+ "name":"Wind"
+ }
+],
+ "links":[
+ {
+ "source":0,
+ "target":1,
+ "value":124.729
+ },
+ {
+ "source":1,
+ "target":2,
+ "value":0.597
+ },
+ {
+ "source":1,
+ "target":3,
+ "value":26.862
+ },
+ {
+ "source":1,
+ "target":4,
+ "value":280.322
+ },
+ {
+ "source":1,
+ "target":5,
+ "value":81.144
+ },
+ {
+ "source":6,
+ "target":2,
+ "value":35
+ },
+ {
+ "source":7,
+ "target":4,
+ "value":35
+ },
+ {
+ "source":8,
+ "target":9,
+ "value":11.606
+ },
+ {
+ "source":10,
+ "target":9,
+ "value":63.965
+ },
+ {
+ "source":9,
+ "target":4,
+ "value":75.571
+ },
+ {
+ "source":11,
+ "target":12,
+ "value":10.639
+ },
+ {
+ "source":11,
+ "target":13,
+ "value":22.505
+ },
+ {
+ "source":11,
+ "target":14,
+ "value":46.184
+ },
+ {
+ "source":15,
+ "target":16,
+ "value":104.453
+ },
+ {
+ "source":15,
+ "target":14,
+ "value":113.726
+ },
+ {
+ "source":15,
+ "target":17,
+ "value":27.14
+ },
+ {
+ "source":15,
+ "target":12,
+ "value":342.165
+ },
+ {
+ "source":15,
+ "target":18,
+ "value":37.797
+ },
+ {
+ "source":15,
+ "target":19,
+ "value":4.412
+ },
+ {
+ "source":15,
+ "target":13,
+ "value":40.858
+ },
+ {
+ "source":15,
+ "target":3,
+ "value":56.691
+ },
+ {
+ "source":15,
+ "target":20,
+ "value":7.863
+ },
+ {
+ "source":15,
+ "target":21,
+ "value":90.008
+ },
+ {
+ "source":15,
+ "target":22,
+ "value":93.494
+ },
+ {
+ "source":23,
+ "target":24,
+ "value":40.719
+ },
+ {
+ "source":25,
+ "target":24,
+ "value":82.233
+ },
+ {
+ "source":5,
+ "target":13,
+ "value":0.129
+ },
+ {
+ "source":5,
+ "target":3,
+ "value":1.401
+ },
+ {
+ "source":5,
+ "target":26,
+ "value":151.891
+ },
+ {
+ "source":5,
+ "target":19,
+ "value":2.096
+ },
+ {
+ "source":5,
+ "target":12,
+ "value":48.58
+ },
+ {
+ "source":27,
+ "target":15,
+ "value":7.013
+ },
+ {
+ "source":17,
+ "target":28,
+ "value":20.897
+ },
+ {
+ "source":17,
+ "target":3,
+ "value":6.242
+ },
+ {
+ "source":28,
+ "target":18,
+ "value":20.897
+ },
+ {
+ "source":29,
+ "target":15,
+ "value":6.995
+ },
+ {
+ "source":2,
+ "target":12,
+ "value":121.066
+ },
+ {
+ "source":2,
+ "target":30,
+ "value":128.69
+ },
+ {
+ "source":2,
+ "target":18,
+ "value":135.835
+ },
+ {
+ "source":2,
+ "target":31,
+ "value":14.458
+ },
+ {
+ "source":2,
+ "target":32,
+ "value":206.267
+ },
+ {
+ "source":2,
+ "target":19,
+ "value":3.64
+ },
+ {
+ "source":2,
+ "target":33,
+ "value":33.218
+ },
+ {
+ "source":2,
+ "target":20,
+ "value":4.413
+ },
+ {
+ "source":34,
+ "target":1,
+ "value":4.375
+ },
+ {
+ "source":24,
+ "target":5,
+ "value":122.952
+ },
+ {
+ "source":35,
+ "target":26,
+ "value":839.978
+ },
+ {
+ "source":36,
+ "target":37,
+ "value":504.287
+ },
+ {
+ "source":38,
+ "target":37,
+ "value":107.703
+ },
+ {
+ "source":37,
+ "target":2,
+ "value":611.99
+ },
+ {
+ "source":39,
+ "target":4,
+ "value":56.587
+ },
+ {
+ "source":39,
+ "target":1,
+ "value":77.81
+ },
+ {
+ "source":40,
+ "target":14,
+ "value":193.026
+ },
+ {
+ "source":40,
+ "target":13,
+ "value":70.672
+ },
+ {
+ "source":41,
+ "target":15,
+ "value":59.901
+ },
+ {
+ "source":42,
+ "target":14,
+ "value":19.263
+ },
+ {
+ "source":43,
+ "target":42,
+ "value":19.263
+ },
+ {
+ "source":43,
+ "target":41,
+ "value":59.901
+ },
+ {
+ "source":4,
+ "target":19,
+ "value":0.882
+ },
+ {
+ "source":4,
+ "target":26,
+ "value":400.12
+ },
+ {
+ "source":4,
+ "target":12,
+ "value":46.477
+ },
+ {
+ "source":26,
+ "target":15,
+ "value":525.531
+ },
+ {
+ "source":26,
+ "target":3,
+ "value":787.129
+ },
+ {
+ "source":26,
+ "target":11,
+ "value":79.329
+ },
+ {
+ "source":44,
+ "target":15,
+ "value":9.452
+ },
+ {
+ "source":45,
+ "target":1,
+ "value":182.01
+ },
+ {
+ "source":46,
+ "target":15,
+ "value":19.013
+ },
+ {
+ "source":47,
+ "target":15,
+ "value":289.366
+ }
+ ]}
diff --git a/src/main/webapp/sankey/index.html b/src/main/webapp/sankey/index.html
new file mode 100644
index 000000000..18a9abef3
--- /dev/null
+++ b/src/main/webapp/sankey/index.html
@@ -0,0 +1,152 @@
+
+
+Sankey Diagram
+
+
+PINPOINT flow chart (DRAFT)
+
+
+
+
+
+Analyze on StatHat
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/sankey/sankey.js b/src/main/webapp/sankey/sankey.js
new file mode 100644
index 000000000..76c5abe84
--- /dev/null
+++ b/src/main/webapp/sankey/sankey.js
@@ -0,0 +1,290 @@
+d3.sankey = function () {
+ var sankey = {}, nodeWidth = 24, nodePadding = 8, size = [ 1, 1 ], nodes = [], links = [];
+
+ sankey.nodeWidth = function (_) {
+ if (!arguments.length)
+ return nodeWidth;
+ nodeWidth = +_;
+ return sankey;
+ };
+
+ sankey.nodePadding = function (_) {
+ if (!arguments.length)
+ return nodePadding;
+ nodePadding = +_;
+ return sankey;
+ };
+
+ sankey.nodes = function (_) {
+ if (!arguments.length)
+ return nodes;
+ nodes = _;
+ return sankey;
+ };
+
+ sankey.links = function (_) {
+ if (!arguments.length)
+ return links;
+ links = _;
+ return sankey;
+ };
+
+ sankey.size = function (_) {
+ if (!arguments.length)
+ return size;
+ size = _;
+ return sankey;
+ };
+
+ sankey.layout = function (iterations) {
+ computeNodeLinks();
+ computeNodeValues();
+ computeNodeBreadths();
+ computeNodeDepths(iterations);
+ computeLinkDepths();
+ return sankey;
+ };
+
+ sankey.relayout = function () {
+ computeLinkDepths();
+ return sankey;
+ };
+
+ sankey.link = function () {
+ var curvature = .5;
+
+ function link(d) {
+ var x0 = d.source.x + d.source.dx, x1 = d.target.x, xi = d3
+ .interpolateNumber(x0, x1), x2 = xi(curvature), x3 = xi(1 - curvature), y0 = d.source.y
+ + d.sy + d.dy / 2, y1 = d.target.y + d.ty + d.dy / 2;
+ return "M" + x0 + "," + y0 + "C" + x2 + "," + y0 + " " + x3 + ","
+ + y1 + " " + x1 + "," + y1;
+ }
+
+ link.curvature = function (_) {
+ if (!arguments.length)
+ return curvature;
+ curvature = +_;
+ return link;
+ };
+
+ return link;
+ };
+
+ // Populate the sourceLinks and targetLinks for each node.
+ // Also, if the source and target are not objects, assume they are indices.
+ function computeNodeLinks() {
+ nodes.forEach(function (node) {
+ node.sourceLinks = [];
+ node.targetLinks = [];
+ });
+ links.forEach(function (link) {
+ var source = link.source, target = link.target;
+ if (typeof source === "number")
+ source = link.source = nodes[link.source];
+ if (typeof target === "number")
+ target = link.target = nodes[link.target];
+ source.sourceLinks.push(link);
+ target.targetLinks.push(link);
+ });
+ }
+
+ // Compute the value (size) of each node by summing the associated links.
+ function computeNodeValues() {
+ nodes.forEach(function (node) {
+ node.value = Math.max(d3.sum(node.sourceLinks, value), d3.sum(
+ node.targetLinks, value));
+ });
+ }
+
+ // Iteratively assign the breadth (x-position) for each node.
+ // Nodes are assigned the maximum breadth of incoming neighbors plus one;
+ // nodes with no incoming links are assigned breadth zero, while
+ // nodes with no outgoing links are assigned the maximum breadth.
+ function computeNodeBreadths() {
+ var remainingNodes = nodes, nextNodes, x = 0;
+
+ while (remainingNodes.length) {
+ nextNodes = [];
+ remainingNodes.forEach(function (node) {
+ node.x = x;
+ node.dx = nodeWidth;
+ node.sourceLinks.forEach(function (link) {
+ nextNodes.push(link.target);
+ });
+ });
+ remainingNodes = nextNodes;
+ ++x;
+ }
+
+ //
+ moveSinksRight(x);
+ scaleNodeBreadths((size[0] - nodeWidth) / (x - 1));
+ }
+
+ function moveSourcesRight() {
+ nodes.forEach(function (node) {
+ if (!node.targetLinks.length) {
+ node.x = d3.min(node.sourceLinks, function (d) {
+ return d.target.x;
+ }) - 1;
+ }
+ });
+ }
+
+ function moveSinksRight(x) {
+ nodes.forEach(function (node) {
+ if (!node.sourceLinks.length) {
+ node.x = x - 1;
+ }
+ });
+ }
+
+ function scaleNodeBreadths(kx) {
+ nodes.forEach(function (node) {
+ node.x *= kx;
+ });
+ }
+
+ function computeNodeDepths(iterations) {
+ var nodesByBreadth = d3.nest().key(function (d) {
+ return d.x;
+ }).sortKeys(d3.ascending).entries(nodes).map(function (d) {
+ return d.values;
+ });
+
+ //
+ initializeNodeDepth();
+ resolveCollisions();
+ for (var alpha = 1; iterations > 0; --iterations) {
+ relaxRightToLeft(alpha *= .99);
+ resolveCollisions();
+ relaxLeftToRight(alpha);
+ resolveCollisions();
+ }
+
+ function initializeNodeDepth() {
+ var ky = d3.min(nodesByBreadth, function (nodes) {
+ return (size[1] - (nodes.length - 1) * nodePadding)
+ / d3.sum(nodes, value);
+ });
+
+ nodesByBreadth.forEach(function (nodes) {
+ nodes.forEach(function (node, i) {
+ node.y = i;
+ node.dy = node.value * ky;
+ });
+ });
+
+ links.forEach(function (link) {
+ link.dy = link.value * ky;
+ });
+ }
+
+ function relaxLeftToRight(alpha) {
+ nodesByBreadth.forEach(function (nodes, breadth) {
+ nodes.forEach(function (node) {
+ if (node.targetLinks.length) {
+ var y = d3.sum(node.targetLinks, weightedSource)
+ / d3.sum(node.targetLinks, value);
+ node.y += (y - center(node)) * alpha;
+ }
+ });
+ });
+
+ function weightedSource(link) {
+ return center(link.source) * link.value;
+ }
+ }
+
+ function relaxRightToLeft(alpha) {
+ nodesByBreadth.slice().reverse().forEach(
+ function (nodes) {
+ nodes.forEach(function (node) {
+ if (node.sourceLinks.length) {
+ var y = d3
+ .sum(node.sourceLinks, weightedTarget)
+ / d3.sum(node.sourceLinks, value);
+ node.y += (y - center(node)) * alpha;
+ }
+ });
+ });
+
+ function weightedTarget(link) {
+ return center(link.target) * link.value;
+ }
+ }
+
+ function resolveCollisions() {
+ nodesByBreadth.forEach(function (nodes) {
+ var node, dy, y0 = 0, n = nodes.length, i;
+
+ // Push any overlapping nodes down.
+ nodes.sort(ascendingDepth);
+ for (i = 0; i < n; ++i) {
+ node = nodes[i];
+ dy = y0 - node.y;
+ if (dy > 0)
+ node.y += dy;
+ y0 = node.y + node.dy + nodePadding;
+ }
+
+ // If the bottommost node goes outside the bounds, push it back
+ // up.
+ dy = y0 - nodePadding - size[1];
+ if (dy > 0) {
+ y0 = node.y -= dy;
+
+ // Push any overlapping nodes back up.
+ for (i = n - 2; i >= 0; --i) {
+ node = nodes[i];
+ dy = node.y + node.dy + nodePadding - y0;
+ if (dy > 0)
+ node.y -= dy;
+ y0 = node.y;
+ }
+ }
+ });
+ }
+
+ function ascendingDepth(a, b) {
+ return a.y - b.y;
+ }
+ }
+
+ function computeLinkDepths() {
+ nodes.forEach(function (node) {
+ node.sourceLinks.sort(ascendingTargetDepth);
+ node.targetLinks.sort(ascendingSourceDepth);
+ });
+ nodes.forEach(function (node) {
+ var sy = 0, ty = 0;
+ node.sourceLinks.forEach(function (link) {
+ link.sy = sy;
+ sy += link.dy;
+ });
+ node.targetLinks.forEach(function (link) {
+ link.ty = ty;
+ ty += link.dy;
+ });
+ });
+
+ function ascendingSourceDepth(a, b) {
+ return a.source.y - b.source.y;
+ }
+
+ function ascendingTargetDepth(a, b) {
+ return a.target.y - b.target.y;
+ }
+ }
+
+ function center(node) {
+ return node.y + node.dy / 2;
+ }
+
+ function value(link) {
+ return link.value;
+ }
+
+ return sankey;
+};
diff --git a/src/main/webapp/sankey/sankey/LICENCE.txt b/src/main/webapp/sankey/sankey/LICENCE.txt
new file mode 100644
index 000000000..83afe36a1
--- /dev/null
+++ b/src/main/webapp/sankey/sankey/LICENCE.txt
@@ -0,0 +1,24 @@
+Please note that the following files have separate licences:
+1. All files in the ext directory
+
+Where not otherwise covered by separate copyright, this source code is Copyright Thomas Counsell (c) 2010, 2011.
+
+Where not otherwise covered by a separate licence, this source code is distributed under the MIT licence: http://www.opensource.org/licenses/mit-license.php
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/src/main/webapp/sankey/sankey/README.txt b/src/main/webapp/sankey/sankey/README.txt
new file mode 100644
index 000000000..bf45b6785
--- /dev/null
+++ b/src/main/webapp/sankey/sankey/README.txt
@@ -0,0 +1,34 @@
+# JAVASCRIPT SANKEY DIAGRAMS
+
+A javascript library for drawing Sankey diagrams.
+
+The canonical code is at:
+http://github.com/tamc/sankey
+
+## DEPENDENCIES
+
+1. raphael.js
+2. jquery.js
+3. jquery-ui.js (optional)
+
+## USAGE
+
+For the moment, see files in the examples folder
+
+## HACKING
+
+The javascript is written in CoffeeScript in the src directory.
+
+To keep the javascript in sync with the coffeescript, run:
+
+ coffee -wo js/ -c src/sankey.coffee
+
+## PATCHES AND BUG REPORTS
+
+Please submit bug reports to:
+http://github.com/tamc/sankey/issues
+
+Please submit patches to:
+http://github.com/tamc/sankey/pullrequests
+
+
diff --git a/src/main/webapp/sankey/sankey/examples/alpha.html b/src/main/webapp/sankey/sankey/examples/alpha.html
new file mode 100644
index 000000000..ddc3729aa
--- /dev/null
+++ b/src/main/webapp/sankey/sankey/examples/alpha.html
@@ -0,0 +1,295 @@
+
+
+
+
+ Sankey Javascript Demo: Spread effort 2050 Pathway
+
+
+
+
+
+
+A more complex Sankey Diagram
+
+Move your mouse over the diagram to show values
+
+
+
+
+
diff --git a/src/main/webapp/sankey/sankey/examples/animating.html b/src/main/webapp/sankey/sankey/examples/animating.html
new file mode 100644
index 000000000..3581f0a57
--- /dev/null
+++ b/src/main/webapp/sankey/sankey/examples/animating.html
@@ -0,0 +1,55 @@
+
+
+
+
+ Sankey Javascript Demo: Spread effort 2050 Pathway
+
+
+
+
+
+
+An example Animating Sankey Diagram
+
+Move your mouse over the diagram to show values
+
+
+
+
+
diff --git a/src/main/webapp/sankey/sankey/examples/bubbles.html b/src/main/webapp/sankey/sankey/examples/bubbles.html
new file mode 100644
index 000000000..83942e002
--- /dev/null
+++ b/src/main/webapp/sankey/sankey/examples/bubbles.html
@@ -0,0 +1,54 @@
+
+
+
+
+ Sankey Javascript Demo: Spread effort 2050 Pathway
+
+
+
+
+
+
+A Sankey Diagram with bubbles on transformation boxes
+
+Move your mouse over the diagram to show values
+
+
+
+
+
diff --git a/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_flat_0_aaaaaa_40x100.png b/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644
index 000000000..5b5dab2ab
Binary files /dev/null and b/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_flat_0_aaaaaa_40x100.png differ
diff --git a/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_flat_75_ffffff_40x100.png b/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_flat_75_ffffff_40x100.png
new file mode 100644
index 000000000..ac8b229af
Binary files /dev/null and b/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_flat_75_ffffff_40x100.png differ
diff --git a/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_glass_55_fbf9ee_1x400.png b/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_glass_55_fbf9ee_1x400.png
new file mode 100644
index 000000000..ad3d6346e
Binary files /dev/null and b/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_glass_55_fbf9ee_1x400.png differ
diff --git a/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_glass_65_ffffff_1x400.png b/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_glass_65_ffffff_1x400.png
new file mode 100644
index 000000000..42ccba269
Binary files /dev/null and b/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_glass_65_ffffff_1x400.png differ
diff --git a/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_glass_75_dadada_1x400.png b/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_glass_75_dadada_1x400.png
new file mode 100644
index 000000000..5a46b47cb
Binary files /dev/null and b/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_glass_75_dadada_1x400.png differ
diff --git a/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_glass_75_e6e6e6_1x400.png b/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_glass_75_e6e6e6_1x400.png
new file mode 100644
index 000000000..86c2baa65
Binary files /dev/null and b/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_glass_75_e6e6e6_1x400.png differ
diff --git a/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_glass_95_fef1ec_1x400.png b/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_glass_95_fef1ec_1x400.png
new file mode 100644
index 000000000..4443fdc1a
Binary files /dev/null and b/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_glass_95_fef1ec_1x400.png differ
diff --git a/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png
new file mode 100644
index 000000000..7c9fa6c6e
Binary files /dev/null and b/src/main/webapp/sankey/sankey/examples/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ
diff --git a/src/main/webapp/sankey/sankey/examples/css/images/ui-icons_222222_256x240.png b/src/main/webapp/sankey/sankey/examples/css/images/ui-icons_222222_256x240.png
new file mode 100644
index 000000000..b273ff111
Binary files /dev/null and b/src/main/webapp/sankey/sankey/examples/css/images/ui-icons_222222_256x240.png differ
diff --git a/src/main/webapp/sankey/sankey/examples/css/images/ui-icons_2e83ff_256x240.png b/src/main/webapp/sankey/sankey/examples/css/images/ui-icons_2e83ff_256x240.png
new file mode 100644
index 000000000..09d1cdc85
Binary files /dev/null and b/src/main/webapp/sankey/sankey/examples/css/images/ui-icons_2e83ff_256x240.png differ
diff --git a/src/main/webapp/sankey/sankey/examples/css/images/ui-icons_454545_256x240.png b/src/main/webapp/sankey/sankey/examples/css/images/ui-icons_454545_256x240.png
new file mode 100644
index 000000000..59bd45b90
Binary files /dev/null and b/src/main/webapp/sankey/sankey/examples/css/images/ui-icons_454545_256x240.png differ
diff --git a/src/main/webapp/sankey/sankey/examples/css/images/ui-icons_888888_256x240.png b/src/main/webapp/sankey/sankey/examples/css/images/ui-icons_888888_256x240.png
new file mode 100644
index 000000000..6d02426c1
Binary files /dev/null and b/src/main/webapp/sankey/sankey/examples/css/images/ui-icons_888888_256x240.png differ
diff --git a/src/main/webapp/sankey/sankey/examples/css/images/ui-icons_cd0a0a_256x240.png b/src/main/webapp/sankey/sankey/examples/css/images/ui-icons_cd0a0a_256x240.png
new file mode 100644
index 000000000..2ab019b73
Binary files /dev/null and b/src/main/webapp/sankey/sankey/examples/css/images/ui-icons_cd0a0a_256x240.png differ
diff --git a/src/main/webapp/sankey/sankey/examples/css/jquery-ui.css b/src/main/webapp/sankey/sankey/examples/css/jquery-ui.css
new file mode 100644
index 000000000..66a262d29
--- /dev/null
+++ b/src/main/webapp/sankey/sankey/examples/css/jquery-ui.css
@@ -0,0 +1,1830 @@
+/*
+ * jQuery UI CSS Framework 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+ display: none;
+}
+
+.ui-helper-hidden-accessible {
+ position: absolute !important;
+ clip: rect(1px 1px 1px 1px);
+ clip: rect(1px, 1px, 1px, 1px);
+}
+
+.ui-helper-reset {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ line-height: 1.3;
+ text-decoration: none;
+ font-size: 100%;
+ list-style: none;
+}
+
+.ui-helper-clearfix:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+.ui-helper-clearfix {
+ display: inline-block;
+}
+
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix {
+ height: 1%;
+}
+
+.ui-helper-clearfix {
+ display: block;
+}
+
+/* end clearfix */
+.ui-helper-zfix {
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ position: absolute;
+ opacity: 0;
+ filter: Alpha(Opacity = 0);
+}
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+ cursor: default !important;
+}
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+ display: block;
+ text-indent: -99999px;
+ overflow: hidden;
+ background-repeat: no-repeat;
+}
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+/*
+* jQuery UI CSS Framework 1.8.14
+*
+* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT or GPL Version 2 licenses.
+* http://jquery.org/license
+*
+* http://docs.jquery.com/UI/Theming/API
+*
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+*/
+
+/* Component containers
+----------------------------------*/
+.ui-widget {
+ font-family: Verdana, Arial, sans-serif;
+ font-size: 1.1em;
+}
+
+.ui-widget .ui-widget {
+ font-size: 1em;
+}
+
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button {
+ font-family: Verdana, Arial, sans-serif;
+ font-size: 1em;
+}
+
+.ui-widget-content {
+ border: 1px solid #aaaaaa;
+ background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;
+ color: #222222;
+}
+
+.ui-widget-content a {
+ color: #222222;
+}
+
+.ui-widget-header {
+ border: 1px solid #aaaaaa;
+ background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;
+ color: #222222;
+ font-weight: bold;
+}
+
+.ui-widget-header a {
+ color: #222222;
+}
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
+ border: 1px solid #d3d3d3;
+ background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;
+ font-weight: normal;
+ color: #555555;
+}
+
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited {
+ color: #555555;
+ text-decoration: none;
+}
+
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus {
+ border: 1px solid #999999;
+ background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;
+ font-weight: normal;
+ color: #212121;
+}
+
+.ui-state-hover a, .ui-state-hover a:hover {
+ color: #212121;
+ text-decoration: none;
+}
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active {
+ border: 1px solid #aaaaaa;
+ background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;
+ font-weight: normal;
+ color: #212121;
+}
+
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited {
+ color: #212121;
+ text-decoration: none;
+}
+
+.ui-widget :active {
+ outline: none;
+}
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {
+ border: 1px solid #fcefa1;
+ background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;
+ color: #363636;
+}
+
+.ui-state-highlight a, .ui-widget-content .ui-state-highlight a, .ui-widget-header .ui-state-highlight a {
+ color: #363636;
+}
+
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {
+ border: 1px solid #cd0a0a;
+ background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;
+ color: #cd0a0a;
+}
+
+.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a {
+ color: #cd0a0a;
+}
+
+.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text {
+ color: #cd0a0a;
+}
+
+.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary {
+ font-weight: bold;
+}
+
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary {
+ opacity: .7;
+ filter: Alpha(Opacity = 70);
+ font-weight: normal;
+}
+
+.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled {
+ opacity: .35;
+ filter: Alpha(Opacity = 35);
+ background-image: none;
+}
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+ width: 16px;
+ height: 16px;
+ background-image: url(images/ui-icons_222222_256x240.png);
+}
+
+.ui-widget-content .ui-icon {
+ background-image: url(images/ui-icons_222222_256x240.png);
+}
+
+.ui-widget-header .ui-icon {
+ background-image: url(images/ui-icons_222222_256x240.png);
+}
+
+.ui-state-default .ui-icon {
+ background-image: url(images/ui-icons_888888_256x240.png);
+}
+
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {
+ background-image: url(images/ui-icons_454545_256x240.png);
+}
+
+.ui-state-active .ui-icon {
+ background-image: url(images/ui-icons_454545_256x240.png);
+}
+
+.ui-state-highlight .ui-icon {
+ background-image: url(images/ui-icons_2e83ff_256x240.png);
+}
+
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {
+ background-image: url(images/ui-icons_cd0a0a_256x240.png);
+}
+
+/* positioning */
+.ui-icon-carat-1-n {
+ background-position: 0 0;
+}
+
+.ui-icon-carat-1-ne {
+ background-position: -16px 0;
+}
+
+.ui-icon-carat-1-e {
+ background-position: -32px 0;
+}
+
+.ui-icon-carat-1-se {
+ background-position: -48px 0;
+}
+
+.ui-icon-carat-1-s {
+ background-position: -64px 0;
+}
+
+.ui-icon-carat-1-sw {
+ background-position: -80px 0;
+}
+
+.ui-icon-carat-1-w {
+ background-position: -96px 0;
+}
+
+.ui-icon-carat-1-nw {
+ background-position: -112px 0;
+}
+
+.ui-icon-carat-2-n-s {
+ background-position: -128px 0;
+}
+
+.ui-icon-carat-2-e-w {
+ background-position: -144px 0;
+}
+
+.ui-icon-triangle-1-n {
+ background-position: 0 -16px;
+}
+
+.ui-icon-triangle-1-ne {
+ background-position: -16px -16px;
+}
+
+.ui-icon-triangle-1-e {
+ background-position: -32px -16px;
+}
+
+.ui-icon-triangle-1-se {
+ background-position: -48px -16px;
+}
+
+.ui-icon-triangle-1-s {
+ background-position: -64px -16px;
+}
+
+.ui-icon-triangle-1-sw {
+ background-position: -80px -16px;
+}
+
+.ui-icon-triangle-1-w {
+ background-position: -96px -16px;
+}
+
+.ui-icon-triangle-1-nw {
+ background-position: -112px -16px;
+}
+
+.ui-icon-triangle-2-n-s {
+ background-position: -128px -16px;
+}
+
+.ui-icon-triangle-2-e-w {
+ background-position: -144px -16px;
+}
+
+.ui-icon-arrow-1-n {
+ background-position: 0 -32px;
+}
+
+.ui-icon-arrow-1-ne {
+ background-position: -16px -32px;
+}
+
+.ui-icon-arrow-1-e {
+ background-position: -32px -32px;
+}
+
+.ui-icon-arrow-1-se {
+ background-position: -48px -32px;
+}
+
+.ui-icon-arrow-1-s {
+ background-position: -64px -32px;
+}
+
+.ui-icon-arrow-1-sw {
+ background-position: -80px -32px;
+}
+
+.ui-icon-arrow-1-w {
+ background-position: -96px -32px;
+}
+
+.ui-icon-arrow-1-nw {
+ background-position: -112px -32px;
+}
+
+.ui-icon-arrow-2-n-s {
+ background-position: -128px -32px;
+}
+
+.ui-icon-arrow-2-ne-sw {
+ background-position: -144px -32px;
+}
+
+.ui-icon-arrow-2-e-w {
+ background-position: -160px -32px;
+}
+
+.ui-icon-arrow-2-se-nw {
+ background-position: -176px -32px;
+}
+
+.ui-icon-arrowstop-1-n {
+ background-position: -192px -32px;
+}
+
+.ui-icon-arrowstop-1-e {
+ background-position: -208px -32px;
+}
+
+.ui-icon-arrowstop-1-s {
+ background-position: -224px -32px;
+}
+
+.ui-icon-arrowstop-1-w {
+ background-position: -240px -32px;
+}
+
+.ui-icon-arrowthick-1-n {
+ background-position: 0 -48px;
+}
+
+.ui-icon-arrowthick-1-ne {
+ background-position: -16px -48px;
+}
+
+.ui-icon-arrowthick-1-e {
+ background-position: -32px -48px;
+}
+
+.ui-icon-arrowthick-1-se {
+ background-position: -48px -48px;
+}
+
+.ui-icon-arrowthick-1-s {
+ background-position: -64px -48px;
+}
+
+.ui-icon-arrowthick-1-sw {
+ background-position: -80px -48px;
+}
+
+.ui-icon-arrowthick-1-w {
+ background-position: -96px -48px;
+}
+
+.ui-icon-arrowthick-1-nw {
+ background-position: -112px -48px;
+}
+
+.ui-icon-arrowthick-2-n-s {
+ background-position: -128px -48px;
+}
+
+.ui-icon-arrowthick-2-ne-sw {
+ background-position: -144px -48px;
+}
+
+.ui-icon-arrowthick-2-e-w {
+ background-position: -160px -48px;
+}
+
+.ui-icon-arrowthick-2-se-nw {
+ background-position: -176px -48px;
+}
+
+.ui-icon-arrowthickstop-1-n {
+ background-position: -192px -48px;
+}
+
+.ui-icon-arrowthickstop-1-e {
+ background-position: -208px -48px;
+}
+
+.ui-icon-arrowthickstop-1-s {
+ background-position: -224px -48px;
+}
+
+.ui-icon-arrowthickstop-1-w {
+ background-position: -240px -48px;
+}
+
+.ui-icon-arrowreturnthick-1-w {
+ background-position: 0 -64px;
+}
+
+.ui-icon-arrowreturnthick-1-n {
+ background-position: -16px -64px;
+}
+
+.ui-icon-arrowreturnthick-1-e {
+ background-position: -32px -64px;
+}
+
+.ui-icon-arrowreturnthick-1-s {
+ background-position: -48px -64px;
+}
+
+.ui-icon-arrowreturn-1-w {
+ background-position: -64px -64px;
+}
+
+.ui-icon-arrowreturn-1-n {
+ background-position: -80px -64px;
+}
+
+.ui-icon-arrowreturn-1-e {
+ background-position: -96px -64px;
+}
+
+.ui-icon-arrowreturn-1-s {
+ background-position: -112px -64px;
+}
+
+.ui-icon-arrowrefresh-1-w {
+ background-position: -128px -64px;
+}
+
+.ui-icon-arrowrefresh-1-n {
+ background-position: -144px -64px;
+}
+
+.ui-icon-arrowrefresh-1-e {
+ background-position: -160px -64px;
+}
+
+.ui-icon-arrowrefresh-1-s {
+ background-position: -176px -64px;
+}
+
+.ui-icon-arrow-4 {
+ background-position: 0 -80px;
+}
+
+.ui-icon-arrow-4-diag {
+ background-position: -16px -80px;
+}
+
+.ui-icon-extlink {
+ background-position: -32px -80px;
+}
+
+.ui-icon-newwin {
+ background-position: -48px -80px;
+}
+
+.ui-icon-refresh {
+ background-position: -64px -80px;
+}
+
+.ui-icon-shuffle {
+ background-position: -80px -80px;
+}
+
+.ui-icon-transfer-e-w {
+ background-position: -96px -80px;
+}
+
+.ui-icon-transferthick-e-w {
+ background-position: -112px -80px;
+}
+
+.ui-icon-folder-collapsed {
+ background-position: 0 -96px;
+}
+
+.ui-icon-folder-open {
+ background-position: -16px -96px;
+}
+
+.ui-icon-document {
+ background-position: -32px -96px;
+}
+
+.ui-icon-document-b {
+ background-position: -48px -96px;
+}
+
+.ui-icon-note {
+ background-position: -64px -96px;
+}
+
+.ui-icon-mail-closed {
+ background-position: -80px -96px;
+}
+
+.ui-icon-mail-open {
+ background-position: -96px -96px;
+}
+
+.ui-icon-suitcase {
+ background-position: -112px -96px;
+}
+
+.ui-icon-comment {
+ background-position: -128px -96px;
+}
+
+.ui-icon-person {
+ background-position: -144px -96px;
+}
+
+.ui-icon-print {
+ background-position: -160px -96px;
+}
+
+.ui-icon-trash {
+ background-position: -176px -96px;
+}
+
+.ui-icon-locked {
+ background-position: -192px -96px;
+}
+
+.ui-icon-unlocked {
+ background-position: -208px -96px;
+}
+
+.ui-icon-bookmark {
+ background-position: -224px -96px;
+}
+
+.ui-icon-tag {
+ background-position: -240px -96px;
+}
+
+.ui-icon-home {
+ background-position: 0 -112px;
+}
+
+.ui-icon-flag {
+ background-position: -16px -112px;
+}
+
+.ui-icon-calendar {
+ background-position: -32px -112px;
+}
+
+.ui-icon-cart {
+ background-position: -48px -112px;
+}
+
+.ui-icon-pencil {
+ background-position: -64px -112px;
+}
+
+.ui-icon-clock {
+ background-position: -80px -112px;
+}
+
+.ui-icon-disk {
+ background-position: -96px -112px;
+}
+
+.ui-icon-calculator {
+ background-position: -112px -112px;
+}
+
+.ui-icon-zoomin {
+ background-position: -128px -112px;
+}
+
+.ui-icon-zoomout {
+ background-position: -144px -112px;
+}
+
+.ui-icon-search {
+ background-position: -160px -112px;
+}
+
+.ui-icon-wrench {
+ background-position: -176px -112px;
+}
+
+.ui-icon-gear {
+ background-position: -192px -112px;
+}
+
+.ui-icon-heart {
+ background-position: -208px -112px;
+}
+
+.ui-icon-star {
+ background-position: -224px -112px;
+}
+
+.ui-icon-link {
+ background-position: -240px -112px;
+}
+
+.ui-icon-cancel {
+ background-position: 0 -128px;
+}
+
+.ui-icon-plus {
+ background-position: -16px -128px;
+}
+
+.ui-icon-plusthick {
+ background-position: -32px -128px;
+}
+
+.ui-icon-minus {
+ background-position: -48px -128px;
+}
+
+.ui-icon-minusthick {
+ background-position: -64px -128px;
+}
+
+.ui-icon-close {
+ background-position: -80px -128px;
+}
+
+.ui-icon-closethick {
+ background-position: -96px -128px;
+}
+
+.ui-icon-key {
+ background-position: -112px -128px;
+}
+
+.ui-icon-lightbulb {
+ background-position: -128px -128px;
+}
+
+.ui-icon-scissors {
+ background-position: -144px -128px;
+}
+
+.ui-icon-clipboard {
+ background-position: -160px -128px;
+}
+
+.ui-icon-copy {
+ background-position: -176px -128px;
+}
+
+.ui-icon-contact {
+ background-position: -192px -128px;
+}
+
+.ui-icon-image {
+ background-position: -208px -128px;
+}
+
+.ui-icon-video {
+ background-position: -224px -128px;
+}
+
+.ui-icon-script {
+ background-position: -240px -128px;
+}
+
+.ui-icon-alert {
+ background-position: 0 -144px;
+}
+
+.ui-icon-info {
+ background-position: -16px -144px;
+}
+
+.ui-icon-notice {
+ background-position: -32px -144px;
+}
+
+.ui-icon-help {
+ background-position: -48px -144px;
+}
+
+.ui-icon-check {
+ background-position: -64px -144px;
+}
+
+.ui-icon-bullet {
+ background-position: -80px -144px;
+}
+
+.ui-icon-radio-off {
+ background-position: -96px -144px;
+}
+
+.ui-icon-radio-on {
+ background-position: -112px -144px;
+}
+
+.ui-icon-pin-w {
+ background-position: -128px -144px;
+}
+
+.ui-icon-pin-s {
+ background-position: -144px -144px;
+}
+
+.ui-icon-play {
+ background-position: 0 -160px;
+}
+
+.ui-icon-pause {
+ background-position: -16px -160px;
+}
+
+.ui-icon-seek-next {
+ background-position: -32px -160px;
+}
+
+.ui-icon-seek-prev {
+ background-position: -48px -160px;
+}
+
+.ui-icon-seek-end {
+ background-position: -64px -160px;
+}
+
+.ui-icon-seek-start {
+ background-position: -80px -160px;
+}
+
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first {
+ background-position: -80px -160px;
+}
+
+.ui-icon-stop {
+ background-position: -96px -160px;
+}
+
+.ui-icon-eject {
+ background-position: -112px -160px;
+}
+
+.ui-icon-volume-off {
+ background-position: -128px -160px;
+}
+
+.ui-icon-volume-on {
+ background-position: -144px -160px;
+}
+
+.ui-icon-power {
+ background-position: 0 -176px;
+}
+
+.ui-icon-signal-diag {
+ background-position: -16px -176px;
+}
+
+.ui-icon-signal {
+ background-position: -32px -176px;
+}
+
+.ui-icon-battery-0 {
+ background-position: -48px -176px;
+}
+
+.ui-icon-battery-1 {
+ background-position: -64px -176px;
+}
+
+.ui-icon-battery-2 {
+ background-position: -80px -176px;
+}
+
+.ui-icon-battery-3 {
+ background-position: -96px -176px;
+}
+
+.ui-icon-circle-plus {
+ background-position: 0 -192px;
+}
+
+.ui-icon-circle-minus {
+ background-position: -16px -192px;
+}
+
+.ui-icon-circle-close {
+ background-position: -32px -192px;
+}
+
+.ui-icon-circle-triangle-e {
+ background-position: -48px -192px;
+}
+
+.ui-icon-circle-triangle-s {
+ background-position: -64px -192px;
+}
+
+.ui-icon-circle-triangle-w {
+ background-position: -80px -192px;
+}
+
+.ui-icon-circle-triangle-n {
+ background-position: -96px -192px;
+}
+
+.ui-icon-circle-arrow-e {
+ background-position: -112px -192px;
+}
+
+.ui-icon-circle-arrow-s {
+ background-position: -128px -192px;
+}
+
+.ui-icon-circle-arrow-w {
+ background-position: -144px -192px;
+}
+
+.ui-icon-circle-arrow-n {
+ background-position: -160px -192px;
+}
+
+.ui-icon-circle-zoomin {
+ background-position: -176px -192px;
+}
+
+.ui-icon-circle-zoomout {
+ background-position: -192px -192px;
+}
+
+.ui-icon-circle-check {
+ background-position: -208px -192px;
+}
+
+.ui-icon-circlesmall-plus {
+ background-position: 0 -208px;
+}
+
+.ui-icon-circlesmall-minus {
+ background-position: -16px -208px;
+}
+
+.ui-icon-circlesmall-close {
+ background-position: -32px -208px;
+}
+
+.ui-icon-squaresmall-plus {
+ background-position: -48px -208px;
+}
+
+.ui-icon-squaresmall-minus {
+ background-position: -64px -208px;
+}
+
+.ui-icon-squaresmall-close {
+ background-position: -80px -208px;
+}
+
+.ui-icon-grip-dotted-vertical {
+ background-position: 0 -224px;
+}
+
+.ui-icon-grip-dotted-horizontal {
+ background-position: -16px -224px;
+}
+
+.ui-icon-grip-solid-vertical {
+ background-position: -32px -224px;
+}
+
+.ui-icon-grip-solid-horizontal {
+ background-position: -48px -224px;
+}
+
+.ui-icon-gripsmall-diagonal-se {
+ background-position: -64px -224px;
+}
+
+.ui-icon-grip-diagonal-se {
+ background-position: -80px -224px;
+}
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl {
+ -moz-border-radius-topleft: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -khtml-border-top-left-radius: 4px;
+ border-top-left-radius: 4px;
+}
+
+.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr {
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-right-radius: 4px;
+ -khtml-border-top-right-radius: 4px;
+ border-top-right-radius: 4px;
+}
+
+.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl {
+ -moz-border-radius-bottomleft: 4px;
+ -webkit-border-bottom-left-radius: 4px;
+ -khtml-border-bottom-left-radius: 4px;
+ border-bottom-left-radius: 4px;
+}
+
+.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br {
+ -moz-border-radius-bottomright: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -khtml-border-bottom-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+}
+
+/* Overlays */
+.ui-widget-overlay {
+ background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
+ opacity: .30;
+ filter: Alpha(Opacity = 30);
+}
+
+.ui-widget-shadow {
+ margin: -8px 0 0 -8px;
+ padding: 8px;
+ background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
+ opacity: .30;
+ filter: Alpha(Opacity = 30);
+ -moz-border-radius: 8px;
+ -khtml-border-radius: 8px;
+ -webkit-border-radius: 8px;
+ border-radius: 8px;
+}
+
+/*
+* jQuery UI Resizable 1.8.14
+*
+* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT or GPL Version 2 licenses.
+* http://jquery.org/license
+*
+* http://docs.jquery.com/UI/Resizable#theming
+*/
+.ui-resizable {
+ position: relative;
+}
+
+.ui-resizable-handle {
+ position: absolute;
+ font-size: 0.1px;
+ z-index: 99999;
+ display: block;
+}
+
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle {
+ display: none;
+}
+
+.ui-resizable-n {
+ cursor: n-resize;
+ height: 7px;
+ width: 100%;
+ top: -5px;
+ left: 0;
+}
+
+.ui-resizable-s {
+ cursor: s-resize;
+ height: 7px;
+ width: 100%;
+ bottom: -5px;
+ left: 0;
+}
+
+.ui-resizable-e {
+ cursor: e-resize;
+ width: 7px;
+ right: -5px;
+ top: 0;
+ height: 100%;
+}
+
+.ui-resizable-w {
+ cursor: w-resize;
+ width: 7px;
+ left: -5px;
+ top: 0;
+ height: 100%;
+}
+
+.ui-resizable-se {
+ cursor: se-resize;
+ width: 12px;
+ height: 12px;
+ right: 1px;
+ bottom: 1px;
+}
+
+.ui-resizable-sw {
+ cursor: sw-resize;
+ width: 9px;
+ height: 9px;
+ left: -5px;
+ bottom: -5px;
+}
+
+.ui-resizable-nw {
+ cursor: nw-resize;
+ width: 9px;
+ height: 9px;
+ left: -5px;
+ top: -5px;
+}
+
+.ui-resizable-ne {
+ cursor: ne-resize;
+ width: 9px;
+ height: 9px;
+ right: -5px;
+ top: -5px;
+}
+
+/*
+* jQuery UI Selectable 1.8.14
+*
+* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT or GPL Version 2 licenses.
+* http://jquery.org/license
+*
+* http://docs.jquery.com/UI/Selectable#theming
+*/
+.ui-selectable-helper {
+ position: absolute;
+ z-index: 100;
+ border: 1px dotted black;
+}
+
+/*
+* jQuery UI Accordion 1.8.14
+*
+* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT or GPL Version 2 licenses.
+* http://jquery.org/license
+*
+* http://docs.jquery.com/UI/Accordion#theming
+*/
+/* IE/Win - Fix animation bug - #4615 */
+.ui-accordion {
+ width: 100%;
+}
+
+.ui-accordion .ui-accordion-header {
+ cursor: pointer;
+ position: relative;
+ margin-top: 1px;
+ zoom: 1;
+}
+
+.ui-accordion .ui-accordion-li-fix {
+ display: inline;
+}
+
+.ui-accordion .ui-accordion-header-active {
+ border-bottom: 0 !important;
+}
+
+.ui-accordion .ui-accordion-header a {
+ display: block;
+ font-size: 1em;
+ padding: .5em .5em .5em .7em;
+}
+
+.ui-accordion-icons .ui-accordion-header a {
+ padding-left: 2.2em;
+}
+
+.ui-accordion .ui-accordion-header .ui-icon {
+ position: absolute;
+ left: .5em;
+ top: 50%;
+ margin-top: -8px;
+}
+
+.ui-accordion .ui-accordion-content {
+ padding: 1em 2.2em;
+ border-top: 0;
+ margin-top: -2px;
+ position: relative;
+ top: 1px;
+ margin-bottom: 2px;
+ overflow: auto;
+ display: none;
+ zoom: 1;
+}
+
+.ui-accordion .ui-accordion-content-active {
+ display: block;
+}
+
+/*
+* jQuery UI Autocomplete 1.8.14
+*
+* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT or GPL Version 2 licenses.
+* http://jquery.org/license
+*
+* http://docs.jquery.com/UI/Autocomplete#theming
+*/
+.ui-autocomplete {
+ position: absolute;
+ cursor: default;
+}
+
+/* workarounds */
+* html .ui-autocomplete {
+ width: 1px;
+}
+
+/* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.14
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.ui-menu {
+ list-style: none;
+ padding: 2px;
+ margin: 0;
+ display: block;
+ float: left;
+}
+
+.ui-menu .ui-menu {
+ margin-top: -3px;
+}
+
+.ui-menu .ui-menu-item {
+ margin: 0;
+ padding: 0;
+ zoom: 1;
+ float: left;
+ clear: left;
+ width: 100%;
+}
+
+.ui-menu .ui-menu-item a {
+ text-decoration: none;
+ display: block;
+ padding: .2em .4em;
+ line-height: 1.5;
+ zoom: 1;
+}
+
+.ui-menu .ui-menu-item a.ui-state-hover,
+.ui-menu .ui-menu-item a.ui-state-active {
+ font-weight: normal;
+ margin: -1px;
+}
+
+/*
+* jQuery UI Button 1.8.14
+*
+* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT or GPL Version 2 licenses.
+* http://jquery.org/license
+*
+* http://docs.jquery.com/UI/Button#theming
+*/
+.ui-button {
+ display: inline-block;
+ position: relative;
+ padding: 0;
+ margin-right: .1em;
+ text-decoration: none !important;
+ cursor: pointer;
+ text-align: center;
+ zoom: 1;
+ overflow: visible;
+}
+
+/* the overflow property removes extra width in IE */
+.ui-button-icon-only {
+ width: 2.2em;
+}
+
+/* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only {
+ width: 2.4em;
+}
+
+/* button elements seem to need a little more width */
+.ui-button-icons-only {
+ width: 3.4em;
+}
+
+button.ui-button-icons-only {
+ width: 3.7em;
+}
+
+/*button text element */
+.ui-button .ui-button-text {
+ display: block;
+ line-height: 1.4;
+}
+
+.ui-button-text-only .ui-button-text {
+ padding: .4em 1em;
+}
+
+.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text {
+ padding: .4em;
+ text-indent: -9999999px;
+}
+
+.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text {
+ padding: .4em 1em .4em 2.1em;
+}
+
+.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text {
+ padding: .4em 2.1em .4em 1em;
+}
+
+.ui-button-text-icons .ui-button-text {
+ padding-left: 2.1em;
+ padding-right: 2.1em;
+}
+
+/* no icon support for input elements, provide padding by default */
+input.ui-button {
+ padding: .4em 1em;
+}
+
+/*button icon element(s) */
+.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon {
+ position: absolute;
+ top: 50%;
+ margin-top: -8px;
+}
+
+.ui-button-icon-only .ui-icon {
+ left: 50%;
+ margin-left: -8px;
+}
+
+.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary {
+ left: .5em;
+}
+
+.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary {
+ right: .5em;
+}
+
+.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary {
+ right: .5em;
+}
+
+/*button sets*/
+.ui-buttonset {
+ margin-right: 7px;
+}
+
+.ui-buttonset .ui-button {
+ margin-left: 0;
+ margin-right: -.3em;
+}
+
+/* workarounds */
+button.ui-button::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+/* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.ui-dialog {
+ position: absolute;
+ padding: .2em;
+ width: 300px;
+ overflow: hidden;
+}
+
+.ui-dialog .ui-dialog-titlebar {
+ padding: .4em 1em;
+ position: relative;
+}
+
+.ui-dialog .ui-dialog-title {
+ float: left;
+ margin: .1em 16px .1em 0;
+}
+
+.ui-dialog .ui-dialog-titlebar-close {
+ position: absolute;
+ right: .3em;
+ top: 50%;
+ width: 19px;
+ margin: -10px 0 0 0;
+ padding: 1px;
+ height: 18px;
+}
+
+.ui-dialog .ui-dialog-titlebar-close span {
+ display: block;
+ margin: 1px;
+}
+
+.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus {
+ padding: 0;
+}
+
+.ui-dialog .ui-dialog-content {
+ position: relative;
+ border: 0;
+ padding: .5em 1em;
+ background: none;
+ overflow: auto;
+ zoom: 1;
+}
+
+.ui-dialog .ui-dialog-buttonpane {
+ text-align: left;
+ border-width: 1px 0 0 0;
+ background-image: none;
+ margin: .5em 0 0 0;
+ padding: .3em 1em .5em .4em;
+}
+
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
+ float: right;
+}
+
+.ui-dialog .ui-dialog-buttonpane button {
+ margin: .5em .4em .5em 0;
+ cursor: pointer;
+}
+
+.ui-dialog .ui-resizable-se {
+ width: 14px;
+ height: 14px;
+ right: 3px;
+ bottom: 3px;
+}
+
+.ui-draggable .ui-dialog-titlebar {
+ cursor: move;
+}
+
+/*
+* jQuery UI Slider 1.8.14
+*
+* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT or GPL Version 2 licenses.
+* http://jquery.org/license
+*
+* http://docs.jquery.com/UI/Slider#theming
+*/
+.ui-slider {
+ position: relative;
+ text-align: left;
+}
+
+.ui-slider .ui-slider-handle {
+ position: absolute;
+ z-index: 2;
+ width: 1.2em;
+ height: 1.2em;
+ cursor: default;
+}
+
+.ui-slider .ui-slider-range {
+ position: absolute;
+ z-index: 1;
+ font-size: .7em;
+ display: block;
+ border: 0;
+ background-position: 0 0;
+}
+
+.ui-slider-horizontal {
+ height: .8em;
+}
+
+.ui-slider-horizontal .ui-slider-handle {
+ top: -.3em;
+ margin-left: -.6em;
+}
+
+.ui-slider-horizontal .ui-slider-range {
+ top: 0;
+ height: 100%;
+}
+
+.ui-slider-horizontal .ui-slider-range-min {
+ left: 0;
+}
+
+.ui-slider-horizontal .ui-slider-range-max {
+ right: 0;
+}
+
+.ui-slider-vertical {
+ width: .8em;
+ height: 100px;
+}
+
+.ui-slider-vertical .ui-slider-handle {
+ left: -.3em;
+ margin-left: 0;
+ margin-bottom: -.6em;
+}
+
+.ui-slider-vertical .ui-slider-range {
+ left: 0;
+ width: 100%;
+}
+
+.ui-slider-vertical .ui-slider-range-min {
+ bottom: 0;
+}
+
+.ui-slider-vertical .ui-slider-range-max {
+ top: 0;
+}
+
+/*
+* jQuery UI Tabs 1.8.14
+*
+* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT or GPL Version 2 licenses.
+* http://jquery.org/license
+*
+* http://docs.jquery.com/UI/Tabs#theming
+*/
+.ui-tabs {
+ position: relative;
+ padding: .2em;
+ zoom: 1;
+}
+
+/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.ui-tabs .ui-tabs-nav {
+ margin: 0;
+ padding: .2em .2em 0;
+}
+
+.ui-tabs .ui-tabs-nav li {
+ list-style: none;
+ float: left;
+ position: relative;
+ top: 1px;
+ margin: 0 .2em 1px 0;
+ border-bottom: 0 !important;
+ padding: 0;
+ white-space: nowrap;
+}
+
+.ui-tabs .ui-tabs-nav li a {
+ float: left;
+ padding: .5em 1em;
+ text-decoration: none;
+}
+
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected {
+ margin-bottom: 0;
+ padding-bottom: 1px;
+}
+
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a {
+ cursor: text;
+}
+
+.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a {
+ cursor: pointer;
+}
+
+/* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.ui-tabs .ui-tabs-panel {
+ display: block;
+ border-width: 0;
+ padding: 1em 1.4em;
+ background: none;
+}
+
+.ui-tabs .ui-tabs-hide {
+ display: none !important;
+}
+
+/*
+* jQuery UI Datepicker 1.8.14
+*
+* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT or GPL Version 2 licenses.
+* http://jquery.org/license
+*
+* http://docs.jquery.com/UI/Datepicker#theming
+*/
+.ui-datepicker {
+ width: 17em;
+ padding: .2em .2em 0;
+ display: none;
+}
+
+.ui-datepicker .ui-datepicker-header {
+ position: relative;
+ padding: .2em 0;
+}
+
+.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next {
+ position: absolute;
+ top: 2px;
+ width: 1.8em;
+ height: 1.8em;
+}
+
+.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover {
+ top: 1px;
+}
+
+.ui-datepicker .ui-datepicker-prev {
+ left: 2px;
+}
+
+.ui-datepicker .ui-datepicker-next {
+ right: 2px;
+}
+
+.ui-datepicker .ui-datepicker-prev-hover {
+ left: 1px;
+}
+
+.ui-datepicker .ui-datepicker-next-hover {
+ right: 1px;
+}
+
+.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span {
+ display: block;
+ position: absolute;
+ left: 50%;
+ margin-left: -8px;
+ top: 50%;
+ margin-top: -8px;
+}
+
+.ui-datepicker .ui-datepicker-title {
+ margin: 0 2.3em;
+ line-height: 1.8em;
+ text-align: center;
+}
+
+.ui-datepicker .ui-datepicker-title select {
+ font-size: 1em;
+ margin: 1px 0;
+}
+
+.ui-datepicker select.ui-datepicker-month-year {
+ width: 100%;
+}
+
+.ui-datepicker select.ui-datepicker-month,
+.ui-datepicker select.ui-datepicker-year {
+ width: 49%;
+}
+
+.ui-datepicker table {
+ width: 100%;
+ font-size: .9em;
+ border-collapse: collapse;
+ margin: 0 0 .4em;
+}
+
+.ui-datepicker th {
+ padding: .7em .3em;
+ text-align: center;
+ font-weight: bold;
+ border: 0;
+}
+
+.ui-datepicker td {
+ border: 0;
+ padding: 1px;
+}
+
+.ui-datepicker td span, .ui-datepicker td a {
+ display: block;
+ padding: .2em;
+ text-align: right;
+ text-decoration: none;
+}
+
+.ui-datepicker .ui-datepicker-buttonpane {
+ background-image: none;
+ margin: .7em 0 0 0;
+ padding: 0 .2em;
+ border-left: 0;
+ border-right: 0;
+ border-bottom: 0;
+}
+
+.ui-datepicker .ui-datepicker-buttonpane button {
+ float: right;
+ margin: .5em .2em .4em;
+ cursor: pointer;
+ padding: .2em .6em .3em .6em;
+ width: auto;
+ overflow: visible;
+}
+
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
+ float: left;
+}
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi {
+ width: auto;
+}
+
+.ui-datepicker-multi .ui-datepicker-group {
+ float: left;
+}
+
+.ui-datepicker-multi .ui-datepicker-group table {
+ width: 95%;
+ margin: 0 auto .4em;
+}
+
+.ui-datepicker-multi-2 .ui-datepicker-group {
+ width: 50%;
+}
+
+.ui-datepicker-multi-3 .ui-datepicker-group {
+ width: 33.3%;
+}
+
+.ui-datepicker-multi-4 .ui-datepicker-group {
+ width: 25%;
+}
+
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header {
+ border-left-width: 0;
+}
+
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
+ border-left-width: 0;
+}
+
+.ui-datepicker-multi .ui-datepicker-buttonpane {
+ clear: left;
+}
+
+.ui-datepicker-row-break {
+ clear: both;
+ width: 100%;
+ font-size: 0em;
+}
+
+/* RTL support */
+.ui-datepicker-rtl {
+ direction: rtl;
+}
+
+.ui-datepicker-rtl .ui-datepicker-prev {
+ right: 2px;
+ left: auto;
+}
+
+.ui-datepicker-rtl .ui-datepicker-next {
+ left: 2px;
+ right: auto;
+}
+
+.ui-datepicker-rtl .ui-datepicker-prev:hover {
+ right: 1px;
+ left: auto;
+}
+
+.ui-datepicker-rtl .ui-datepicker-next:hover {
+ left: 1px;
+ right: auto;
+}
+
+.ui-datepicker-rtl .ui-datepicker-buttonpane {
+ clear: right;
+}
+
+.ui-datepicker-rtl .ui-datepicker-buttonpane button {
+ float: left;
+}
+
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current {
+ float: right;
+}
+
+.ui-datepicker-rtl .ui-datepicker-group {
+ float: right;
+}
+
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header {
+ border-right-width: 0;
+ border-left-width: 1px;
+}
+
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
+ border-right-width: 0;
+ border-left-width: 1px;
+}
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.ui-datepicker-cover {
+ display: none; /*sorry for IE5*/
+ display /**/: block; /*sorry for IE5*/
+ position: absolute; /*must have*/
+ z-index: -1; /*must have*/
+ filter: mask(); /*must have*/
+ top: -4px; /*must have*/
+ left: -4px; /*must have*/
+ width: 200px; /*must have*/
+ height: 200px; /*must have*/
+}
+
+/*
+* jQuery UI Progressbar 1.8.14
+*
+* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT or GPL Version 2 licenses.
+* http://jquery.org/license
+*
+* http://docs.jquery.com/UI/Progressbar#theming
+*/
+.ui-progressbar {
+ height: 2em;
+ text-align: left;
+}
+
+.ui-progressbar .ui-progressbar-value {
+ margin: -1px;
+ height: 100%;
+}
\ No newline at end of file
diff --git a/src/main/webapp/sankey/sankey/examples/energy.json b/src/main/webapp/sankey/sankey/examples/energy.json
new file mode 100644
index 000000000..972571671
--- /dev/null
+++ b/src/main/webapp/sankey/sankey/examples/energy.json
@@ -0,0 +1,488 @@
+{"nodes":[
+ {
+ "name":"Agricultural 'waste'"
+ },
+ {
+ "name":"Bio-conversion"
+ },
+ {
+ "name":"Liquid"
+ },
+ {
+ "name":"Losses"
+ },
+ {
+ "name":"Solid"
+ },
+ {
+ "name":"Gas"
+ },
+ {
+ "name":"Biofuel imports"
+ },
+ {
+ "name":"Biomass imports"
+ },
+ {
+ "name":"Coal imports"
+ },
+ {
+ "name":"Coal"
+ },
+ {
+ "name":"Coal reserves"
+ },
+ {
+ "name":"District heating"
+ },
+ {
+ "name":"Industry"
+ },
+ {
+ "name":"Heating and cooling - commercial"
+ },
+ {
+ "name":"Heating and cooling - homes"
+ },
+ {
+ "name":"Electricity grid"
+ },
+ {
+ "name":"Over generation / exports"
+ },
+ {
+ "name":"H2 conversion"
+ },
+ {
+ "name":"Road transport"
+ },
+ {
+ "name":"Agriculture"
+ },
+ {
+ "name":"Rail transport"
+ },
+ {
+ "name":"Lighting & appliances - commercial"
+ },
+ {
+ "name":"Lighting & appliances - homes"
+ },
+ {
+ "name":"Gas imports"
+ },
+ {
+ "name":"Ngas"
+ },
+ {
+ "name":"Gas reserves"
+ },
+ {
+ "name":"Thermal generation"
+ },
+ {
+ "name":"Geothermal"
+ },
+ {
+ "name":"H2"
+ },
+ {
+ "name":"Hydro"
+ },
+ {
+ "name":"International shipping"
+ },
+ {
+ "name":"Domestic aviation"
+ },
+ {
+ "name":"International aviation"
+ },
+ {
+ "name":"National navigation"
+ },
+ {
+ "name":"Marine algae"
+ },
+ {
+ "name":"Nuclear"
+ },
+ {
+ "name":"Oil imports"
+ },
+ {
+ "name":"Oil"
+ },
+ {
+ "name":"Oil reserves"
+ },
+ {
+ "name":"Other waste"
+ },
+ {
+ "name":"Pumped heat"
+ },
+ {
+ "name":"Solar PV"
+ },
+ {
+ "name":"Solar Thermal"
+ },
+ {
+ "name":"Solar"
+ },
+ {
+ "name":"Tidal"
+ },
+ {
+ "name":"UK land based bioenergy"
+ },
+ {
+ "name":"Wave"
+ },
+ {
+ "name":"Wind"
+ }
+],
+ "links":[
+ {
+ "source":0,
+ "target":1,
+ "value":124.729
+ },
+ {
+ "source":1,
+ "target":2,
+ "value":0.597
+ },
+ {
+ "source":1,
+ "target":3,
+ "value":26.862
+ },
+ {
+ "source":1,
+ "target":4,
+ "value":280.322
+ },
+ {
+ "source":1,
+ "target":5,
+ "value":81.144
+ },
+ {
+ "source":6,
+ "target":2,
+ "value":35
+ },
+ {
+ "source":7,
+ "target":4,
+ "value":35
+ },
+ {
+ "source":8,
+ "target":9,
+ "value":11.606
+ },
+ {
+ "source":10,
+ "target":9,
+ "value":63.965
+ },
+ {
+ "source":9,
+ "target":4,
+ "value":75.571
+ },
+ {
+ "source":11,
+ "target":12,
+ "value":10.639
+ },
+ {
+ "source":11,
+ "target":13,
+ "value":22.505
+ },
+ {
+ "source":11,
+ "target":14,
+ "value":46.184
+ },
+ {
+ "source":15,
+ "target":16,
+ "value":104.453
+ },
+ {
+ "source":15,
+ "target":14,
+ "value":113.726
+ },
+ {
+ "source":15,
+ "target":17,
+ "value":27.14
+ },
+ {
+ "source":15,
+ "target":12,
+ "value":342.165
+ },
+ {
+ "source":15,
+ "target":18,
+ "value":37.797
+ },
+ {
+ "source":15,
+ "target":19,
+ "value":4.412
+ },
+ {
+ "source":15,
+ "target":13,
+ "value":40.858
+ },
+ {
+ "source":15,
+ "target":3,
+ "value":56.691
+ },
+ {
+ "source":15,
+ "target":20,
+ "value":7.863
+ },
+ {
+ "source":15,
+ "target":21,
+ "value":90.008
+ },
+ {
+ "source":15,
+ "target":22,
+ "value":93.494
+ },
+ {
+ "source":23,
+ "target":24,
+ "value":40.719
+ },
+ {
+ "source":25,
+ "target":24,
+ "value":82.233
+ },
+ {
+ "source":5,
+ "target":13,
+ "value":0.129
+ },
+ {
+ "source":5,
+ "target":3,
+ "value":1.401
+ },
+ {
+ "source":5,
+ "target":26,
+ "value":151.891
+ },
+ {
+ "source":5,
+ "target":19,
+ "value":2.096
+ },
+ {
+ "source":5,
+ "target":12,
+ "value":48.58
+ },
+ {
+ "source":27,
+ "target":15,
+ "value":7.013
+ },
+ {
+ "source":17,
+ "target":28,
+ "value":20.897
+ },
+ {
+ "source":17,
+ "target":3,
+ "value":6.242
+ },
+ {
+ "source":28,
+ "target":18,
+ "value":20.897
+ },
+ {
+ "source":29,
+ "target":15,
+ "value":6.995
+ },
+ {
+ "source":2,
+ "target":12,
+ "value":121.066
+ },
+ {
+ "source":2,
+ "target":30,
+ "value":128.69
+ },
+ {
+ "source":2,
+ "target":18,
+ "value":135.835
+ },
+ {
+ "source":2,
+ "target":31,
+ "value":14.458
+ },
+ {
+ "source":2,
+ "target":32,
+ "value":206.267
+ },
+ {
+ "source":2,
+ "target":19,
+ "value":3.64
+ },
+ {
+ "source":2,
+ "target":33,
+ "value":33.218
+ },
+ {
+ "source":2,
+ "target":20,
+ "value":4.413
+ },
+ {
+ "source":34,
+ "target":1,
+ "value":4.375
+ },
+ {
+ "source":24,
+ "target":5,
+ "value":122.952
+ },
+ {
+ "source":35,
+ "target":26,
+ "value":839.978
+ },
+ {
+ "source":36,
+ "target":37,
+ "value":504.287
+ },
+ {
+ "source":38,
+ "target":37,
+ "value":107.703
+ },
+ {
+ "source":37,
+ "target":2,
+ "value":611.99
+ },
+ {
+ "source":39,
+ "target":4,
+ "value":56.587
+ },
+ {
+ "source":39,
+ "target":1,
+ "value":77.81
+ },
+ {
+ "source":40,
+ "target":14,
+ "value":193.026
+ },
+ {
+ "source":40,
+ "target":13,
+ "value":70.672
+ },
+ {
+ "source":41,
+ "target":15,
+ "value":59.901
+ },
+ {
+ "source":42,
+ "target":14,
+ "value":19.263
+ },
+ {
+ "source":43,
+ "target":42,
+ "value":19.263
+ },
+ {
+ "source":43,
+ "target":41,
+ "value":59.901
+ },
+ {
+ "source":4,
+ "target":19,
+ "value":0.882
+ },
+ {
+ "source":4,
+ "target":26,
+ "value":400.12
+ },
+ {
+ "source":4,
+ "target":12,
+ "value":46.477
+ },
+ {
+ "source":26,
+ "target":15,
+ "value":525.531
+ },
+ {
+ "source":26,
+ "target":3,
+ "value":787.129
+ },
+ {
+ "source":26,
+ "target":11,
+ "value":79.329
+ },
+ {
+ "source":44,
+ "target":15,
+ "value":9.452
+ },
+ {
+ "source":45,
+ "target":1,
+ "value":182.01
+ },
+ {
+ "source":46,
+ "target":15,
+ "value":19.013
+ },
+ {
+ "source":47,
+ "target":15,
+ "value":289.366
+ }
+ ]}
diff --git a/src/main/webapp/sankey/sankey/examples/hippo.html b/src/main/webapp/sankey/sankey/examples/hippo.html
new file mode 100644
index 000000000..7c94a2c10
--- /dev/null
+++ b/src/main/webapp/sankey/sankey/examples/hippo.html
@@ -0,0 +1,131 @@
+
+
+
+
+ Sankey Javascript Demo: Spread effort 2050 Pathway
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/webapp/sankey/sankey/examples/sankey.js b/src/main/webapp/sankey/sankey/examples/sankey.js
new file mode 100644
index 000000000..238e5376b
--- /dev/null
+++ b/src/main/webapp/sankey/sankey/examples/sankey.js
@@ -0,0 +1,298 @@
+d3.sankey = function () {
+ var sankey = {},
+ nodeWidth = 24,
+ nodePadding = 8,
+ size = [1, 1],
+ nodes = [],
+ links = [];
+
+ sankey.nodeWidth = function (_) {
+ if (!arguments.length) return nodeWidth;
+ nodeWidth = +_;
+ return sankey;
+ };
+
+ sankey.nodePadding = function (_) {
+ if (!arguments.length) return nodePadding;
+ nodePadding = +_;
+ return sankey;
+ };
+
+ sankey.nodes = function (_) {
+ if (!arguments.length) return nodes;
+ nodes = _;
+ return sankey;
+ };
+
+ sankey.links = function (_) {
+ if (!arguments.length) return links;
+ links = _;
+ return sankey;
+ };
+
+ sankey.size = function (_) {
+ if (!arguments.length) return size;
+ size = _;
+ return sankey;
+ };
+
+ sankey.layout = function (iterations) {
+ computeNodeLinks();
+ computeNodeValues();
+ computeNodeBreadths();
+ computeNodeDepths(iterations);
+ computeLinkDepths();
+ return sankey;
+ };
+
+ sankey.relayout = function () {
+ computeLinkDepths();
+ return sankey;
+ };
+
+ sankey.link = function () {
+ var curvature = .5;
+
+ function link(d) {
+ var x0 = d.source.x + d.source.dx,
+ x1 = d.target.x,
+ xi = d3.interpolateNumber(x0, x1),
+ x2 = xi(curvature),
+ x3 = xi(1 - curvature),
+ y0 = d.source.y + d.sy + d.dy / 2,
+ y1 = d.target.y + d.ty + d.dy / 2;
+ return "M" + x0 + "," + y0
+ + "C" + x2 + "," + y0
+ + " " + x3 + "," + y1
+ + " " + x1 + "," + y1;
+ }
+
+ link.curvature = function (_) {
+ if (!arguments.length) return curvature;
+ curvature = +_;
+ return link;
+ };
+
+ return link;
+ };
+
+ // Populate the sourceLinks and targetLinks for each node.
+ // Also, if the source and target are not objects, assume they are indices.
+ function computeNodeLinks() {
+ nodes.forEach(function (node) {
+ node.sourceLinks = [];
+ node.targetLinks = [];
+ });
+ links.forEach(function (link) {
+ var source = link.source,
+ target = link.target;
+ if (typeof source === "number") source = link.source = nodes[link.source];
+ if (typeof target === "number") target = link.target = nodes[link.target];
+ source.sourceLinks.push(link);
+ target.targetLinks.push(link);
+ });
+ }
+
+ // Compute the value (size) of each node by summing the associated links.
+ function computeNodeValues() {
+ nodes.forEach(function (node) {
+ node.value = Math.max(
+ d3.sum(node.sourceLinks, value),
+ d3.sum(node.targetLinks, value)
+ );
+ });
+ }
+
+ // Iteratively assign the breadth (x-position) for each node.
+ // Nodes are assigned the maximum breadth of incoming neighbors plus one;
+ // nodes with no incoming links are assigned breadth zero, while
+ // nodes with no outgoing links are assigned the maximum breadth.
+ function computeNodeBreadths() {
+ var remainingNodes = nodes,
+ nextNodes,
+ x = 0;
+
+ while (remainingNodes.length) {
+ nextNodes = [];
+ remainingNodes.forEach(function (node) {
+ node.x = x;
+ node.dx = nodeWidth;
+ node.sourceLinks.forEach(function (link) {
+ nextNodes.push(link.target);
+ });
+ });
+ remainingNodes = nextNodes;
+ ++x;
+ }
+
+ //
+ moveSinksRight(x);
+ scaleNodeBreadths((size[0] - nodeWidth) / (x - 1));
+ }
+
+ function moveSourcesRight() {
+ nodes.forEach(function (node) {
+ if (!node.targetLinks.length) {
+ node.x = d3.min(node.sourceLinks, function (d) {
+ return d.target.x;
+ }) - 1;
+ }
+ });
+ }
+
+ function moveSinksRight(x) {
+ nodes.forEach(function (node) {
+ if (!node.sourceLinks.length) {
+ node.x = x - 1;
+ }
+ });
+ }
+
+ function scaleNodeBreadths(kx) {
+ nodes.forEach(function (node) {
+ node.x *= kx;
+ });
+ }
+
+ function computeNodeDepths(iterations) {
+ var nodesByBreadth = d3.nest()
+ .key(function (d) {
+ return d.x;
+ })
+ .sortKeys(d3.ascending)
+ .entries(nodes)
+ .map(function (d) {
+ return d.values;
+ });
+
+ //
+ initializeNodeDepth();
+ resolveCollisions();
+ for (var alpha = 1; iterations > 0; --iterations) {
+ relaxRightToLeft(alpha *= .99);
+ resolveCollisions();
+ relaxLeftToRight(alpha);
+ resolveCollisions();
+ }
+
+ function initializeNodeDepth() {
+ var ky = d3.min(nodesByBreadth, function (nodes) {
+ return (size[1] - (nodes.length - 1) * nodePadding) / d3.sum(nodes, value);
+ });
+
+ nodesByBreadth.forEach(function (nodes) {
+ nodes.forEach(function (node, i) {
+ node.y = i;
+ node.dy = node.value * ky;
+ });
+ });
+
+ links.forEach(function (link) {
+ link.dy = link.value * ky;
+ });
+ }
+
+ function relaxLeftToRight(alpha) {
+ nodesByBreadth.forEach(function (nodes, breadth) {
+ nodes.forEach(function (node) {
+ if (node.targetLinks.length) {
+ var y = d3.sum(node.targetLinks, weightedSource) / d3.sum(node.targetLinks, value);
+ node.y += (y - center(node)) * alpha;
+ }
+ });
+ });
+
+ function weightedSource(link) {
+ return center(link.source) * link.value;
+ }
+ }
+
+ function relaxRightToLeft(alpha) {
+ nodesByBreadth.slice().reverse().forEach(function (nodes) {
+ nodes.forEach(function (node) {
+ if (node.sourceLinks.length) {
+ var y = d3.sum(node.sourceLinks, weightedTarget) / d3.sum(node.sourceLinks, value);
+ node.y += (y - center(node)) * alpha;
+ }
+ });
+ });
+
+ function weightedTarget(link) {
+ return center(link.target) * link.value;
+ }
+ }
+
+ function resolveCollisions() {
+ nodesByBreadth.forEach(function (nodes) {
+ var node,
+ dy,
+ y0 = 0,
+ n = nodes.length,
+ i;
+
+ // Push any overlapping nodes down.
+ nodes.sort(ascendingDepth);
+ for (i = 0; i < n; ++i) {
+ node = nodes[i];
+ dy = y0 - node.y;
+ if (dy > 0) node.y += dy;
+ y0 = node.y + node.dy + nodePadding;
+ }
+
+ // If the bottommost node goes outside the bounds, push it back up.
+ dy = y0 - nodePadding - size[1];
+ if (dy > 0) {
+ y0 = node.y -= dy;
+
+ // Push any overlapping nodes back up.
+ for (i = n - 2; i >= 0; --i) {
+ node = nodes[i];
+ dy = node.y + node.dy + nodePadding - y0;
+ if (dy > 0) node.y -= dy;
+ y0 = node.y;
+ }
+ }
+ });
+ }
+
+ function ascendingDepth(a, b) {
+ return a.y - b.y;
+ }
+ }
+
+ function computeLinkDepths() {
+ nodes.forEach(function (node) {
+ node.sourceLinks.sort(ascendingTargetDepth);
+ node.targetLinks.sort(ascendingSourceDepth);
+ });
+ nodes.forEach(function (node) {
+ var sy = 0, ty = 0;
+ node.sourceLinks.forEach(function (link) {
+ link.sy = sy;
+ sy += link.dy;
+ });
+ node.targetLinks.forEach(function (link) {
+ link.ty = ty;
+ ty += link.dy;
+ });
+ });
+
+ function ascendingSourceDepth(a, b) {
+ return a.source.y - b.source.y;
+ }
+
+ function ascendingTargetDepth(a, b) {
+ return a.target.y - b.target.y;
+ }
+ }
+
+ function center(node) {
+ return node.y + node.dy / 2;
+ }
+
+ function value(link) {
+ return link.value;
+ }
+
+ return sankey;
+};
diff --git a/src/main/webapp/sankey/sankey/examples/simple.html b/src/main/webapp/sankey/sankey/examples/simple.html
new file mode 100644
index 000000000..57f09880b
--- /dev/null
+++ b/src/main/webapp/sankey/sankey/examples/simple.html
@@ -0,0 +1,36 @@
+
+
+
+
+ Sankey Javascript Demo: Spread effort 2050 Pathway
+
+
+
+
+
+
+A very simple Sankey Diagram
+
+Move your mouse over the diagram to show values
+
+
+
+
+
diff --git a/src/main/webapp/sankey/sankey/examples/slider.html b/src/main/webapp/sankey/sankey/examples/slider.html
new file mode 100644
index 000000000..2c2734512
--- /dev/null
+++ b/src/main/webapp/sankey/sankey/examples/slider.html
@@ -0,0 +1,57 @@
+
+
+
+
+ Sankey Javascript Demo: Spread effort 2050 Pathway
+
+
+
+
+
+
+
+
+A very simple Sankey Diagram with a slider
+
+Move your mouse over the diagram to show values.
+Use this slider to adjust the width of the top flow
+
+
+
+
+
+
+
diff --git a/src/main/webapp/sankey/sankey/ext/jquery-ui.js b/src/main/webapp/sankey/sankey/ext/jquery-ui.js
new file mode 100644
index 000000000..10369aa5b
--- /dev/null
+++ b/src/main/webapp/sankey/sankey/ext/jquery-ui.js
@@ -0,0 +1,5967 @@
+/*!
+ * jQuery UI 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI
+ */
+(function (c, j) {
+ function k(a, b) {
+ var d = a.nodeName.toLowerCase();
+ if ("area" === d) {
+ b = a.parentNode;
+ d = b.name;
+ if (!a.href || !d || b.nodeName.toLowerCase() !== "map")return false;
+ a = c("img[usemap=#" + d + "]")[0];
+ return!!a && l(a)
+ }
+ return(/input|select|textarea|button|object/.test(d) ? !a.disabled : "a" == d ? a.href || b : b) && l(a)
+ }
+
+ function l(a) {
+ return!c(a).parents().andSelf().filter(function () {
+ return c.curCSS(this, "visibility") === "hidden" || c.expr.filters.hidden(this)
+ }).length
+ }
+
+ c.ui = c.ui || {};
+ if (!c.ui.version) {
+ c.extend(c.ui, {version:"1.8.14",
+ keyCode:{ALT:18, BACKSPACE:8, CAPS_LOCK:20, COMMA:188, COMMAND:91, COMMAND_LEFT:91, COMMAND_RIGHT:93, CONTROL:17, DELETE:46, DOWN:40, END:35, ENTER:13, ESCAPE:27, HOME:36, INSERT:45, LEFT:37, MENU:93, NUMPAD_ADD:107, NUMPAD_DECIMAL:110, NUMPAD_DIVIDE:111, NUMPAD_ENTER:108, NUMPAD_MULTIPLY:106, NUMPAD_SUBTRACT:109, PAGE_DOWN:34, PAGE_UP:33, PERIOD:190, RIGHT:39, SHIFT:16, SPACE:32, TAB:9, UP:38, WINDOWS:91}});
+ c.fn.extend({_focus:c.fn.focus, focus:function (a, b) {
+ return typeof a === "number" ? this.each(function () {
+ var d = this;
+ setTimeout(function () {
+ c(d).focus();
+ b && b.call(d)
+ }, a)
+ }) : this._focus.apply(this, arguments)
+ }, scrollParent:function () {
+ var a;
+ a = c.browser.msie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? this.parents().filter(function () {
+ return/(relative|absolute|fixed)/.test(c.curCSS(this, "position", 1)) && /(auto|scroll)/.test(c.curCSS(this, "overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x", 1))
+ }).eq(0) : this.parents().filter(function () {
+ return/(auto|scroll)/.test(c.curCSS(this, "overflow", 1) + c.curCSS(this,
+ "overflow-y", 1) + c.curCSS(this, "overflow-x", 1))
+ }).eq(0);
+ return/fixed/.test(this.css("position")) || !a.length ? c(document) : a
+ }, zIndex:function (a) {
+ if (a !== j)return this.css("zIndex", a);
+ if (this.length) {
+ a = c(this[0]);
+ for (var b; a.length && a[0] !== document;) {
+ b = a.css("position");
+ if (b === "absolute" || b === "relative" || b === "fixed") {
+ b = parseInt(a.css("zIndex"), 10);
+ if (!isNaN(b) && b !== 0)return b
+ }
+ a = a.parent()
+ }
+ }
+ return 0
+ }, disableSelection:function () {
+ return this.bind((c.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection",
+ function (a) {
+ a.preventDefault()
+ })
+ }, enableSelection:function () {
+ return this.unbind(".ui-disableSelection")
+ }});
+ c.each(["Width", "Height"], function (a, b) {
+ function d(f, g, m, n) {
+ c.each(e, function () {
+ g -= parseFloat(c.curCSS(f, "padding" + this, true)) || 0;
+ if (m)g -= parseFloat(c.curCSS(f, "border" + this + "Width", true)) || 0;
+ if (n)g -= parseFloat(c.curCSS(f, "margin" + this, true)) || 0
+ });
+ return g
+ }
+
+ var e = b === "Width" ? ["Left", "Right"] : ["Top", "Bottom"], h = b.toLowerCase(), i = {innerWidth:c.fn.innerWidth, innerHeight:c.fn.innerHeight, outerWidth:c.fn.outerWidth,
+ outerHeight:c.fn.outerHeight};
+ c.fn["inner" + b] = function (f) {
+ if (f === j)return i["inner" + b].call(this);
+ return this.each(function () {
+ c(this).css(h, d(this, f) + "px")
+ })
+ };
+ c.fn["outer" + b] = function (f, g) {
+ if (typeof f !== "number")return i["outer" + b].call(this, f);
+ return this.each(function () {
+ c(this).css(h, d(this, f, true, g) + "px")
+ })
+ }
+ });
+ c.extend(c.expr[":"], {data:function (a, b, d) {
+ return!!c.data(a, d[3])
+ }, focusable:function (a) {
+ return k(a, !isNaN(c.attr(a, "tabindex")))
+ }, tabbable:function (a) {
+ var b = c.attr(a, "tabindex"), d = isNaN(b);
+ return(d || b >= 0) && k(a, !d)
+ }});
+ c(function () {
+ var a = document.body, b = a.appendChild(b = document.createElement("div"));
+ c.extend(b.style, {minHeight:"100px", height:"auto", padding:0, borderWidth:0});
+ c.support.minHeight = b.offsetHeight === 100;
+ c.support.selectstart = "onselectstart"in b;
+ a.removeChild(b).style.display = "none"
+ });
+ c.extend(c.ui, {plugin:{add:function (a, b, d) {
+ a = c.ui[a].prototype;
+ for (var e in d) {
+ a.plugins[e] = a.plugins[e] || [];
+ a.plugins[e].push([b, d[e]])
+ }
+ }, call:function (a, b, d) {
+ if ((b = a.plugins[b]) && a.element[0].parentNode)for (var e =
+ 0; e < b.length; e++)a.options[b[e][0]] && b[e][1].apply(a.element, d)
+ }}, contains:function (a, b) {
+ return document.compareDocumentPosition ? a.compareDocumentPosition(b) & 16 : a !== b && a.contains(b)
+ }, hasScroll:function (a, b) {
+ if (c(a).css("overflow") === "hidden")return false;
+ b = b && b === "left" ? "scrollLeft" : "scrollTop";
+ var d = false;
+ if (a[b] > 0)return true;
+ a[b] = 1;
+ d = a[b] > 0;
+ a[b] = 0;
+ return d
+ }, isOverAxis:function (a, b, d) {
+ return a > b && a < b + d
+ }, isOver:function (a, b, d, e, h, i) {
+ return c.ui.isOverAxis(a, d, h) && c.ui.isOverAxis(b, e, i)
+ }})
+ }
+})(jQuery);
+;
+/*!
+ * jQuery UI Widget 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Widget
+ */
+(function (b, j) {
+ if (b.cleanData) {
+ var k = b.cleanData;
+ b.cleanData = function (a) {
+ for (var c = 0, d; (d = a[c]) != null; c++)b(d).triggerHandler("remove");
+ k(a)
+ }
+ } else {
+ var l = b.fn.remove;
+ b.fn.remove = function (a, c) {
+ return this.each(function () {
+ if (!c)if (!a || b.filter(a, [this]).length)b("*", this).add([this]).each(function () {
+ b(this).triggerHandler("remove")
+ });
+ return l.call(b(this), a, c)
+ })
+ }
+ }
+ b.widget = function (a, c, d) {
+ var e = a.split(".")[0], f;
+ a = a.split(".")[1];
+ f = e + "-" + a;
+ if (!d) {
+ d = c;
+ c = b.Widget
+ }
+ b.expr[":"][f] = function (h) {
+ return!!b.data(h,
+ a)
+ };
+ b[e] = b[e] || {};
+ b[e][a] = function (h, g) {
+ arguments.length && this._createWidget(h, g)
+ };
+ c = new c;
+ c.options = b.extend(true, {}, c.options);
+ b[e][a].prototype = b.extend(true, c, {namespace:e, widgetName:a, widgetEventPrefix:b[e][a].prototype.widgetEventPrefix || a, widgetBaseClass:f}, d);
+ b.widget.bridge(a, b[e][a])
+ };
+ b.widget.bridge = function (a, c) {
+ b.fn[a] = function (d) {
+ var e = typeof d === "string", f = Array.prototype.slice.call(arguments, 1), h = this;
+ d = !e && f.length ? b.extend.apply(null, [true, d].concat(f)) : d;
+ if (e && d.charAt(0) === "_")return h;
+ e ? this.each(function () {
+ var g = b.data(this, a), i = g && b.isFunction(g[d]) ? g[d].apply(g, f) : g;
+ if (i !== g && i !== j) {
+ h = i;
+ return false
+ }
+ }) : this.each(function () {
+ var g = b.data(this, a);
+ g ? g.option(d || {})._init() : b.data(this, a, new c(d, this))
+ });
+ return h
+ }
+ };
+ b.Widget = function (a, c) {
+ arguments.length && this._createWidget(a, c)
+ };
+ b.Widget.prototype = {widgetName:"widget", widgetEventPrefix:"", options:{disabled:false}, _createWidget:function (a, c) {
+ b.data(c, this.widgetName, this);
+ this.element = b(c);
+ this.options = b.extend(true, {}, this.options,
+ this._getCreateOptions(), a);
+ var d = this;
+ this.element.bind("remove." + this.widgetName, function () {
+ d.destroy()
+ });
+ this._create();
+ this._trigger("create");
+ this._init()
+ }, _getCreateOptions:function () {
+ return b.metadata && b.metadata.get(this.element[0])[this.widgetName]
+ }, _create:function () {
+ }, _init:function () {
+ }, destroy:function () {
+ this.element.unbind("." + this.widgetName).removeData(this.widgetName);
+ this.widget().unbind("." + this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass + "-disabled ui-state-disabled")
+ },
+ widget:function () {
+ return this.element
+ }, option:function (a, c) {
+ var d = a;
+ if (arguments.length === 0)return b.extend({}, this.options);
+ if (typeof a === "string") {
+ if (c === j)return this.options[a];
+ d = {};
+ d[a] = c
+ }
+ this._setOptions(d);
+ return this
+ }, _setOptions:function (a) {
+ var c = this;
+ b.each(a, function (d, e) {
+ c._setOption(d, e)
+ });
+ return this
+ }, _setOption:function (a, c) {
+ this.options[a] = c;
+ if (a === "disabled")this.widget()[c ? "addClass" : "removeClass"](this.widgetBaseClass + "-disabled ui-state-disabled").attr("aria-disabled", c);
+ return this
+ },
+ enable:function () {
+ return this._setOption("disabled", false)
+ }, disable:function () {
+ return this._setOption("disabled", true)
+ }, _trigger:function (a, c, d) {
+ var e = this.options[a];
+ c = b.Event(c);
+ c.type = (a === this.widgetEventPrefix ? a : this.widgetEventPrefix + a).toLowerCase();
+ d = d || {};
+ if (c.originalEvent) {
+ a = b.event.props.length;
+ for (var f; a;) {
+ f = b.event.props[--a];
+ c[f] = c.originalEvent[f]
+ }
+ }
+ this.element.trigger(c, d);
+ return!(b.isFunction(e) && e.call(this.element[0], c, d) === false || c.isDefaultPrevented())
+ }}
+})(jQuery);
+;
+/*!
+ * jQuery UI Mouse 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Mouse
+ *
+ * Depends:
+ * jquery.ui.widget.js
+ */
+(function (b) {
+ var d = false;
+ b(document).mousedown(function () {
+ d = false
+ });
+ b.widget("ui.mouse", {options:{cancel:":input,option", distance:1, delay:0}, _mouseInit:function () {
+ var a = this;
+ this.element.bind("mousedown." + this.widgetName,function (c) {
+ return a._mouseDown(c)
+ }).bind("click." + this.widgetName, function (c) {
+ if (true === b.data(c.target, a.widgetName + ".preventClickEvent")) {
+ b.removeData(c.target, a.widgetName + ".preventClickEvent");
+ c.stopImmediatePropagation();
+ return false
+ }
+ });
+ this.started = false
+ }, _mouseDestroy:function () {
+ this.element.unbind("." +
+ this.widgetName)
+ }, _mouseDown:function (a) {
+ if (!d) {
+ this._mouseStarted && this._mouseUp(a);
+ this._mouseDownEvent = a;
+ var c = this, f = a.which == 1, g = typeof this.options.cancel == "string" ? b(a.target).closest(this.options.cancel).length : false;
+ if (!f || g || !this._mouseCapture(a))return true;
+ this.mouseDelayMet = !this.options.delay;
+ if (!this.mouseDelayMet)this._mouseDelayTimer = setTimeout(function () {
+ c.mouseDelayMet = true
+ }, this.options.delay);
+ if (this._mouseDistanceMet(a) && this._mouseDelayMet(a)) {
+ this._mouseStarted = this._mouseStart(a) !==
+ false;
+ if (!this._mouseStarted) {
+ a.preventDefault();
+ return true
+ }
+ }
+ true === b.data(a.target, this.widgetName + ".preventClickEvent") && b.removeData(a.target, this.widgetName + ".preventClickEvent");
+ this._mouseMoveDelegate = function (e) {
+ return c._mouseMove(e)
+ };
+ this._mouseUpDelegate = function (e) {
+ return c._mouseUp(e)
+ };
+ b(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate);
+ a.preventDefault();
+ return d = true
+ }
+ }, _mouseMove:function (a) {
+ if (b.browser.msie &&
+ !(document.documentMode >= 9) && !a.button)return this._mouseUp(a);
+ if (this._mouseStarted) {
+ this._mouseDrag(a);
+ return a.preventDefault()
+ }
+ if (this._mouseDistanceMet(a) && this._mouseDelayMet(a))(this._mouseStarted = this._mouseStart(this._mouseDownEvent, a) !== false) ? this._mouseDrag(a) : this._mouseUp(a);
+ return!this._mouseStarted
+ }, _mouseUp:function (a) {
+ b(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate);
+ if (this._mouseStarted) {
+ this._mouseStarted =
+ false;
+ a.target == this._mouseDownEvent.target && b.data(a.target, this.widgetName + ".preventClickEvent", true);
+ this._mouseStop(a)
+ }
+ return false
+ }, _mouseDistanceMet:function (a) {
+ return Math.max(Math.abs(this._mouseDownEvent.pageX - a.pageX), Math.abs(this._mouseDownEvent.pageY - a.pageY)) >= this.options.distance
+ }, _mouseDelayMet:function () {
+ return this.mouseDelayMet
+ }, _mouseStart:function () {
+ }, _mouseDrag:function () {
+ }, _mouseStop:function () {
+ }, _mouseCapture:function () {
+ return true
+ }})
+})(jQuery);
+;
+/*
+ * jQuery UI Position 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Position
+ */
+(function (c) {
+ c.ui = c.ui || {};
+ var n = /left|center|right/, o = /top|center|bottom/, t = c.fn.position, u = c.fn.offset;
+ c.fn.position = function (b) {
+ if (!b || !b.of)return t.apply(this, arguments);
+ b = c.extend({}, b);
+ var a = c(b.of), d = a[0], g = (b.collision || "flip").split(" "), e = b.offset ? b.offset.split(" ") : [0, 0], h, k, j;
+ if (d.nodeType === 9) {
+ h = a.width();
+ k = a.height();
+ j = {top:0, left:0}
+ } else if (d.setTimeout) {
+ h = a.width();
+ k = a.height();
+ j = {top:a.scrollTop(), left:a.scrollLeft()}
+ } else if (d.preventDefault) {
+ b.at = "left top";
+ h = k = 0;
+ j = {top:b.of.pageY,
+ left:b.of.pageX}
+ } else {
+ h = a.outerWidth();
+ k = a.outerHeight();
+ j = a.offset()
+ }
+ c.each(["my", "at"], function () {
+ var f = (b[this] || "").split(" ");
+ if (f.length === 1)f = n.test(f[0]) ? f.concat(["center"]) : o.test(f[0]) ? ["center"].concat(f) : ["center", "center"];
+ f[0] = n.test(f[0]) ? f[0] : "center";
+ f[1] = o.test(f[1]) ? f[1] : "center";
+ b[this] = f
+ });
+ if (g.length === 1)g[1] = g[0];
+ e[0] = parseInt(e[0], 10) || 0;
+ if (e.length === 1)e[1] = e[0];
+ e[1] = parseInt(e[1], 10) || 0;
+ if (b.at[0] === "right")j.left += h; else if (b.at[0] === "center")j.left += h / 2;
+ if (b.at[1] === "bottom")j.top +=
+ k; else if (b.at[1] === "center")j.top += k / 2;
+ j.left += e[0];
+ j.top += e[1];
+ return this.each(function () {
+ var f = c(this), l = f.outerWidth(), m = f.outerHeight(), p = parseInt(c.curCSS(this, "marginLeft", true)) || 0, q = parseInt(c.curCSS(this, "marginTop", true)) || 0, v = l + p + (parseInt(c.curCSS(this, "marginRight", true)) || 0), w = m + q + (parseInt(c.curCSS(this, "marginBottom", true)) || 0), i = c.extend({}, j), r;
+ if (b.my[0] === "right")i.left -= l; else if (b.my[0] === "center")i.left -= l / 2;
+ if (b.my[1] === "bottom")i.top -= m; else if (b.my[1] === "center")i.top -=
+ m / 2;
+ i.left = Math.round(i.left);
+ i.top = Math.round(i.top);
+ r = {left:i.left - p, top:i.top - q};
+ c.each(["left", "top"], function (s, x) {
+ c.ui.position[g[s]] && c.ui.position[g[s]][x](i, {targetWidth:h, targetHeight:k, elemWidth:l, elemHeight:m, collisionPosition:r, collisionWidth:v, collisionHeight:w, offset:e, my:b.my, at:b.at})
+ });
+ c.fn.bgiframe && f.bgiframe();
+ f.offset(c.extend(i, {using:b.using}))
+ })
+ };
+ c.ui.position = {fit:{left:function (b, a) {
+ var d = c(window);
+ d = a.collisionPosition.left + a.collisionWidth - d.width() - d.scrollLeft();
+ b.left =
+ d > 0 ? b.left - d : Math.max(b.left - a.collisionPosition.left, b.left)
+ }, top:function (b, a) {
+ var d = c(window);
+ d = a.collisionPosition.top + a.collisionHeight - d.height() - d.scrollTop();
+ b.top = d > 0 ? b.top - d : Math.max(b.top - a.collisionPosition.top, b.top)
+ }}, flip:{left:function (b, a) {
+ if (a.at[0] !== "center") {
+ var d = c(window);
+ d = a.collisionPosition.left + a.collisionWidth - d.width() - d.scrollLeft();
+ var g = a.my[0] === "left" ? -a.elemWidth : a.my[0] === "right" ? a.elemWidth : 0, e = a.at[0] === "left" ? a.targetWidth : -a.targetWidth, h = -2 * a.offset[0];
+ b.left +=
+ a.collisionPosition.left < 0 ? g + e + h : d > 0 ? g + e + h : 0
+ }
+ }, top:function (b, a) {
+ if (a.at[1] !== "center") {
+ var d = c(window);
+ d = a.collisionPosition.top + a.collisionHeight - d.height() - d.scrollTop();
+ var g = a.my[1] === "top" ? -a.elemHeight : a.my[1] === "bottom" ? a.elemHeight : 0, e = a.at[1] === "top" ? a.targetHeight : -a.targetHeight, h = -2 * a.offset[1];
+ b.top += a.collisionPosition.top < 0 ? g + e + h : d > 0 ? g + e + h : 0
+ }
+ }}};
+ if (!c.offset.setOffset) {
+ c.offset.setOffset = function (b, a) {
+ if (/static/.test(c.curCSS(b, "position")))b.style.position = "relative";
+ var d = c(b),
+ g = d.offset(), e = parseInt(c.curCSS(b, "top", true), 10) || 0, h = parseInt(c.curCSS(b, "left", true), 10) || 0;
+ g = {top:a.top - g.top + e, left:a.left - g.left + h};
+ "using"in a ? a.using.call(b, g) : d.css(g)
+ };
+ c.fn.offset = function (b) {
+ var a = this[0];
+ if (!a || !a.ownerDocument)return null;
+ if (b)return this.each(function () {
+ c.offset.setOffset(this, b)
+ });
+ return u.call(this)
+ }
+ }
+})(jQuery);
+;
+/*
+ * jQuery UI Draggable 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Draggables
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.mouse.js
+ * jquery.ui.widget.js
+ */
+(function (d) {
+ d.widget("ui.draggable", d.ui.mouse, {widgetEventPrefix:"drag", options:{addClasses:true, appendTo:"parent", axis:false, connectToSortable:false, containment:false, cursor:"auto", cursorAt:false, grid:false, handle:false, helper:"original", iframeFix:false, opacity:false, refreshPositions:false, revert:false, revertDuration:500, scope:"default", scroll:true, scrollSensitivity:20, scrollSpeed:20, snap:false, snapMode:"both", snapTolerance:20, stack:false, zIndex:false}, _create:function () {
+ if (this.options.helper ==
+ "original" && !/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position = "relative";
+ this.options.addClasses && this.element.addClass("ui-draggable");
+ this.options.disabled && this.element.addClass("ui-draggable-disabled");
+ this._mouseInit()
+ }, destroy:function () {
+ if (this.element.data("draggable")) {
+ this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");
+ this._mouseDestroy();
+ return this
+ }
+ }, _mouseCapture:function (a) {
+ var b =
+ this.options;
+ if (this.helper || b.disabled || d(a.target).is(".ui-resizable-handle"))return false;
+ this.handle = this._getHandle(a);
+ if (!this.handle)return false;
+ d(b.iframeFix === true ? "iframe" : b.iframeFix).each(function () {
+ d('
').css({width:this.offsetWidth + "px", height:this.offsetHeight + "px", position:"absolute", opacity:"0.001", zIndex:1E3}).css(d(this).offset()).appendTo("body")
+ });
+ return true
+ }, _mouseStart:function (a) {
+ var b = this.options;
+ this.helper =
+ this._createHelper(a);
+ this._cacheHelperProportions();
+ if (d.ui.ddmanager)d.ui.ddmanager.current = this;
+ this._cacheMargins();
+ this.cssPosition = this.helper.css("position");
+ this.scrollParent = this.helper.scrollParent();
+ this.offset = this.positionAbs = this.element.offset();
+ this.offset = {top:this.offset.top - this.margins.top, left:this.offset.left - this.margins.left};
+ d.extend(this.offset, {click:{left:a.pageX - this.offset.left, top:a.pageY - this.offset.top}, parent:this._getParentOffset(), relative:this._getRelativeOffset()});
+ this.originalPosition = this.position = this._generatePosition(a);
+ this.originalPageX = a.pageX;
+ this.originalPageY = a.pageY;
+ b.cursorAt && this._adjustOffsetFromHelper(b.cursorAt);
+ b.containment && this._setContainment();
+ if (this._trigger("start", a) === false) {
+ this._clear();
+ return false
+ }
+ this._cacheHelperProportions();
+ d.ui.ddmanager && !b.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a);
+ this.helper.addClass("ui-draggable-dragging");
+ this._mouseDrag(a, true);
+ d.ui.ddmanager && d.ui.ddmanager.dragStart(this, a);
+ return true
+ },
+ _mouseDrag:function (a, b) {
+ this.position = this._generatePosition(a);
+ this.positionAbs = this._convertPositionTo("absolute");
+ if (!b) {
+ b = this._uiHash();
+ if (this._trigger("drag", a, b) === false) {
+ this._mouseUp({});
+ return false
+ }
+ this.position = b.position
+ }
+ if (!this.options.axis || this.options.axis != "y")this.helper[0].style.left = this.position.left + "px";
+ if (!this.options.axis || this.options.axis != "x")this.helper[0].style.top = this.position.top + "px";
+ d.ui.ddmanager && d.ui.ddmanager.drag(this, a);
+ return false
+ }, _mouseStop:function (a) {
+ var b =
+ false;
+ if (d.ui.ddmanager && !this.options.dropBehaviour)b = d.ui.ddmanager.drop(this, a);
+ if (this.dropped) {
+ b = this.dropped;
+ this.dropped = false
+ }
+ if ((!this.element[0] || !this.element[0].parentNode) && this.options.helper == "original")return false;
+ if (this.options.revert == "invalid" && !b || this.options.revert == "valid" && b || this.options.revert === true || d.isFunction(this.options.revert) && this.options.revert.call(this.element, b)) {
+ var c = this;
+ d(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration,
+ 10), function () {
+ c._trigger("stop", a) !== false && c._clear()
+ })
+ } else this._trigger("stop", a) !== false && this._clear();
+ return false
+ }, _mouseUp:function (a) {
+ this.options.iframeFix === true && d("div.ui-draggable-iframeFix").each(function () {
+ this.parentNode.removeChild(this)
+ });
+ d.ui.ddmanager && d.ui.ddmanager.dragStop(this, a);
+ return d.ui.mouse.prototype._mouseUp.call(this, a)
+ }, cancel:function () {
+ this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear();
+ return this
+ }, _getHandle:function (a) {
+ var b = !this.options.handle ||
+ !d(this.options.handle, this.element).length ? true : false;
+ d(this.options.handle, this.element).find("*").andSelf().each(function () {
+ if (this == a.target)b = true
+ });
+ return b
+ }, _createHelper:function (a) {
+ var b = this.options;
+ a = d.isFunction(b.helper) ? d(b.helper.apply(this.element[0], [a])) : b.helper == "clone" ? this.element.clone().removeAttr("id") : this.element;
+ a.parents("body").length || a.appendTo(b.appendTo == "parent" ? this.element[0].parentNode : b.appendTo);
+ a[0] != this.element[0] && !/(fixed|absolute)/.test(a.css("position")) &&
+ a.css("position", "absolute");
+ return a
+ }, _adjustOffsetFromHelper:function (a) {
+ if (typeof a == "string")a = a.split(" ");
+ if (d.isArray(a))a = {left:+a[0], top:+a[1] || 0};
+ if ("left"in a)this.offset.click.left = a.left + this.margins.left;
+ if ("right"in a)this.offset.click.left = this.helperProportions.width - a.right + this.margins.left;
+ if ("top"in a)this.offset.click.top = a.top + this.margins.top;
+ if ("bottom"in a)this.offset.click.top = this.helperProportions.height - a.bottom + this.margins.top
+ }, _getParentOffset:function () {
+ this.offsetParent =
+ this.helper.offsetParent();
+ var a = this.offsetParent.offset();
+ if (this.cssPosition == "absolute" && this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) {
+ a.left += this.scrollParent.scrollLeft();
+ a.top += this.scrollParent.scrollTop()
+ }
+ if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && d.browser.msie)a = {top:0, left:0};
+ return{top:a.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), left:a.left + (parseInt(this.offsetParent.css("borderLeftWidth"),
+ 10) || 0)}
+ }, _getRelativeOffset:function () {
+ if (this.cssPosition == "relative") {
+ var a = this.element.position();
+ return{top:a.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), left:a.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()}
+ } else return{top:0, left:0}
+ }, _cacheMargins:function () {
+ this.margins = {left:parseInt(this.element.css("marginLeft"), 10) || 0, top:parseInt(this.element.css("marginTop"), 10) || 0, right:parseInt(this.element.css("marginRight"), 10) || 0, bottom:parseInt(this.element.css("marginBottom"),
+ 10) || 0}
+ }, _cacheHelperProportions:function () {
+ this.helperProportions = {width:this.helper.outerWidth(), height:this.helper.outerHeight()}
+ }, _setContainment:function () {
+ var a = this.options;
+ if (a.containment == "parent")a.containment = this.helper[0].parentNode;
+ if (a.containment == "document" || a.containment == "window")this.containment = [a.containment == "document" ? 0 : d(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, a.containment == "document" ? 0 : d(window).scrollTop() - this.offset.relative.top - this.offset.parent.top,
+ (a.containment == "document" ? 0 : d(window).scrollLeft()) + d(a.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (a.containment == "document" ? 0 : d(window).scrollTop()) + (d(a.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top];
+ if (!/^(document|window|parent)$/.test(a.containment) && a.containment.constructor != Array) {
+ a = d(a.containment);
+ var b = a[0];
+ if (b) {
+ a.offset();
+ var c = d(b).css("overflow") !=
+ "hidden";
+ this.containment = [(parseInt(d(b).css("borderLeftWidth"), 10) || 0) + (parseInt(d(b).css("paddingLeft"), 10) || 0), (parseInt(d(b).css("borderTopWidth"), 10) || 0) + (parseInt(d(b).css("paddingTop"), 10) || 0), (c ? Math.max(b.scrollWidth, b.offsetWidth) : b.offsetWidth) - (parseInt(d(b).css("borderLeftWidth"), 10) || 0) - (parseInt(d(b).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (c ? Math.max(b.scrollHeight, b.offsetHeight) : b.offsetHeight) - (parseInt(d(b).css("borderTopWidth"),
+ 10) || 0) - (parseInt(d(b).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom];
+ this.relative_container = a
+ }
+ } else if (a.containment.constructor == Array)this.containment = a.containment
+ }, _convertPositionTo:function (a, b) {
+ if (!b)b = this.position;
+ a = a == "absolute" ? 1 : -1;
+ var c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, f = /(html|body)/i.test(c[0].tagName);
+ return{top:b.top +
+ this.offset.relative.top * a + this.offset.parent.top * a - (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : f ? 0 : c.scrollTop()) * a), left:b.left + this.offset.relative.left * a + this.offset.parent.left * a - (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : f ? 0 : c.scrollLeft()) * a)}
+ }, _generatePosition:function (a) {
+ var b = this.options, c = this.cssPosition == "absolute" &&
+ !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, f = /(html|body)/i.test(c[0].tagName), e = a.pageX, h = a.pageY;
+ if (this.originalPosition) {
+ var g;
+ if (this.containment) {
+ if (this.relative_container) {
+ g = this.relative_container.offset();
+ g = [this.containment[0] + g.left, this.containment[1] + g.top, this.containment[2] + g.left, this.containment[3] + g.top]
+ } else g = this.containment;
+ if (a.pageX - this.offset.click.left < g[0])e = g[0] + this.offset.click.left;
+ if (a.pageY - this.offset.click.top < g[1])h = g[1] + this.offset.click.top;
+ if (a.pageX - this.offset.click.left > g[2])e = g[2] + this.offset.click.left;
+ if (a.pageY - this.offset.click.top > g[3])h = g[3] + this.offset.click.top
+ }
+ if (b.grid) {
+ h = b.grid[1] ? this.originalPageY + Math.round((h - this.originalPageY) / b.grid[1]) * b.grid[1] : this.originalPageY;
+ h = g ? !(h - this.offset.click.top < g[1] || h - this.offset.click.top > g[3]) ? h : !(h - this.offset.click.top < g[1]) ? h - b.grid[1] : h + b.grid[1] : h;
+ e = b.grid[0] ? this.originalPageX + Math.round((e - this.originalPageX) /
+ b.grid[0]) * b.grid[0] : this.originalPageX;
+ e = g ? !(e - this.offset.click.left < g[0] || e - this.offset.click.left > g[2]) ? e : !(e - this.offset.click.left < g[0]) ? e - b.grid[0] : e + b.grid[0] : e
+ }
+ }
+ return{top:h - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : f ? 0 : c.scrollTop()), left:e - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (d.browser.safari && d.browser.version <
+ 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : f ? 0 : c.scrollLeft())}
+ }, _clear:function () {
+ this.helper.removeClass("ui-draggable-dragging");
+ this.helper[0] != this.element[0] && !this.cancelHelperRemoval && this.helper.remove();
+ this.helper = null;
+ this.cancelHelperRemoval = false
+ }, _trigger:function (a, b, c) {
+ c = c || this._uiHash();
+ d.ui.plugin.call(this, a, [b, c]);
+ if (a == "drag")this.positionAbs = this._convertPositionTo("absolute");
+ return d.Widget.prototype._trigger.call(this, a, b,
+ c)
+ }, plugins:{}, _uiHash:function () {
+ return{helper:this.helper, position:this.position, originalPosition:this.originalPosition, offset:this.positionAbs}
+ }});
+ d.extend(d.ui.draggable, {version:"1.8.14"});
+ d.ui.plugin.add("draggable", "connectToSortable", {start:function (a, b) {
+ var c = d(this).data("draggable"), f = c.options, e = d.extend({}, b, {item:c.element});
+ c.sortables = [];
+ d(f.connectToSortable).each(function () {
+ var h = d.data(this, "sortable");
+ if (h && !h.options.disabled) {
+ c.sortables.push({instance:h, shouldRevert:h.options.revert});
+ h.refreshPositions();
+ h._trigger("activate", a, e)
+ }
+ })
+ }, stop:function (a, b) {
+ var c = d(this).data("draggable"), f = d.extend({}, b, {item:c.element});
+ d.each(c.sortables, function () {
+ if (this.instance.isOver) {
+ this.instance.isOver = 0;
+ c.cancelHelperRemoval = true;
+ this.instance.cancelHelperRemoval = false;
+ if (this.shouldRevert)this.instance.options.revert = true;
+ this.instance._mouseStop(a);
+ this.instance.options.helper = this.instance.options._helper;
+ c.options.helper == "original" && this.instance.currentItem.css({top:"auto", left:"auto"})
+ } else {
+ this.instance.cancelHelperRemoval =
+ false;
+ this.instance._trigger("deactivate", a, f)
+ }
+ })
+ }, drag:function (a, b) {
+ var c = d(this).data("draggable"), f = this;
+ d.each(c.sortables, function () {
+ this.instance.positionAbs = c.positionAbs;
+ this.instance.helperProportions = c.helperProportions;
+ this.instance.offset.click = c.offset.click;
+ if (this.instance._intersectsWith(this.instance.containerCache)) {
+ if (!this.instance.isOver) {
+ this.instance.isOver = 1;
+ this.instance.currentItem = d(f).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item", true);
+ this.instance.options._helper = this.instance.options.helper;
+ this.instance.options.helper = function () {
+ return b.helper[0]
+ };
+ a.target = this.instance.currentItem[0];
+ this.instance._mouseCapture(a, true);
+ this.instance._mouseStart(a, true, true);
+ this.instance.offset.click.top = c.offset.click.top;
+ this.instance.offset.click.left = c.offset.click.left;
+ this.instance.offset.parent.left -= c.offset.parent.left - this.instance.offset.parent.left;
+ this.instance.offset.parent.top -= c.offset.parent.top - this.instance.offset.parent.top;
+ c._trigger("toSortable", a);
+ c.dropped = this.instance.element;
+ c.currentItem = c.element;
+ this.instance.fromOutside = c
+ }
+ this.instance.currentItem && this.instance._mouseDrag(a)
+ } else if (this.instance.isOver) {
+ this.instance.isOver = 0;
+ this.instance.cancelHelperRemoval = true;
+ this.instance.options.revert = false;
+ this.instance._trigger("out", a, this.instance._uiHash(this.instance));
+ this.instance._mouseStop(a, true);
+ this.instance.options.helper = this.instance.options._helper;
+ this.instance.currentItem.remove();
+ this.instance.placeholder &&
+ this.instance.placeholder.remove();
+ c._trigger("fromSortable", a);
+ c.dropped = false
+ }
+ })
+ }});
+ d.ui.plugin.add("draggable", "cursor", {start:function () {
+ var a = d("body"), b = d(this).data("draggable").options;
+ if (a.css("cursor"))b._cursor = a.css("cursor");
+ a.css("cursor", b.cursor)
+ }, stop:function () {
+ var a = d(this).data("draggable").options;
+ a._cursor && d("body").css("cursor", a._cursor)
+ }});
+ d.ui.plugin.add("draggable", "opacity", {start:function (a, b) {
+ a = d(b.helper);
+ b = d(this).data("draggable").options;
+ if (a.css("opacity"))b._opacity =
+ a.css("opacity");
+ a.css("opacity", b.opacity)
+ }, stop:function (a, b) {
+ a = d(this).data("draggable").options;
+ a._opacity && d(b.helper).css("opacity", a._opacity)
+ }});
+ d.ui.plugin.add("draggable", "scroll", {start:function () {
+ var a = d(this).data("draggable");
+ if (a.scrollParent[0] != document && a.scrollParent[0].tagName != "HTML")a.overflowOffset = a.scrollParent.offset()
+ }, drag:function (a) {
+ var b = d(this).data("draggable"), c = b.options, f = false;
+ if (b.scrollParent[0] != document && b.scrollParent[0].tagName != "HTML") {
+ if (!c.axis || c.axis !=
+ "x")if (b.overflowOffset.top + b.scrollParent[0].offsetHeight - a.pageY < c.scrollSensitivity)b.scrollParent[0].scrollTop = f = b.scrollParent[0].scrollTop + c.scrollSpeed; else if (a.pageY - b.overflowOffset.top < c.scrollSensitivity)b.scrollParent[0].scrollTop = f = b.scrollParent[0].scrollTop - c.scrollSpeed;
+ if (!c.axis || c.axis != "y")if (b.overflowOffset.left + b.scrollParent[0].offsetWidth - a.pageX < c.scrollSensitivity)b.scrollParent[0].scrollLeft = f = b.scrollParent[0].scrollLeft + c.scrollSpeed; else if (a.pageX - b.overflowOffset.left <
+ c.scrollSensitivity)b.scrollParent[0].scrollLeft = f = b.scrollParent[0].scrollLeft - c.scrollSpeed
+ } else {
+ if (!c.axis || c.axis != "x")if (a.pageY - d(document).scrollTop() < c.scrollSensitivity)f = d(document).scrollTop(d(document).scrollTop() - c.scrollSpeed); else if (d(window).height() - (a.pageY - d(document).scrollTop()) < c.scrollSensitivity)f = d(document).scrollTop(d(document).scrollTop() + c.scrollSpeed);
+ if (!c.axis || c.axis != "y")if (a.pageX - d(document).scrollLeft() < c.scrollSensitivity)f = d(document).scrollLeft(d(document).scrollLeft() -
+ c.scrollSpeed); else if (d(window).width() - (a.pageX - d(document).scrollLeft()) < c.scrollSensitivity)f = d(document).scrollLeft(d(document).scrollLeft() + c.scrollSpeed)
+ }
+ f !== false && d.ui.ddmanager && !c.dropBehaviour && d.ui.ddmanager.prepareOffsets(b, a)
+ }});
+ d.ui.plugin.add("draggable", "snap", {start:function () {
+ var a = d(this).data("draggable"), b = a.options;
+ a.snapElements = [];
+ d(b.snap.constructor != String ? b.snap.items || ":data(draggable)" : b.snap).each(function () {
+ var c = d(this), f = c.offset();
+ this != a.element[0] && a.snapElements.push({item:this,
+ width:c.outerWidth(), height:c.outerHeight(), top:f.top, left:f.left})
+ })
+ }, drag:function (a, b) {
+ for (var c = d(this).data("draggable"), f = c.options, e = f.snapTolerance, h = b.offset.left, g = h + c.helperProportions.width, n = b.offset.top, o = n + c.helperProportions.height, i = c.snapElements.length - 1; i >= 0; i--) {
+ var j = c.snapElements[i].left, l = j + c.snapElements[i].width, k = c.snapElements[i].top, m = k + c.snapElements[i].height;
+ if (j - e < h && h < l + e && k - e < n && n < m + e || j - e < h && h < l + e && k - e < o && o < m + e || j - e < g && g < l + e && k - e < n && n < m + e || j - e < g && g < l + e && k - e < o &&
+ o < m + e) {
+ if (f.snapMode != "inner") {
+ var p = Math.abs(k - o) <= e, q = Math.abs(m - n) <= e, r = Math.abs(j - g) <= e, s = Math.abs(l - h) <= e;
+ if (p)b.position.top = c._convertPositionTo("relative", {top:k - c.helperProportions.height, left:0}).top - c.margins.top;
+ if (q)b.position.top = c._convertPositionTo("relative", {top:m, left:0}).top - c.margins.top;
+ if (r)b.position.left = c._convertPositionTo("relative", {top:0, left:j - c.helperProportions.width}).left - c.margins.left;
+ if (s)b.position.left = c._convertPositionTo("relative", {top:0, left:l}).left - c.margins.left
+ }
+ var t =
+ p || q || r || s;
+ if (f.snapMode != "outer") {
+ p = Math.abs(k - n) <= e;
+ q = Math.abs(m - o) <= e;
+ r = Math.abs(j - h) <= e;
+ s = Math.abs(l - g) <= e;
+ if (p)b.position.top = c._convertPositionTo("relative", {top:k, left:0}).top - c.margins.top;
+ if (q)b.position.top = c._convertPositionTo("relative", {top:m - c.helperProportions.height, left:0}).top - c.margins.top;
+ if (r)b.position.left = c._convertPositionTo("relative", {top:0, left:j}).left - c.margins.left;
+ if (s)b.position.left = c._convertPositionTo("relative", {top:0, left:l - c.helperProportions.width}).left - c.margins.left
+ }
+ if (!c.snapElements[i].snapping &&
+ (p || q || r || s || t))c.options.snap.snap && c.options.snap.snap.call(c.element, a, d.extend(c._uiHash(), {snapItem:c.snapElements[i].item}));
+ c.snapElements[i].snapping = p || q || r || s || t
+ } else {
+ c.snapElements[i].snapping && c.options.snap.release && c.options.snap.release.call(c.element, a, d.extend(c._uiHash(), {snapItem:c.snapElements[i].item}));
+ c.snapElements[i].snapping = false
+ }
+ }
+ }});
+ d.ui.plugin.add("draggable", "stack", {start:function () {
+ var a = d(this).data("draggable").options;
+ a = d.makeArray(d(a.stack)).sort(function (c, f) {
+ return(parseInt(d(c).css("zIndex"),
+ 10) || 0) - (parseInt(d(f).css("zIndex"), 10) || 0)
+ });
+ if (a.length) {
+ var b = parseInt(a[0].style.zIndex) || 0;
+ d(a).each(function (c) {
+ this.style.zIndex = b + c
+ });
+ this[0].style.zIndex = b + a.length
+ }
+ }});
+ d.ui.plugin.add("draggable", "zIndex", {start:function (a, b) {
+ a = d(b.helper);
+ b = d(this).data("draggable").options;
+ if (a.css("zIndex"))b._zIndex = a.css("zIndex");
+ a.css("zIndex", b.zIndex)
+ }, stop:function (a, b) {
+ a = d(this).data("draggable").options;
+ a._zIndex && d(b.helper).css("zIndex", a._zIndex)
+ }})
+})(jQuery);
+;
+/*
+ * jQuery UI Droppable 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Droppables
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.widget.js
+ * jquery.ui.mouse.js
+ * jquery.ui.draggable.js
+ */
+(function (d) {
+ d.widget("ui.droppable", {widgetEventPrefix:"drop", options:{accept:"*", activeClass:false, addClasses:true, greedy:false, hoverClass:false, scope:"default", tolerance:"intersect"}, _create:function () {
+ var a = this.options, b = a.accept;
+ this.isover = 0;
+ this.isout = 1;
+ this.accept = d.isFunction(b) ? b : function (c) {
+ return c.is(b)
+ };
+ this.proportions = {width:this.element[0].offsetWidth, height:this.element[0].offsetHeight};
+ d.ui.ddmanager.droppables[a.scope] = d.ui.ddmanager.droppables[a.scope] || [];
+ d.ui.ddmanager.droppables[a.scope].push(this);
+ a.addClasses && this.element.addClass("ui-droppable")
+ }, destroy:function () {
+ for (var a = d.ui.ddmanager.droppables[this.options.scope], b = 0; b < a.length; b++)a[b] == this && a.splice(b, 1);
+ this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");
+ return this
+ }, _setOption:function (a, b) {
+ if (a == "accept")this.accept = d.isFunction(b) ? b : function (c) {
+ return c.is(b)
+ };
+ d.Widget.prototype._setOption.apply(this, arguments)
+ }, _activate:function (a) {
+ var b = d.ui.ddmanager.current;
+ this.options.activeClass &&
+ this.element.addClass(this.options.activeClass);
+ b && this._trigger("activate", a, this.ui(b))
+ }, _deactivate:function (a) {
+ var b = d.ui.ddmanager.current;
+ this.options.activeClass && this.element.removeClass(this.options.activeClass);
+ b && this._trigger("deactivate", a, this.ui(b))
+ }, _over:function (a) {
+ var b = d.ui.ddmanager.current;
+ if (!(!b || (b.currentItem || b.element)[0] == this.element[0]))if (this.accept.call(this.element[0], b.currentItem || b.element)) {
+ this.options.hoverClass && this.element.addClass(this.options.hoverClass);
+ this._trigger("over", a, this.ui(b))
+ }
+ }, _out:function (a) {
+ var b = d.ui.ddmanager.current;
+ if (!(!b || (b.currentItem || b.element)[0] == this.element[0]))if (this.accept.call(this.element[0], b.currentItem || b.element)) {
+ this.options.hoverClass && this.element.removeClass(this.options.hoverClass);
+ this._trigger("out", a, this.ui(b))
+ }
+ }, _drop:function (a, b) {
+ var c = b || d.ui.ddmanager.current;
+ if (!c || (c.currentItem || c.element)[0] == this.element[0])return false;
+ var e = false;
+ this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function () {
+ var g =
+ d.data(this, "droppable");
+ if (g.options.greedy && !g.options.disabled && g.options.scope == c.options.scope && g.accept.call(g.element[0], c.currentItem || c.element) && d.ui.intersect(c, d.extend(g, {offset:g.element.offset()}), g.options.tolerance)) {
+ e = true;
+ return false
+ }
+ });
+ if (e)return false;
+ if (this.accept.call(this.element[0], c.currentItem || c.element)) {
+ this.options.activeClass && this.element.removeClass(this.options.activeClass);
+ this.options.hoverClass && this.element.removeClass(this.options.hoverClass);
+ this._trigger("drop",
+ a, this.ui(c));
+ return this.element
+ }
+ return false
+ }, ui:function (a) {
+ return{draggable:a.currentItem || a.element, helper:a.helper, position:a.position, offset:a.positionAbs}
+ }});
+ d.extend(d.ui.droppable, {version:"1.8.14"});
+ d.ui.intersect = function (a, b, c) {
+ if (!b.offset)return false;
+ var e = (a.positionAbs || a.position.absolute).left, g = e + a.helperProportions.width, f = (a.positionAbs || a.position.absolute).top, h = f + a.helperProportions.height, i = b.offset.left, k = i + b.proportions.width, j = b.offset.top, l = j + b.proportions.height;
+ switch (c) {
+ case "fit":
+ return i <= e && g <= k && j <= f && h <= l;
+ case "intersect":
+ return i < e + a.helperProportions.width / 2 && g - a.helperProportions.width / 2 < k && j < f + a.helperProportions.height / 2 && h - a.helperProportions.height / 2 < l;
+ case "pointer":
+ return d.ui.isOver((a.positionAbs || a.position.absolute).top + (a.clickOffset || a.offset.click).top, (a.positionAbs || a.position.absolute).left + (a.clickOffset || a.offset.click).left, j, i, b.proportions.height, b.proportions.width);
+ case "touch":
+ return(f >= j && f <= l || h >= j && h <= l || f < j && h > l) && (e >=
+ i && e <= k || g >= i && g <= k || e < i && g > k);
+ default:
+ return false
+ }
+ };
+ d.ui.ddmanager = {current:null, droppables:{"default":[]}, prepareOffsets:function (a, b) {
+ var c = d.ui.ddmanager.droppables[a.options.scope] || [], e = b ? b.type : null, g = (a.currentItem || a.element).find(":data(droppable)").andSelf(), f = 0;
+ a:for (; f < c.length; f++)if (!(c[f].options.disabled || a && !c[f].accept.call(c[f].element[0], a.currentItem || a.element))) {
+ for (var h = 0; h < g.length; h++)if (g[h] == c[f].element[0]) {
+ c[f].proportions.height = 0;
+ continue a
+ }
+ c[f].visible = c[f].element.css("display") !=
+ "none";
+ if (c[f].visible) {
+ e == "mousedown" && c[f]._activate.call(c[f], b);
+ c[f].offset = c[f].element.offset();
+ c[f].proportions = {width:c[f].element[0].offsetWidth, height:c[f].element[0].offsetHeight}
+ }
+ }
+ }, drop:function (a, b) {
+ var c = false;
+ d.each(d.ui.ddmanager.droppables[a.options.scope] || [], function () {
+ if (this.options) {
+ if (!this.options.disabled && this.visible && d.ui.intersect(a, this, this.options.tolerance))c = c || this._drop.call(this, b);
+ if (!this.options.disabled && this.visible && this.accept.call(this.element[0], a.currentItem ||
+ a.element)) {
+ this.isout = 1;
+ this.isover = 0;
+ this._deactivate.call(this, b)
+ }
+ }
+ });
+ return c
+ }, dragStart:function (a, b) {
+ a.element.parentsUntil("body").bind("scroll.droppable", function () {
+ a.options.refreshPositions || d.ui.ddmanager.prepareOffsets(a, b)
+ })
+ }, drag:function (a, b) {
+ a.options.refreshPositions && d.ui.ddmanager.prepareOffsets(a, b);
+ d.each(d.ui.ddmanager.droppables[a.options.scope] || [], function () {
+ if (!(this.options.disabled || this.greedyChild || !this.visible)) {
+ var c = d.ui.intersect(a, this, this.options.tolerance);
+ if (c =
+ !c && this.isover == 1 ? "isout" : c && this.isover == 0 ? "isover" : null) {
+ var e;
+ if (this.options.greedy) {
+ var g = this.element.parents(":data(droppable):eq(0)");
+ if (g.length) {
+ e = d.data(g[0], "droppable");
+ e.greedyChild = c == "isover" ? 1 : 0
+ }
+ }
+ if (e && c == "isover") {
+ e.isover = 0;
+ e.isout = 1;
+ e._out.call(e, b)
+ }
+ this[c] = 1;
+ this[c == "isout" ? "isover" : "isout"] = 0;
+ this[c == "isover" ? "_over" : "_out"].call(this, b);
+ if (e && c == "isout") {
+ e.isout = 0;
+ e.isover = 1;
+ e._over.call(e, b)
+ }
+ }
+ }
+ })
+ }, dragStop:function (a, b) {
+ a.element.parentsUntil("body").unbind("scroll.droppable");
+ a.options.refreshPositions || d.ui.ddmanager.prepareOffsets(a, b)
+ }}
+})(jQuery);
+;
+/*
+ * jQuery UI Resizable 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizables
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.mouse.js
+ * jquery.ui.widget.js
+ */
+(function (e) {
+ e.widget("ui.resizable", e.ui.mouse, {widgetEventPrefix:"resize", options:{alsoResize:false, animate:false, animateDuration:"slow", animateEasing:"swing", aspectRatio:false, autoHide:false, containment:false, ghost:false, grid:false, handles:"e,s,se", helper:false, maxHeight:null, maxWidth:null, minHeight:10, minWidth:10, zIndex:1E3}, _create:function () {
+ var b = this, a = this.options;
+ this.element.addClass("ui-resizable");
+ e.extend(this, {_aspectRatio:!!a.aspectRatio, aspectRatio:a.aspectRatio, originalElement:this.element,
+ _proportionallyResizeElements:[], _helper:a.helper || a.ghost || a.animate ? a.helper || "ui-resizable-helper" : null});
+ if (this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) {
+ /relative/.test(this.element.css("position")) && e.browser.opera && this.element.css({position:"relative", top:"auto", left:"auto"});
+ this.element.wrap(e('
').css({position:this.element.css("position"), width:this.element.outerWidth(), height:this.element.outerHeight(),
+ top:this.element.css("top"), left:this.element.css("left")}));
+ this.element = this.element.parent().data("resizable", this.element.data("resizable"));
+ this.elementIsWrapper = true;
+ this.element.css({marginLeft:this.originalElement.css("marginLeft"), marginTop:this.originalElement.css("marginTop"), marginRight:this.originalElement.css("marginRight"), marginBottom:this.originalElement.css("marginBottom")});
+ this.originalElement.css({marginLeft:0, marginTop:0, marginRight:0, marginBottom:0});
+ this.originalResizeStyle =
+ this.originalElement.css("resize");
+ this.originalElement.css("resize", "none");
+ this._proportionallyResizeElements.push(this.originalElement.css({position:"static", zoom:1, display:"block"}));
+ this.originalElement.css({margin:this.originalElement.css("margin")});
+ this._proportionallyResize()
+ }
+ this.handles = a.handles || (!e(".ui-resizable-handle", this.element).length ? "e,s,se" : {n:".ui-resizable-n", e:".ui-resizable-e", s:".ui-resizable-s", w:".ui-resizable-w", se:".ui-resizable-se", sw:".ui-resizable-sw", ne:".ui-resizable-ne",
+ nw:".ui-resizable-nw"});
+ if (this.handles.constructor == String) {
+ if (this.handles == "all")this.handles = "n,e,s,w,se,sw,ne,nw";
+ var c = this.handles.split(",");
+ this.handles = {};
+ for (var d = 0; d < c.length; d++) {
+ var f = e.trim(c[d]), g = e('
');
+ /sw|se|ne|nw/.test(f) && g.css({zIndex:++a.zIndex});
+ "se" == f && g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");
+ this.handles[f] = ".ui-resizable-" + f;
+ this.element.append(g)
+ }
+ }
+ this._renderAxis = function (h) {
+ h = h || this.element;
+ for (var i in this.handles) {
+ if (this.handles[i].constructor ==
+ String)this.handles[i] = e(this.handles[i], this.element).show();
+ if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {
+ var j = e(this.handles[i], this.element), l = 0;
+ l = /sw|ne|nw|se|n|s/.test(i) ? j.outerHeight() : j.outerWidth();
+ j = ["padding", /ne|nw|n/.test(i) ? "Top" : /se|sw|s/.test(i) ? "Bottom" : /^e$/.test(i) ? "Right" : "Left"].join("");
+ h.css(j, l);
+ this._proportionallyResize()
+ }
+ e(this.handles[i])
+ }
+ };
+ this._renderAxis(this.element);
+ this._handles = e(".ui-resizable-handle", this.element).disableSelection();
+ this._handles.mouseover(function () {
+ if (!b.resizing) {
+ if (this.className)var h = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);
+ b.axis = h && h[1] ? h[1] : "se"
+ }
+ });
+ if (a.autoHide) {
+ this._handles.hide();
+ e(this.element).addClass("ui-resizable-autohide").hover(function () {
+ if (!a.disabled) {
+ e(this).removeClass("ui-resizable-autohide");
+ b._handles.show()
+ }
+ }, function () {
+ if (!a.disabled)if (!b.resizing) {
+ e(this).addClass("ui-resizable-autohide");
+ b._handles.hide()
+ }
+ })
+ }
+ this._mouseInit()
+ }, destroy:function () {
+ this._mouseDestroy();
+ var b = function (c) {
+ e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()
+ };
+ if (this.elementIsWrapper) {
+ b(this.element);
+ var a = this.element;
+ a.after(this.originalElement.css({position:a.css("position"), width:a.outerWidth(), height:a.outerHeight(), top:a.css("top"), left:a.css("left")})).remove()
+ }
+ this.originalElement.css("resize", this.originalResizeStyle);
+ b(this.originalElement);
+ return this
+ }, _mouseCapture:function (b) {
+ var a =
+ false;
+ for (var c in this.handles)if (e(this.handles[c])[0] == b.target)a = true;
+ return!this.options.disabled && a
+ }, _mouseStart:function (b) {
+ var a = this.options, c = this.element.position(), d = this.element;
+ this.resizing = true;
+ this.documentScroll = {top:e(document).scrollTop(), left:e(document).scrollLeft()};
+ if (d.is(".ui-draggable") || /absolute/.test(d.css("position")))d.css({position:"absolute", top:c.top, left:c.left});
+ e.browser.opera && /relative/.test(d.css("position")) && d.css({position:"relative", top:"auto", left:"auto"});
+ this._renderProxy();
+ c = m(this.helper.css("left"));
+ var f = m(this.helper.css("top"));
+ if (a.containment) {
+ c += e(a.containment).scrollLeft() || 0;
+ f += e(a.containment).scrollTop() || 0
+ }
+ this.offset = this.helper.offset();
+ this.position = {left:c, top:f};
+ this.size = this._helper ? {width:d.outerWidth(), height:d.outerHeight()} : {width:d.width(), height:d.height()};
+ this.originalSize = this._helper ? {width:d.outerWidth(), height:d.outerHeight()} : {width:d.width(), height:d.height()};
+ this.originalPosition = {left:c, top:f};
+ this.sizeDiff =
+ {width:d.outerWidth() - d.width(), height:d.outerHeight() - d.height()};
+ this.originalMousePosition = {left:b.pageX, top:b.pageY};
+ this.aspectRatio = typeof a.aspectRatio == "number" ? a.aspectRatio : this.originalSize.width / this.originalSize.height || 1;
+ a = e(".ui-resizable-" + this.axis).css("cursor");
+ e("body").css("cursor", a == "auto" ? this.axis + "-resize" : a);
+ d.addClass("ui-resizable-resizing");
+ this._propagate("start", b);
+ return true
+ }, _mouseDrag:function (b) {
+ var a = this.helper, c = this.originalMousePosition, d = this._change[this.axis];
+ if (!d)return false;
+ c = d.apply(this, [b, b.pageX - c.left || 0, b.pageY - c.top || 0]);
+ this._updateVirtualBoundaries(b.shiftKey);
+ if (this._aspectRatio || b.shiftKey)c = this._updateRatio(c, b);
+ c = this._respectSize(c, b);
+ this._propagate("resize", b);
+ a.css({top:this.position.top + "px", left:this.position.left + "px", width:this.size.width + "px", height:this.size.height + "px"});
+ !this._helper && this._proportionallyResizeElements.length && this._proportionallyResize();
+ this._updateCache(c);
+ this._trigger("resize", b, this.ui());
+ return false
+ },
+ _mouseStop:function (b) {
+ this.resizing = false;
+ var a = this.options, c = this;
+ if (this._helper) {
+ var d = this._proportionallyResizeElements, f = d.length && /textarea/i.test(d[0].nodeName);
+ d = f && e.ui.hasScroll(d[0], "left") ? 0 : c.sizeDiff.height;
+ f = f ? 0 : c.sizeDiff.width;
+ f = {width:c.helper.width() - f, height:c.helper.height() - d};
+ d = parseInt(c.element.css("left"), 10) + (c.position.left - c.originalPosition.left) || null;
+ var g = parseInt(c.element.css("top"), 10) + (c.position.top - c.originalPosition.top) || null;
+ a.animate || this.element.css(e.extend(f,
+ {top:g, left:d}));
+ c.helper.height(c.size.height);
+ c.helper.width(c.size.width);
+ this._helper && !a.animate && this._proportionallyResize()
+ }
+ e("body").css("cursor", "auto");
+ this.element.removeClass("ui-resizable-resizing");
+ this._propagate("stop", b);
+ this._helper && this.helper.remove();
+ return false
+ }, _updateVirtualBoundaries:function (b) {
+ var a = this.options, c, d, f;
+ a = {minWidth:k(a.minWidth) ? a.minWidth : 0, maxWidth:k(a.maxWidth) ? a.maxWidth : Infinity, minHeight:k(a.minHeight) ? a.minHeight : 0, maxHeight:k(a.maxHeight) ? a.maxHeight :
+ Infinity};
+ if (this._aspectRatio || b) {
+ b = a.minHeight * this.aspectRatio;
+ d = a.minWidth / this.aspectRatio;
+ c = a.maxHeight * this.aspectRatio;
+ f = a.maxWidth / this.aspectRatio;
+ if (b > a.minWidth)a.minWidth = b;
+ if (d > a.minHeight)a.minHeight = d;
+ if (c < a.maxWidth)a.maxWidth = c;
+ if (f < a.maxHeight)a.maxHeight = f
+ }
+ this._vBoundaries = a
+ }, _updateCache:function (b) {
+ this.offset = this.helper.offset();
+ if (k(b.left))this.position.left = b.left;
+ if (k(b.top))this.position.top = b.top;
+ if (k(b.height))this.size.height = b.height;
+ if (k(b.width))this.size.width =
+ b.width
+ }, _updateRatio:function (b) {
+ var a = this.position, c = this.size, d = this.axis;
+ if (k(b.height))b.width = b.height * this.aspectRatio; else if (k(b.width))b.height = b.width / this.aspectRatio;
+ if (d == "sw") {
+ b.left = a.left + (c.width - b.width);
+ b.top = null
+ }
+ if (d == "nw") {
+ b.top = a.top + (c.height - b.height);
+ b.left = a.left + (c.width - b.width)
+ }
+ return b
+ }, _respectSize:function (b) {
+ var a = this._vBoundaries, c = this.axis, d = k(b.width) && a.maxWidth && a.maxWidth < b.width, f = k(b.height) && a.maxHeight && a.maxHeight < b.height, g = k(b.width) && a.minWidth &&
+ a.minWidth > b.width, h = k(b.height) && a.minHeight && a.minHeight > b.height;
+ if (g)b.width = a.minWidth;
+ if (h)b.height = a.minHeight;
+ if (d)b.width = a.maxWidth;
+ if (f)b.height = a.maxHeight;
+ var i = this.originalPosition.left + this.originalSize.width, j = this.position.top + this.size.height, l = /sw|nw|w/.test(c);
+ c = /nw|ne|n/.test(c);
+ if (g && l)b.left = i - a.minWidth;
+ if (d && l)b.left = i - a.maxWidth;
+ if (h && c)b.top = j - a.minHeight;
+ if (f && c)b.top = j - a.maxHeight;
+ if ((a = !b.width && !b.height) && !b.left && b.top)b.top = null; else if (a && !b.top && b.left)b.left =
+ null;
+ return b
+ }, _proportionallyResize:function () {
+ if (this._proportionallyResizeElements.length)for (var b = this.helper || this.element, a = 0; a < this._proportionallyResizeElements.length; a++) {
+ var c = this._proportionallyResizeElements[a];
+ if (!this.borderDif) {
+ var d = [c.css("borderTopWidth"), c.css("borderRightWidth"), c.css("borderBottomWidth"), c.css("borderLeftWidth")], f = [c.css("paddingTop"), c.css("paddingRight"), c.css("paddingBottom"), c.css("paddingLeft")];
+ this.borderDif = e.map(d, function (g, h) {
+ g = parseInt(g, 10) ||
+ 0;
+ h = parseInt(f[h], 10) || 0;
+ return g + h
+ })
+ }
+ e.browser.msie && (e(b).is(":hidden") || e(b).parents(":hidden").length) || c.css({height:b.height() - this.borderDif[0] - this.borderDif[2] || 0, width:b.width() - this.borderDif[1] - this.borderDif[3] || 0})
+ }
+ }, _renderProxy:function () {
+ var b = this.options;
+ this.elementOffset = this.element.offset();
+ if (this._helper) {
+ this.helper = this.helper || e('
');
+ var a = e.browser.msie && e.browser.version < 7, c = a ? 1 : 0;
+ a = a ? 2 : -1;
+ this.helper.addClass(this._helper).css({width:this.element.outerWidth() +
+ a, height:this.element.outerHeight() + a, position:"absolute", left:this.elementOffset.left - c + "px", top:this.elementOffset.top - c + "px", zIndex:++b.zIndex});
+ this.helper.appendTo("body").disableSelection()
+ } else this.helper = this.element
+ }, _change:{e:function (b, a) {
+ return{width:this.originalSize.width + a}
+ }, w:function (b, a) {
+ return{left:this.originalPosition.left + a, width:this.originalSize.width - a}
+ }, n:function (b, a, c) {
+ return{top:this.originalPosition.top + c, height:this.originalSize.height - c}
+ }, s:function (b, a, c) {
+ return{height:this.originalSize.height +
+ c}
+ }, se:function (b, a, c) {
+ return e.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [b, a, c]))
+ }, sw:function (b, a, c) {
+ return e.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [b, a, c]))
+ }, ne:function (b, a, c) {
+ return e.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [b, a, c]))
+ }, nw:function (b, a, c) {
+ return e.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [b, a, c]))
+ }}, _propagate:function (b, a) {
+ e.ui.plugin.call(this, b, [a, this.ui()]);
+ b != "resize" && this._trigger(b, a, this.ui())
+ }, plugins:{}, ui:function () {
+ return{originalElement:this.originalElement, element:this.element, helper:this.helper, position:this.position, size:this.size, originalSize:this.originalSize, originalPosition:this.originalPosition}
+ }});
+ e.extend(e.ui.resizable, {version:"1.8.14"});
+ e.ui.plugin.add("resizable", "alsoResize", {start:function () {
+ var b = e(this).data("resizable").options, a = function (c) {
+ e(c).each(function () {
+ var d = e(this);
+ d.data("resizable-alsoresize", {width:parseInt(d.width(),
+ 10), height:parseInt(d.height(), 10), left:parseInt(d.css("left"), 10), top:parseInt(d.css("top"), 10), position:d.css("position")})
+ })
+ };
+ if (typeof b.alsoResize == "object" && !b.alsoResize.parentNode)if (b.alsoResize.length) {
+ b.alsoResize = b.alsoResize[0];
+ a(b.alsoResize)
+ } else e.each(b.alsoResize, function (c) {
+ a(c)
+ }); else a(b.alsoResize)
+ }, resize:function (b, a) {
+ var c = e(this).data("resizable");
+ b = c.options;
+ var d = c.originalSize, f = c.originalPosition, g = {height:c.size.height - d.height || 0, width:c.size.width - d.width || 0, top:c.position.top -
+ f.top || 0, left:c.position.left - f.left || 0}, h = function (i, j) {
+ e(i).each(function () {
+ var l = e(this), q = e(this).data("resizable-alsoresize"), p = {}, r = j && j.length ? j : l.parents(a.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"];
+ e.each(r, function (n, o) {
+ if ((n = (q[o] || 0) + (g[o] || 0)) && n >= 0)p[o] = n || null
+ });
+ if (e.browser.opera && /relative/.test(l.css("position"))) {
+ c._revertToRelativePosition = true;
+ l.css({position:"absolute", top:"auto", left:"auto"})
+ }
+ l.css(p)
+ })
+ };
+ typeof b.alsoResize == "object" && !b.alsoResize.nodeType ?
+ e.each(b.alsoResize, function (i, j) {
+ h(i, j)
+ }) : h(b.alsoResize)
+ }, stop:function () {
+ var b = e(this).data("resizable"), a = b.options, c = function (d) {
+ e(d).each(function () {
+ var f = e(this);
+ f.css({position:f.data("resizable-alsoresize").position})
+ })
+ };
+ if (b._revertToRelativePosition) {
+ b._revertToRelativePosition = false;
+ typeof a.alsoResize == "object" && !a.alsoResize.nodeType ? e.each(a.alsoResize, function (d) {
+ c(d)
+ }) : c(a.alsoResize)
+ }
+ e(this).removeData("resizable-alsoresize")
+ }});
+ e.ui.plugin.add("resizable", "animate", {stop:function (b) {
+ var a =
+ e(this).data("resizable"), c = a.options, d = a._proportionallyResizeElements, f = d.length && /textarea/i.test(d[0].nodeName), g = f && e.ui.hasScroll(d[0], "left") ? 0 : a.sizeDiff.height;
+ f = {width:a.size.width - (f ? 0 : a.sizeDiff.width), height:a.size.height - g};
+ g = parseInt(a.element.css("left"), 10) + (a.position.left - a.originalPosition.left) || null;
+ var h = parseInt(a.element.css("top"), 10) + (a.position.top - a.originalPosition.top) || null;
+ a.element.animate(e.extend(f, h && g ? {top:h, left:g} : {}), {duration:c.animateDuration, easing:c.animateEasing,
+ step:function () {
+ var i = {width:parseInt(a.element.css("width"), 10), height:parseInt(a.element.css("height"), 10), top:parseInt(a.element.css("top"), 10), left:parseInt(a.element.css("left"), 10)};
+ d && d.length && e(d[0]).css({width:i.width, height:i.height});
+ a._updateCache(i);
+ a._propagate("resize", b)
+ }})
+ }});
+ e.ui.plugin.add("resizable", "containment", {start:function () {
+ var b = e(this).data("resizable"), a = b.element, c = b.options.containment;
+ if (a = c instanceof e ? c.get(0) : /parent/.test(c) ? a.parent().get(0) : c) {
+ b.containerElement =
+ e(a);
+ if (/document/.test(c) || c == document) {
+ b.containerOffset = {left:0, top:0};
+ b.containerPosition = {left:0, top:0};
+ b.parentData = {element:e(document), left:0, top:0, width:e(document).width(), height:e(document).height() || document.body.parentNode.scrollHeight}
+ } else {
+ var d = e(a), f = [];
+ e(["Top", "Right", "Left", "Bottom"]).each(function (i, j) {
+ f[i] = m(d.css("padding" + j))
+ });
+ b.containerOffset = d.offset();
+ b.containerPosition = d.position();
+ b.containerSize = {height:d.innerHeight() - f[3], width:d.innerWidth() - f[1]};
+ c = b.containerOffset;
+ var g = b.containerSize.height, h = b.containerSize.width;
+ h = e.ui.hasScroll(a, "left") ? a.scrollWidth : h;
+ g = e.ui.hasScroll(a) ? a.scrollHeight : g;
+ b.parentData = {element:a, left:c.left, top:c.top, width:h, height:g}
+ }
+ }
+ }, resize:function (b) {
+ var a = e(this).data("resizable"), c = a.options, d = a.containerOffset, f = a.position;
+ b = a._aspectRatio || b.shiftKey;
+ var g = {top:0, left:0}, h = a.containerElement;
+ if (h[0] != document && /static/.test(h.css("position")))g = d;
+ if (f.left < (a._helper ? d.left : 0)) {
+ a.size.width += a._helper ? a.position.left - d.left :
+ a.position.left - g.left;
+ if (b)a.size.height = a.size.width / c.aspectRatio;
+ a.position.left = c.helper ? d.left : 0
+ }
+ if (f.top < (a._helper ? d.top : 0)) {
+ a.size.height += a._helper ? a.position.top - d.top : a.position.top;
+ if (b)a.size.width = a.size.height * c.aspectRatio;
+ a.position.top = a._helper ? d.top : 0
+ }
+ a.offset.left = a.parentData.left + a.position.left;
+ a.offset.top = a.parentData.top + a.position.top;
+ c = Math.abs((a._helper ? a.offset.left - g.left : a.offset.left - g.left) + a.sizeDiff.width);
+ d = Math.abs((a._helper ? a.offset.top - g.top : a.offset.top -
+ d.top) + a.sizeDiff.height);
+ f = a.containerElement.get(0) == a.element.parent().get(0);
+ g = /relative|absolute/.test(a.containerElement.css("position"));
+ if (f && g)c -= a.parentData.left;
+ if (c + a.size.width >= a.parentData.width) {
+ a.size.width = a.parentData.width - c;
+ if (b)a.size.height = a.size.width / a.aspectRatio
+ }
+ if (d + a.size.height >= a.parentData.height) {
+ a.size.height = a.parentData.height - d;
+ if (b)a.size.width = a.size.height * a.aspectRatio
+ }
+ }, stop:function () {
+ var b = e(this).data("resizable"), a = b.options, c = b.containerOffset, d = b.containerPosition,
+ f = b.containerElement, g = e(b.helper), h = g.offset(), i = g.outerWidth() - b.sizeDiff.width;
+ g = g.outerHeight() - b.sizeDiff.height;
+ b._helper && !a.animate && /relative/.test(f.css("position")) && e(this).css({left:h.left - d.left - c.left, width:i, height:g});
+ b._helper && !a.animate && /static/.test(f.css("position")) && e(this).css({left:h.left - d.left - c.left, width:i, height:g})
+ }});
+ e.ui.plugin.add("resizable", "ghost", {start:function () {
+ var b = e(this).data("resizable"), a = b.options, c = b.size;
+ b.ghost = b.originalElement.clone();
+ b.ghost.css({opacity:0.25,
+ display:"block", position:"relative", height:c.height, width:c.width, margin:0, left:0, top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost == "string" ? a.ghost : "");
+ b.ghost.appendTo(b.helper)
+ }, resize:function () {
+ var b = e(this).data("resizable");
+ b.ghost && b.ghost.css({position:"relative", height:b.size.height, width:b.size.width})
+ }, stop:function () {
+ var b = e(this).data("resizable");
+ b.ghost && b.helper && b.helper.get(0).removeChild(b.ghost.get(0))
+ }});
+ e.ui.plugin.add("resizable", "grid", {resize:function () {
+ var b =
+ e(this).data("resizable"), a = b.options, c = b.size, d = b.originalSize, f = b.originalPosition, g = b.axis;
+ a.grid = typeof a.grid == "number" ? [a.grid, a.grid] : a.grid;
+ var h = Math.round((c.width - d.width) / (a.grid[0] || 1)) * (a.grid[0] || 1);
+ a = Math.round((c.height - d.height) / (a.grid[1] || 1)) * (a.grid[1] || 1);
+ if (/^(se|s|e)$/.test(g)) {
+ b.size.width = d.width + h;
+ b.size.height = d.height + a
+ } else if (/^(ne)$/.test(g)) {
+ b.size.width = d.width + h;
+ b.size.height = d.height + a;
+ b.position.top = f.top - a
+ } else {
+ if (/^(sw)$/.test(g)) {
+ b.size.width = d.width + h;
+ b.size.height =
+ d.height + a
+ } else {
+ b.size.width = d.width + h;
+ b.size.height = d.height + a;
+ b.position.top = f.top - a
+ }
+ b.position.left = f.left - h
+ }
+ }});
+ var m = function (b) {
+ return parseInt(b, 10) || 0
+ }, k = function (b) {
+ return!isNaN(parseInt(b, 10))
+ }
+})(jQuery);
+;
+/*
+ * jQuery UI Selectable 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectables
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.mouse.js
+ * jquery.ui.widget.js
+ */
+(function (e) {
+ e.widget("ui.selectable", e.ui.mouse, {options:{appendTo:"body", autoRefresh:true, distance:0, filter:"*", tolerance:"touch"}, _create:function () {
+ var c = this;
+ this.element.addClass("ui-selectable");
+ this.dragged = false;
+ var f;
+ this.refresh = function () {
+ f = e(c.options.filter, c.element[0]);
+ f.each(function () {
+ var d = e(this), b = d.offset();
+ e.data(this, "selectable-item", {element:this, $element:d, left:b.left, top:b.top, right:b.left + d.outerWidth(), bottom:b.top + d.outerHeight(), startselected:false, selected:d.hasClass("ui-selected"),
+ selecting:d.hasClass("ui-selecting"), unselecting:d.hasClass("ui-unselecting")})
+ })
+ };
+ this.refresh();
+ this.selectees = f.addClass("ui-selectee");
+ this._mouseInit();
+ this.helper = e("
")
+ }, destroy:function () {
+ this.selectees.removeClass("ui-selectee").removeData("selectable-item");
+ this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");
+ this._mouseDestroy();
+ return this
+ }, _mouseStart:function (c) {
+ var f = this;
+ this.opos = [c.pageX,
+ c.pageY];
+ if (!this.options.disabled) {
+ var d = this.options;
+ this.selectees = e(d.filter, this.element[0]);
+ this._trigger("start", c);
+ e(d.appendTo).append(this.helper);
+ this.helper.css({left:c.clientX, top:c.clientY, width:0, height:0});
+ d.autoRefresh && this.refresh();
+ this.selectees.filter(".ui-selected").each(function () {
+ var b = e.data(this, "selectable-item");
+ b.startselected = true;
+ if (!c.metaKey) {
+ b.$element.removeClass("ui-selected");
+ b.selected = false;
+ b.$element.addClass("ui-unselecting");
+ b.unselecting = true;
+ f._trigger("unselecting",
+ c, {unselecting:b.element})
+ }
+ });
+ e(c.target).parents().andSelf().each(function () {
+ var b = e.data(this, "selectable-item");
+ if (b) {
+ var g = !c.metaKey || !b.$element.hasClass("ui-selected");
+ b.$element.removeClass(g ? "ui-unselecting" : "ui-selected").addClass(g ? "ui-selecting" : "ui-unselecting");
+ b.unselecting = !g;
+ b.selecting = g;
+ (b.selected = g) ? f._trigger("selecting", c, {selecting:b.element}) : f._trigger("unselecting", c, {unselecting:b.element});
+ return false
+ }
+ })
+ }
+ }, _mouseDrag:function (c) {
+ var f = this;
+ this.dragged = true;
+ if (!this.options.disabled) {
+ var d =
+ this.options, b = this.opos[0], g = this.opos[1], h = c.pageX, i = c.pageY;
+ if (b > h) {
+ var j = h;
+ h = b;
+ b = j
+ }
+ if (g > i) {
+ j = i;
+ i = g;
+ g = j
+ }
+ this.helper.css({left:b, top:g, width:h - b, height:i - g});
+ this.selectees.each(function () {
+ var a = e.data(this, "selectable-item");
+ if (!(!a || a.element == f.element[0])) {
+ var k = false;
+ if (d.tolerance == "touch")k = !(a.left > h || a.right < b || a.top > i || a.bottom < g); else if (d.tolerance == "fit")k = a.left > b && a.right < h && a.top > g && a.bottom < i;
+ if (k) {
+ if (a.selected) {
+ a.$element.removeClass("ui-selected");
+ a.selected = false
+ }
+ if (a.unselecting) {
+ a.$element.removeClass("ui-unselecting");
+ a.unselecting = false
+ }
+ if (!a.selecting) {
+ a.$element.addClass("ui-selecting");
+ a.selecting = true;
+ f._trigger("selecting", c, {selecting:a.element})
+ }
+ } else {
+ if (a.selecting)if (c.metaKey && a.startselected) {
+ a.$element.removeClass("ui-selecting");
+ a.selecting = false;
+ a.$element.addClass("ui-selected");
+ a.selected = true
+ } else {
+ a.$element.removeClass("ui-selecting");
+ a.selecting = false;
+ if (a.startselected) {
+ a.$element.addClass("ui-unselecting");
+ a.unselecting = true
+ }
+ f._trigger("unselecting", c, {unselecting:a.element})
+ }
+ if (a.selected)if (!c.metaKey &&
+ !a.startselected) {
+ a.$element.removeClass("ui-selected");
+ a.selected = false;
+ a.$element.addClass("ui-unselecting");
+ a.unselecting = true;
+ f._trigger("unselecting", c, {unselecting:a.element})
+ }
+ }
+ }
+ });
+ return false
+ }
+ }, _mouseStop:function (c) {
+ var f = this;
+ this.dragged = false;
+ e(".ui-unselecting", this.element[0]).each(function () {
+ var d = e.data(this, "selectable-item");
+ d.$element.removeClass("ui-unselecting");
+ d.unselecting = false;
+ d.startselected = false;
+ f._trigger("unselected", c, {unselected:d.element})
+ });
+ e(".ui-selecting", this.element[0]).each(function () {
+ var d =
+ e.data(this, "selectable-item");
+ d.$element.removeClass("ui-selecting").addClass("ui-selected");
+ d.selecting = false;
+ d.selected = true;
+ d.startselected = true;
+ f._trigger("selected", c, {selected:d.element})
+ });
+ this._trigger("stop", c);
+ this.helper.remove();
+ return false
+ }});
+ e.extend(e.ui.selectable, {version:"1.8.14"})
+})(jQuery);
+;
+/*
+ * jQuery UI Sortable 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Sortables
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.mouse.js
+ * jquery.ui.widget.js
+ */
+(function (d) {
+ d.widget("ui.sortable", d.ui.mouse, {widgetEventPrefix:"sort", options:{appendTo:"parent", axis:false, connectWith:false, containment:false, cursor:"auto", cursorAt:false, dropOnEmpty:true, forcePlaceholderSize:false, forceHelperSize:false, grid:false, handle:false, helper:"original", items:"> *", opacity:false, placeholder:false, revert:false, scroll:true, scrollSensitivity:20, scrollSpeed:20, scope:"default", tolerance:"intersect", zIndex:1E3}, _create:function () {
+ var a = this.options;
+ this.containerCache = {};
+ this.element.addClass("ui-sortable");
+ this.refresh();
+ this.floating = this.items.length ? a.axis === "x" || /left|right/.test(this.items[0].item.css("float")) || /inline|table-cell/.test(this.items[0].item.css("display")) : false;
+ this.offset = this.element.offset();
+ this._mouseInit()
+ }, destroy:function () {
+ this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");
+ this._mouseDestroy();
+ for (var a = this.items.length - 1; a >= 0; a--)this.items[a].item.removeData("sortable-item");
+ return this
+ }, _setOption:function (a, b) {
+ if (a ===
+ "disabled") {
+ this.options[a] = b;
+ this.widget()[b ? "addClass" : "removeClass"]("ui-sortable-disabled")
+ } else d.Widget.prototype._setOption.apply(this, arguments)
+ }, _mouseCapture:function (a, b) {
+ if (this.reverting)return false;
+ if (this.options.disabled || this.options.type == "static")return false;
+ this._refreshItems(a);
+ var c = null, e = this;
+ d(a.target).parents().each(function () {
+ if (d.data(this, "sortable-item") == e) {
+ c = d(this);
+ return false
+ }
+ });
+ if (d.data(a.target, "sortable-item") == e)c = d(a.target);
+ if (!c)return false;
+ if (this.options.handle &&
+ !b) {
+ var f = false;
+ d(this.options.handle, c).find("*").andSelf().each(function () {
+ if (this == a.target)f = true
+ });
+ if (!f)return false
+ }
+ this.currentItem = c;
+ this._removeCurrentsFromItems();
+ return true
+ }, _mouseStart:function (a, b, c) {
+ b = this.options;
+ var e = this;
+ this.currentContainer = this;
+ this.refreshPositions();
+ this.helper = this._createHelper(a);
+ this._cacheHelperProportions();
+ this._cacheMargins();
+ this.scrollParent = this.helper.scrollParent();
+ this.offset = this.currentItem.offset();
+ this.offset = {top:this.offset.top - this.margins.top,
+ left:this.offset.left - this.margins.left};
+ this.helper.css("position", "absolute");
+ this.cssPosition = this.helper.css("position");
+ d.extend(this.offset, {click:{left:a.pageX - this.offset.left, top:a.pageY - this.offset.top}, parent:this._getParentOffset(), relative:this._getRelativeOffset()});
+ this.originalPosition = this._generatePosition(a);
+ this.originalPageX = a.pageX;
+ this.originalPageY = a.pageY;
+ b.cursorAt && this._adjustOffsetFromHelper(b.cursorAt);
+ this.domPosition = {prev:this.currentItem.prev()[0], parent:this.currentItem.parent()[0]};
+ this.helper[0] != this.currentItem[0] && this.currentItem.hide();
+ this._createPlaceholder();
+ b.containment && this._setContainment();
+ if (b.cursor) {
+ if (d("body").css("cursor"))this._storedCursor = d("body").css("cursor");
+ d("body").css("cursor", b.cursor)
+ }
+ if (b.opacity) {
+ if (this.helper.css("opacity"))this._storedOpacity = this.helper.css("opacity");
+ this.helper.css("opacity", b.opacity)
+ }
+ if (b.zIndex) {
+ if (this.helper.css("zIndex"))this._storedZIndex = this.helper.css("zIndex");
+ this.helper.css("zIndex", b.zIndex)
+ }
+ if (this.scrollParent[0] !=
+ document && this.scrollParent[0].tagName != "HTML")this.overflowOffset = this.scrollParent.offset();
+ this._trigger("start", a, this._uiHash());
+ this._preserveHelperProportions || this._cacheHelperProportions();
+ if (!c)for (c = this.containers.length - 1; c >= 0; c--)this.containers[c]._trigger("activate", a, e._uiHash(this));
+ if (d.ui.ddmanager)d.ui.ddmanager.current = this;
+ d.ui.ddmanager && !b.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a);
+ this.dragging = true;
+ this.helper.addClass("ui-sortable-helper");
+ this._mouseDrag(a);
+ return true
+ }, _mouseDrag:function (a) {
+ this.position = this._generatePosition(a);
+ this.positionAbs = this._convertPositionTo("absolute");
+ if (!this.lastPositionAbs)this.lastPositionAbs = this.positionAbs;
+ if (this.options.scroll) {
+ var b = this.options, c = false;
+ if (this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML") {
+ if (this.overflowOffset.top + this.scrollParent[0].offsetHeight - a.pageY < b.scrollSensitivity)this.scrollParent[0].scrollTop = c = this.scrollParent[0].scrollTop + b.scrollSpeed; else if (a.pageY - this.overflowOffset.top <
+ b.scrollSensitivity)this.scrollParent[0].scrollTop = c = this.scrollParent[0].scrollTop - b.scrollSpeed;
+ if (this.overflowOffset.left + this.scrollParent[0].offsetWidth - a.pageX < b.scrollSensitivity)this.scrollParent[0].scrollLeft = c = this.scrollParent[0].scrollLeft + b.scrollSpeed; else if (a.pageX - this.overflowOffset.left < b.scrollSensitivity)this.scrollParent[0].scrollLeft = c = this.scrollParent[0].scrollLeft - b.scrollSpeed
+ } else {
+ if (a.pageY - d(document).scrollTop() < b.scrollSensitivity)c = d(document).scrollTop(d(document).scrollTop() -
+ b.scrollSpeed); else if (d(window).height() - (a.pageY - d(document).scrollTop()) < b.scrollSensitivity)c = d(document).scrollTop(d(document).scrollTop() + b.scrollSpeed);
+ if (a.pageX - d(document).scrollLeft() < b.scrollSensitivity)c = d(document).scrollLeft(d(document).scrollLeft() - b.scrollSpeed); else if (d(window).width() - (a.pageX - d(document).scrollLeft()) < b.scrollSensitivity)c = d(document).scrollLeft(d(document).scrollLeft() + b.scrollSpeed)
+ }
+ c !== false && d.ui.ddmanager && !b.dropBehaviour && d.ui.ddmanager.prepareOffsets(this,
+ a)
+ }
+ this.positionAbs = this._convertPositionTo("absolute");
+ if (!this.options.axis || this.options.axis != "y")this.helper[0].style.left = this.position.left + "px";
+ if (!this.options.axis || this.options.axis != "x")this.helper[0].style.top = this.position.top + "px";
+ for (b = this.items.length - 1; b >= 0; b--) {
+ c = this.items[b];
+ var e = c.item[0], f = this._intersectsWithPointer(c);
+ if (f)if (e != this.currentItem[0] && this.placeholder[f == 1 ? "next" : "prev"]()[0] != e && !d.ui.contains(this.placeholder[0], e) && (this.options.type == "semi-dynamic" ? !d.ui.contains(this.element[0],
+ e) : true)) {
+ this.direction = f == 1 ? "down" : "up";
+ if (this.options.tolerance == "pointer" || this._intersectsWithSides(c))this._rearrange(a, c); else break;
+ this._trigger("change", a, this._uiHash());
+ break
+ }
+ }
+ this._contactContainers(a);
+ d.ui.ddmanager && d.ui.ddmanager.drag(this, a);
+ this._trigger("sort", a, this._uiHash());
+ this.lastPositionAbs = this.positionAbs;
+ return false
+ }, _mouseStop:function (a, b) {
+ if (a) {
+ d.ui.ddmanager && !this.options.dropBehaviour && d.ui.ddmanager.drop(this, a);
+ if (this.options.revert) {
+ var c = this;
+ b = c.placeholder.offset();
+ c.reverting = true;
+ d(this.helper).animate({left:b.left - this.offset.parent.left - c.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft), top:b.top - this.offset.parent.top - c.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)}, parseInt(this.options.revert, 10) || 500, function () {
+ c._clear(a)
+ })
+ } else this._clear(a, b);
+ return false
+ }
+ }, cancel:function () {
+ var a = this;
+ if (this.dragging) {
+ this._mouseUp({target:null});
+ this.options.helper == "original" ? this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") :
+ this.currentItem.show();
+ for (var b = this.containers.length - 1; b >= 0; b--) {
+ this.containers[b]._trigger("deactivate", null, a._uiHash(this));
+ if (this.containers[b].containerCache.over) {
+ this.containers[b]._trigger("out", null, a._uiHash(this));
+ this.containers[b].containerCache.over = 0
+ }
+ }
+ }
+ if (this.placeholder) {
+ this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
+ this.options.helper != "original" && this.helper && this.helper[0].parentNode && this.helper.remove();
+ d.extend(this, {helper:null,
+ dragging:false, reverting:false, _noFinalSort:null});
+ this.domPosition.prev ? d(this.domPosition.prev).after(this.currentItem) : d(this.domPosition.parent).prepend(this.currentItem)
+ }
+ return this
+ }, serialize:function (a) {
+ var b = this._getItemsAsjQuery(a && a.connected), c = [];
+ a = a || {};
+ d(b).each(function () {
+ var e = (d(a.item || this).attr(a.attribute || "id") || "").match(a.expression || /(.+)[-=_](.+)/);
+ if (e)c.push((a.key || e[1] + "[]") + "=" + (a.key && a.expression ? e[1] : e[2]))
+ });
+ !c.length && a.key && c.push(a.key + "=");
+ return c.join("&")
+ },
+ toArray:function (a) {
+ var b = this._getItemsAsjQuery(a && a.connected), c = [];
+ a = a || {};
+ b.each(function () {
+ c.push(d(a.item || this).attr(a.attribute || "id") || "")
+ });
+ return c
+ }, _intersectsWith:function (a) {
+ var b = this.positionAbs.left, c = b + this.helperProportions.width, e = this.positionAbs.top, f = e + this.helperProportions.height, g = a.left, h = g + a.width, i = a.top, k = i + a.height, j = this.offset.click.top, l = this.offset.click.left;
+ j = e + j > i && e + j < k && b + l > g && b + l < h;
+ return this.options.tolerance == "pointer" || this.options.forcePointerForContainers ||
+ this.options.tolerance != "pointer" && this.helperProportions[this.floating ? "width" : "height"] > a[this.floating ? "width" : "height"] ? j : g < b + this.helperProportions.width / 2 && c - this.helperProportions.width / 2 < h && i < e + this.helperProportions.height / 2 && f - this.helperProportions.height / 2 < k
+ }, _intersectsWithPointer:function (a) {
+ var b = d.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, a.top, a.height);
+ a = d.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, a.left, a.width);
+ b = b && a;
+ a = this._getDragVerticalDirection();
+ var c = this._getDragHorizontalDirection();
+ if (!b)return false;
+ return this.floating ? c && c == "right" || a == "down" ? 2 : 1 : a && (a == "down" ? 2 : 1)
+ }, _intersectsWithSides:function (a) {
+ var b = d.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, a.top + a.height / 2, a.height);
+ a = d.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, a.left + a.width / 2, a.width);
+ var c = this._getDragVerticalDirection(), e = this._getDragHorizontalDirection();
+ return this.floating && e ? e == "right" && a || e == "left" && !a : c && (c == "down" && b || c == "up" && !b)
+ },
+ _getDragVerticalDirection:function () {
+ var a = this.positionAbs.top - this.lastPositionAbs.top;
+ return a != 0 && (a > 0 ? "down" : "up")
+ }, _getDragHorizontalDirection:function () {
+ var a = this.positionAbs.left - this.lastPositionAbs.left;
+ return a != 0 && (a > 0 ? "right" : "left")
+ }, refresh:function (a) {
+ this._refreshItems(a);
+ this.refreshPositions();
+ return this
+ }, _connectWith:function () {
+ var a = this.options;
+ return a.connectWith.constructor == String ? [a.connectWith] : a.connectWith
+ }, _getItemsAsjQuery:function (a) {
+ var b = [], c = [], e = this._connectWith();
+ if (e && a)for (a = e.length - 1; a >= 0; a--)for (var f = d(e[a]), g = f.length - 1; g >= 0; g--) {
+ var h = d.data(f[g], "sortable");
+ if (h && h != this && !h.options.disabled)c.push([d.isFunction(h.options.items) ? h.options.items.call(h.element) : d(h.options.items, h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), h])
+ }
+ c.push([d.isFunction(this.options.items) ? this.options.items.call(this.element, null, {options:this.options, item:this.currentItem}) : d(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),
+ this]);
+ for (a = c.length - 1; a >= 0; a--)c[a][0].each(function () {
+ b.push(this)
+ });
+ return d(b)
+ }, _removeCurrentsFromItems:function () {
+ for (var a = this.currentItem.find(":data(sortable-item)"), b = 0; b < this.items.length; b++)for (var c = 0; c < a.length; c++)a[c] == this.items[b].item[0] && this.items.splice(b, 1)
+ }, _refreshItems:function (a) {
+ this.items = [];
+ this.containers = [this];
+ var b = this.items, c = [
+ [d.isFunction(this.options.items) ? this.options.items.call(this.element[0], a, {item:this.currentItem}) : d(this.options.items, this.element),
+ this]
+ ], e = this._connectWith();
+ if (e)for (var f = e.length - 1; f >= 0; f--)for (var g = d(e[f]), h = g.length - 1; h >= 0; h--) {
+ var i = d.data(g[h], "sortable");
+ if (i && i != this && !i.options.disabled) {
+ c.push([d.isFunction(i.options.items) ? i.options.items.call(i.element[0], a, {item:this.currentItem}) : d(i.options.items, i.element), i]);
+ this.containers.push(i)
+ }
+ }
+ for (f = c.length - 1; f >= 0; f--) {
+ a = c[f][1];
+ e = c[f][0];
+ h = 0;
+ for (g = e.length; h < g; h++) {
+ i = d(e[h]);
+ i.data("sortable-item", a);
+ b.push({item:i, instance:a, width:0, height:0, left:0, top:0})
+ }
+ }
+ }, refreshPositions:function (a) {
+ if (this.offsetParent &&
+ this.helper)this.offset.parent = this._getParentOffset();
+ for (var b = this.items.length - 1; b >= 0; b--) {
+ var c = this.items[b];
+ if (!(c.instance != this.currentContainer && this.currentContainer && c.item[0] != this.currentItem[0])) {
+ var e = this.options.toleranceElement ? d(this.options.toleranceElement, c.item) : c.item;
+ if (!a) {
+ c.width = e.outerWidth();
+ c.height = e.outerHeight()
+ }
+ e = e.offset();
+ c.left = e.left;
+ c.top = e.top
+ }
+ }
+ if (this.options.custom && this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this); else for (b =
+ this.containers.length - 1; b >= 0; b--) {
+ e = this.containers[b].element.offset();
+ this.containers[b].containerCache.left = e.left;
+ this.containers[b].containerCache.top = e.top;
+ this.containers[b].containerCache.width = this.containers[b].element.outerWidth();
+ this.containers[b].containerCache.height = this.containers[b].element.outerHeight()
+ }
+ return this
+ }, _createPlaceholder:function (a) {
+ var b = a || this, c = b.options;
+ if (!c.placeholder || c.placeholder.constructor == String) {
+ var e = c.placeholder;
+ c.placeholder = {element:function () {
+ var f =
+ d(document.createElement(b.currentItem[0].nodeName)).addClass(e || b.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];
+ if (!e)f.style.visibility = "hidden";
+ return f
+ }, update:function (f, g) {
+ if (!(e && !c.forcePlaceholderSize)) {
+ g.height() || g.height(b.currentItem.innerHeight() - parseInt(b.currentItem.css("paddingTop") || 0, 10) - parseInt(b.currentItem.css("paddingBottom") || 0, 10));
+ g.width() || g.width(b.currentItem.innerWidth() - parseInt(b.currentItem.css("paddingLeft") || 0, 10) - parseInt(b.currentItem.css("paddingRight") ||
+ 0, 10))
+ }
+ }}
+ }
+ b.placeholder = d(c.placeholder.element.call(b.element, b.currentItem));
+ b.currentItem.after(b.placeholder);
+ c.placeholder.update(b, b.placeholder)
+ }, _contactContainers:function (a) {
+ for (var b = null, c = null, e = this.containers.length - 1; e >= 0; e--)if (!d.ui.contains(this.currentItem[0], this.containers[e].element[0]))if (this._intersectsWith(this.containers[e].containerCache)) {
+ if (!(b && d.ui.contains(this.containers[e].element[0], b.element[0]))) {
+ b = this.containers[e];
+ c = e
+ }
+ } else if (this.containers[e].containerCache.over) {
+ this.containers[e]._trigger("out",
+ a, this._uiHash(this));
+ this.containers[e].containerCache.over = 0
+ }
+ if (b)if (this.containers.length === 1) {
+ this.containers[c]._trigger("over", a, this._uiHash(this));
+ this.containers[c].containerCache.over = 1
+ } else if (this.currentContainer != this.containers[c]) {
+ b = 1E4;
+ e = null;
+ for (var f = this.positionAbs[this.containers[c].floating ? "left" : "top"], g = this.items.length - 1; g >= 0; g--)if (d.ui.contains(this.containers[c].element[0], this.items[g].item[0])) {
+ var h = this.items[g][this.containers[c].floating ? "left" : "top"];
+ if (Math.abs(h -
+ f) < b) {
+ b = Math.abs(h - f);
+ e = this.items[g]
+ }
+ }
+ if (e || this.options.dropOnEmpty) {
+ this.currentContainer = this.containers[c];
+ e ? this._rearrange(a, e, null, true) : this._rearrange(a, null, this.containers[c].element, true);
+ this._trigger("change", a, this._uiHash());
+ this.containers[c]._trigger("change", a, this._uiHash(this));
+ this.options.placeholder.update(this.currentContainer, this.placeholder);
+ this.containers[c]._trigger("over", a, this._uiHash(this));
+ this.containers[c].containerCache.over = 1
+ }
+ }
+ }, _createHelper:function (a) {
+ var b =
+ this.options;
+ a = d.isFunction(b.helper) ? d(b.helper.apply(this.element[0], [a, this.currentItem])) : b.helper == "clone" ? this.currentItem.clone() : this.currentItem;
+ a.parents("body").length || d(b.appendTo != "parent" ? b.appendTo : this.currentItem[0].parentNode)[0].appendChild(a[0]);
+ if (a[0] == this.currentItem[0])this._storedCSS = {width:this.currentItem[0].style.width, height:this.currentItem[0].style.height, position:this.currentItem.css("position"), top:this.currentItem.css("top"), left:this.currentItem.css("left")};
+ if (a[0].style.width ==
+ "" || b.forceHelperSize)a.width(this.currentItem.width());
+ if (a[0].style.height == "" || b.forceHelperSize)a.height(this.currentItem.height());
+ return a
+ }, _adjustOffsetFromHelper:function (a) {
+ if (typeof a == "string")a = a.split(" ");
+ if (d.isArray(a))a = {left:+a[0], top:+a[1] || 0};
+ if ("left"in a)this.offset.click.left = a.left + this.margins.left;
+ if ("right"in a)this.offset.click.left = this.helperProportions.width - a.right + this.margins.left;
+ if ("top"in a)this.offset.click.top = a.top + this.margins.top;
+ if ("bottom"in a)this.offset.click.top =
+ this.helperProportions.height - a.bottom + this.margins.top
+ }, _getParentOffset:function () {
+ this.offsetParent = this.helper.offsetParent();
+ var a = this.offsetParent.offset();
+ if (this.cssPosition == "absolute" && this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) {
+ a.left += this.scrollParent.scrollLeft();
+ a.top += this.scrollParent.scrollTop()
+ }
+ if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && d.browser.msie)a =
+ {top:0, left:0};
+ return{top:a.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), left:a.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)}
+ }, _getRelativeOffset:function () {
+ if (this.cssPosition == "relative") {
+ var a = this.currentItem.position();
+ return{top:a.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), left:a.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()}
+ } else return{top:0, left:0}
+ }, _cacheMargins:function () {
+ this.margins = {left:parseInt(this.currentItem.css("marginLeft"),
+ 10) || 0, top:parseInt(this.currentItem.css("marginTop"), 10) || 0}
+ }, _cacheHelperProportions:function () {
+ this.helperProportions = {width:this.helper.outerWidth(), height:this.helper.outerHeight()}
+ }, _setContainment:function () {
+ var a = this.options;
+ if (a.containment == "parent")a.containment = this.helper[0].parentNode;
+ if (a.containment == "document" || a.containment == "window")this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, d(a.containment == "document" ?
+ document : window).width() - this.helperProportions.width - this.margins.left, (d(a.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top];
+ if (!/^(document|window|parent)$/.test(a.containment)) {
+ var b = d(a.containment)[0];
+ a = d(a.containment).offset();
+ var c = d(b).css("overflow") != "hidden";
+ this.containment = [a.left + (parseInt(d(b).css("borderLeftWidth"), 10) || 0) + (parseInt(d(b).css("paddingLeft"), 10) || 0) - this.margins.left, a.top + (parseInt(d(b).css("borderTopWidth"),
+ 10) || 0) + (parseInt(d(b).css("paddingTop"), 10) || 0) - this.margins.top, a.left + (c ? Math.max(b.scrollWidth, b.offsetWidth) : b.offsetWidth) - (parseInt(d(b).css("borderLeftWidth"), 10) || 0) - (parseInt(d(b).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, a.top + (c ? Math.max(b.scrollHeight, b.offsetHeight) : b.offsetHeight) - (parseInt(d(b).css("borderTopWidth"), 10) || 0) - (parseInt(d(b).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top]
+ }
+ }, _convertPositionTo:function (a, b) {
+ if (!b)b =
+ this.position;
+ a = a == "absolute" ? 1 : -1;
+ var c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, e = /(html|body)/i.test(c[0].tagName);
+ return{top:b.top + this.offset.relative.top * a + this.offset.parent.top * a - (d.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : e ? 0 : c.scrollTop()) * a), left:b.left + this.offset.relative.left * a + this.offset.parent.left * a - (d.browser.safari &&
+ this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : e ? 0 : c.scrollLeft()) * a)}
+ }, _generatePosition:function (a) {
+ var b = this.options, c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, e = /(html|body)/i.test(c[0].tagName);
+ if (this.cssPosition == "relative" && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0]))this.offset.relative = this._getRelativeOffset();
+ var f = a.pageX, g = a.pageY;
+ if (this.originalPosition) {
+ if (this.containment) {
+ if (a.pageX - this.offset.click.left < this.containment[0])f = this.containment[0] + this.offset.click.left;
+ if (a.pageY - this.offset.click.top < this.containment[1])g = this.containment[1] + this.offset.click.top;
+ if (a.pageX - this.offset.click.left > this.containment[2])f = this.containment[2] + this.offset.click.left;
+ if (a.pageY - this.offset.click.top > this.containment[3])g = this.containment[3] + this.offset.click.top
+ }
+ if (b.grid) {
+ g = this.originalPageY + Math.round((g -
+ this.originalPageY) / b.grid[1]) * b.grid[1];
+ g = this.containment ? !(g - this.offset.click.top < this.containment[1] || g - this.offset.click.top > this.containment[3]) ? g : !(g - this.offset.click.top < this.containment[1]) ? g - b.grid[1] : g + b.grid[1] : g;
+ f = this.originalPageX + Math.round((f - this.originalPageX) / b.grid[0]) * b.grid[0];
+ f = this.containment ? !(f - this.offset.click.left < this.containment[0] || f - this.offset.click.left > this.containment[2]) ? f : !(f - this.offset.click.left < this.containment[0]) ? f - b.grid[0] : f + b.grid[0] : f
+ }
+ }
+ return{top:g -
+ this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (d.browser.safari && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : e ? 0 : c.scrollTop()), left:f - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (d.browser.safari && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : e ? 0 : c.scrollLeft())}
+ }, _rearrange:function (a, b, c, e) {
+ c ? c[0].appendChild(this.placeholder[0]) : b.item[0].parentNode.insertBefore(this.placeholder[0],
+ this.direction == "down" ? b.item[0] : b.item[0].nextSibling);
+ this.counter = this.counter ? ++this.counter : 1;
+ var f = this, g = this.counter;
+ window.setTimeout(function () {
+ g == f.counter && f.refreshPositions(!e)
+ }, 0)
+ }, _clear:function (a, b) {
+ this.reverting = false;
+ var c = [];
+ !this._noFinalSort && this.currentItem.parent().length && this.placeholder.before(this.currentItem);
+ this._noFinalSort = null;
+ if (this.helper[0] == this.currentItem[0]) {
+ for (var e in this._storedCSS)if (this._storedCSS[e] == "auto" || this._storedCSS[e] == "static")this._storedCSS[e] =
+ "";
+ this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")
+ } else this.currentItem.show();
+ this.fromOutside && !b && c.push(function (f) {
+ this._trigger("receive", f, this._uiHash(this.fromOutside))
+ });
+ if ((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !b)c.push(function (f) {
+ this._trigger("update", f, this._uiHash())
+ });
+ if (!d.ui.contains(this.element[0], this.currentItem[0])) {
+ b || c.push(function (f) {
+ this._trigger("remove",
+ f, this._uiHash())
+ });
+ for (e = this.containers.length - 1; e >= 0; e--)if (d.ui.contains(this.containers[e].element[0], this.currentItem[0]) && !b) {
+ c.push(function (f) {
+ return function (g) {
+ f._trigger("receive", g, this._uiHash(this))
+ }
+ }.call(this, this.containers[e]));
+ c.push(function (f) {
+ return function (g) {
+ f._trigger("update", g, this._uiHash(this))
+ }
+ }.call(this, this.containers[e]))
+ }
+ }
+ for (e = this.containers.length - 1; e >= 0; e--) {
+ b || c.push(function (f) {
+ return function (g) {
+ f._trigger("deactivate", g, this._uiHash(this))
+ }
+ }.call(this,
+ this.containers[e]));
+ if (this.containers[e].containerCache.over) {
+ c.push(function (f) {
+ return function (g) {
+ f._trigger("out", g, this._uiHash(this))
+ }
+ }.call(this, this.containers[e]));
+ this.containers[e].containerCache.over = 0
+ }
+ }
+ this._storedCursor && d("body").css("cursor", this._storedCursor);
+ this._storedOpacity && this.helper.css("opacity", this._storedOpacity);
+ if (this._storedZIndex)this.helper.css("zIndex", this._storedZIndex == "auto" ? "" : this._storedZIndex);
+ this.dragging = false;
+ if (this.cancelHelperRemoval) {
+ if (!b) {
+ this._trigger("beforeStop",
+ a, this._uiHash());
+ for (e = 0; e < c.length; e++)c[e].call(this, a);
+ this._trigger("stop", a, this._uiHash())
+ }
+ return false
+ }
+ b || this._trigger("beforeStop", a, this._uiHash());
+ this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
+ this.helper[0] != this.currentItem[0] && this.helper.remove();
+ this.helper = null;
+ if (!b) {
+ for (e = 0; e < c.length; e++)c[e].call(this, a);
+ this._trigger("stop", a, this._uiHash())
+ }
+ this.fromOutside = false;
+ return true
+ }, _trigger:function () {
+ d.Widget.prototype._trigger.apply(this, arguments) === false && this.cancel()
+ },
+ _uiHash:function (a) {
+ var b = a || this;
+ return{helper:b.helper, placeholder:b.placeholder || d([]), position:b.position, originalPosition:b.originalPosition, offset:b.positionAbs, item:b.currentItem, sender:a ? a.element : null}
+ }});
+ d.extend(d.ui.sortable, {version:"1.8.14"})
+})(jQuery);
+;
+/*
+ * jQuery UI Accordion 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.widget.js
+ */
+(function (c) {
+ c.widget("ui.accordion", {options:{active:0, animated:"slide", autoHeight:true, clearStyle:false, collapsible:false, event:"click", fillSpace:false, header:"> li > :first-child,> :not(li):even", icons:{header:"ui-icon-triangle-1-e", headerSelected:"ui-icon-triangle-1-s"}, navigation:false, navigationFilter:function () {
+ return this.href.toLowerCase() === location.href.toLowerCase()
+ }}, _create:function () {
+ var a = this, b = a.options;
+ a.running = 0;
+ a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");
+ a.headers = a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function () {
+ b.disabled || c(this).addClass("ui-state-hover")
+ }).bind("mouseleave.accordion",function () {
+ b.disabled || c(this).removeClass("ui-state-hover")
+ }).bind("focus.accordion",function () {
+ b.disabled || c(this).addClass("ui-state-focus")
+ }).bind("blur.accordion", function () {
+ b.disabled || c(this).removeClass("ui-state-focus")
+ });
+ a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
+ if (b.navigation) {
+ var d = a.element.find("a").filter(b.navigationFilter).eq(0);
+ if (d.length) {
+ var h = d.closest(".ui-accordion-header");
+ a.active = h.length ? h : d.closest(".ui-accordion-content").prev()
+ }
+ }
+ a.active = a._findActive(a.active || b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");
+ a.active.next().addClass("ui-accordion-content-active");
+ a._createIcons();
+ a.resize();
+ a.element.attr("role", "tablist");
+ a.headers.attr("role", "tab").bind("keydown.accordion",
+ function (f) {
+ return a._keydown(f)
+ }).next().attr("role", "tabpanel");
+ a.headers.not(a.active || "").attr({"aria-expanded":"false", "aria-selected":"false", tabIndex:-1}).next().hide();
+ a.active.length ? a.active.attr({"aria-expanded":"true", "aria-selected":"true", tabIndex:0}) : a.headers.eq(0).attr("tabIndex", 0);
+ c.browser.safari || a.headers.find("a").attr("tabIndex", -1);
+ b.event && a.headers.bind(b.event.split(" ").join(".accordion ") + ".accordion", function (f) {
+ a._clickHandler.call(a, f, this);
+ f.preventDefault()
+ })
+ }, _createIcons:function () {
+ var a =
+ this.options;
+ if (a.icons) {
+ c(" ").addClass("ui-icon " + a.icons.header).prependTo(this.headers);
+ this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);
+ this.element.addClass("ui-accordion-icons")
+ }
+ }, _destroyIcons:function () {
+ this.headers.children(".ui-icon").remove();
+ this.element.removeClass("ui-accordion-icons")
+ }, destroy:function () {
+ var a = this.options;
+ this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");
+ this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex");
+ this.headers.find("a").removeAttr("tabIndex");
+ this._destroyIcons();
+ var b = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");
+ if (a.autoHeight || a.fillHeight)b.css("height", "");
+ return c.Widget.prototype.destroy.call(this)
+ }, _setOption:function (a, b) {
+ c.Widget.prototype._setOption.apply(this, arguments);
+ a == "active" && this.activate(b);
+ if (a == "icons") {
+ this._destroyIcons();
+ b && this._createIcons()
+ }
+ if (a == "disabled")this.headers.add(this.headers.next())[b ? "addClass" : "removeClass"]("ui-accordion-disabled ui-state-disabled")
+ }, _keydown:function (a) {
+ if (!(this.options.disabled || a.altKey || a.ctrlKey)) {
+ var b = c.ui.keyCode, d = this.headers.length, h = this.headers.index(a.target), f = false;
+ switch (a.keyCode) {
+ case b.RIGHT:
+ case b.DOWN:
+ f = this.headers[(h + 1) % d];
+ break;
+ case b.LEFT:
+ case b.UP:
+ f = this.headers[(h - 1 + d) % d];
+ break;
+ case b.SPACE:
+ case b.ENTER:
+ this._clickHandler({target:a.target}, a.target);
+ a.preventDefault()
+ }
+ if (f) {
+ c(a.target).attr("tabIndex", -1);
+ c(f).attr("tabIndex", 0);
+ f.focus();
+ return false
+ }
+ return true
+ }
+ }, resize:function () {
+ var a = this.options, b;
+ if (a.fillSpace) {
+ if (c.browser.msie) {
+ var d = this.element.parent().css("overflow");
+ this.element.parent().css("overflow", "hidden")
+ }
+ b = this.element.parent().height();
+ c.browser.msie && this.element.parent().css("overflow", d);
+ this.headers.each(function () {
+ b -= c(this).outerHeight(true)
+ });
+ this.headers.next().each(function () {
+ c(this).height(Math.max(0, b - c(this).innerHeight() +
+ c(this).height()))
+ }).css("overflow", "auto")
+ } else if (a.autoHeight) {
+ b = 0;
+ this.headers.next().each(function () {
+ b = Math.max(b, c(this).height("").height())
+ }).height(b)
+ }
+ return this
+ }, activate:function (a) {
+ this.options.active = a;
+ a = this._findActive(a)[0];
+ this._clickHandler({target:a}, a);
+ return this
+ }, _findActive:function (a) {
+ return a ? typeof a === "number" ? this.headers.filter(":eq(" + a + ")") : this.headers.not(this.headers.not(a)) : a === false ? c([]) : this.headers.filter(":eq(0)")
+ }, _clickHandler:function (a, b) {
+ var d = this.options;
+ if (!d.disabled)if (a.target) {
+ a = c(a.currentTarget || b);
+ b = a[0] === this.active[0];
+ d.active = d.collapsible && b ? false : this.headers.index(a);
+ if (!(this.running || !d.collapsible && b)) {
+ var h = this.active;
+ j = a.next();
+ g = this.active.next();
+ e = {options:d, newHeader:b && d.collapsible ? c([]) : a, oldHeader:this.active, newContent:b && d.collapsible ? c([]) : j, oldContent:g};
+ var f = this.headers.index(this.active[0]) > this.headers.index(a[0]);
+ this.active = b ? c([]) : a;
+ this._toggle(j, g, e, b, f);
+ h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
+ if (!b) {
+ a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);
+ a.next().addClass("ui-accordion-content-active")
+ }
+ }
+ } else if (d.collapsible) {
+ this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
+ this.active.next().addClass("ui-accordion-content-active");
+ var g = this.active.next(),
+ e = {options:d, newHeader:c([]), oldHeader:d.active, newContent:c([]), oldContent:g}, j = this.active = c([]);
+ this._toggle(j, g, e)
+ }
+ }, _toggle:function (a, b, d, h, f) {
+ var g = this, e = g.options;
+ g.toShow = a;
+ g.toHide = b;
+ g.data = d;
+ var j = function () {
+ if (g)return g._completed.apply(g, arguments)
+ };
+ g._trigger("changestart", null, g.data);
+ g.running = b.size() === 0 ? a.size() : b.size();
+ if (e.animated) {
+ d = {};
+ d = e.collapsible && h ? {toShow:c([]), toHide:b, complete:j, down:f, autoHeight:e.autoHeight || e.fillSpace} : {toShow:a, toHide:b, complete:j, down:f, autoHeight:e.autoHeight ||
+ e.fillSpace};
+ if (!e.proxied)e.proxied = e.animated;
+ if (!e.proxiedDuration)e.proxiedDuration = e.duration;
+ e.animated = c.isFunction(e.proxied) ? e.proxied(d) : e.proxied;
+ e.duration = c.isFunction(e.proxiedDuration) ? e.proxiedDuration(d) : e.proxiedDuration;
+ h = c.ui.accordion.animations;
+ var i = e.duration, k = e.animated;
+ if (k && !h[k] && !c.easing[k])k = "slide";
+ h[k] || (h[k] = function (l) {
+ this.slide(l, {easing:k, duration:i || 700})
+ });
+ h[k](d)
+ } else {
+ if (e.collapsible && h)a.toggle(); else {
+ b.hide();
+ a.show()
+ }
+ j(true)
+ }
+ b.prev().attr({"aria-expanded":"false",
+ "aria-selected":"false", tabIndex:-1}).blur();
+ a.prev().attr({"aria-expanded":"true", "aria-selected":"true", tabIndex:0}).focus()
+ }, _completed:function (a) {
+ this.running = a ? 0 : --this.running;
+ if (!this.running) {
+ this.options.clearStyle && this.toShow.add(this.toHide).css({height:"", overflow:""});
+ this.toHide.removeClass("ui-accordion-content-active");
+ if (this.toHide.length)this.toHide.parent()[0].className = this.toHide.parent()[0].className;
+ this._trigger("change", null, this.data)
+ }
+ }});
+ c.extend(c.ui.accordion, {version:"1.8.14",
+ animations:{slide:function (a, b) {
+ a = c.extend({easing:"swing", duration:300}, a, b);
+ if (a.toHide.size())if (a.toShow.size()) {
+ var d = a.toShow.css("overflow"), h = 0, f = {}, g = {}, e;
+ b = a.toShow;
+ e = b[0].style.width;
+ b.width(parseInt(b.parent().width(), 10) - parseInt(b.css("paddingLeft"), 10) - parseInt(b.css("paddingRight"), 10) - (parseInt(b.css("borderLeftWidth"), 10) || 0) - (parseInt(b.css("borderRightWidth"), 10) || 0));
+ c.each(["height", "paddingTop", "paddingBottom"], function (j, i) {
+ g[i] = "hide";
+ j = ("" + c.css(a.toShow[0], i)).match(/^([\d+-.]+)(.*)$/);
+ f[i] = {value:j[1], unit:j[2] || "px"}
+ });
+ a.toShow.css({height:0, overflow:"hidden"}).show();
+ a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g, {step:function (j, i) {
+ if (i.prop == "height")h = i.end - i.start === 0 ? 0 : (i.now - i.start) / (i.end - i.start);
+ a.toShow[0].style[i.prop] = h * f[i.prop].value + f[i.prop].unit
+ }, duration:a.duration, easing:a.easing, complete:function () {
+ a.autoHeight || a.toShow.css("height", "");
+ a.toShow.css({width:e, overflow:d});
+ a.complete()
+ }})
+ } else a.toHide.animate({height:"hide",
+ paddingTop:"hide", paddingBottom:"hide"}, a); else a.toShow.animate({height:"show", paddingTop:"show", paddingBottom:"show"}, a)
+ }, bounceslide:function (a) {
+ this.slide(a, {easing:a.down ? "easeOutBounce" : "swing", duration:a.down ? 1E3 : 200})
+ }}})
+})(jQuery);
+;
+/*
+ * jQuery UI Autocomplete 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.widget.js
+ * jquery.ui.position.js
+ */
+(function (d) {
+ var e = 0;
+ d.widget("ui.autocomplete", {options:{appendTo:"body", autoFocus:false, delay:300, minLength:1, position:{my:"left top", at:"left bottom", collision:"none"}, source:null}, pending:0, _create:function () {
+ var a = this, b = this.element[0].ownerDocument, g;
+ this.element.addClass("ui-autocomplete-input").attr("autocomplete", "off").attr({role:"textbox", "aria-autocomplete":"list", "aria-haspopup":"true"}).bind("keydown.autocomplete",function (c) {
+ if (!(a.options.disabled || a.element.attr("readonly"))) {
+ g =
+ false;
+ var f = d.ui.keyCode;
+ switch (c.keyCode) {
+ case f.PAGE_UP:
+ a._move("previousPage", c);
+ break;
+ case f.PAGE_DOWN:
+ a._move("nextPage", c);
+ break;
+ case f.UP:
+ a._move("previous", c);
+ c.preventDefault();
+ break;
+ case f.DOWN:
+ a._move("next", c);
+ c.preventDefault();
+ break;
+ case f.ENTER:
+ case f.NUMPAD_ENTER:
+ if (a.menu.active) {
+ g = true;
+ c.preventDefault()
+ }
+ case f.TAB:
+ if (!a.menu.active)return;
+ a.menu.select(c);
+ break;
+ case f.ESCAPE:
+ a.element.val(a.term);
+ a.close(c);
+ break;
+ default:
+ clearTimeout(a.searching);
+ a.searching = setTimeout(function () {
+ if (a.term !=
+ a.element.val()) {
+ a.selectedItem = null;
+ a.search(null, c)
+ }
+ }, a.options.delay);
+ break
+ }
+ }
+ }).bind("keypress.autocomplete",function (c) {
+ if (g) {
+ g = false;
+ c.preventDefault()
+ }
+ }).bind("focus.autocomplete",function () {
+ if (!a.options.disabled) {
+ a.selectedItem = null;
+ a.previous = a.element.val()
+ }
+ }).bind("blur.autocomplete", function (c) {
+ if (!a.options.disabled) {
+ clearTimeout(a.searching);
+ a.closing = setTimeout(function () {
+ a.close(c);
+ a._change(c)
+ }, 150)
+ }
+ });
+ this._initSource();
+ this.response = function () {
+ return a._response.apply(a, arguments)
+ };
+ this.menu = d("").addClass("ui-autocomplete").appendTo(d(this.options.appendTo || "body", b)[0]).mousedown(function (c) {
+ var f = a.menu.element[0];
+ d(c.target).closest(".ui-menu-item").length || setTimeout(function () {
+ d(document).one("mousedown", function (h) {
+ h.target !== a.element[0] && h.target !== f && !d.ui.contains(f, h.target) && a.close()
+ })
+ }, 1);
+ setTimeout(function () {
+ clearTimeout(a.closing)
+ }, 13)
+ }).menu({focus:function (c, f) {
+ f = f.item.data("item.autocomplete");
+ false !== a._trigger("focus", c, {item:f}) && /^key/.test(c.originalEvent.type) &&
+ a.element.val(f.value)
+ }, selected:function (c, f) {
+ var h = f.item.data("item.autocomplete"), i = a.previous;
+ if (a.element[0] !== b.activeElement) {
+ a.element.focus();
+ a.previous = i;
+ setTimeout(function () {
+ a.previous = i;
+ a.selectedItem = h
+ }, 1)
+ }
+ false !== a._trigger("select", c, {item:h}) && a.element.val(h.value);
+ a.term = a.element.val();
+ a.close(c);
+ a.selectedItem = h
+ }, blur:function () {
+ a.menu.element.is(":visible") && a.element.val() !== a.term && a.element.val(a.term)
+ }}).zIndex(this.element.zIndex() + 1).css({top:0, left:0}).hide().data("menu");
+ d.fn.bgiframe && this.menu.element.bgiframe()
+ }, destroy:function () {
+ this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");
+ this.menu.element.remove();
+ d.Widget.prototype.destroy.call(this)
+ }, _setOption:function (a, b) {
+ d.Widget.prototype._setOption.apply(this, arguments);
+ a === "source" && this._initSource();
+ if (a === "appendTo")this.menu.element.appendTo(d(b || "body", this.element[0].ownerDocument)[0]);
+ a === "disabled" &&
+ b && this.xhr && this.xhr.abort()
+ }, _initSource:function () {
+ var a = this, b, g;
+ if (d.isArray(this.options.source)) {
+ b = this.options.source;
+ this.source = function (c, f) {
+ f(d.ui.autocomplete.filter(b, c.term))
+ }
+ } else if (typeof this.options.source === "string") {
+ g = this.options.source;
+ this.source = function (c, f) {
+ a.xhr && a.xhr.abort();
+ a.xhr = d.ajax({url:g, data:c, dataType:"json", autocompleteRequest:++e, success:function (h) {
+ this.autocompleteRequest === e && f(h)
+ }, error:function () {
+ this.autocompleteRequest === e && f([])
+ }})
+ }
+ } else this.source =
+ this.options.source
+ }, search:function (a, b) {
+ a = a != null ? a : this.element.val();
+ this.term = this.element.val();
+ if (a.length < this.options.minLength)return this.close(b);
+ clearTimeout(this.closing);
+ if (this._trigger("search", b) !== false)return this._search(a)
+ }, _search:function (a) {
+ this.pending++;
+ this.element.addClass("ui-autocomplete-loading");
+ this.source({term:a}, this.response)
+ }, _response:function (a) {
+ if (!this.options.disabled && a && a.length) {
+ a = this._normalize(a);
+ this._suggest(a);
+ this._trigger("open")
+ } else this.close();
+ this.pending--;
+ this.pending || this.element.removeClass("ui-autocomplete-loading")
+ }, close:function (a) {
+ clearTimeout(this.closing);
+ if (this.menu.element.is(":visible")) {
+ this.menu.element.hide();
+ this.menu.deactivate();
+ this._trigger("close", a)
+ }
+ }, _change:function (a) {
+ this.previous !== this.element.val() && this._trigger("change", a, {item:this.selectedItem})
+ }, _normalize:function (a) {
+ if (a.length && a[0].label && a[0].value)return a;
+ return d.map(a, function (b) {
+ if (typeof b === "string")return{label:b, value:b};
+ return d.extend({label:b.label ||
+ b.value, value:b.value || b.label}, b)
+ })
+ }, _suggest:function (a) {
+ var b = this.menu.element.empty().zIndex(this.element.zIndex() + 1);
+ this._renderMenu(b, a);
+ this.menu.deactivate();
+ this.menu.refresh();
+ b.show();
+ this._resizeMenu();
+ b.position(d.extend({of:this.element}, this.options.position));
+ this.options.autoFocus && this.menu.next(new d.Event("mouseover"))
+ }, _resizeMenu:function () {
+ var a = this.menu.element;
+ a.outerWidth(Math.max(a.width("").outerWidth(), this.element.outerWidth()))
+ }, _renderMenu:function (a, b) {
+ var g = this;
+ d.each(b, function (c, f) {
+ g._renderItem(a, f)
+ })
+ }, _renderItem:function (a, b) {
+ return d(" ").data("item.autocomplete", b).append(d(" ").text(b.label)).appendTo(a)
+ }, _move:function (a, b) {
+ if (this.menu.element.is(":visible"))if (this.menu.first() && /^previous/.test(a) || this.menu.last() && /^next/.test(a)) {
+ this.element.val(this.term);
+ this.menu.deactivate()
+ } else this.menu[a](b); else this.search(null, b)
+ }, widget:function () {
+ return this.menu.element
+ }});
+ d.extend(d.ui.autocomplete, {escapeRegex:function (a) {
+ return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,
+ "\\$&")
+ }, filter:function (a, b) {
+ var g = new RegExp(d.ui.autocomplete.escapeRegex(b), "i");
+ return d.grep(a, function (c) {
+ return g.test(c.label || c.value || c)
+ })
+ }})
+})(jQuery);
+(function (d) {
+ d.widget("ui.menu", {_create:function () {
+ var e = this;
+ this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox", "aria-activedescendant":"ui-active-menuitem"}).click(function (a) {
+ if (d(a.target).closest(".ui-menu-item a").length) {
+ a.preventDefault();
+ e.select(a)
+ }
+ });
+ this.refresh()
+ }, refresh:function () {
+ var e = this;
+ this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role", "menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
+ -1).mouseenter(function (a) {
+ e.activate(a, d(this).parent())
+ }).mouseleave(function () {
+ e.deactivate()
+ })
+ }, activate:function (e, a) {
+ this.deactivate();
+ if (this.hasScroll()) {
+ var b = a.offset().top - this.element.offset().top, g = this.element.scrollTop(), c = this.element.height();
+ if (b < 0)this.element.scrollTop(g + b); else b >= c && this.element.scrollTop(g + b - c + a.height())
+ }
+ this.active = a.eq(0).children("a").addClass("ui-state-hover").attr("id", "ui-active-menuitem").end();
+ this._trigger("focus", e, {item:a})
+ }, deactivate:function () {
+ if (this.active) {
+ this.active.children("a").removeClass("ui-state-hover").removeAttr("id");
+ this._trigger("blur");
+ this.active = null
+ }
+ }, next:function (e) {
+ this.move("next", ".ui-menu-item:first", e)
+ }, previous:function (e) {
+ this.move("prev", ".ui-menu-item:last", e)
+ }, first:function () {
+ return this.active && !this.active.prevAll(".ui-menu-item").length
+ }, last:function () {
+ return this.active && !this.active.nextAll(".ui-menu-item").length
+ }, move:function (e, a, b) {
+ if (this.active) {
+ e = this.active[e + "All"](".ui-menu-item").eq(0);
+ e.length ? this.activate(b, e) : this.activate(b, this.element.children(a))
+ } else this.activate(b,
+ this.element.children(a))
+ }, nextPage:function (e) {
+ if (this.hasScroll())if (!this.active || this.last())this.activate(e, this.element.children(".ui-menu-item:first")); else {
+ var a = this.active.offset().top, b = this.element.height(), g = this.element.children(".ui-menu-item").filter(function () {
+ var c = d(this).offset().top - a - b + d(this).height();
+ return c < 10 && c > -10
+ });
+ g.length || (g = this.element.children(".ui-menu-item:last"));
+ this.activate(e, g)
+ } else this.activate(e, this.element.children(".ui-menu-item").filter(!this.active ||
+ this.last() ? ":first" : ":last"))
+ }, previousPage:function (e) {
+ if (this.hasScroll())if (!this.active || this.first())this.activate(e, this.element.children(".ui-menu-item:last")); else {
+ var a = this.active.offset().top, b = this.element.height();
+ result = this.element.children(".ui-menu-item").filter(function () {
+ var g = d(this).offset().top - a + b - d(this).height();
+ return g < 10 && g > -10
+ });
+ result.length || (result = this.element.children(".ui-menu-item:first"));
+ this.activate(e, result)
+ } else this.activate(e, this.element.children(".ui-menu-item").filter(!this.active ||
+ this.first() ? ":last" : ":first"))
+ }, hasScroll:function () {
+ return this.element.height() < this.element[d.fn.prop ? "prop" : "attr"]("scrollHeight")
+ }, select:function (e) {
+ this._trigger("selected", e, {item:this.active})
+ }})
+})(jQuery);
+;
+/*
+ * jQuery UI Button 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.widget.js
+ */
+(function (b) {
+ var h, i, j, g, l = function () {
+ var a = b(this).find(":ui-button");
+ setTimeout(function () {
+ a.button("refresh")
+ }, 1)
+ }, k = function (a) {
+ var c = a.name, e = a.form, f = b([]);
+ if (c)f = e ? b(e).find("[name='" + c + "']") : b("[name='" + c + "']", a.ownerDocument).filter(function () {
+ return!this.form
+ });
+ return f
+ };
+ b.widget("ui.button", {options:{disabled:null, text:true, label:null, icons:{primary:null, secondary:null}}, _create:function () {
+ this.element.closest("form").unbind("reset.button").bind("reset.button", l);
+ if (typeof this.options.disabled !==
+ "boolean")this.options.disabled = this.element.attr("disabled");
+ this._determineButtonType();
+ this.hasTitle = !!this.buttonElement.attr("title");
+ var a = this, c = this.options, e = this.type === "checkbox" || this.type === "radio", f = "ui-state-hover" + (!e ? " ui-state-active" : "");
+ if (c.label === null)c.label = this.buttonElement.html();
+ if (this.element.is(":disabled"))c.disabled = true;
+ this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role", "button").bind("mouseenter.button",function () {
+ if (!c.disabled) {
+ b(this).addClass("ui-state-hover");
+ this === h && b(this).addClass("ui-state-active")
+ }
+ }).bind("mouseleave.button",function () {
+ c.disabled || b(this).removeClass(f)
+ }).bind("click.button", function (d) {
+ if (c.disabled) {
+ d.preventDefault();
+ d.stopImmediatePropagation()
+ }
+ });
+ this.element.bind("focus.button",function () {
+ a.buttonElement.addClass("ui-state-focus")
+ }).bind("blur.button", function () {
+ a.buttonElement.removeClass("ui-state-focus")
+ });
+ if (e) {
+ this.element.bind("change.button", function () {
+ g || a.refresh()
+ });
+ this.buttonElement.bind("mousedown.button",function (d) {
+ if (!c.disabled) {
+ g =
+ false;
+ i = d.pageX;
+ j = d.pageY
+ }
+ }).bind("mouseup.button", function (d) {
+ if (!c.disabled)if (i !== d.pageX || j !== d.pageY)g = true
+ })
+ }
+ if (this.type === "checkbox")this.buttonElement.bind("click.button", function () {
+ if (c.disabled || g)return false;
+ b(this).toggleClass("ui-state-active");
+ a.buttonElement.attr("aria-pressed", a.element[0].checked)
+ }); else if (this.type === "radio")this.buttonElement.bind("click.button", function () {
+ if (c.disabled || g)return false;
+ b(this).addClass("ui-state-active");
+ a.buttonElement.attr("aria-pressed", true);
+ var d = a.element[0];
+ k(d).not(d).map(function () {
+ return b(this).button("widget")[0]
+ }).removeClass("ui-state-active").attr("aria-pressed", false)
+ }); else {
+ this.buttonElement.bind("mousedown.button",function () {
+ if (c.disabled)return false;
+ b(this).addClass("ui-state-active");
+ h = this;
+ b(document).one("mouseup", function () {
+ h = null
+ })
+ }).bind("mouseup.button",function () {
+ if (c.disabled)return false;
+ b(this).removeClass("ui-state-active")
+ }).bind("keydown.button",function (d) {
+ if (c.disabled)return false;
+ if (d.keyCode == b.ui.keyCode.SPACE ||
+ d.keyCode == b.ui.keyCode.ENTER)b(this).addClass("ui-state-active")
+ }).bind("keyup.button", function () {
+ b(this).removeClass("ui-state-active")
+ });
+ this.buttonElement.is("a") && this.buttonElement.keyup(function (d) {
+ d.keyCode === b.ui.keyCode.SPACE && b(this).click()
+ })
+ }
+ this._setOption("disabled", c.disabled);
+ this._resetButton()
+ }, _determineButtonType:function () {
+ this.type = this.element.is(":checkbox") ? "checkbox" : this.element.is(":radio") ? "radio" : this.element.is("input") ? "input" : "button";
+ if (this.type === "checkbox" || this.type ===
+ "radio") {
+ var a = this.element.parents().filter(":last"), c = "label[for=" + this.element.attr("id") + "]";
+ this.buttonElement = a.find(c);
+ if (!this.buttonElement.length) {
+ a = a.length ? a.siblings() : this.element.siblings();
+ this.buttonElement = a.filter(c);
+ if (!this.buttonElement.length)this.buttonElement = a.find(c)
+ }
+ this.element.addClass("ui-helper-hidden-accessible");
+ (a = this.element.is(":checked")) && this.buttonElement.addClass("ui-state-active");
+ this.buttonElement.attr("aria-pressed", a)
+ } else this.buttonElement = this.element
+ },
+ widget:function () {
+ return this.buttonElement
+ }, destroy:function () {
+ this.element.removeClass("ui-helper-hidden-accessible");
+ this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());
+ this.hasTitle || this.buttonElement.removeAttr("title");
+ b.Widget.prototype.destroy.call(this)
+ }, _setOption:function (a, c) {
+ b.Widget.prototype._setOption.apply(this, arguments);
+ if (a === "disabled")c ? this.element.attr("disabled", true) : this.element.removeAttr("disabled"); else this._resetButton()
+ }, refresh:function () {
+ var a = this.element.is(":disabled");
+ a !== this.options.disabled && this._setOption("disabled", a);
+ if (this.type === "radio")k(this.element[0]).each(function () {
+ b(this).is(":checked") ? b(this).button("widget").addClass("ui-state-active").attr("aria-pressed", true) :
+ b(this).button("widget").removeClass("ui-state-active").attr("aria-pressed", false)
+ }); else if (this.type === "checkbox")this.element.is(":checked") ? this.buttonElement.addClass("ui-state-active").attr("aria-pressed", true) : this.buttonElement.removeClass("ui-state-active").attr("aria-pressed", false)
+ }, _resetButton:function () {
+ if (this.type === "input")this.options.label && this.element.val(this.options.label); else {
+ var a = this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),
+ c = b(" ").addClass("ui-button-text").html(this.options.label).appendTo(a.empty()).text(), e = this.options.icons, f = e.primary && e.secondary, d = [];
+ if (e.primary || e.secondary) {
+ if (this.options.text)d.push("ui-button-text-icon" + (f ? "s" : e.primary ? "-primary" : "-secondary"));
+ e.primary && a.prepend(" ");
+ e.secondary && a.append(" ");
+ if (!this.options.text) {
+ d.push(f ? "ui-button-icons-only" :
+ "ui-button-icon-only");
+ this.hasTitle || a.attr("title", c)
+ }
+ } else d.push("ui-button-text-only");
+ a.addClass(d.join(" "))
+ }
+ }});
+ b.widget("ui.buttonset", {options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"}, _create:function () {
+ this.element.addClass("ui-buttonset")
+ }, _init:function () {
+ this.refresh()
+ }, _setOption:function (a, c) {
+ a === "disabled" && this.buttons.button("option", a, c);
+ b.Widget.prototype._setOption.apply(this, arguments)
+ }, refresh:function () {
+ var a = this.element.css("direction") ===
+ "ltr";
+ this.buttons = this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function () {
+ return b(this).button("widget")[0]
+ }).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(a ? "ui-corner-left" : "ui-corner-right").end().filter(":last").addClass(a ? "ui-corner-right" : "ui-corner-left").end().end()
+ }, destroy:function () {
+ this.element.removeClass("ui-buttonset");
+ this.buttons.map(function () {
+ return b(this).button("widget")[0]
+ }).removeClass("ui-corner-left ui-corner-right").end().button("destroy");
+ b.Widget.prototype.destroy.call(this)
+ }})
+})(jQuery);
+;
+/*
+ * jQuery UI Dialog 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.widget.js
+ * jquery.ui.button.js
+ * jquery.ui.draggable.js
+ * jquery.ui.mouse.js
+ * jquery.ui.position.js
+ * jquery.ui.resizable.js
+ */
+(function (c, l) {
+ var m = {buttons:true, height:true, maxHeight:true, maxWidth:true, minHeight:true, minWidth:true, width:true}, n = {maxHeight:true, maxWidth:true, minHeight:true, minWidth:true}, o = c.attrFn || {val:true, css:true, html:true, text:true, data:true, width:true, height:true, offset:true, click:true};
+ c.widget("ui.dialog", {options:{autoOpen:true, buttons:{}, closeOnEscape:true, closeText:"close", dialogClass:"", draggable:true, hide:null, height:"auto", maxHeight:false, maxWidth:false, minHeight:150, minWidth:150, modal:false,
+ position:{my:"center", at:"center", collision:"fit", using:function (a) {
+ var b = c(this).css(a).offset().top;
+ b < 0 && c(this).css("top", a.top - b)
+ }}, resizable:true, show:null, stack:true, title:"", width:300, zIndex:1E3}, _create:function () {
+ this.originalTitle = this.element.attr("title");
+ if (typeof this.originalTitle !== "string")this.originalTitle = "";
+ this.options.title = this.options.title || this.originalTitle;
+ var a = this, b = a.options, d = b.title || " ", e = c.ui.dialog.getTitleId(a.element), g = (a.uiDialog = c("
")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all " +
+ b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex", -1).css("outline", 0).keydown(function (i) {
+ if (b.closeOnEscape && i.keyCode && i.keyCode === c.ui.keyCode.ESCAPE) {
+ a.close(i);
+ i.preventDefault()
+ }
+ }).attr({role:"dialog", "aria-labelledby":e}).mousedown(function (i) {
+ a.moveToTop(false, i)
+ });
+ a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);
+ var f = (a.uiDialogTitlebar = c("
")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),
+ h = c(' ').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", "button").hover(function () {
+ h.addClass("ui-state-hover")
+ },function () {
+ h.removeClass("ui-state-hover")
+ }).focus(function () {
+ h.addClass("ui-state-focus")
+ }).blur(function () {
+ h.removeClass("ui-state-focus")
+ }).click(function (i) {
+ a.close(i);
+ return false
+ }).appendTo(f);
+ (a.uiDialogTitlebarCloseText = c(" ")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);
+ c(" ").addClass("ui-dialog-title").attr("id",
+ e).html(d).prependTo(f);
+ if (c.isFunction(b.beforeclose) && !c.isFunction(b.beforeClose))b.beforeClose = b.beforeclose;
+ f.find("*").add(f).disableSelection();
+ b.draggable && c.fn.draggable && a._makeDraggable();
+ b.resizable && c.fn.resizable && a._makeResizable();
+ a._createButtons(b.buttons);
+ a._isOpen = false;
+ c.fn.bgiframe && g.bgiframe()
+ }, _init:function () {
+ this.options.autoOpen && this.open()
+ }, destroy:function () {
+ var a = this;
+ a.overlay && a.overlay.destroy();
+ a.uiDialog.hide();
+ a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");
+ a.uiDialog.remove();
+ a.originalTitle && a.element.attr("title", a.originalTitle);
+ return a
+ }, widget:function () {
+ return this.uiDialog
+ }, close:function (a) {
+ var b = this, d, e;
+ if (false !== b._trigger("beforeClose", a)) {
+ b.overlay && b.overlay.destroy();
+ b.uiDialog.unbind("keypress.ui-dialog");
+ b._isOpen = false;
+ if (b.options.hide)b.uiDialog.hide(b.options.hide, function () {
+ b._trigger("close", a)
+ }); else {
+ b.uiDialog.hide();
+ b._trigger("close", a)
+ }
+ c.ui.dialog.overlay.resize();
+ if (b.options.modal) {
+ d = 0;
+ c(".ui-dialog").each(function () {
+ if (this !==
+ b.uiDialog[0]) {
+ e = c(this).css("z-index");
+ isNaN(e) || (d = Math.max(d, e))
+ }
+ });
+ c.ui.dialog.maxZ = d
+ }
+ return b
+ }
+ }, isOpen:function () {
+ return this._isOpen
+ }, moveToTop:function (a, b) {
+ var d = this, e = d.options;
+ if (e.modal && !a || !e.stack && !e.modal)return d._trigger("focus", b);
+ if (e.zIndex > c.ui.dialog.maxZ)c.ui.dialog.maxZ = e.zIndex;
+ if (d.overlay) {
+ c.ui.dialog.maxZ += 1;
+ d.overlay.$el.css("z-index", c.ui.dialog.overlay.maxZ = c.ui.dialog.maxZ)
+ }
+ a = {scrollTop:d.element.attr("scrollTop"), scrollLeft:d.element.attr("scrollLeft")};
+ c.ui.dialog.maxZ +=
+ 1;
+ d.uiDialog.css("z-index", c.ui.dialog.maxZ);
+ d.element.attr(a);
+ d._trigger("focus", b);
+ return d
+ }, open:function () {
+ if (!this._isOpen) {
+ var a = this, b = a.options, d = a.uiDialog;
+ a.overlay = b.modal ? new c.ui.dialog.overlay(a) : null;
+ a._size();
+ a._position(b.position);
+ d.show(b.show);
+ a.moveToTop(true);
+ b.modal && d.bind("keypress.ui-dialog", function (e) {
+ if (e.keyCode === c.ui.keyCode.TAB) {
+ var g = c(":tabbable", this), f = g.filter(":first");
+ g = g.filter(":last");
+ if (e.target === g[0] && !e.shiftKey) {
+ f.focus(1);
+ return false
+ } else if (e.target ===
+ f[0] && e.shiftKey) {
+ g.focus(1);
+ return false
+ }
+ }
+ });
+ c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();
+ a._isOpen = true;
+ a._trigger("open");
+ return a
+ }
+ }, _createButtons:function (a) {
+ var b = this, d = false, e = c("
").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"), g = c("
").addClass("ui-dialog-buttonset").appendTo(e);
+ b.uiDialog.find(".ui-dialog-buttonpane").remove();
+ typeof a === "object" && a !== null && c.each(a,
+ function () {
+ return!(d = true)
+ });
+ if (d) {
+ c.each(a, function (f, h) {
+ h = c.isFunction(h) ? {click:h, text:f} : h;
+ var i = c(' ').click(function () {
+ h.click.apply(b.element[0], arguments)
+ }).appendTo(g);
+ c.each(h, function (j, k) {
+ if (j !== "click")j in o ? i[j](k) : i.attr(j, k)
+ });
+ c.fn.button && i.button()
+ });
+ e.appendTo(b.uiDialog)
+ }
+ }, _makeDraggable:function () {
+ function a(f) {
+ return{position:f.position, offset:f.offset}
+ }
+
+ var b = this, d = b.options, e = c(document), g;
+ b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",
+ handle:".ui-dialog-titlebar", containment:"document", start:function (f, h) {
+ g = d.height === "auto" ? "auto" : c(this).height();
+ c(this).height(c(this).height()).addClass("ui-dialog-dragging");
+ b._trigger("dragStart", f, a(h))
+ }, drag:function (f, h) {
+ b._trigger("drag", f, a(h))
+ }, stop:function (f, h) {
+ d.position = [h.position.left - e.scrollLeft(), h.position.top - e.scrollTop()];
+ c(this).removeClass("ui-dialog-dragging").height(g);
+ b._trigger("dragStop", f, a(h));
+ c.ui.dialog.overlay.resize()
+ }})
+ }, _makeResizable:function (a) {
+ function b(f) {
+ return{originalPosition:f.originalPosition,
+ originalSize:f.originalSize, position:f.position, size:f.size}
+ }
+
+ a = a === l ? this.options.resizable : a;
+ var d = this, e = d.options, g = d.uiDialog.css("position");
+ a = typeof a === "string" ? a : "n,e,s,w,se,sw,ne,nw";
+ d.uiDialog.resizable({cancel:".ui-dialog-content", containment:"document", alsoResize:d.element, maxWidth:e.maxWidth, maxHeight:e.maxHeight, minWidth:e.minWidth, minHeight:d._minHeight(), handles:a, start:function (f, h) {
+ c(this).addClass("ui-dialog-resizing");
+ d._trigger("resizeStart", f, b(h))
+ }, resize:function (f, h) {
+ d._trigger("resize",
+ f, b(h))
+ }, stop:function (f, h) {
+ c(this).removeClass("ui-dialog-resizing");
+ e.height = c(this).height();
+ e.width = c(this).width();
+ d._trigger("resizeStop", f, b(h));
+ c.ui.dialog.overlay.resize()
+ }}).css("position", g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")
+ }, _minHeight:function () {
+ var a = this.options;
+ return a.height === "auto" ? a.minHeight : Math.min(a.minHeight, a.height)
+ }, _position:function (a) {
+ var b = [], d = [0, 0], e;
+ if (a) {
+ if (typeof a === "string" || typeof a === "object" && "0"in a) {
+ b = a.split ? a.split(" ") :
+ [a[0], a[1]];
+ if (b.length === 1)b[1] = b[0];
+ c.each(["left", "top"], function (g, f) {
+ if (+b[g] === b[g]) {
+ d[g] = b[g];
+ b[g] = f
+ }
+ });
+ a = {my:b.join(" "), at:b.join(" "), offset:d.join(" ")}
+ }
+ a = c.extend({}, c.ui.dialog.prototype.options.position, a)
+ } else a = c.ui.dialog.prototype.options.position;
+ (e = this.uiDialog.is(":visible")) || this.uiDialog.show();
+ this.uiDialog.css({top:0, left:0}).position(c.extend({of:window}, a));
+ e || this.uiDialog.hide()
+ }, _setOptions:function (a) {
+ var b = this, d = {}, e = false;
+ c.each(a, function (g, f) {
+ b._setOption(g, f);
+ if (g in m)e = true;
+ if (g in n)d[g] = f
+ });
+ e && this._size();
+ this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", d)
+ }, _setOption:function (a, b) {
+ var d = this, e = d.uiDialog;
+ switch (a) {
+ case "beforeclose":
+ a = "beforeClose";
+ break;
+ case "buttons":
+ d._createButtons(b);
+ break;
+ case "closeText":
+ d.uiDialogTitlebarCloseText.text("" + b);
+ break;
+ case "dialogClass":
+ e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all " + b);
+ break;
+ case "disabled":
+ b ? e.addClass("ui-dialog-disabled") :
+ e.removeClass("ui-dialog-disabled");
+ break;
+ case "draggable":
+ var g = e.is(":data(draggable)");
+ g && !b && e.draggable("destroy");
+ !g && b && d._makeDraggable();
+ break;
+ case "position":
+ d._position(b);
+ break;
+ case "resizable":
+ (g = e.is(":data(resizable)")) && !b && e.resizable("destroy");
+ g && typeof b === "string" && e.resizable("option", "handles", b);
+ !g && b !== false && d._makeResizable(b);
+ break;
+ case "title":
+ c(".ui-dialog-title", d.uiDialogTitlebar).html("" + (b || " "));
+ break
+ }
+ c.Widget.prototype._setOption.apply(d, arguments)
+ }, _size:function () {
+ var a =
+ this.options, b, d, e = this.uiDialog.is(":visible");
+ this.element.show().css({width:"auto", minHeight:0, height:0});
+ if (a.minWidth > a.width)a.width = a.minWidth;
+ b = this.uiDialog.css({height:"auto", width:a.width}).height();
+ d = Math.max(0, a.minHeight - b);
+ if (a.height === "auto")if (c.support.minHeight)this.element.css({minHeight:d, height:"auto"}); else {
+ this.uiDialog.show();
+ a = this.element.css("height", "auto").height();
+ e || this.uiDialog.hide();
+ this.element.height(Math.max(a, d))
+ } else this.element.height(Math.max(a.height -
+ b, 0));
+ this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", "minHeight", this._minHeight())
+ }});
+ c.extend(c.ui.dialog, {version:"1.8.14", uuid:0, maxZ:0, getTitleId:function (a) {
+ a = a.attr("id");
+ if (!a) {
+ this.uuid += 1;
+ a = this.uuid
+ }
+ return"ui-dialog-title-" + a
+ }, overlay:function (a) {
+ this.$el = c.ui.dialog.overlay.create(a)
+ }});
+ c.extend(c.ui.dialog.overlay, {instances:[], oldInstances:[], maxZ:0, events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function (a) {
+ return a + ".dialog-overlay"
+ }).join(" "),
+ create:function (a) {
+ if (this.instances.length === 0) {
+ setTimeout(function () {
+ c.ui.dialog.overlay.instances.length && c(document).bind(c.ui.dialog.overlay.events, function (d) {
+ if (c(d.target).zIndex() < c.ui.dialog.overlay.maxZ)return false
+ })
+ }, 1);
+ c(document).bind("keydown.dialog-overlay", function (d) {
+ if (a.options.closeOnEscape && d.keyCode && d.keyCode === c.ui.keyCode.ESCAPE) {
+ a.close(d);
+ d.preventDefault()
+ }
+ });
+ c(window).bind("resize.dialog-overlay", c.ui.dialog.overlay.resize)
+ }
+ var b = (this.oldInstances.pop() || c("
").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),
+ height:this.height()});
+ c.fn.bgiframe && b.bgiframe();
+ this.instances.push(b);
+ return b
+ }, destroy:function (a) {
+ var b = c.inArray(a, this.instances);
+ b != -1 && this.oldInstances.push(this.instances.splice(b, 1)[0]);
+ this.instances.length === 0 && c([document, window]).unbind(".dialog-overlay");
+ a.remove();
+ var d = 0;
+ c.each(this.instances, function () {
+ d = Math.max(d, this.css("z-index"))
+ });
+ this.maxZ = d
+ }, height:function () {
+ var a, b;
+ if (c.browser.msie && c.browser.version < 7) {
+ a = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);
+ b = Math.max(document.documentElement.offsetHeight, document.body.offsetHeight);
+ return a < b ? c(window).height() + "px" : a + "px"
+ } else return c(document).height() + "px"
+ }, width:function () {
+ var a, b;
+ if (c.browser.msie) {
+ a = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);
+ b = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);
+ return a < b ? c(window).width() + "px" : a + "px"
+ } else return c(document).width() + "px"
+ }, resize:function () {
+ var a = c([]);
+ c.each(c.ui.dialog.overlay.instances, function () {
+ a =
+ a.add(this)
+ });
+ a.css({width:0, height:0}).css({width:c.ui.dialog.overlay.width(), height:c.ui.dialog.overlay.height()})
+ }});
+ c.extend(c.ui.dialog.overlay.prototype, {destroy:function () {
+ c.ui.dialog.overlay.destroy(this.$el)
+ }})
+})(jQuery);
+;
+/*
+ * jQuery UI Slider 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.mouse.js
+ * jquery.ui.widget.js
+ */
+(function (d) {
+ d.widget("ui.slider", d.ui.mouse, {widgetEventPrefix:"slide", options:{animate:false, distance:0, max:100, min:0, orientation:"horizontal", range:false, step:1, value:0, values:null}, _create:function () {
+ var b = this, a = this.options, c = this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"), f = a.values && a.values.length || 1, e = [];
+ this._mouseSliding = this._keySliding = false;
+ this._animateOff = true;
+ this._handleIndex = null;
+ this._detectOrientation();
+ this._mouseInit();
+ this.element.addClass("ui-slider ui-slider-" +
+ this.orientation + " ui-widget ui-widget-content ui-corner-all" + (a.disabled ? " ui-slider-disabled ui-disabled" : ""));
+ this.range = d([]);
+ if (a.range) {
+ if (a.range === true) {
+ if (!a.values)a.values = [this._valueMin(), this._valueMin()];
+ if (a.values.length && a.values.length !== 2)a.values = [a.values[0], a.values[0]]
+ }
+ this.range = d("
").appendTo(this.element).addClass("ui-slider-range ui-widget-header" + (a.range === "min" || a.range === "max" ? " ui-slider-range-" + a.range : ""))
+ }
+ for (var j = c.length; j < f; j += 1)e.push(" ");
+ this.handles = c.add(d(e.join("")).appendTo(b.element));
+ this.handle = this.handles.eq(0);
+ this.handles.add(this.range).filter("a").click(function (g) {
+ g.preventDefault()
+ }).hover(function () {
+ a.disabled || d(this).addClass("ui-state-hover")
+ },function () {
+ d(this).removeClass("ui-state-hover")
+ }).focus(function () {
+ if (a.disabled)d(this).blur(); else {
+ d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");
+ d(this).addClass("ui-state-focus")
+ }
+ }).blur(function () {
+ d(this).removeClass("ui-state-focus")
+ });
+ this.handles.each(function (g) {
+ d(this).data("index.ui-slider-handle",
+ g)
+ });
+ this.handles.keydown(function (g) {
+ var k = true, l = d(this).data("index.ui-slider-handle"), i, h, m;
+ if (!b.options.disabled) {
+ switch (g.keyCode) {
+ case d.ui.keyCode.HOME:
+ case d.ui.keyCode.END:
+ case d.ui.keyCode.PAGE_UP:
+ case d.ui.keyCode.PAGE_DOWN:
+ case d.ui.keyCode.UP:
+ case d.ui.keyCode.RIGHT:
+ case d.ui.keyCode.DOWN:
+ case d.ui.keyCode.LEFT:
+ k = false;
+ if (!b._keySliding) {
+ b._keySliding = true;
+ d(this).addClass("ui-state-active");
+ i = b._start(g, l);
+ if (i === false)return
+ }
+ break
+ }
+ m = b.options.step;
+ i = b.options.values && b.options.values.length ?
+ (h = b.values(l)) : (h = b.value());
+ switch (g.keyCode) {
+ case d.ui.keyCode.HOME:
+ h = b._valueMin();
+ break;
+ case d.ui.keyCode.END:
+ h = b._valueMax();
+ break;
+ case d.ui.keyCode.PAGE_UP:
+ h = b._trimAlignValue(i + (b._valueMax() - b._valueMin()) / 5);
+ break;
+ case d.ui.keyCode.PAGE_DOWN:
+ h = b._trimAlignValue(i - (b._valueMax() - b._valueMin()) / 5);
+ break;
+ case d.ui.keyCode.UP:
+ case d.ui.keyCode.RIGHT:
+ if (i === b._valueMax())return;
+ h = b._trimAlignValue(i + m);
+ break;
+ case d.ui.keyCode.DOWN:
+ case d.ui.keyCode.LEFT:
+ if (i === b._valueMin())return;
+ h = b._trimAlignValue(i -
+ m);
+ break
+ }
+ b._slide(g, l, h);
+ return k
+ }
+ }).keyup(function (g) {
+ var k = d(this).data("index.ui-slider-handle");
+ if (b._keySliding) {
+ b._keySliding = false;
+ b._stop(g, k);
+ b._change(g, k);
+ d(this).removeClass("ui-state-active")
+ }
+ });
+ this._refreshValue();
+ this._animateOff = false
+ }, destroy:function () {
+ this.handles.remove();
+ this.range.remove();
+ this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");
+ this._mouseDestroy();
+ return this
+ }, _mouseCapture:function (b) {
+ var a = this.options, c, f, e, j, g;
+ if (a.disabled)return false;
+ this.elementSize = {width:this.element.outerWidth(), height:this.element.outerHeight()};
+ this.elementOffset = this.element.offset();
+ c = this._normValueFromMouse({x:b.pageX, y:b.pageY});
+ f = this._valueMax() - this._valueMin() + 1;
+ j = this;
+ this.handles.each(function (k) {
+ var l = Math.abs(c - j.values(k));
+ if (f > l) {
+ f = l;
+ e = d(this);
+ g = k
+ }
+ });
+ if (a.range === true && this.values(1) === a.min) {
+ g += 1;
+ e = d(this.handles[g])
+ }
+ if (this._start(b, g) === false)return false;
+ this._mouseSliding = true;
+ j._handleIndex = g;
+ e.addClass("ui-state-active").focus();
+ a = e.offset();
+ this._clickOffset = !d(b.target).parents().andSelf().is(".ui-slider-handle") ? {left:0, top:0} : {left:b.pageX - a.left - e.width() / 2, top:b.pageY - a.top - e.height() / 2 - (parseInt(e.css("borderTopWidth"), 10) || 0) - (parseInt(e.css("borderBottomWidth"), 10) || 0) + (parseInt(e.css("marginTop"), 10) || 0)};
+ this.handles.hasClass("ui-state-hover") || this._slide(b, g, c);
+ return this._animateOff = true
+ }, _mouseStart:function () {
+ return true
+ }, _mouseDrag:function (b) {
+ var a =
+ this._normValueFromMouse({x:b.pageX, y:b.pageY});
+ this._slide(b, this._handleIndex, a);
+ return false
+ }, _mouseStop:function (b) {
+ this.handles.removeClass("ui-state-active");
+ this._mouseSliding = false;
+ this._stop(b, this._handleIndex);
+ this._change(b, this._handleIndex);
+ this._clickOffset = this._handleIndex = null;
+ return this._animateOff = false
+ }, _detectOrientation:function () {
+ this.orientation = this.options.orientation === "vertical" ? "vertical" : "horizontal"
+ }, _normValueFromMouse:function (b) {
+ var a;
+ if (this.orientation === "horizontal") {
+ a =
+ this.elementSize.width;
+ b = b.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)
+ } else {
+ a = this.elementSize.height;
+ b = b.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)
+ }
+ a = b / a;
+ if (a > 1)a = 1;
+ if (a < 0)a = 0;
+ if (this.orientation === "vertical")a = 1 - a;
+ b = this._valueMax() - this._valueMin();
+ return this._trimAlignValue(this._valueMin() + a * b)
+ }, _start:function (b, a) {
+ var c = {handle:this.handles[a], value:this.value()};
+ if (this.options.values && this.options.values.length) {
+ c.value = this.values(a);
+ c.values = this.values()
+ }
+ return this._trigger("start", b, c)
+ }, _slide:function (b, a, c) {
+ var f;
+ if (this.options.values && this.options.values.length) {
+ f = this.values(a ? 0 : 1);
+ if (this.options.values.length === 2 && this.options.range === true && (a === 0 && c > f || a === 1 && c < f))c = f;
+ if (c !== this.values(a)) {
+ f = this.values();
+ f[a] = c;
+ b = this._trigger("slide", b, {handle:this.handles[a], value:c, values:f});
+ this.values(a ? 0 : 1);
+ b !== false && this.values(a, c, true)
+ }
+ } else if (c !== this.value()) {
+ b = this._trigger("slide", b, {handle:this.handles[a], value:c});
+ b !== false && this.value(c)
+ }
+ }, _stop:function (b, a) {
+ var c = {handle:this.handles[a], value:this.value()};
+ if (this.options.values && this.options.values.length) {
+ c.value = this.values(a);
+ c.values = this.values()
+ }
+ this._trigger("stop", b, c)
+ }, _change:function (b, a) {
+ if (!this._keySliding && !this._mouseSliding) {
+ var c = {handle:this.handles[a], value:this.value()};
+ if (this.options.values && this.options.values.length) {
+ c.value = this.values(a);
+ c.values = this.values()
+ }
+ this._trigger("change", b, c)
+ }
+ }, value:function (b) {
+ if (arguments.length) {
+ this.options.value =
+ this._trimAlignValue(b);
+ this._refreshValue();
+ this._change(null, 0)
+ } else return this._value()
+ }, values:function (b, a) {
+ var c, f, e;
+ if (arguments.length > 1) {
+ this.options.values[b] = this._trimAlignValue(a);
+ this._refreshValue();
+ this._change(null, b)
+ } else if (arguments.length)if (d.isArray(arguments[0])) {
+ c = this.options.values;
+ f = arguments[0];
+ for (e = 0; e < c.length; e += 1) {
+ c[e] = this._trimAlignValue(f[e]);
+ this._change(null, e)
+ }
+ this._refreshValue()
+ } else return this.options.values && this.options.values.length ? this._values(b) :
+ this.value(); else return this._values()
+ }, _setOption:function (b, a) {
+ var c, f = 0;
+ if (d.isArray(this.options.values))f = this.options.values.length;
+ d.Widget.prototype._setOption.apply(this, arguments);
+ switch (b) {
+ case "disabled":
+ if (a) {
+ this.handles.filter(".ui-state-focus").blur();
+ this.handles.removeClass("ui-state-hover");
+ this.handles.attr("disabled", "disabled");
+ this.element.addClass("ui-disabled")
+ } else {
+ this.handles.removeAttr("disabled");
+ this.element.removeClass("ui-disabled")
+ }
+ break;
+ case "orientation":
+ this._detectOrientation();
+ this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-" + this.orientation);
+ this._refreshValue();
+ break;
+ case "value":
+ this._animateOff = true;
+ this._refreshValue();
+ this._change(null, 0);
+ this._animateOff = false;
+ break;
+ case "values":
+ this._animateOff = true;
+ this._refreshValue();
+ for (c = 0; c < f; c += 1)this._change(null, c);
+ this._animateOff = false;
+ break
+ }
+ }, _value:function () {
+ var b = this.options.value;
+ return b = this._trimAlignValue(b)
+ }, _values:function (b) {
+ var a, c;
+ if (arguments.length) {
+ a = this.options.values[b];
+ return a = this._trimAlignValue(a)
+ } else {
+ a = this.options.values.slice();
+ for (c = 0; c < a.length; c += 1)a[c] = this._trimAlignValue(a[c]);
+ return a
+ }
+ }, _trimAlignValue:function (b) {
+ if (b <= this._valueMin())return this._valueMin();
+ if (b >= this._valueMax())return this._valueMax();
+ var a = this.options.step > 0 ? this.options.step : 1, c = (b - this._valueMin()) % a;
+ alignValue = b - c;
+ if (Math.abs(c) * 2 >= a)alignValue += c > 0 ? a : -a;
+ return parseFloat(alignValue.toFixed(5))
+ }, _valueMin:function () {
+ return this.options.min
+ }, _valueMax:function () {
+ return this.options.max
+ },
+ _refreshValue:function () {
+ var b = this.options.range, a = this.options, c = this, f = !this._animateOff ? a.animate : false, e, j = {}, g, k, l, i;
+ if (this.options.values && this.options.values.length)this.handles.each(function (h) {
+ e = (c.values(h) - c._valueMin()) / (c._valueMax() - c._valueMin()) * 100;
+ j[c.orientation === "horizontal" ? "left" : "bottom"] = e + "%";
+ d(this).stop(1, 1)[f ? "animate" : "css"](j, a.animate);
+ if (c.options.range === true)if (c.orientation === "horizontal") {
+ if (h === 0)c.range.stop(1, 1)[f ? "animate" : "css"]({left:e + "%"}, a.animate);
+ if (h === 1)c.range[f ? "animate" : "css"]({width:e - g + "%"}, {queue:false, duration:a.animate})
+ } else {
+ if (h === 0)c.range.stop(1, 1)[f ? "animate" : "css"]({bottom:e + "%"}, a.animate);
+ if (h === 1)c.range[f ? "animate" : "css"]({height:e - g + "%"}, {queue:false, duration:a.animate})
+ }
+ g = e
+ }); else {
+ k = this.value();
+ l = this._valueMin();
+ i = this._valueMax();
+ e = i !== l ? (k - l) / (i - l) * 100 : 0;
+ j[c.orientation === "horizontal" ? "left" : "bottom"] = e + "%";
+ this.handle.stop(1, 1)[f ? "animate" : "css"](j, a.animate);
+ if (b === "min" && this.orientation === "horizontal")this.range.stop(1,
+ 1)[f ? "animate" : "css"]({width:e + "%"}, a.animate);
+ if (b === "max" && this.orientation === "horizontal")this.range[f ? "animate" : "css"]({width:100 - e + "%"}, {queue:false, duration:a.animate});
+ if (b === "min" && this.orientation === "vertical")this.range.stop(1, 1)[f ? "animate" : "css"]({height:e + "%"}, a.animate);
+ if (b === "max" && this.orientation === "vertical")this.range[f ? "animate" : "css"]({height:100 - e + "%"}, {queue:false, duration:a.animate})
+ }
+ }});
+ d.extend(d.ui.slider, {version:"1.8.14"})
+})(jQuery);
+;
+/*
+ * jQuery UI Tabs 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.widget.js
+ */
+(function (d, p) {
+ function u() {
+ return++v
+ }
+
+ function w() {
+ return++x
+ }
+
+ var v = 0, x = 0;
+ d.widget("ui.tabs", {options:{add:null, ajaxOptions:null, cache:false, cookie:null, collapsible:false, disable:null, disabled:[], enable:null, event:"click", fx:null, idPrefix:"ui-tabs-", load:null, panelTemplate:"
", remove:null, select:null, show:null, spinner:"Loading… ", tabTemplate:"#{label} "}, _create:function () {
+ this._tabify(true)
+ }, _setOption:function (b, e) {
+ if (b == "selected")this.options.collapsible &&
+ e == this.options.selected || this.select(e); else {
+ this.options[b] = e;
+ this._tabify()
+ }
+ }, _tabId:function (b) {
+ return b.title && b.title.replace(/\s/g, "_").replace(/[^\w\u00c0-\uFFFF-]/g, "") || this.options.idPrefix + u()
+ }, _sanitizeSelector:function (b) {
+ return b.replace(/:/g, "\\:")
+ }, _cookie:function () {
+ var b = this.cookie || (this.cookie = this.options.cookie.name || "ui-tabs-" + w());
+ return d.cookie.apply(null, [b].concat(d.makeArray(arguments)))
+ }, _ui:function (b, e) {
+ return{tab:b, panel:e, index:this.anchors.index(b)}
+ }, _cleanup:function () {
+ this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function () {
+ var b =
+ d(this);
+ b.html(b.data("label.tabs")).removeData("label.tabs")
+ })
+ }, _tabify:function (b) {
+ function e(g, f) {
+ g.css("display", "");
+ !d.support.opacity && f.opacity && g[0].style.removeAttribute("filter")
+ }
+
+ var a = this, c = this.options, h = /^#.+/;
+ this.list = this.element.find("ol,ul").eq(0);
+ this.lis = d(" > li:has(a[href])", this.list);
+ this.anchors = this.lis.map(function () {
+ return d("a", this)[0]
+ });
+ this.panels = d([]);
+ this.anchors.each(function (g, f) {
+ var i = d(f).attr("href"), l = i.split("#")[0], q;
+ if (l && (l === location.toString().split("#")[0] ||
+ (q = d("base")[0]) && l === q.href)) {
+ i = f.hash;
+ f.href = i
+ }
+ if (h.test(i))a.panels = a.panels.add(a.element.find(a._sanitizeSelector(i))); else if (i && i !== "#") {
+ d.data(f, "href.tabs", i);
+ d.data(f, "load.tabs", i.replace(/#.*$/, ""));
+ i = a._tabId(f);
+ f.href = "#" + i;
+ f = a.element.find("#" + i);
+ if (!f.length) {
+ f = d(c.panelTemplate).attr("id", i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g - 1] || a.list);
+ f.data("destroy.tabs", true)
+ }
+ a.panels = a.panels.add(f)
+ } else c.disabled.push(g)
+ });
+ if (b) {
+ this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");
+ this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");
+ this.lis.addClass("ui-state-default ui-corner-top");
+ this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");
+ if (c.selected === p) {
+ location.hash && this.anchors.each(function (g, f) {
+ if (f.hash == location.hash) {
+ c.selected = g;
+ return false
+ }
+ });
+ if (typeof c.selected !== "number" && c.cookie)c.selected = parseInt(a._cookie(), 10);
+ if (typeof c.selected !== "number" && this.lis.filter(".ui-tabs-selected").length)c.selected =
+ this.lis.index(this.lis.filter(".ui-tabs-selected"));
+ c.selected = c.selected || (this.lis.length ? 0 : -1)
+ } else if (c.selected === null)c.selected = -1;
+ c.selected = c.selected >= 0 && this.anchors[c.selected] || c.selected < 0 ? c.selected : 0;
+ c.disabled = d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"), function (g) {
+ return a.lis.index(g)
+ }))).sort();
+ d.inArray(c.selected, c.disabled) != -1 && c.disabled.splice(d.inArray(c.selected, c.disabled), 1);
+ this.panels.addClass("ui-tabs-hide");
+ this.lis.removeClass("ui-tabs-selected ui-state-active");
+ if (c.selected >= 0 && this.anchors.length) {
+ a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");
+ this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");
+ a.element.queue("tabs", function () {
+ a._trigger("show", null, a._ui(a.anchors[c.selected], a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))
+ });
+ this.load(c.selected)
+ }
+ d(window).bind("unload", function () {
+ a.lis.add(a.anchors).unbind(".tabs");
+ a.lis = a.anchors = a.panels = null
+ })
+ } else c.selected = this.lis.index(this.lis.filter(".ui-tabs-selected"));
+ this.element[c.collapsible ? "addClass" : "removeClass"]("ui-tabs-collapsible");
+ c.cookie && this._cookie(c.selected, c.cookie);
+ b = 0;
+ for (var j; j = this.lis[b]; b++)d(j)[d.inArray(b, c.disabled) != -1 && !d(j).hasClass("ui-tabs-selected") ? "addClass" : "removeClass"]("ui-state-disabled");
+ c.cache === false && this.anchors.removeData("cache.tabs");
+ this.lis.add(this.anchors).unbind(".tabs");
+ if (c.event !== "mouseover") {
+ var k = function (g, f) {
+ f.is(":not(.ui-state-disabled)") && f.addClass("ui-state-" + g)
+ }, n = function (g, f) {
+ f.removeClass("ui-state-" +
+ g)
+ };
+ this.lis.bind("mouseover.tabs", function () {
+ k("hover", d(this))
+ });
+ this.lis.bind("mouseout.tabs", function () {
+ n("hover", d(this))
+ });
+ this.anchors.bind("focus.tabs", function () {
+ k("focus", d(this).closest("li"))
+ });
+ this.anchors.bind("blur.tabs", function () {
+ n("focus", d(this).closest("li"))
+ })
+ }
+ var m, o;
+ if (c.fx)if (d.isArray(c.fx)) {
+ m = c.fx[0];
+ o = c.fx[1]
+ } else m = o = c.fx;
+ var r = o ? function (g, f) {
+ d(g).closest("li").addClass("ui-tabs-selected ui-state-active");
+ f.hide().removeClass("ui-tabs-hide").animate(o, o.duration || "normal",
+ function () {
+ e(f, o);
+ a._trigger("show", null, a._ui(g, f[0]))
+ })
+ } : function (g, f) {
+ d(g).closest("li").addClass("ui-tabs-selected ui-state-active");
+ f.removeClass("ui-tabs-hide");
+ a._trigger("show", null, a._ui(g, f[0]))
+ }, s = m ? function (g, f) {
+ f.animate(m, m.duration || "normal", function () {
+ a.lis.removeClass("ui-tabs-selected ui-state-active");
+ f.addClass("ui-tabs-hide");
+ e(f, m);
+ a.element.dequeue("tabs")
+ })
+ } : function (g, f) {
+ a.lis.removeClass("ui-tabs-selected ui-state-active");
+ f.addClass("ui-tabs-hide");
+ a.element.dequeue("tabs")
+ };
+ this.anchors.bind(c.event + ".tabs", function () {
+ var g = this, f = d(g).closest("li"), i = a.panels.filter(":not(.ui-tabs-hide)"), l = a.element.find(a._sanitizeSelector(g.hash));
+ if (f.hasClass("ui-tabs-selected") && !c.collapsible || f.hasClass("ui-state-disabled") || f.hasClass("ui-state-processing") || a.panels.filter(":animated").length || a._trigger("select", null, a._ui(this, l[0])) === false) {
+ this.blur();
+ return false
+ }
+ c.selected = a.anchors.index(this);
+ a.abort();
+ if (c.collapsible)if (f.hasClass("ui-tabs-selected")) {
+ c.selected =
+ -1;
+ c.cookie && a._cookie(c.selected, c.cookie);
+ a.element.queue("tabs",function () {
+ s(g, i)
+ }).dequeue("tabs");
+ this.blur();
+ return false
+ } else if (!i.length) {
+ c.cookie && a._cookie(c.selected, c.cookie);
+ a.element.queue("tabs", function () {
+ r(g, l)
+ });
+ a.load(a.anchors.index(this));
+ this.blur();
+ return false
+ }
+ c.cookie && a._cookie(c.selected, c.cookie);
+ if (l.length) {
+ i.length && a.element.queue("tabs", function () {
+ s(g, i)
+ });
+ a.element.queue("tabs", function () {
+ r(g, l)
+ });
+ a.load(a.anchors.index(this))
+ } else throw"jQuery UI Tabs: Mismatching fragment identifier.";
+ d.browser.msie && this.blur()
+ });
+ this.anchors.bind("click.tabs", function () {
+ return false
+ })
+ }, _getIndex:function (b) {
+ if (typeof b == "string")b = this.anchors.index(this.anchors.filter("[href$=" + b + "]"));
+ return b
+ }, destroy:function () {
+ var b = this.options;
+ this.abort();
+ this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");
+ this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");
+ this.anchors.each(function () {
+ var e =
+ d.data(this, "href.tabs");
+ if (e)this.href = e;
+ var a = d(this).unbind(".tabs");
+ d.each(["href", "load", "cache"], function (c, h) {
+ a.removeData(h + ".tabs")
+ })
+ });
+ this.lis.unbind(".tabs").add(this.panels).each(function () {
+ d.data(this, "destroy.tabs") ? d(this).remove() : d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")
+ });
+ b.cookie && this._cookie(null, b.cookie);
+ return this
+ }, add:function (b, e, a) {
+ if (a === p)a = this.anchors.length;
+ var c = this, h = this.options;
+ e = d(h.tabTemplate.replace(/#\{href\}/g, b).replace(/#\{label\}/g, e));
+ b = !b.indexOf("#") ? b.replace("#", "") : this._tabId(d("a", e)[0]);
+ e.addClass("ui-state-default ui-corner-top").data("destroy.tabs", true);
+ var j = c.element.find("#" + b);
+ j.length || (j = d(h.panelTemplate).attr("id", b).data("destroy.tabs", true));
+ j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");
+ if (a >= this.lis.length) {
+ e.appendTo(this.list);
+ j.appendTo(this.list[0].parentNode)
+ } else {
+ e.insertBefore(this.lis[a]);
+ j.insertBefore(this.panels[a])
+ }
+ h.disabled = d.map(h.disabled, function (k) {
+ return k >= a ? ++k : k
+ });
+ this._tabify();
+ if (this.anchors.length == 1) {
+ h.selected = 0;
+ e.addClass("ui-tabs-selected ui-state-active");
+ j.removeClass("ui-tabs-hide");
+ this.element.queue("tabs", function () {
+ c._trigger("show", null, c._ui(c.anchors[0], c.panels[0]))
+ });
+ this.load(0)
+ }
+ this._trigger("add", null, this._ui(this.anchors[a], this.panels[a]));
+ return this
+ }, remove:function (b) {
+ b = this._getIndex(b);
+ var e = this.options, a = this.lis.eq(b).remove(), c = this.panels.eq(b).remove();
+ if (a.hasClass("ui-tabs-selected") && this.anchors.length > 1)this.select(b + (b + 1 < this.anchors.length ? 1 : -1));
+ e.disabled = d.map(d.grep(e.disabled, function (h) {
+ return h != b
+ }), function (h) {
+ return h >= b ? --h : h
+ });
+ this._tabify();
+ this._trigger("remove", null, this._ui(a.find("a")[0], c[0]));
+ return this
+ }, enable:function (b) {
+ b = this._getIndex(b);
+ var e = this.options;
+ if (d.inArray(b, e.disabled) != -1) {
+ this.lis.eq(b).removeClass("ui-state-disabled");
+ e.disabled = d.grep(e.disabled, function (a) {
+ return a != b
+ });
+ this._trigger("enable", null,
+ this._ui(this.anchors[b], this.panels[b]));
+ return this
+ }
+ }, disable:function (b) {
+ b = this._getIndex(b);
+ var e = this.options;
+ if (b != e.selected) {
+ this.lis.eq(b).addClass("ui-state-disabled");
+ e.disabled.push(b);
+ e.disabled.sort();
+ this._trigger("disable", null, this._ui(this.anchors[b], this.panels[b]))
+ }
+ return this
+ }, select:function (b) {
+ b = this._getIndex(b);
+ if (b == -1)if (this.options.collapsible && this.options.selected != -1)b = this.options.selected; else return this;
+ this.anchors.eq(b).trigger(this.options.event + ".tabs");
+ return this
+ },
+ load:function (b) {
+ b = this._getIndex(b);
+ var e = this, a = this.options, c = this.anchors.eq(b)[0], h = d.data(c, "load.tabs");
+ this.abort();
+ if (!h || this.element.queue("tabs").length !== 0 && d.data(c, "cache.tabs"))this.element.dequeue("tabs"); else {
+ this.lis.eq(b).addClass("ui-state-processing");
+ if (a.spinner) {
+ var j = d("span", c);
+ j.data("label.tabs", j.html()).html(a.spinner)
+ }
+ this.xhr = d.ajax(d.extend({}, a.ajaxOptions, {url:h, success:function (k, n) {
+ e.element.find(e._sanitizeSelector(c.hash)).html(k);
+ e._cleanup();
+ a.cache && d.data(c,
+ "cache.tabs", true);
+ e._trigger("load", null, e._ui(e.anchors[b], e.panels[b]));
+ try {
+ a.ajaxOptions.success(k, n)
+ } catch (m) {
+ }
+ }, error:function (k, n) {
+ e._cleanup();
+ e._trigger("load", null, e._ui(e.anchors[b], e.panels[b]));
+ try {
+ a.ajaxOptions.error(k, n, b, c)
+ } catch (m) {
+ }
+ }}));
+ e.element.dequeue("tabs");
+ return this
+ }
+ }, abort:function () {
+ this.element.queue([]);
+ this.panels.stop(false, true);
+ this.element.queue("tabs", this.element.queue("tabs").splice(-2, 2));
+ if (this.xhr) {
+ this.xhr.abort();
+ delete this.xhr
+ }
+ this._cleanup();
+ return this
+ },
+ url:function (b, e) {
+ this.anchors.eq(b).removeData("cache.tabs").data("load.tabs", e);
+ return this
+ }, length:function () {
+ return this.anchors.length
+ }});
+ d.extend(d.ui.tabs, {version:"1.8.14"});
+ d.extend(d.ui.tabs.prototype, {rotation:null, rotate:function (b, e) {
+ var a = this, c = this.options, h = a._rotate || (a._rotate = function (j) {
+ clearTimeout(a.rotation);
+ a.rotation = setTimeout(function () {
+ var k = c.selected;
+ a.select(++k < a.anchors.length ? k : 0)
+ }, b);
+ j && j.stopPropagation()
+ });
+ e = a._unrotate || (a._unrotate = !e ? function (j) {
+ j.clientX &&
+ a.rotate(null)
+ } : function () {
+ t = c.selected;
+ h()
+ });
+ if (b) {
+ this.element.bind("tabsshow", h);
+ this.anchors.bind(c.event + ".tabs", e);
+ h()
+ } else {
+ clearTimeout(a.rotation);
+ this.element.unbind("tabsshow", h);
+ this.anchors.unbind(c.event + ".tabs", e);
+ delete this._rotate;
+ delete this._unrotate
+ }
+ return this
+ }})
+})(jQuery);
+;
+/*
+ * jQuery UI Datepicker 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker
+ *
+ * Depends:
+ * jquery.ui.core.js
+ */
+(function (d, C) {
+ function M() {
+ this.debug = false;
+ this._curInst = null;
+ this._keyEvent = false;
+ this._disabledInputs = [];
+ this._inDialog = this._datepickerShowing = false;
+ this._mainDivId = "ui-datepicker-div";
+ this._inlineClass = "ui-datepicker-inline";
+ this._appendClass = "ui-datepicker-append";
+ this._triggerClass = "ui-datepicker-trigger";
+ this._dialogClass = "ui-datepicker-dialog";
+ this._disableClass = "ui-datepicker-disabled";
+ this._unselectableClass = "ui-datepicker-unselectable";
+ this._currentClass = "ui-datepicker-current-day";
+ this._dayOverClass =
+ "ui-datepicker-days-cell-over";
+ this.regional = [];
+ this.regional[""] = {closeText:"Done", prevText:"Prev", nextText:"Next", currentText:"Today", monthNames:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], monthNamesShort:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], dayNames:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], dayNamesShort:["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], dayNamesMin:["Su",
+ "Mo", "Tu", "We", "Th", "Fr", "Sa"], weekHeader:"Wk", dateFormat:"mm/dd/yy", firstDay:0, isRTL:false, showMonthAfterYear:false, yearSuffix:""};
+ this._defaults = {showOn:"focus", showAnim:"fadeIn", showOptions:{}, defaultDate:null, appendText:"", buttonText:"...", buttonImage:"", buttonImageOnly:false, hideIfNoPrevNext:false, navigationAsDateFormat:false, gotoCurrent:false, changeMonth:false, changeYear:false, yearRange:"c-10:c+10", showOtherMonths:false, selectOtherMonths:false, showWeek:false, calculateWeek:this.iso8601Week, shortYearCutoff:"+10",
+ minDate:null, maxDate:null, duration:"fast", beforeShowDay:null, beforeShow:null, onSelect:null, onChangeMonthYear:null, onClose:null, numberOfMonths:1, showCurrentAtPos:0, stepMonths:1, stepBigMonths:12, altField:"", altFormat:"", constrainInput:true, showButtonPanel:false, autoSize:false};
+ d.extend(this._defaults, this.regional[""]);
+ this.dpDiv = N(d('
'))
+ }
+
+ function N(a) {
+ return a.bind("mouseout",function (b) {
+ b =
+ d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");
+ b.length && b.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")
+ }).bind("mouseover", function (b) {
+ b = d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");
+ if (!(d.datepicker._isDisabledDatepicker(J.inline ? a.parent()[0] : J.input[0]) || !b.length)) {
+ b.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");
+ b.addClass("ui-state-hover");
+ b.hasClass("ui-datepicker-prev") && b.addClass("ui-datepicker-prev-hover");
+ b.hasClass("ui-datepicker-next") && b.addClass("ui-datepicker-next-hover")
+ }
+ })
+ }
+
+ function H(a, b) {
+ d.extend(a, b);
+ for (var c in b)if (b[c] == null || b[c] == C)a[c] = b[c];
+ return a
+ }
+
+ d.extend(d.ui, {datepicker:{version:"1.8.14"}});
+ var A = (new Date).getTime(), J;
+ d.extend(M.prototype, {markerClassName:"hasDatepicker", maxRows:4, log:function () {
+ this.debug && console.log.apply("", arguments)
+ }, _widgetDatepicker:function () {
+ return this.dpDiv
+ }, setDefaults:function (a) {
+ H(this._defaults,
+ a || {});
+ return this
+ }, _attachDatepicker:function (a, b) {
+ var c = null;
+ for (var e in this._defaults) {
+ var f = a.getAttribute("date:" + e);
+ if (f) {
+ c = c || {};
+ try {
+ c[e] = eval(f)
+ } catch (h) {
+ c[e] = f
+ }
+ }
+ }
+ e = a.nodeName.toLowerCase();
+ f = e == "div" || e == "span";
+ if (!a.id) {
+ this.uuid += 1;
+ a.id = "dp" + this.uuid
+ }
+ var i = this._newInst(d(a), f);
+ i.settings = d.extend({}, b || {}, c || {});
+ if (e == "input")this._connectDatepicker(a, i); else f && this._inlineDatepicker(a, i)
+ }, _newInst:function (a, b) {
+ return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g, "\\\\$1"), input:a, selectedDay:0,
+ selectedMonth:0, selectedYear:0, drawMonth:0, drawYear:0, inline:b, dpDiv:!b ? this.dpDiv : N(d('
'))}
+ }, _connectDatepicker:function (a, b) {
+ var c = d(a);
+ b.append = d([]);
+ b.trigger = d([]);
+ if (!c.hasClass(this.markerClassName)) {
+ this._attachments(c, b);
+ c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function (e, f, h) {
+ b.settings[f] =
+ h
+ }).bind("getData.datepicker", function (e, f) {
+ return this._get(b, f)
+ });
+ this._autoSize(b);
+ d.data(a, "datepicker", b)
+ }
+ }, _attachments:function (a, b) {
+ var c = this._get(b, "appendText"), e = this._get(b, "isRTL");
+ b.append && b.append.remove();
+ if (c) {
+ b.append = d('' + c + " ");
+ a[e ? "before" : "after"](b.append)
+ }
+ a.unbind("focus", this._showDatepicker);
+ b.trigger && b.trigger.remove();
+ c = this._get(b, "showOn");
+ if (c == "focus" || c == "both")a.focus(this._showDatepicker);
+ if (c == "button" || c == "both") {
+ c =
+ this._get(b, "buttonText");
+ var f = this._get(b, "buttonImage");
+ b.trigger = d(this._get(b, "buttonImageOnly") ? d(" ").addClass(this._triggerClass).attr({src:f, alt:c, title:c}) : d(' ').addClass(this._triggerClass).html(f == "" ? c : d(" ").attr({src:f, alt:c, title:c})));
+ a[e ? "before" : "after"](b.trigger);
+ b.trigger.click(function () {
+ d.datepicker._datepickerShowing && d.datepicker._lastInput == a[0] ? d.datepicker._hideDatepicker() : d.datepicker._showDatepicker(a[0]);
+ return false
+ })
+ }
+ }, _autoSize:function (a) {
+ if (this._get(a,
+ "autoSize") && !a.inline) {
+ var b = new Date(2009, 11, 20), c = this._get(a, "dateFormat");
+ if (c.match(/[DM]/)) {
+ var e = function (f) {
+ for (var h = 0, i = 0, g = 0; g < f.length; g++)if (f[g].length > h) {
+ h = f[g].length;
+ i = g
+ }
+ return i
+ };
+ b.setMonth(e(this._get(a, c.match(/MM/) ? "monthNames" : "monthNamesShort")));
+ b.setDate(e(this._get(a, c.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - b.getDay())
+ }
+ a.input.attr("size", this._formatDate(a, b).length)
+ }
+ }, _inlineDatepicker:function (a, b) {
+ var c = d(a);
+ if (!c.hasClass(this.markerClassName)) {
+ c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",
+ function (e, f, h) {
+ b.settings[f] = h
+ }).bind("getData.datepicker", function (e, f) {
+ return this._get(b, f)
+ });
+ d.data(a, "datepicker", b);
+ this._setDate(b, this._getDefaultDate(b), true);
+ this._updateDatepicker(b);
+ this._updateAlternate(b);
+ b.dpDiv.show()
+ }
+ }, _dialogDatepicker:function (a, b, c, e, f) {
+ a = this._dialogInst;
+ if (!a) {
+ this.uuid += 1;
+ this._dialogInput = d(' ');
+ this._dialogInput.keydown(this._doKeyDown);
+ d("body").append(this._dialogInput);
+ a = this._dialogInst = this._newInst(this._dialogInput, false);
+ a.settings = {};
+ d.data(this._dialogInput[0], "datepicker", a)
+ }
+ H(a.settings, e || {});
+ b = b && b.constructor == Date ? this._formatDate(a, b) : b;
+ this._dialogInput.val(b);
+ this._pos = f ? f.length ? f : [f.pageX, f.pageY] : null;
+ if (!this._pos)this._pos = [document.documentElement.clientWidth / 2 - 100 + (document.documentElement.scrollLeft || document.body.scrollLeft), document.documentElement.clientHeight / 2 - 150 + (document.documentElement.scrollTop || document.body.scrollTop)];
+ this._dialogInput.css("left",
+ this._pos[0] + 20 + "px").css("top", this._pos[1] + "px");
+ a.settings.onSelect = c;
+ this._inDialog = true;
+ this.dpDiv.addClass(this._dialogClass);
+ this._showDatepicker(this._dialogInput[0]);
+ d.blockUI && d.blockUI(this.dpDiv);
+ d.data(this._dialogInput[0], "datepicker", a);
+ return this
+ }, _destroyDatepicker:function (a) {
+ var b = d(a), c = d.data(a, "datepicker");
+ if (b.hasClass(this.markerClassName)) {
+ var e = a.nodeName.toLowerCase();
+ d.removeData(a, "datepicker");
+ if (e == "input") {
+ c.append.remove();
+ c.trigger.remove();
+ b.removeClass(this.markerClassName).unbind("focus",
+ this._showDatepicker).unbind("keydown", this._doKeyDown).unbind("keypress", this._doKeyPress).unbind("keyup", this._doKeyUp)
+ } else if (e == "div" || e == "span")b.removeClass(this.markerClassName).empty()
+ }
+ }, _enableDatepicker:function (a) {
+ var b = d(a), c = d.data(a, "datepicker");
+ if (b.hasClass(this.markerClassName)) {
+ var e = a.nodeName.toLowerCase();
+ if (e == "input") {
+ a.disabled = false;
+ c.trigger.filter("button").each(function () {
+ this.disabled = false
+ }).end().filter("img").css({opacity:"1.0", cursor:""})
+ } else if (e == "div" || e == "span") {
+ b =
+ b.children("." + this._inlineClass);
+ b.children().removeClass("ui-state-disabled");
+ b.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")
+ }
+ this._disabledInputs = d.map(this._disabledInputs, function (f) {
+ return f == a ? null : f
+ })
+ }
+ }, _disableDatepicker:function (a) {
+ var b = d(a), c = d.data(a, "datepicker");
+ if (b.hasClass(this.markerClassName)) {
+ var e = a.nodeName.toLowerCase();
+ if (e == "input") {
+ a.disabled = true;
+ c.trigger.filter("button").each(function () {
+ this.disabled = true
+ }).end().filter("img").css({opacity:"0.5",
+ cursor:"default"})
+ } else if (e == "div" || e == "span") {
+ b = b.children("." + this._inlineClass);
+ b.children().addClass("ui-state-disabled");
+ b.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled", "disabled")
+ }
+ this._disabledInputs = d.map(this._disabledInputs, function (f) {
+ return f == a ? null : f
+ });
+ this._disabledInputs[this._disabledInputs.length] = a
+ }
+ }, _isDisabledDatepicker:function (a) {
+ if (!a)return false;
+ for (var b = 0; b < this._disabledInputs.length; b++)if (this._disabledInputs[b] == a)return true;
+ return false
+ },
+ _getInst:function (a) {
+ try {
+ return d.data(a, "datepicker")
+ } catch (b) {
+ throw"Missing instance data for this datepicker";
+ }
+ }, _optionDatepicker:function (a, b, c) {
+ var e = this._getInst(a);
+ if (arguments.length == 2 && typeof b == "string")return b == "defaults" ? d.extend({}, d.datepicker._defaults) : e ? b == "all" ? d.extend({}, e.settings) : this._get(e, b) : null;
+ var f = b || {};
+ if (typeof b == "string") {
+ f = {};
+ f[b] = c
+ }
+ if (e) {
+ this._curInst == e && this._hideDatepicker();
+ var h = this._getDateDatepicker(a, true), i = this._getMinMaxDate(e, "min"), g = this._getMinMaxDate(e,
+ "max");
+ H(e.settings, f);
+ if (i !== null && f.dateFormat !== C && f.minDate === C)e.settings.minDate = this._formatDate(e, i);
+ if (g !== null && f.dateFormat !== C && f.maxDate === C)e.settings.maxDate = this._formatDate(e, g);
+ this._attachments(d(a), e);
+ this._autoSize(e);
+ this._setDate(e, h);
+ this._updateAlternate(e);
+ this._updateDatepicker(e)
+ }
+ }, _changeDatepicker:function (a, b, c) {
+ this._optionDatepicker(a, b, c)
+ }, _refreshDatepicker:function (a) {
+ (a = this._getInst(a)) && this._updateDatepicker(a)
+ }, _setDateDatepicker:function (a, b) {
+ if (a = this._getInst(a)) {
+ this._setDate(a,
+ b);
+ this._updateDatepicker(a);
+ this._updateAlternate(a)
+ }
+ }, _getDateDatepicker:function (a, b) {
+ (a = this._getInst(a)) && !a.inline && this._setDateFromField(a, b);
+ return a ? this._getDate(a) : null
+ }, _doKeyDown:function (a) {
+ var b = d.datepicker._getInst(a.target), c = true, e = b.dpDiv.is(".ui-datepicker-rtl");
+ b._keyEvent = true;
+ if (d.datepicker._datepickerShowing)switch (a.keyCode) {
+ case 9:
+ d.datepicker._hideDatepicker();
+ c = false;
+ break;
+ case 13:
+ c = d("td." + d.datepicker._dayOverClass + ":not(." + d.datepicker._currentClass + ")", b.dpDiv);
+ c[0] ? d.datepicker._selectDay(a.target, b.selectedMonth, b.selectedYear, c[0]) : d.datepicker._hideDatepicker();
+ return false;
+ case 27:
+ d.datepicker._hideDatepicker();
+ break;
+ case 33:
+ d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(b, "stepBigMonths") : -d.datepicker._get(b, "stepMonths"), "M");
+ break;
+ case 34:
+ d.datepicker._adjustDate(a.target, a.ctrlKey ? +d.datepicker._get(b, "stepBigMonths") : +d.datepicker._get(b, "stepMonths"), "M");
+ break;
+ case 35:
+ if (a.ctrlKey || a.metaKey)d.datepicker._clearDate(a.target);
+ c = a.ctrlKey || a.metaKey;
+ break;
+ case 36:
+ if (a.ctrlKey || a.metaKey)d.datepicker._gotoToday(a.target);
+ c = a.ctrlKey || a.metaKey;
+ break;
+ case 37:
+ if (a.ctrlKey || a.metaKey)d.datepicker._adjustDate(a.target, e ? +1 : -1, "D");
+ c = a.ctrlKey || a.metaKey;
+ if (a.originalEvent.altKey)d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(b, "stepBigMonths") : -d.datepicker._get(b, "stepMonths"), "M");
+ break;
+ case 38:
+ if (a.ctrlKey || a.metaKey)d.datepicker._adjustDate(a.target, -7, "D");
+ c = a.ctrlKey || a.metaKey;
+ break;
+ case 39:
+ if (a.ctrlKey ||
+ a.metaKey)d.datepicker._adjustDate(a.target, e ? -1 : +1, "D");
+ c = a.ctrlKey || a.metaKey;
+ if (a.originalEvent.altKey)d.datepicker._adjustDate(a.target, a.ctrlKey ? +d.datepicker._get(b, "stepBigMonths") : +d.datepicker._get(b, "stepMonths"), "M");
+ break;
+ case 40:
+ if (a.ctrlKey || a.metaKey)d.datepicker._adjustDate(a.target, +7, "D");
+ c = a.ctrlKey || a.metaKey;
+ break;
+ default:
+ c = false
+ } else if (a.keyCode == 36 && a.ctrlKey)d.datepicker._showDatepicker(this); else c = false;
+ if (c) {
+ a.preventDefault();
+ a.stopPropagation()
+ }
+ }, _doKeyPress:function (a) {
+ var b =
+ d.datepicker._getInst(a.target);
+ if (d.datepicker._get(b, "constrainInput")) {
+ b = d.datepicker._possibleChars(d.datepicker._get(b, "dateFormat"));
+ var c = String.fromCharCode(a.charCode == C ? a.keyCode : a.charCode);
+ return a.ctrlKey || a.metaKey || c < " " || !b || b.indexOf(c) > -1
+ }
+ }, _doKeyUp:function (a) {
+ a = d.datepicker._getInst(a.target);
+ if (a.input.val() != a.lastVal)try {
+ if (d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), a.input ? a.input.val() : null, d.datepicker._getFormatConfig(a))) {
+ d.datepicker._setDateFromField(a);
+ d.datepicker._updateAlternate(a);
+ d.datepicker._updateDatepicker(a)
+ }
+ } catch (b) {
+ d.datepicker.log(b)
+ }
+ return true
+ }, _showDatepicker:function (a) {
+ a = a.target || a;
+ if (a.nodeName.toLowerCase() != "input")a = d("input", a.parentNode)[0];
+ if (!(d.datepicker._isDisabledDatepicker(a) || d.datepicker._lastInput == a)) {
+ var b = d.datepicker._getInst(a);
+ if (d.datepicker._curInst && d.datepicker._curInst != b) {
+ d.datepicker._datepickerShowing && d.datepicker._triggerOnClose(d.datepicker._curInst);
+ d.datepicker._curInst.dpDiv.stop(true, true)
+ }
+ var c =
+ d.datepicker._get(b, "beforeShow");
+ H(b.settings, c ? c.apply(a, [a, b]) : {});
+ b.lastVal = null;
+ d.datepicker._lastInput = a;
+ d.datepicker._setDateFromField(b);
+ if (d.datepicker._inDialog)a.value = "";
+ if (!d.datepicker._pos) {
+ d.datepicker._pos = d.datepicker._findPos(a);
+ d.datepicker._pos[1] += a.offsetHeight
+ }
+ var e = false;
+ d(a).parents().each(function () {
+ e |= d(this).css("position") == "fixed";
+ return!e
+ });
+ if (e && d.browser.opera) {
+ d.datepicker._pos[0] -= document.documentElement.scrollLeft;
+ d.datepicker._pos[1] -= document.documentElement.scrollTop
+ }
+ c =
+ {left:d.datepicker._pos[0], top:d.datepicker._pos[1]};
+ d.datepicker._pos = null;
+ b.dpDiv.empty();
+ b.dpDiv.css({position:"absolute", display:"block", top:"-1000px"});
+ d.datepicker._updateDatepicker(b);
+ c = d.datepicker._checkOffset(b, c, e);
+ b.dpDiv.css({position:d.datepicker._inDialog && d.blockUI ? "static" : e ? "fixed" : "absolute", display:"none", left:c.left + "px", top:c.top + "px"});
+ if (!b.inline) {
+ c = d.datepicker._get(b, "showAnim");
+ var f = d.datepicker._get(b, "duration"), h = function () {
+ var i = b.dpDiv.find("iframe.ui-datepicker-cover");
+ if (i.length) {
+ var g = d.datepicker._getBorders(b.dpDiv);
+ i.css({left:-g[0], top:-g[1], width:b.dpDiv.outerWidth(), height:b.dpDiv.outerHeight()})
+ }
+ };
+ b.dpDiv.zIndex(d(a).zIndex() + 1);
+ d.datepicker._datepickerShowing = true;
+ d.effects && d.effects[c] ? b.dpDiv.show(c, d.datepicker._get(b, "showOptions"), f, h) : b.dpDiv[c || "show"](c ? f : null, h);
+ if (!c || !f)h();
+ b.input.is(":visible") && !b.input.is(":disabled") && b.input.focus();
+ d.datepicker._curInst = b
+ }
+ }
+ }, _updateDatepicker:function (a) {
+ this.maxRows = 4;
+ var b = d.datepicker._getBorders(a.dpDiv);
+ J = a;
+ a.dpDiv.empty().append(this._generateHTML(a));
+ var c = a.dpDiv.find("iframe.ui-datepicker-cover");
+ c.length && c.css({left:-b[0], top:-b[1], width:a.dpDiv.outerWidth(), height:a.dpDiv.outerHeight()});
+ a.dpDiv.find("." + this._dayOverClass + " a").mouseover();
+ b = this._getNumberOfMonths(a);
+ c = b[1];
+ a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");
+ c > 1 && a.dpDiv.addClass("ui-datepicker-multi-" + c).css("width", 17 * c + "em");
+ a.dpDiv[(b[0] != 1 || b[1] != 1 ? "add" : "remove") + "Class"]("ui-datepicker-multi");
+ a.dpDiv[(this._get(a, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl");
+ a == d.datepicker._curInst && d.datepicker._datepickerShowing && a.input && a.input.is(":visible") && !a.input.is(":disabled") && a.input[0] != document.activeElement && a.input.focus();
+ if (a.yearshtml) {
+ var e = a.yearshtml;
+ setTimeout(function () {
+ e === a.yearshtml && a.yearshtml && a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);
+ e = a.yearshtml = null
+ }, 0)
+ }
+ }, _getBorders:function (a) {
+ var b = function (c) {
+ return{thin:1, medium:2, thick:3}[c] ||
+ c
+ };
+ return[parseFloat(b(a.css("border-left-width"))), parseFloat(b(a.css("border-top-width")))]
+ }, _checkOffset:function (a, b, c) {
+ var e = a.dpDiv.outerWidth(), f = a.dpDiv.outerHeight(), h = a.input ? a.input.outerWidth() : 0, i = a.input ? a.input.outerHeight() : 0, g = document.documentElement.clientWidth + d(document).scrollLeft(), j = document.documentElement.clientHeight + d(document).scrollTop();
+ b.left -= this._get(a, "isRTL") ? e - h : 0;
+ b.left -= c && b.left == a.input.offset().left ? d(document).scrollLeft() : 0;
+ b.top -= c && b.top == a.input.offset().top +
+ i ? d(document).scrollTop() : 0;
+ b.left -= Math.min(b.left, b.left + e > g && g > e ? Math.abs(b.left + e - g) : 0);
+ b.top -= Math.min(b.top, b.top + f > j && j > f ? Math.abs(f + i) : 0);
+ return b
+ }, _findPos:function (a) {
+ for (var b = this._get(this._getInst(a), "isRTL"); a && (a.type == "hidden" || a.nodeType != 1 || d.expr.filters.hidden(a));)a = a[b ? "previousSibling" : "nextSibling"];
+ a = d(a).offset();
+ return[a.left, a.top]
+ }, _triggerOnClose:function (a) {
+ var b = this._get(a, "onClose");
+ if (b)b.apply(a.input ? a.input[0] : null, [a.input ? a.input.val() : "", a])
+ }, _hideDatepicker:function (a) {
+ var b =
+ this._curInst;
+ if (!(!b || a && b != d.data(a, "datepicker")))if (this._datepickerShowing) {
+ a = this._get(b, "showAnim");
+ var c = this._get(b, "duration"), e = function () {
+ d.datepicker._tidyDialog(b);
+ this._curInst = null
+ };
+ d.effects && d.effects[a] ? b.dpDiv.hide(a, d.datepicker._get(b, "showOptions"), c, e) : b.dpDiv[a == "slideDown" ? "slideUp" : a == "fadeIn" ? "fadeOut" : "hide"](a ? c : null, e);
+ a || e();
+ d.datepicker._triggerOnClose(b);
+ this._datepickerShowing = false;
+ this._lastInput = null;
+ if (this._inDialog) {
+ this._dialogInput.css({position:"absolute",
+ left:"0", top:"-100px"});
+ if (d.blockUI) {
+ d.unblockUI();
+ d("body").append(this.dpDiv)
+ }
+ }
+ this._inDialog = false
+ }
+ }, _tidyDialog:function (a) {
+ a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")
+ }, _checkExternalClick:function (a) {
+ if (d.datepicker._curInst) {
+ a = d(a.target);
+ a[0].id != d.datepicker._mainDivId && a.parents("#" + d.datepicker._mainDivId).length == 0 && !a.hasClass(d.datepicker.markerClassName) && !a.hasClass(d.datepicker._triggerClass) && d.datepicker._datepickerShowing && !(d.datepicker._inDialog &&
+ d.blockUI) && d.datepicker._hideDatepicker()
+ }
+ }, _adjustDate:function (a, b, c) {
+ a = d(a);
+ var e = this._getInst(a[0]);
+ if (!this._isDisabledDatepicker(a[0])) {
+ this._adjustInstDate(e, b + (c == "M" ? this._get(e, "showCurrentAtPos") : 0), c);
+ this._updateDatepicker(e)
+ }
+ }, _gotoToday:function (a) {
+ a = d(a);
+ var b = this._getInst(a[0]);
+ if (this._get(b, "gotoCurrent") && b.currentDay) {
+ b.selectedDay = b.currentDay;
+ b.drawMonth = b.selectedMonth = b.currentMonth;
+ b.drawYear = b.selectedYear = b.currentYear
+ } else {
+ var c = new Date;
+ b.selectedDay = c.getDate();
+ b.drawMonth =
+ b.selectedMonth = c.getMonth();
+ b.drawYear = b.selectedYear = c.getFullYear()
+ }
+ this._notifyChange(b);
+ this._adjustDate(a)
+ }, _selectMonthYear:function (a, b, c) {
+ a = d(a);
+ var e = this._getInst(a[0]);
+ e._selectingMonthYear = false;
+ e["selected" + (c == "M" ? "Month" : "Year")] = e["draw" + (c == "M" ? "Month" : "Year")] = parseInt(b.options[b.selectedIndex].value, 10);
+ this._notifyChange(e);
+ this._adjustDate(a)
+ }, _clickMonthYear:function (a) {
+ var b = this._getInst(d(a)[0]);
+ b.input && b._selectingMonthYear && setTimeout(function () {
+ b.input.focus()
+ }, 0);
+ b._selectingMonthYear =
+ !b._selectingMonthYear
+ }, _selectDay:function (a, b, c, e) {
+ var f = d(a);
+ if (!(d(e).hasClass(this._unselectableClass) || this._isDisabledDatepicker(f[0]))) {
+ f = this._getInst(f[0]);
+ f.selectedDay = f.currentDay = d("a", e).html();
+ f.selectedMonth = f.currentMonth = b;
+ f.selectedYear = f.currentYear = c;
+ this._selectDate(a, this._formatDate(f, f.currentDay, f.currentMonth, f.currentYear))
+ }
+ }, _clearDate:function (a) {
+ a = d(a);
+ this._getInst(a[0]);
+ this._selectDate(a, "")
+ }, _selectDate:function (a, b) {
+ a = this._getInst(d(a)[0]);
+ b = b != null ? b : this._formatDate(a);
+ a.input && a.input.val(b);
+ this._updateAlternate(a);
+ var c = this._get(a, "onSelect");
+ if (c)c.apply(a.input ? a.input[0] : null, [b, a]); else a.input && a.input.trigger("change");
+ if (a.inline)this._updateDatepicker(a); else {
+ this._hideDatepicker();
+ this._lastInput = a.input[0];
+ typeof a.input[0] != "object" && a.input.focus();
+ this._lastInput = null
+ }
+ }, _updateAlternate:function (a) {
+ var b = this._get(a, "altField");
+ if (b) {
+ var c = this._get(a, "altFormat") || this._get(a, "dateFormat"), e = this._getDate(a), f = this.formatDate(c, e, this._getFormatConfig(a));
+ d(b).each(function () {
+ d(this).val(f)
+ })
+ }
+ }, noWeekends:function (a) {
+ a = a.getDay();
+ return[a > 0 && a < 6, ""]
+ }, iso8601Week:function (a) {
+ a = new Date(a.getTime());
+ a.setDate(a.getDate() + 4 - (a.getDay() || 7));
+ var b = a.getTime();
+ a.setMonth(0);
+ a.setDate(1);
+ return Math.floor(Math.round((b - a) / 864E5) / 7) + 1
+ }, parseDate:function (a, b, c) {
+ if (a == null || b == null)throw"Invalid arguments";
+ b = typeof b == "object" ? b.toString() : b + "";
+ if (b == "")return null;
+ var e = (c ? c.shortYearCutoff : null) || this._defaults.shortYearCutoff;
+ e = typeof e != "string" ? e : (new Date).getFullYear() %
+ 100 + parseInt(e, 10);
+ for (var f = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort, h = (c ? c.dayNames : null) || this._defaults.dayNames, i = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort, g = (c ? c.monthNames : null) || this._defaults.monthNames, j = c = -1, l = -1, u = -1, k = false, o = function (p) {
+ (p = B + 1 < a.length && a.charAt(B + 1) == p) && B++;
+ return p
+ }, m = function (p) {
+ var D = o(p);
+ p = new RegExp("^\\d{1," + (p == "@" ? 14 : p == "!" ? 20 : p == "y" && D ? 4 : p == "o" ? 3 : 2) + "}");
+ p = b.substring(q).match(p);
+ if (!p)throw"Missing number at position " + q;
+ q +=
+ p[0].length;
+ return parseInt(p[0], 10)
+ }, n = function (p, D, K) {
+ p = d.map(o(p) ? K : D,function (w, x) {
+ return[
+ [x, w]
+ ]
+ }).sort(function (w, x) {
+ return-(w[1].length - x[1].length)
+ });
+ var E = -1;
+ d.each(p, function (w, x) {
+ w = x[1];
+ if (b.substr(q, w.length).toLowerCase() == w.toLowerCase()) {
+ E = x[0];
+ q += w.length;
+ return false
+ }
+ });
+ if (E != -1)return E + 1; else throw"Unknown name at position " + q;
+ }, s = function () {
+ if (b.charAt(q) != a.charAt(B))throw"Unexpected literal at position " + q;
+ q++
+ }, q = 0, B = 0; B < a.length; B++)if (k)if (a.charAt(B) == "'" && !o("'"))k = false;
+ else s(); else switch (a.charAt(B)) {
+ case "d":
+ l = m("d");
+ break;
+ case "D":
+ n("D", f, h);
+ break;
+ case "o":
+ u = m("o");
+ break;
+ case "m":
+ j = m("m");
+ break;
+ case "M":
+ j = n("M", i, g);
+ break;
+ case "y":
+ c = m("y");
+ break;
+ case "@":
+ var v = new Date(m("@"));
+ c = v.getFullYear();
+ j = v.getMonth() + 1;
+ l = v.getDate();
+ break;
+ case "!":
+ v = new Date((m("!") - this._ticksTo1970) / 1E4);
+ c = v.getFullYear();
+ j = v.getMonth() + 1;
+ l = v.getDate();
+ break;
+ case "'":
+ if (o("'"))s(); else k = true;
+ break;
+ default:
+ s()
+ }
+ if (q < b.length)throw"Extra/unparsed characters found in date: " + b.substring(q);
+ if (c == -1)c = (new Date).getFullYear(); else if (c < 100)c += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (c <= e ? 0 : -100);
+ if (u > -1) {
+ j = 1;
+ l = u;
+ do {
+ e = this._getDaysInMonth(c, j - 1);
+ if (l <= e)break;
+ j++;
+ l -= e
+ } while (1)
+ }
+ v = this._daylightSavingAdjust(new Date(c, j - 1, l));
+ if (v.getFullYear() != c || v.getMonth() + 1 != j || v.getDate() != l)throw"Invalid date";
+ return v
+ }, ATOM:"yy-mm-dd", COOKIE:"D, dd M yy", ISO_8601:"yy-mm-dd", RFC_822:"D, d M y", RFC_850:"DD, dd-M-y", RFC_1036:"D, d M y", RFC_1123:"D, d M yy", RFC_2822:"D, d M yy", RSS:"D, d M y",
+ TICKS:"!", TIMESTAMP:"@", W3C:"yy-mm-dd", _ticksTo1970:(718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)) * 24 * 60 * 60 * 1E7, formatDate:function (a, b, c) {
+ if (!b)return"";
+ var e = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort, f = (c ? c.dayNames : null) || this._defaults.dayNames, h = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort;
+ c = (c ? c.monthNames : null) || this._defaults.monthNames;
+ var i = function (o) {
+ (o = k + 1 < a.length && a.charAt(k + 1) == o) && k++;
+ return o
+ }, g = function (o, m, n) {
+ m = "" + m;
+ if (i(o))for (; m.length <
+ n;)m = "0" + m;
+ return m
+ }, j = function (o, m, n, s) {
+ return i(o) ? s[m] : n[m]
+ }, l = "", u = false;
+ if (b)for (var k = 0; k < a.length; k++)if (u)if (a.charAt(k) == "'" && !i("'"))u = false; else l += a.charAt(k); else switch (a.charAt(k)) {
+ case "d":
+ l += g("d", b.getDate(), 2);
+ break;
+ case "D":
+ l += j("D", b.getDay(), e, f);
+ break;
+ case "o":
+ l += g("o", Math.round(((new Date(b.getFullYear(), b.getMonth(), b.getDate())).getTime() - (new Date(b.getFullYear(), 0, 0)).getTime()) / 864E5), 3);
+ break;
+ case "m":
+ l += g("m", b.getMonth() + 1, 2);
+ break;
+ case "M":
+ l += j("M", b.getMonth(), h,
+ c);
+ break;
+ case "y":
+ l += i("y") ? b.getFullYear() : (b.getYear() % 100 < 10 ? "0" : "") + b.getYear() % 100;
+ break;
+ case "@":
+ l += b.getTime();
+ break;
+ case "!":
+ l += b.getTime() * 1E4 + this._ticksTo1970;
+ break;
+ case "'":
+ if (i("'"))l += "'"; else u = true;
+ break;
+ default:
+ l += a.charAt(k)
+ }
+ return l
+ }, _possibleChars:function (a) {
+ for (var b = "", c = false, e = function (h) {
+ (h = f + 1 < a.length && a.charAt(f + 1) == h) && f++;
+ return h
+ }, f = 0; f < a.length; f++)if (c)if (a.charAt(f) == "'" && !e("'"))c = false; else b += a.charAt(f); else switch (a.charAt(f)) {
+ case "d":
+ case "m":
+ case "y":
+ case "@":
+ b +=
+ "0123456789";
+ break;
+ case "D":
+ case "M":
+ return null;
+ case "'":
+ if (e("'"))b += "'"; else c = true;
+ break;
+ default:
+ b += a.charAt(f)
+ }
+ return b
+ }, _get:function (a, b) {
+ return a.settings[b] !== C ? a.settings[b] : this._defaults[b]
+ }, _setDateFromField:function (a, b) {
+ if (a.input.val() != a.lastVal) {
+ var c = this._get(a, "dateFormat"), e = a.lastVal = a.input ? a.input.val() : null, f, h;
+ f = h = this._getDefaultDate(a);
+ var i = this._getFormatConfig(a);
+ try {
+ f = this.parseDate(c, e, i) || h
+ } catch (g) {
+ this.log(g);
+ e = b ? "" : e
+ }
+ a.selectedDay = f.getDate();
+ a.drawMonth = a.selectedMonth =
+ f.getMonth();
+ a.drawYear = a.selectedYear = f.getFullYear();
+ a.currentDay = e ? f.getDate() : 0;
+ a.currentMonth = e ? f.getMonth() : 0;
+ a.currentYear = e ? f.getFullYear() : 0;
+ this._adjustInstDate(a)
+ }
+ }, _getDefaultDate:function (a) {
+ return this._restrictMinMax(a, this._determineDate(a, this._get(a, "defaultDate"), new Date))
+ }, _determineDate:function (a, b, c) {
+ var e = function (h) {
+ var i = new Date;
+ i.setDate(i.getDate() + h);
+ return i
+ }, f = function (h) {
+ try {
+ return d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), h, d.datepicker._getFormatConfig(a))
+ } catch (i) {
+ }
+ var g =
+ (h.toLowerCase().match(/^c/) ? d.datepicker._getDate(a) : null) || new Date, j = g.getFullYear(), l = g.getMonth();
+ g = g.getDate();
+ for (var u = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, k = u.exec(h); k;) {
+ switch (k[2] || "d") {
+ case "d":
+ case "D":
+ g += parseInt(k[1], 10);
+ break;
+ case "w":
+ case "W":
+ g += parseInt(k[1], 10) * 7;
+ break;
+ case "m":
+ case "M":
+ l += parseInt(k[1], 10);
+ g = Math.min(g, d.datepicker._getDaysInMonth(j, l));
+ break;
+ case "y":
+ case "Y":
+ j += parseInt(k[1], 10);
+ g = Math.min(g, d.datepicker._getDaysInMonth(j, l));
+ break
+ }
+ k = u.exec(h)
+ }
+ return new Date(j,
+ l, g)
+ };
+ if (b = (b = b == null || b === "" ? c : typeof b == "string" ? f(b) : typeof b == "number" ? isNaN(b) ? c : e(b) : new Date(b.getTime())) && b.toString() == "Invalid Date" ? c : b) {
+ b.setHours(0);
+ b.setMinutes(0);
+ b.setSeconds(0);
+ b.setMilliseconds(0)
+ }
+ return this._daylightSavingAdjust(b)
+ }, _daylightSavingAdjust:function (a) {
+ if (!a)return null;
+ a.setHours(a.getHours() > 12 ? a.getHours() + 2 : 0);
+ return a
+ }, _setDate:function (a, b, c) {
+ var e = !b, f = a.selectedMonth, h = a.selectedYear;
+ b = this._restrictMinMax(a, this._determineDate(a, b, new Date));
+ a.selectedDay =
+ a.currentDay = b.getDate();
+ a.drawMonth = a.selectedMonth = a.currentMonth = b.getMonth();
+ a.drawYear = a.selectedYear = a.currentYear = b.getFullYear();
+ if ((f != a.selectedMonth || h != a.selectedYear) && !c)this._notifyChange(a);
+ this._adjustInstDate(a);
+ if (a.input)a.input.val(e ? "" : this._formatDate(a))
+ }, _getDate:function (a) {
+ return!a.currentYear || a.input && a.input.val() == "" ? null : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay))
+ }, _generateHTML:function (a) {
+ var b = new Date;
+ b = this._daylightSavingAdjust(new Date(b.getFullYear(),
+ b.getMonth(), b.getDate()));
+ var c = this._get(a, "isRTL"), e = this._get(a, "showButtonPanel"), f = this._get(a, "hideIfNoPrevNext"), h = this._get(a, "navigationAsDateFormat"), i = this._getNumberOfMonths(a), g = this._get(a, "showCurrentAtPos"), j = this._get(a, "stepMonths"), l = i[0] != 1 || i[1] != 1, u = this._daylightSavingAdjust(!a.currentDay ? new Date(9999, 9, 9) : new Date(a.currentYear, a.currentMonth, a.currentDay)), k = this._getMinMaxDate(a, "min"), o = this._getMinMaxDate(a, "max");
+ g = a.drawMonth - g;
+ var m = a.drawYear;
+ if (g < 0) {
+ g += 12;
+ m--
+ }
+ if (o) {
+ var n =
+ this._daylightSavingAdjust(new Date(o.getFullYear(), o.getMonth() - i[0] * i[1] + 1, o.getDate()));
+ for (n = k && n < k ? k : n; this._daylightSavingAdjust(new Date(m, g, 1)) > n;) {
+ g--;
+ if (g < 0) {
+ g = 11;
+ m--
+ }
+ }
+ }
+ a.drawMonth = g;
+ a.drawYear = m;
+ n = this._get(a, "prevText");
+ n = !h ? n : this.formatDate(n, this._daylightSavingAdjust(new Date(m, g - j, 1)), this._getFormatConfig(a));
+ n = this._canAdjustMonth(a, -1, m, g) ? '' + n + " " : f ? "" : '' + n + " ";
+ var s = this._get(a, "nextText");
+ s = !h ? s : this.formatDate(s, this._daylightSavingAdjust(new Date(m, g + j, 1)), this._getFormatConfig(a));
+ f = this._canAdjustMonth(a, +1, m, g) ? '' + s + " " : f ? "" : '' + s + " ";
+ j = this._get(a, "currentText");
+ s = this._get(a, "gotoCurrent") && a.currentDay ? u : b;
+ j = !h ? j : this.formatDate(j, s, this._getFormatConfig(a));
+ h = !a.inline ? '' + this._get(a,
+ "closeText") + " " : "";
+ e = e ? '' + (c ? h : "") + (this._isInRange(a, s) ? '" + j + " " : "") + (c ? "" : h) + "
" : "";
+ h = parseInt(this._get(a, "firstDay"), 10);
+ h = isNaN(h) ? 0 : h;
+ j = this._get(a, "showWeek");
+ s = this._get(a, "dayNames");
+ this._get(a, "dayNamesShort");
+ var q = this._get(a, "dayNamesMin"), B =
+ this._get(a, "monthNames"), v = this._get(a, "monthNamesShort"), p = this._get(a, "beforeShowDay"), D = this._get(a, "showOtherMonths"), K = this._get(a, "selectOtherMonths");
+ this._get(a, "calculateWeek");
+ for (var E = this._getDefaultDate(a), w = "", x = 0; x < i[0]; x++) {
+ var O = "";
+ this.maxRows = 4;
+ for (var G = 0; G < i[1]; G++) {
+ var P = this._daylightSavingAdjust(new Date(m, g, a.selectedDay)), t = " ui-corner-all", y = "";
+ if (l) {
+ y += ''
+ }
+ y += '
';
+ var z = j ? '' + this._get(a, "weekHeader") + " " :
+ "";
+ for (t = 0; t < 7; t++) {
+ var r = (t + h) % 7;
+ z += "= 5 ? ' class="ui-datepicker-week-end"' : "") + '>' + q[r] + " "
+ }
+ y += z + " ";
+ z = this._getDaysInMonth(m, g);
+ if (m == a.selectedYear && g == a.selectedMonth)a.selectedDay = Math.min(a.selectedDay, z);
+ t = (this._getFirstDayOfMonth(m, g) - h + 7) % 7;
+ z = Math.ceil((t + z) / 7);
+ this.maxRows = z = l ? this.maxRows > z ? this.maxRows : z : z;
+ r = this._daylightSavingAdjust(new Date(m, g, 1 - t));
+ for (var Q = 0; Q < z; Q++) {
+ y += "";
+ var R = !j ? "" : '' +
+ this._get(a, "calculateWeek")(r) + " ";
+ for (t = 0; t < 7; t++) {
+ var I = p ? p.apply(a.input ? a.input[0] : null, [r]) : [true, ""], F = r.getMonth() != g, L = F && !K || !I[0] || k && r < k || o && r > o;
+ R += '" + (F && !D ? " " : L ? '' + r.getDate() + " " : '' +
+ r.getDate() + " ") + " ";
+ r.setDate(r.getDate() + 1);
+ r = this._daylightSavingAdjust(r)
+ }
+ y += R + " "
+ }
+ g++;
+ if (g > 11) {
+ g = 0;
+ m++
+ }
+ y += "
" + (l ? "
" + (i[0] > 0 && G == i[1] - 1 ? '
' : "") : "");
+ O += y
+ }
+ w += O
+ }
+ w += e + (d.browser.msie && parseInt(d.browser.version, 10) < 7 && !a.inline ? '' : "");
+ a._keyEvent = false;
+ return w
+ }, _generateMonthYearHeader:function (a, b, c, e, f, h, i, g) {
+ var j = this._get(a, "changeMonth"),
+ l = this._get(a, "changeYear"), u = this._get(a, "showMonthAfterYear"), k = '', o = "";
+ if (h || !j)o += '' + i[b] + " "; else {
+ i = e && e.getFullYear() == c;
+ var m = f && f.getFullYear() == c;
+ o += '";
+ for (var n = 0; n < 12; n++)if ((!i || n >= e.getMonth()) && (!m || n <= f.getMonth()))o += '" + g[n] + " ";
+ o += " "
+ }
+ u || (k += o + (h || !(j && l) ? " " : ""));
+ if (!a.yearshtml) {
+ a.yearshtml = "";
+ if (h || !l)k += '' + c + " "; else {
+ g = this._get(a, "yearRange").split(":");
+ var s = (new Date).getFullYear();
+ i = function (q) {
+ q = q.match(/c[+-].*/) ? c + parseInt(q.substring(1), 10) : q.match(/[+-].*/) ? s + parseInt(q, 10) : parseInt(q, 10);
+ return isNaN(q) ? s : q
+ };
+ b = i(g[0]);
+ g = Math.max(b, i(g[1] || ""));
+ b = e ? Math.max(b, e.getFullYear()) : b;
+ g = f ? Math.min(g, f.getFullYear()) :
+ g;
+ for (a.yearshtml += '"; b <= g; b++)a.yearshtml += '" + b + " ";
+ a.yearshtml += " ";
+ k += a.yearshtml;
+ a.yearshtml = null
+ }
+ }
+ k += this._get(a, "yearSuffix");
+ if (u)k += (h || !(j && l) ? " " : "") + o;
+ k += "
";
+ return k
+ }, _adjustInstDate:function (a, b, c) {
+ var e = a.drawYear + (c ==
+ "Y" ? b : 0), f = a.drawMonth + (c == "M" ? b : 0);
+ b = Math.min(a.selectedDay, this._getDaysInMonth(e, f)) + (c == "D" ? b : 0);
+ e = this._restrictMinMax(a, this._daylightSavingAdjust(new Date(e, f, b)));
+ a.selectedDay = e.getDate();
+ a.drawMonth = a.selectedMonth = e.getMonth();
+ a.drawYear = a.selectedYear = e.getFullYear();
+ if (c == "M" || c == "Y")this._notifyChange(a)
+ }, _restrictMinMax:function (a, b) {
+ var c = this._getMinMaxDate(a, "min");
+ a = this._getMinMaxDate(a, "max");
+ b = c && b < c ? c : b;
+ return b = a && b > a ? a : b
+ }, _notifyChange:function (a) {
+ var b = this._get(a, "onChangeMonthYear");
+ if (b)b.apply(a.input ? a.input[0] : null, [a.selectedYear, a.selectedMonth + 1, a])
+ }, _getNumberOfMonths:function (a) {
+ a = this._get(a, "numberOfMonths");
+ return a == null ? [1, 1] : typeof a == "number" ? [1, a] : a
+ }, _getMinMaxDate:function (a, b) {
+ return this._determineDate(a, this._get(a, b + "Date"), null)
+ }, _getDaysInMonth:function (a, b) {
+ return 32 - this._daylightSavingAdjust(new Date(a, b, 32)).getDate()
+ }, _getFirstDayOfMonth:function (a, b) {
+ return(new Date(a, b, 1)).getDay()
+ }, _canAdjustMonth:function (a, b, c, e) {
+ var f = this._getNumberOfMonths(a);
+ c = this._daylightSavingAdjust(new Date(c, e + (b < 0 ? b : f[0] * f[1]), 1));
+ b < 0 && c.setDate(this._getDaysInMonth(c.getFullYear(), c.getMonth()));
+ return this._isInRange(a, c)
+ }, _isInRange:function (a, b) {
+ var c = this._getMinMaxDate(a, "min");
+ a = this._getMinMaxDate(a, "max");
+ return(!c || b.getTime() >= c.getTime()) && (!a || b.getTime() <= a.getTime())
+ }, _getFormatConfig:function (a) {
+ var b = this._get(a, "shortYearCutoff");
+ b = typeof b != "string" ? b : (new Date).getFullYear() % 100 + parseInt(b, 10);
+ return{shortYearCutoff:b, dayNamesShort:this._get(a,
+ "dayNamesShort"), dayNames:this._get(a, "dayNames"), monthNamesShort:this._get(a, "monthNamesShort"), monthNames:this._get(a, "monthNames")}
+ }, _formatDate:function (a, b, c, e) {
+ if (!b) {
+ a.currentDay = a.selectedDay;
+ a.currentMonth = a.selectedMonth;
+ a.currentYear = a.selectedYear
+ }
+ b = b ? typeof b == "object" ? b : this._daylightSavingAdjust(new Date(e, c, b)) : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay));
+ return this.formatDate(this._get(a, "dateFormat"), b, this._getFormatConfig(a))
+ }});
+ d.fn.datepicker =
+ function (a) {
+ if (!this.length)return this;
+ if (!d.datepicker.initialized) {
+ d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);
+ d.datepicker.initialized = true
+ }
+ var b = Array.prototype.slice.call(arguments, 1);
+ if (typeof a == "string" && (a == "isDisabled" || a == "getDate" || a == "widget"))return d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(b));
+ if (a == "option" && arguments.length == 2 && typeof arguments[1] == "string")return d.datepicker["_" + a + "Datepicker"].apply(d.datepicker,
+ [this[0]].concat(b));
+ return this.each(function () {
+ typeof a == "string" ? d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this].concat(b)) : d.datepicker._attachDatepicker(this, a)
+ })
+ };
+ d.datepicker = new M;
+ d.datepicker.initialized = false;
+ d.datepicker.uuid = (new Date).getTime();
+ d.datepicker.version = "1.8.14";
+ window["DP_jQuery_" + A] = d
+})(jQuery);
+;
+/*
+ * jQuery UI Progressbar 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.widget.js
+ */
+(function (b, d) {
+ b.widget("ui.progressbar", {options:{value:0, max:100}, min:0, _create:function () {
+ this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar", "aria-valuemin":this.min, "aria-valuemax":this.options.max, "aria-valuenow":this._value()});
+ this.valueDiv = b("").appendTo(this.element);
+ this.oldValue = this._value();
+ this._refreshValue()
+ }, destroy:function () {
+ this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
+ this.valueDiv.remove();
+ b.Widget.prototype.destroy.apply(this, arguments)
+ }, value:function (a) {
+ if (a === d)return this._value();
+ this._setOption("value", a);
+ return this
+ }, _setOption:function (a, c) {
+ if (a === "value") {
+ this.options.value = c;
+ this._refreshValue();
+ this._value() === this.options.max && this._trigger("complete")
+ }
+ b.Widget.prototype._setOption.apply(this, arguments)
+ }, _value:function () {
+ var a = this.options.value;
+ if (typeof a !== "number")a = 0;
+ return Math.min(this.options.max, Math.max(this.min, a))
+ }, _percentage:function () {
+ return 100 *
+ this._value() / this.options.max
+ }, _refreshValue:function () {
+ var a = this.value(), c = this._percentage();
+ if (this.oldValue !== a) {
+ this.oldValue = a;
+ this._trigger("change")
+ }
+ this.valueDiv.toggle(a > this.min).toggleClass("ui-corner-right", a === this.options.max).width(c.toFixed(0) + "%");
+ this.element.attr("aria-valuenow", a)
+ }});
+ b.extend(b.ui.progressbar, {version:"1.8.14"})
+})(jQuery);
+;
+/*
+ * jQuery UI Effects 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/
+ */
+jQuery.effects || function (f, j) {
+ function m(c) {
+ var a;
+ if (c && c.constructor == Array && c.length == 3)return c;
+ if (a = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1], 10), parseInt(a[2], 10), parseInt(a[3], 10)];
+ if (a = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1]) * 2.55, parseFloat(a[2]) * 2.55, parseFloat(a[3]) * 2.55];
+ if (a = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
+ 16), parseInt(a[2], 16), parseInt(a[3], 16)];
+ if (a = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1] + a[1], 16), parseInt(a[2] + a[2], 16), parseInt(a[3] + a[3], 16)];
+ if (/rgba\(0, 0, 0, 0\)/.exec(c))return n.transparent;
+ return n[f.trim(c).toLowerCase()]
+ }
+
+ function s(c, a) {
+ var b;
+ do {
+ b = f.curCSS(c, a);
+ if (b != "" && b != "transparent" || f.nodeName(c, "body"))break;
+ a = "backgroundColor"
+ } while (c = c.parentNode);
+ return m(b)
+ }
+
+ function o() {
+ var c = document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle,
+ a = {}, b, d;
+ if (c && c.length && c[0] && c[c[0]])for (var e = c.length; e--;) {
+ b = c[e];
+ if (typeof c[b] == "string") {
+ d = b.replace(/\-(\w)/g, function (g, h) {
+ return h.toUpperCase()
+ });
+ a[d] = c[b]
+ }
+ } else for (b in c)if (typeof c[b] === "string")a[b] = c[b];
+ return a
+ }
+
+ function p(c) {
+ var a, b;
+ for (a in c) {
+ b = c[a];
+ if (b == null || f.isFunction(b) || a in t || /scrollbar/.test(a) || !/color/i.test(a) && isNaN(parseFloat(b)))delete c[a]
+ }
+ return c
+ }
+
+ function u(c, a) {
+ var b = {_:0}, d;
+ for (d in a)if (c[d] != a[d])b[d] = a[d];
+ return b
+ }
+
+ function k(c, a, b, d) {
+ if (typeof c == "object") {
+ d =
+ a;
+ b = null;
+ a = c;
+ c = a.effect
+ }
+ if (f.isFunction(a)) {
+ d = a;
+ b = null;
+ a = {}
+ }
+ if (typeof a == "number" || f.fx.speeds[a]) {
+ d = b;
+ b = a;
+ a = {}
+ }
+ if (f.isFunction(b)) {
+ d = b;
+ b = null
+ }
+ a = a || {};
+ b = b || a.duration;
+ b = f.fx.off ? 0 : typeof b == "number" ? b : b in f.fx.speeds ? f.fx.speeds[b] : f.fx.speeds._default;
+ d = d || a.complete;
+ return[c, a, b, d]
+ }
+
+ function l(c) {
+ if (!c || typeof c === "number" || f.fx.speeds[c])return true;
+ if (typeof c === "string" && !f.effects[c])return true;
+ return false
+ }
+
+ f.effects = {};
+ f.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor",
+ "borderTopColor", "borderColor", "color", "outlineColor"], function (c, a) {
+ f.fx.step[a] = function (b) {
+ if (!b.colorInit) {
+ b.start = s(b.elem, a);
+ b.end = m(b.end);
+ b.colorInit = true
+ }
+ b.elem.style[a] = "rgb(" + Math.max(Math.min(parseInt(b.pos * (b.end[0] - b.start[0]) + b.start[0], 10), 255), 0) + "," + Math.max(Math.min(parseInt(b.pos * (b.end[1] - b.start[1]) + b.start[1], 10), 255), 0) + "," + Math.max(Math.min(parseInt(b.pos * (b.end[2] - b.start[2]) + b.start[2], 10), 255), 0) + ")"
+ }
+ });
+ var n = {aqua:[0, 255, 255], azure:[240, 255, 255], beige:[245, 245, 220], black:[0,
+ 0, 0], blue:[0, 0, 255], brown:[165, 42, 42], cyan:[0, 255, 255], darkblue:[0, 0, 139], darkcyan:[0, 139, 139], darkgrey:[169, 169, 169], darkgreen:[0, 100, 0], darkkhaki:[189, 183, 107], darkmagenta:[139, 0, 139], darkolivegreen:[85, 107, 47], darkorange:[255, 140, 0], darkorchid:[153, 50, 204], darkred:[139, 0, 0], darksalmon:[233, 150, 122], darkviolet:[148, 0, 211], fuchsia:[255, 0, 255], gold:[255, 215, 0], green:[0, 128, 0], indigo:[75, 0, 130], khaki:[240, 230, 140], lightblue:[173, 216, 230], lightcyan:[224, 255, 255], lightgreen:[144, 238, 144], lightgrey:[211,
+ 211, 211], lightpink:[255, 182, 193], lightyellow:[255, 255, 224], lime:[0, 255, 0], magenta:[255, 0, 255], maroon:[128, 0, 0], navy:[0, 0, 128], olive:[128, 128, 0], orange:[255, 165, 0], pink:[255, 192, 203], purple:[128, 0, 128], violet:[128, 0, 128], red:[255, 0, 0], silver:[192, 192, 192], white:[255, 255, 255], yellow:[255, 255, 0], transparent:[255, 255, 255]}, q = ["add", "remove", "toggle"], t = {border:1, borderBottom:1, borderColor:1, borderLeft:1, borderRight:1, borderTop:1, borderWidth:1, margin:1, padding:1};
+ f.effects.animateClass = function (c, a, b, d) {
+ if (f.isFunction(b)) {
+ d = b;
+ b = null
+ }
+ return this.queue(function () {
+ var e = f(this), g = e.attr("style") || " ", h = p(o.call(this)), r, v = e.attr("class");
+ f.each(q, function (w, i) {
+ c[i] && e[i + "Class"](c[i])
+ });
+ r = p(o.call(this));
+ e.attr("class", v);
+ e.animate(u(h, r), {queue:false, duration:a, easing:b, complete:function () {
+ f.each(q, function (w, i) {
+ c[i] && e[i + "Class"](c[i])
+ });
+ if (typeof e.attr("style") == "object") {
+ e.attr("style").cssText = "";
+ e.attr("style").cssText = g
+ } else e.attr("style", g);
+ d && d.apply(this, arguments);
+ f.dequeue(this)
+ }})
+ })
+ };
+ f.fn.extend({_addClass:f.fn.addClass, addClass:function (c, a, b, d) {
+ return a ? f.effects.animateClass.apply(this, [
+ {add:c},
+ a,
+ b,
+ d
+ ]) : this._addClass(c)
+ }, _removeClass:f.fn.removeClass, removeClass:function (c, a, b, d) {
+ return a ? f.effects.animateClass.apply(this, [
+ {remove:c},
+ a,
+ b,
+ d
+ ]) : this._removeClass(c)
+ }, _toggleClass:f.fn.toggleClass, toggleClass:function (c, a, b, d, e) {
+ return typeof a == "boolean" || a === j ? b ? f.effects.animateClass.apply(this, [a ? {add:c} : {remove:c}, b, d, e]) : this._toggleClass(c, a) : f.effects.animateClass.apply(this,
+ [
+ {toggle:c},
+ a,
+ b,
+ d
+ ])
+ }, switchClass:function (c, a, b, d, e) {
+ return f.effects.animateClass.apply(this, [
+ {add:a, remove:c},
+ b,
+ d,
+ e
+ ])
+ }});
+ f.extend(f.effects, {version:"1.8.14", save:function (c, a) {
+ for (var b = 0; b < a.length; b++)a[b] !== null && c.data("ec.storage." + a[b], c[0].style[a[b]])
+ }, restore:function (c, a) {
+ for (var b = 0; b < a.length; b++)a[b] !== null && c.css(a[b], c.data("ec.storage." + a[b]))
+ }, setMode:function (c, a) {
+ if (a == "toggle")a = c.is(":hidden") ? "show" : "hide";
+ return a
+ }, getBaseline:function (c, a) {
+ var b;
+ switch (c[0]) {
+ case "top":
+ b =
+ 0;
+ break;
+ case "middle":
+ b = 0.5;
+ break;
+ case "bottom":
+ b = 1;
+ break;
+ default:
+ b = c[0] / a.height
+ }
+ switch (c[1]) {
+ case "left":
+ c = 0;
+ break;
+ case "center":
+ c = 0.5;
+ break;
+ case "right":
+ c = 1;
+ break;
+ default:
+ c = c[1] / a.width
+ }
+ return{x:c, y:b}
+ }, createWrapper:function (c) {
+ if (c.parent().is(".ui-effects-wrapper"))return c.parent();
+ var a = {width:c.outerWidth(true), height:c.outerHeight(true), "float":c.css("float")}, b = f("
").addClass("ui-effects-wrapper").css({fontSize:"100%", background:"transparent", border:"none", margin:0, padding:0});
+ c.wrap(b);
+ b = c.parent();
+ if (c.css("position") == "static") {
+ b.css({position:"relative"});
+ c.css({position:"relative"})
+ } else {
+ f.extend(a, {position:c.css("position"), zIndex:c.css("z-index")});
+ f.each(["top", "left", "bottom", "right"], function (d, e) {
+ a[e] = c.css(e);
+ if (isNaN(parseInt(a[e], 10)))a[e] = "auto"
+ });
+ c.css({position:"relative", top:0, left:0, right:"auto", bottom:"auto"})
+ }
+ return b.css(a).show()
+ }, removeWrapper:function (c) {
+ if (c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);
+ return c
+ }, setTransition:function (c, a, b, d) {
+ d = d || {};
+ f.each(a, function (e, g) {
+ unit = c.cssUnit(g);
+ if (unit[0] > 0)d[g] = unit[0] * b + unit[1]
+ });
+ return d
+ }});
+ f.fn.extend({effect:function (c) {
+ var a = k.apply(this, arguments), b = {options:a[1], duration:a[2], callback:a[3]};
+ a = b.options.mode;
+ var d = f.effects[c];
+ if (f.fx.off || !d)return a ? this[a](b.duration, b.callback) : this.each(function () {
+ b.callback && b.callback.call(this)
+ });
+ return d.call(this, b)
+ }, _show:f.fn.show, show:function (c) {
+ if (l(c))return this._show.apply(this, arguments); else {
+ var a = k.apply(this, arguments);
+ a[1].mode = "show";
+ return this.effect.apply(this, a)
+ }
+ }, _hide:f.fn.hide, hide:function (c) {
+ if (l(c))return this._hide.apply(this, arguments); else {
+ var a = k.apply(this, arguments);
+ a[1].mode = "hide";
+ return this.effect.apply(this, a)
+ }
+ }, __toggle:f.fn.toggle, toggle:function (c) {
+ if (l(c) || typeof c === "boolean" || f.isFunction(c))return this.__toggle.apply(this, arguments); else {
+ var a = k.apply(this, arguments);
+ a[1].mode = "toggle";
+ return this.effect.apply(this, a)
+ }
+ }, cssUnit:function (c) {
+ var a = this.css(c), b = [];
+ f.each(["em", "px", "%",
+ "pt"], function (d, e) {
+ if (a.indexOf(e) > 0)b = [parseFloat(a), e]
+ });
+ return b
+ }});
+ f.easing.jswing = f.easing.swing;
+ f.extend(f.easing, {def:"easeOutQuad", swing:function (c, a, b, d, e) {
+ return f.easing[f.easing.def](c, a, b, d, e)
+ }, easeInQuad:function (c, a, b, d, e) {
+ return d * (a /= e) * a + b
+ }, easeOutQuad:function (c, a, b, d, e) {
+ return-d * (a /= e) * (a - 2) + b
+ }, easeInOutQuad:function (c, a, b, d, e) {
+ if ((a /= e / 2) < 1)return d / 2 * a * a + b;
+ return-d / 2 * (--a * (a - 2) - 1) + b
+ }, easeInCubic:function (c, a, b, d, e) {
+ return d * (a /= e) * a * a + b
+ }, easeOutCubic:function (c, a, b, d, e) {
+ return d *
+ ((a = a / e - 1) * a * a + 1) + b
+ }, easeInOutCubic:function (c, a, b, d, e) {
+ if ((a /= e / 2) < 1)return d / 2 * a * a * a + b;
+ return d / 2 * ((a -= 2) * a * a + 2) + b
+ }, easeInQuart:function (c, a, b, d, e) {
+ return d * (a /= e) * a * a * a + b
+ }, easeOutQuart:function (c, a, b, d, e) {
+ return-d * ((a = a / e - 1) * a * a * a - 1) + b
+ }, easeInOutQuart:function (c, a, b, d, e) {
+ if ((a /= e / 2) < 1)return d / 2 * a * a * a * a + b;
+ return-d / 2 * ((a -= 2) * a * a * a - 2) + b
+ }, easeInQuint:function (c, a, b, d, e) {
+ return d * (a /= e) * a * a * a * a + b
+ }, easeOutQuint:function (c, a, b, d, e) {
+ return d * ((a = a / e - 1) * a * a * a * a + 1) + b
+ }, easeInOutQuint:function (c, a, b, d, e) {
+ if ((a /=
+ e / 2) < 1)return d / 2 * a * a * a * a * a + b;
+ return d / 2 * ((a -= 2) * a * a * a * a + 2) + b
+ }, easeInSine:function (c, a, b, d, e) {
+ return-d * Math.cos(a / e * (Math.PI / 2)) + d + b
+ }, easeOutSine:function (c, a, b, d, e) {
+ return d * Math.sin(a / e * (Math.PI / 2)) + b
+ }, easeInOutSine:function (c, a, b, d, e) {
+ return-d / 2 * (Math.cos(Math.PI * a / e) - 1) + b
+ }, easeInExpo:function (c, a, b, d, e) {
+ return a == 0 ? b : d * Math.pow(2, 10 * (a / e - 1)) + b
+ }, easeOutExpo:function (c, a, b, d, e) {
+ return a == e ? b + d : d * (-Math.pow(2, -10 * a / e) + 1) + b
+ }, easeInOutExpo:function (c, a, b, d, e) {
+ if (a == 0)return b;
+ if (a == e)return b + d;
+ if ((a /=
+ e / 2) < 1)return d / 2 * Math.pow(2, 10 * (a - 1)) + b;
+ return d / 2 * (-Math.pow(2, -10 * --a) + 2) + b
+ }, easeInCirc:function (c, a, b, d, e) {
+ return-d * (Math.sqrt(1 - (a /= e) * a) - 1) + b
+ }, easeOutCirc:function (c, a, b, d, e) {
+ return d * Math.sqrt(1 - (a = a / e - 1) * a) + b
+ }, easeInOutCirc:function (c, a, b, d, e) {
+ if ((a /= e / 2) < 1)return-d / 2 * (Math.sqrt(1 - a * a) - 1) + b;
+ return d / 2 * (Math.sqrt(1 - (a -= 2) * a) + 1) + b
+ }, easeInElastic:function (c, a, b, d, e) {
+ c = 1.70158;
+ var g = 0, h = d;
+ if (a == 0)return b;
+ if ((a /= e) == 1)return b + d;
+ g || (g = e * 0.3);
+ if (h < Math.abs(d)) {
+ h = d;
+ c = g / 4
+ } else c = g / (2 * Math.PI) * Math.asin(d /
+ h);
+ return-(h * Math.pow(2, 10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g)) + b
+ }, easeOutElastic:function (c, a, b, d, e) {
+ c = 1.70158;
+ var g = 0, h = d;
+ if (a == 0)return b;
+ if ((a /= e) == 1)return b + d;
+ g || (g = e * 0.3);
+ if (h < Math.abs(d)) {
+ h = d;
+ c = g / 4
+ } else c = g / (2 * Math.PI) * Math.asin(d / h);
+ return h * Math.pow(2, -10 * a) * Math.sin((a * e - c) * 2 * Math.PI / g) + d + b
+ }, easeInOutElastic:function (c, a, b, d, e) {
+ c = 1.70158;
+ var g = 0, h = d;
+ if (a == 0)return b;
+ if ((a /= e / 2) == 2)return b + d;
+ g || (g = e * 0.3 * 1.5);
+ if (h < Math.abs(d)) {
+ h = d;
+ c = g / 4
+ } else c = g / (2 * Math.PI) * Math.asin(d / h);
+ if (a < 1)return-0.5 *
+ h * Math.pow(2, 10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g) + b;
+ return h * Math.pow(2, -10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g) * 0.5 + d + b
+ }, easeInBack:function (c, a, b, d, e, g) {
+ if (g == j)g = 1.70158;
+ return d * (a /= e) * a * ((g + 1) * a - g) + b
+ }, easeOutBack:function (c, a, b, d, e, g) {
+ if (g == j)g = 1.70158;
+ return d * ((a = a / e - 1) * a * ((g + 1) * a + g) + 1) + b
+ }, easeInOutBack:function (c, a, b, d, e, g) {
+ if (g == j)g = 1.70158;
+ if ((a /= e / 2) < 1)return d / 2 * a * a * (((g *= 1.525) + 1) * a - g) + b;
+ return d / 2 * ((a -= 2) * a * (((g *= 1.525) + 1) * a + g) + 2) + b
+ }, easeInBounce:function (c, a, b, d, e) {
+ return d - f.easing.easeOutBounce(c,
+ e - a, 0, d, e) + b
+ }, easeOutBounce:function (c, a, b, d, e) {
+ return(a /= e) < 1 / 2.75 ? d * 7.5625 * a * a + b : a < 2 / 2.75 ? d * (7.5625 * (a -= 1.5 / 2.75) * a + 0.75) + b : a < 2.5 / 2.75 ? d * (7.5625 * (a -= 2.25 / 2.75) * a + 0.9375) + b : d * (7.5625 * (a -= 2.625 / 2.75) * a + 0.984375) + b
+ }, easeInOutBounce:function (c, a, b, d, e) {
+ if (a < e / 2)return f.easing.easeInBounce(c, a * 2, 0, d, e) * 0.5 + b;
+ return f.easing.easeOutBounce(c, a * 2 - e, 0, d, e) * 0.5 + d * 0.5 + b
+ }})
+}(jQuery);
+;
+/*
+ * jQuery UI Effects Blind 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Blind
+ *
+ * Depends:
+ * jquery.effects.core.js
+ */
+(function (b) {
+ b.effects.blind = function (c) {
+ return this.queue(function () {
+ var a = b(this), g = ["position", "top", "bottom", "left", "right"], f = b.effects.setMode(a, c.options.mode || "hide"), d = c.options.direction || "vertical";
+ b.effects.save(a, g);
+ a.show();
+ var e = b.effects.createWrapper(a).css({overflow:"hidden"}), h = d == "vertical" ? "height" : "width";
+ d = d == "vertical" ? e.height() : e.width();
+ f == "show" && e.css(h, 0);
+ var i = {};
+ i[h] = f == "show" ? d : 0;
+ e.animate(i, c.duration, c.options.easing, function () {
+ f == "hide" && a.hide();
+ b.effects.restore(a,
+ g);
+ b.effects.removeWrapper(a);
+ c.callback && c.callback.apply(a[0], arguments);
+ a.dequeue()
+ })
+ })
+ }
+})(jQuery);
+;
+/*
+ * jQuery UI Effects Bounce 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Bounce
+ *
+ * Depends:
+ * jquery.effects.core.js
+ */
+(function (e) {
+ e.effects.bounce = function (b) {
+ return this.queue(function () {
+ var a = e(this), l = ["position", "top", "bottom", "left", "right"], h = e.effects.setMode(a, b.options.mode || "effect"), d = b.options.direction || "up", c = b.options.distance || 20, m = b.options.times || 5, i = b.duration || 250;
+ /show|hide/.test(h) && l.push("opacity");
+ e.effects.save(a, l);
+ a.show();
+ e.effects.createWrapper(a);
+ var f = d == "up" || d == "down" ? "top" : "left";
+ d = d == "up" || d == "left" ? "pos" : "neg";
+ c = b.options.distance || (f == "top" ? a.outerHeight({margin:true}) / 3 : a.outerWidth({margin:true}) /
+ 3);
+ if (h == "show")a.css("opacity", 0).css(f, d == "pos" ? -c : c);
+ if (h == "hide")c /= m * 2;
+ h != "hide" && m--;
+ if (h == "show") {
+ var g = {opacity:1};
+ g[f] = (d == "pos" ? "+=" : "-=") + c;
+ a.animate(g, i / 2, b.options.easing);
+ c /= 2;
+ m--
+ }
+ for (g = 0; g < m; g++) {
+ var j = {}, k = {};
+ j[f] = (d == "pos" ? "-=" : "+=") + c;
+ k[f] = (d == "pos" ? "+=" : "-=") + c;
+ a.animate(j, i / 2, b.options.easing).animate(k, i / 2, b.options.easing);
+ c = h == "hide" ? c * 2 : c / 2
+ }
+ if (h == "hide") {
+ g = {opacity:0};
+ g[f] = (d == "pos" ? "-=" : "+=") + c;
+ a.animate(g, i / 2, b.options.easing, function () {
+ a.hide();
+ e.effects.restore(a, l);
+ e.effects.removeWrapper(a);
+ b.callback && b.callback.apply(this, arguments)
+ })
+ } else {
+ j = {};
+ k = {};
+ j[f] = (d == "pos" ? "-=" : "+=") + c;
+ k[f] = (d == "pos" ? "+=" : "-=") + c;
+ a.animate(j, i / 2, b.options.easing).animate(k, i / 2, b.options.easing, function () {
+ e.effects.restore(a, l);
+ e.effects.removeWrapper(a);
+ b.callback && b.callback.apply(this, arguments)
+ })
+ }
+ a.queue("fx", function () {
+ a.dequeue()
+ });
+ a.dequeue()
+ })
+ }
+})(jQuery);
+;
+/*
+ * jQuery UI Effects Clip 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Clip
+ *
+ * Depends:
+ * jquery.effects.core.js
+ */
+(function (b) {
+ b.effects.clip = function (e) {
+ return this.queue(function () {
+ var a = b(this), i = ["position", "top", "bottom", "left", "right", "height", "width"], f = b.effects.setMode(a, e.options.mode || "hide"), c = e.options.direction || "vertical";
+ b.effects.save(a, i);
+ a.show();
+ var d = b.effects.createWrapper(a).css({overflow:"hidden"});
+ d = a[0].tagName == "IMG" ? d : a;
+ var g = {size:c == "vertical" ? "height" : "width", position:c == "vertical" ? "top" : "left"};
+ c = c == "vertical" ? d.height() : d.width();
+ if (f == "show") {
+ d.css(g.size, 0);
+ d.css(g.position,
+ c / 2)
+ }
+ var h = {};
+ h[g.size] = f == "show" ? c : 0;
+ h[g.position] = f == "show" ? 0 : c / 2;
+ d.animate(h, {queue:false, duration:e.duration, easing:e.options.easing, complete:function () {
+ f == "hide" && a.hide();
+ b.effects.restore(a, i);
+ b.effects.removeWrapper(a);
+ e.callback && e.callback.apply(a[0], arguments);
+ a.dequeue()
+ }})
+ })
+ }
+})(jQuery);
+;
+/*
+ * jQuery UI Effects Drop 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Drop
+ *
+ * Depends:
+ * jquery.effects.core.js
+ */
+(function (c) {
+ c.effects.drop = function (d) {
+ return this.queue(function () {
+ var a = c(this), h = ["position", "top", "bottom", "left", "right", "opacity"], e = c.effects.setMode(a, d.options.mode || "hide"), b = d.options.direction || "left";
+ c.effects.save(a, h);
+ a.show();
+ c.effects.createWrapper(a);
+ var f = b == "up" || b == "down" ? "top" : "left";
+ b = b == "up" || b == "left" ? "pos" : "neg";
+ var g = d.options.distance || (f == "top" ? a.outerHeight({margin:true}) / 2 : a.outerWidth({margin:true}) / 2);
+ if (e == "show")a.css("opacity", 0).css(f, b == "pos" ? -g : g);
+ var i = {opacity:e ==
+ "show" ? 1 : 0};
+ i[f] = (e == "show" ? b == "pos" ? "+=" : "-=" : b == "pos" ? "-=" : "+=") + g;
+ a.animate(i, {queue:false, duration:d.duration, easing:d.options.easing, complete:function () {
+ e == "hide" && a.hide();
+ c.effects.restore(a, h);
+ c.effects.removeWrapper(a);
+ d.callback && d.callback.apply(this, arguments);
+ a.dequeue()
+ }})
+ })
+ }
+})(jQuery);
+;
+/*
+ * jQuery UI Effects Explode 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Explode
+ *
+ * Depends:
+ * jquery.effects.core.js
+ */
+(function (j) {
+ j.effects.explode = function (a) {
+ return this.queue(function () {
+ var c = a.options.pieces ? Math.round(Math.sqrt(a.options.pieces)) : 3, d = a.options.pieces ? Math.round(Math.sqrt(a.options.pieces)) : 3;
+ a.options.mode = a.options.mode == "toggle" ? j(this).is(":visible") ? "hide" : "show" : a.options.mode;
+ var b = j(this).show().css("visibility", "hidden"), g = b.offset();
+ g.top -= parseInt(b.css("marginTop"), 10) || 0;
+ g.left -= parseInt(b.css("marginLeft"), 10) || 0;
+ for (var h = b.outerWidth(true), i = b.outerHeight(true), e = 0; e < c; e++)for (var f =
+ 0; f < d; f++)b.clone().appendTo("body").wrap("
").css({position:"absolute", visibility:"visible", left:-f * (h / d), top:-e * (i / c)}).parent().addClass("ui-effects-explode").css({position:"absolute", overflow:"hidden", width:h / d, height:i / c, left:g.left + f * (h / d) + (a.options.mode == "show" ? (f - Math.floor(d / 2)) * (h / d) : 0), top:g.top + e * (i / c) + (a.options.mode == "show" ? (e - Math.floor(c / 2)) * (i / c) : 0), opacity:a.options.mode == "show" ? 0 : 1}).animate({left:g.left + f * (h / d) + (a.options.mode == "show" ? 0 : (f - Math.floor(d / 2)) * (h / d)), top:g.top +
+ e * (i / c) + (a.options.mode == "show" ? 0 : (e - Math.floor(c / 2)) * (i / c)), opacity:a.options.mode == "show" ? 1 : 0}, a.duration || 500);
+ setTimeout(function () {
+ a.options.mode == "show" ? b.css({visibility:"visible"}) : b.css({visibility:"visible"}).hide();
+ a.callback && a.callback.apply(b[0]);
+ b.dequeue();
+ j("div.ui-effects-explode").remove()
+ }, a.duration || 500)
+ })
+ }
+})(jQuery);
+;
+/*
+ * jQuery UI Effects Fade 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Fade
+ *
+ * Depends:
+ * jquery.effects.core.js
+ */
+(function (b) {
+ b.effects.fade = function (a) {
+ return this.queue(function () {
+ var c = b(this), d = b.effects.setMode(c, a.options.mode || "hide");
+ c.animate({opacity:d}, {queue:false, duration:a.duration, easing:a.options.easing, complete:function () {
+ a.callback && a.callback.apply(this, arguments);
+ c.dequeue()
+ }})
+ })
+ }
+})(jQuery);
+;
+/*
+ * jQuery UI Effects Fold 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Fold
+ *
+ * Depends:
+ * jquery.effects.core.js
+ */
+(function (c) {
+ c.effects.fold = function (a) {
+ return this.queue(function () {
+ var b = c(this), j = ["position", "top", "bottom", "left", "right"], d = c.effects.setMode(b, a.options.mode || "hide"), g = a.options.size || 15, h = !!a.options.horizFirst, k = a.duration ? a.duration / 2 : c.fx.speeds._default / 2;
+ c.effects.save(b, j);
+ b.show();
+ var e = c.effects.createWrapper(b).css({overflow:"hidden"}), f = d == "show" != h, l = f ? ["width", "height"] : ["height", "width"];
+ f = f ? [e.width(), e.height()] : [e.height(), e.width()];
+ var i = /([0-9]+)%/.exec(g);
+ if (i)g = parseInt(i[1],
+ 10) / 100 * f[d == "hide" ? 0 : 1];
+ if (d == "show")e.css(h ? {height:0, width:g} : {height:g, width:0});
+ h = {};
+ i = {};
+ h[l[0]] = d == "show" ? f[0] : g;
+ i[l[1]] = d == "show" ? f[1] : 0;
+ e.animate(h, k, a.options.easing).animate(i, k, a.options.easing, function () {
+ d == "hide" && b.hide();
+ c.effects.restore(b, j);
+ c.effects.removeWrapper(b);
+ a.callback && a.callback.apply(b[0], arguments);
+ b.dequeue()
+ })
+ })
+ }
+})(jQuery);
+;
+/*
+ * jQuery UI Effects Highlight 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Highlight
+ *
+ * Depends:
+ * jquery.effects.core.js
+ */
+(function (b) {
+ b.effects.highlight = function (c) {
+ return this.queue(function () {
+ var a = b(this), e = ["backgroundImage", "backgroundColor", "opacity"], d = b.effects.setMode(a, c.options.mode || "show"), f = {backgroundColor:a.css("backgroundColor")};
+ if (d == "hide")f.opacity = 0;
+ b.effects.save(a, e);
+ a.show().css({backgroundImage:"none", backgroundColor:c.options.color || "#ffff99"}).animate(f, {queue:false, duration:c.duration, easing:c.options.easing, complete:function () {
+ d == "hide" && a.hide();
+ b.effects.restore(a, e);
+ d == "show" && !b.support.opacity &&
+ this.style.removeAttribute("filter");
+ c.callback && c.callback.apply(this, arguments);
+ a.dequeue()
+ }})
+ })
+ }
+})(jQuery);
+;
+/*
+ * jQuery UI Effects Pulsate 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Pulsate
+ *
+ * Depends:
+ * jquery.effects.core.js
+ */
+(function (d) {
+ d.effects.pulsate = function (a) {
+ return this.queue(function () {
+ var b = d(this), c = d.effects.setMode(b, a.options.mode || "show");
+ times = (a.options.times || 5) * 2 - 1;
+ duration = a.duration ? a.duration / 2 : d.fx.speeds._default / 2;
+ isVisible = b.is(":visible");
+ animateTo = 0;
+ if (!isVisible) {
+ b.css("opacity", 0).show();
+ animateTo = 1
+ }
+ if (c == "hide" && isVisible || c == "show" && !isVisible)times--;
+ for (c = 0; c < times; c++) {
+ b.animate({opacity:animateTo}, duration, a.options.easing);
+ animateTo = (animateTo + 1) % 2
+ }
+ b.animate({opacity:animateTo}, duration,
+ a.options.easing, function () {
+ animateTo == 0 && b.hide();
+ a.callback && a.callback.apply(this, arguments)
+ });
+ b.queue("fx",function () {
+ b.dequeue()
+ }).dequeue()
+ })
+ }
+})(jQuery);
+;
+/*
+ * jQuery UI Effects Scale 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Scale
+ *
+ * Depends:
+ * jquery.effects.core.js
+ */
+(function (c) {
+ c.effects.puff = function (b) {
+ return this.queue(function () {
+ var a = c(this), e = c.effects.setMode(a, b.options.mode || "hide"), g = parseInt(b.options.percent, 10) || 150, h = g / 100, i = {height:a.height(), width:a.width()};
+ c.extend(b.options, {fade:true, mode:e, percent:e == "hide" ? g : 100, from:e == "hide" ? i : {height:i.height * h, width:i.width * h}});
+ a.effect("scale", b.options, b.duration, b.callback);
+ a.dequeue()
+ })
+ };
+ c.effects.scale = function (b) {
+ return this.queue(function () {
+ var a = c(this), e = c.extend(true, {}, b.options), g = c.effects.setMode(a,
+ b.options.mode || "effect"), h = parseInt(b.options.percent, 10) || (parseInt(b.options.percent, 10) == 0 ? 0 : g == "hide" ? 0 : 100), i = b.options.direction || "both", f = b.options.origin;
+ if (g != "effect") {
+ e.origin = f || ["middle", "center"];
+ e.restore = true
+ }
+ f = {height:a.height(), width:a.width()};
+ a.from = b.options.from || (g == "show" ? {height:0, width:0} : f);
+ h = {y:i != "horizontal" ? h / 100 : 1, x:i != "vertical" ? h / 100 : 1};
+ a.to = {height:f.height * h.y, width:f.width * h.x};
+ if (b.options.fade) {
+ if (g == "show") {
+ a.from.opacity = 0;
+ a.to.opacity = 1
+ }
+ if (g == "hide") {
+ a.from.opacity =
+ 1;
+ a.to.opacity = 0
+ }
+ }
+ e.from = a.from;
+ e.to = a.to;
+ e.mode = g;
+ a.effect("size", e, b.duration, b.callback);
+ a.dequeue()
+ })
+ };
+ c.effects.size = function (b) {
+ return this.queue(function () {
+ var a = c(this), e = ["position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity"], g = ["position", "top", "bottom", "left", "right", "overflow", "opacity"], h = ["width", "height", "overflow"], i = ["fontSize"], f = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"], k = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"],
+ p = c.effects.setMode(a, b.options.mode || "effect"), n = b.options.restore || false, m = b.options.scale || "both", l = b.options.origin, j = {height:a.height(), width:a.width()};
+ a.from = b.options.from || j;
+ a.to = b.options.to || j;
+ if (l) {
+ l = c.effects.getBaseline(l, j);
+ a.from.top = (j.height - a.from.height) * l.y;
+ a.from.left = (j.width - a.from.width) * l.x;
+ a.to.top = (j.height - a.to.height) * l.y;
+ a.to.left = (j.width - a.to.width) * l.x
+ }
+ var d = {from:{y:a.from.height / j.height, x:a.from.width / j.width}, to:{y:a.to.height / j.height, x:a.to.width / j.width}};
+ if (m == "box" || m == "both") {
+ if (d.from.y != d.to.y) {
+ e = e.concat(f);
+ a.from = c.effects.setTransition(a, f, d.from.y, a.from);
+ a.to = c.effects.setTransition(a, f, d.to.y, a.to)
+ }
+ if (d.from.x != d.to.x) {
+ e = e.concat(k);
+ a.from = c.effects.setTransition(a, k, d.from.x, a.from);
+ a.to = c.effects.setTransition(a, k, d.to.x, a.to)
+ }
+ }
+ if (m == "content" || m == "both")if (d.from.y != d.to.y) {
+ e = e.concat(i);
+ a.from = c.effects.setTransition(a, i, d.from.y, a.from);
+ a.to = c.effects.setTransition(a, i, d.to.y, a.to)
+ }
+ c.effects.save(a, n ? e : g);
+ a.show();
+ c.effects.createWrapper(a);
+ a.css("overflow", "hidden").css(a.from);
+ if (m == "content" || m == "both") {
+ f = f.concat(["marginTop", "marginBottom"]).concat(i);
+ k = k.concat(["marginLeft", "marginRight"]);
+ h = e.concat(f).concat(k);
+ a.find("*[width]").each(function () {
+ child = c(this);
+ n && c.effects.save(child, h);
+ var o = {height:child.height(), width:child.width()};
+ child.from = {height:o.height * d.from.y, width:o.width * d.from.x};
+ child.to = {height:o.height * d.to.y, width:o.width * d.to.x};
+ if (d.from.y != d.to.y) {
+ child.from = c.effects.setTransition(child, f, d.from.y, child.from);
+ child.to = c.effects.setTransition(child, f, d.to.y, child.to)
+ }
+ if (d.from.x != d.to.x) {
+ child.from = c.effects.setTransition(child, k, d.from.x, child.from);
+ child.to = c.effects.setTransition(child, k, d.to.x, child.to)
+ }
+ child.css(child.from);
+ child.animate(child.to, b.duration, b.options.easing, function () {
+ n && c.effects.restore(child, h)
+ })
+ })
+ }
+ a.animate(a.to, {queue:false, duration:b.duration, easing:b.options.easing, complete:function () {
+ a.to.opacity === 0 && a.css("opacity", a.from.opacity);
+ p == "hide" && a.hide();
+ c.effects.restore(a,
+ n ? e : g);
+ c.effects.removeWrapper(a);
+ b.callback && b.callback.apply(this, arguments);
+ a.dequeue()
+ }})
+ })
+ }
+})(jQuery);
+;
+/*
+ * jQuery UI Effects Shake 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Shake
+ *
+ * Depends:
+ * jquery.effects.core.js
+ */
+(function (d) {
+ d.effects.shake = function (a) {
+ return this.queue(function () {
+ var b = d(this), j = ["position", "top", "bottom", "left", "right"];
+ d.effects.setMode(b, a.options.mode || "effect");
+ var c = a.options.direction || "left", e = a.options.distance || 20, l = a.options.times || 3, f = a.duration || a.options.duration || 140;
+ d.effects.save(b, j);
+ b.show();
+ d.effects.createWrapper(b);
+ var g = c == "up" || c == "down" ? "top" : "left", h = c == "up" || c == "left" ? "pos" : "neg";
+ c = {};
+ var i = {}, k = {};
+ c[g] = (h == "pos" ? "-=" : "+=") + e;
+ i[g] = (h == "pos" ? "+=" : "-=") + e * 2;
+ k[g] =
+ (h == "pos" ? "-=" : "+=") + e * 2;
+ b.animate(c, f, a.options.easing);
+ for (e = 1; e < l; e++)b.animate(i, f, a.options.easing).animate(k, f, a.options.easing);
+ b.animate(i, f, a.options.easing).animate(c, f / 2, a.options.easing, function () {
+ d.effects.restore(b, j);
+ d.effects.removeWrapper(b);
+ a.callback && a.callback.apply(this, arguments)
+ });
+ b.queue("fx", function () {
+ b.dequeue()
+ });
+ b.dequeue()
+ })
+ }
+})(jQuery);
+;
+/*
+ * jQuery UI Effects Slide 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Slide
+ *
+ * Depends:
+ * jquery.effects.core.js
+ */
+(function (c) {
+ c.effects.slide = function (d) {
+ return this.queue(function () {
+ var a = c(this), h = ["position", "top", "bottom", "left", "right"], f = c.effects.setMode(a, d.options.mode || "show"), b = d.options.direction || "left";
+ c.effects.save(a, h);
+ a.show();
+ c.effects.createWrapper(a).css({overflow:"hidden"});
+ var g = b == "up" || b == "down" ? "top" : "left";
+ b = b == "up" || b == "left" ? "pos" : "neg";
+ var e = d.options.distance || (g == "top" ? a.outerHeight({margin:true}) : a.outerWidth({margin:true}));
+ if (f == "show")a.css(g, b == "pos" ? isNaN(e) ? "-" + e : -e : e);
+ var i = {};
+ i[g] = (f == "show" ? b == "pos" ? "+=" : "-=" : b == "pos" ? "-=" : "+=") + e;
+ a.animate(i, {queue:false, duration:d.duration, easing:d.options.easing, complete:function () {
+ f == "hide" && a.hide();
+ c.effects.restore(a, h);
+ c.effects.removeWrapper(a);
+ d.callback && d.callback.apply(this, arguments);
+ a.dequeue()
+ }})
+ })
+ }
+})(jQuery);
+;
+/*
+ * jQuery UI Effects Transfer 1.8.14
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Transfer
+ *
+ * Depends:
+ * jquery.effects.core.js
+ */
+(function (e) {
+ e.effects.transfer = function (a) {
+ return this.queue(function () {
+ var b = e(this), c = e(a.options.to), d = c.offset();
+ c = {top:d.top, left:d.left, height:c.innerHeight(), width:c.innerWidth()};
+ d = b.offset();
+ var f = e('
').appendTo(document.body).addClass(a.options.className).css({top:d.top, left:d.left, height:b.innerHeight(), width:b.innerWidth(), position:"absolute"}).animate(c, a.duration, a.options.easing, function () {
+ f.remove();
+ a.callback && a.callback.apply(b[0], arguments);
+ b.dequeue()
+ })
+ })
+ }
+})(jQuery);
+;
\ No newline at end of file
diff --git a/src/main/webapp/sankey/sankey/ext/jquery.js b/src/main/webapp/sankey/sankey/ext/jquery.js
new file mode 100644
index 000000000..bfa4373e6
--- /dev/null
+++ b/src/main/webapp/sankey/sankey/ext/jquery.js
@@ -0,0 +1,2724 @@
+/*!
+ * jQuery JavaScript Library v1.4.2
+ * 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: Sat Feb 13 22:33:48 2010 -0500
+ */
+(function (A, w) {
+ function ma() {
+ if (!c.isReady) {
+ try {
+ s.documentElement.doScroll("left")
+ } catch (a) {
+ setTimeout(ma, 1);
+ return
+ }
+ c.ready()
+ }
+ }
+
+ function Qa(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, j) {
+ var i = a.length;
+ if (typeof b === "object") {
+ for (var o in b)X(a, o, b[o], f, e, d);
+ return a
+ }
+ if (d !== w) {
+ f = !j && f && c.isFunction(d);
+ for (o = 0; o < i; o++)e(a[o], b, f ? d.call(a[o], o, e(a[o], b)) : d, j);
+ return a
+ }
+ return i ?
+ e(a[0], b) : w
+ }
+
+ function J() {
+ return(new Date).getTime()
+ }
+
+ function Y() {
+ return false
+ }
+
+ function Z() {
+ return true
+ }
+
+ function na(a, b, d) {
+ d[0].type = a;
+ return c.event.handle.apply(b, d)
+ }
+
+ function oa(a) {
+ var b, d = [], f = [], e = arguments, j, i, o, k, n, r;
+ i = c.data(this, "events");
+ if (!(a.liveFired === this || !i || !i.live || a.button && a.type === "click")) {
+ a.liveFired = this;
+ var u = i.live.slice(0);
+ for (k = 0; k < u.length; k++) {
+ i = u[k];
+ i.origType.replace(O, "") === a.type ? f.push(i.selector) : u.splice(k--, 1)
+ }
+ j = c(a.target).closest(f, a.currentTarget);
+ n = 0;
+ for (r =
+ j.length; n < r; n++)for (k = 0; k < u.length; k++) {
+ i = u[k];
+ if (j[n].selector === i.selector) {
+ o = j[n].elem;
+ f = null;
+ if (i.preType === "mouseenter" || i.preType === "mouseleave")f = c(a.relatedTarget).closest(i.selector)[0];
+ if (!f || f !== o)d.push({elem:o, handleObj:i})
+ }
+ }
+ n = 0;
+ for (r = d.length; n < r; n++) {
+ j = d[n];
+ a.currentTarget = j.elem;
+ a.data = j.handleObj.data;
+ a.handleObj = j.handleObj;
+ if (j.handleObj.origHandler.apply(j.elem, e) === false) {
+ b = false;
+ break
+ }
+ }
+ return b
+ }
+ }
+
+ function pa(a, b) {
+ return"live." + (a && a !== "*" ? a + "." : "") + b.replace(/\./g, "`").replace(/ /g,
+ "&")
+ }
+
+ function qa(a) {
+ return!a || !a.parentNode || a.parentNode.nodeType === 11
+ }
+
+ function ra(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 j in f)for (var i in f[j])c.event.add(this, j, f[j][i], f[j][i].data)
+ }
+ }
+ })
+ }
+
+ function sa(a, b, d) {
+ var f, e, j;
+ b = b && b[0] ? b[0].ownerDocument || b[0] : s;
+ if (a.length === 1 && typeof a[0] === "string" && a[0].length < 512 && b === s && !ta.test(a[0]) && (c.support.checkClone || !ua.test(a[0]))) {
+ e =
+ true;
+ if (j = c.fragments[a[0]])if (j !== 1)f = j
+ }
+ if (!f) {
+ f = b.createDocumentFragment();
+ c.clean(a, b, f, d)
+ }
+ if (e)c.fragments[a[0]] = j ? f : 1;
+ return{fragment:f, cacheable:e}
+ }
+
+ function K(a, b) {
+ var d = {};
+ c.each(va.concat.apply([], va.slice(0, b)), function () {
+ d[this] = a
+ });
+ return d
+ }
+
+ function wa(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)
+ }, Ra = A.jQuery, Sa = A.$, s = A.document, T, Ta = /^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/, Ua = /^.[^:#\[\.,]*$/, Va = /\S/,
+ Wa = /^(\s|\u00A0)+|(\s|\u00A0)+$/g, Xa = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, P = navigator.userAgent, xa = false, Q = [], L, $ = Object.prototype.toString, aa = Object.prototype.hasOwnProperty, ba = Array.prototype.push, R = Array.prototype.slice, ya = 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 (a === "body" && !b) {
+ this.context = s;
+ this[0] = s.body;
+ this.selector = "body";
+ this.length = 1;
+ return this
+ }
+ if (typeof a === "string")if ((d = Ta.exec(a)) &&
+ (d[1] || !b))if (d[1]) {
+ f = b ? b.ownerDocument || b : s;
+ if (a = Xa.exec(a))if (c.isPlainObject(b)) {
+ a = [s.createElement(a[1])];
+ c.fn.attr.call(a, b, true)
+ } else a = [f.createElement(a[1])]; else {
+ a = sa([d[1]], [f]);
+ a = (a.cacheable ? a.fragment.cloneNode(true) : a.fragment).childNodes
+ }
+ return c.merge(this, a)
+ } else {
+ if (b = s.getElementById(d[2])) {
+ if (b.id !== d[2])return T.find(a);
+ this.length = 1;
+ this[0] = b
+ }
+ this.context = s;
+ this.selector = a;
+ return this
+ } else if (!b && /^\w+$/.test(a)) {
+ this.selector = a;
+ this.context = s;
+ a = s.getElementsByTagName(a);
+ return c.merge(this,
+ a)
+ } else return!b || b.jquery ? (b || T).find(a) : c(b).find(a); else if (c.isFunction(a))return T.ready(a);
+ if (a.selector !== w) {
+ this.selector = a.selector;
+ this.context = a.context
+ }
+ return c.makeArray(a, this)
+ }, selector:"", jquery:"1.4.2", length:0, size:function () {
+ return this.length
+ }, toArray:function () {
+ return R.call(this, 0)
+ }, get:function (a) {
+ return a == null ? this.toArray() : a < 0 ? this.slice(a)[0] : this[a]
+ }, pushStack:function (a, b, d) {
+ var f = c();
+ c.isArray(a) ? ba.apply(f, a) : c.merge(f, a);
+ f.prevObject = this;
+ f.context = this.context;
+ if (b ===
+ "find")f.selector = this.selector + (this.selector ? " " : "") + d; else if (b)f.selector = this.selector + "." + b + "(" + d + ")";
+ return f
+ }, each:function (a, b) {
+ return c.each(this, a, b)
+ }, ready:function (a) {
+ c.bindReady();
+ if (c.isReady)a.call(s, c); else Q && Q.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(R.apply(this, arguments), "slice", R.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, j, i, o;
+ 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 (j in e) {
+ i = a[j];
+ o = e[j];
+ if (a !== o)if (f && o && (c.isPlainObject(o) || c.isArray(o))) {
+ i = i && (c.isPlainObject(i) ||
+ c.isArray(i)) ? i : c.isArray(o) ? [] : {};
+ a[j] = c.extend(f, i, o)
+ } else if (o !== w)a[j] = o
+ }
+ return a
+ };
+ c.extend({noConflict:function (a) {
+ A.$ = Sa;
+ if (a)A.jQuery = Ra;
+ return c
+ }, isReady:false, ready:function () {
+ if (!c.isReady) {
+ if (!s.body)return setTimeout(c.ready, 13);
+ c.isReady = true;
+ if (Q) {
+ for (var a, b = 0; a = Q[b++];)a.call(s, c);
+ Q = null
+ }
+ c.fn.triggerHandler && c(s).triggerHandler("ready")
+ }
+ }, bindReady:function () {
+ if (!xa) {
+ xa = true;
+ if (s.readyState === "complete")return c.ready();
+ if (s.addEventListener) {
+ s.addEventListener("DOMContentLoaded",
+ L, false);
+ A.addEventListener("load", c.ready, false)
+ } else if (s.attachEvent) {
+ s.attachEvent("onreadystatechange", L);
+ A.attachEvent("onload", c.ready);
+ var a = false;
+ try {
+ a = A.frameElement == null
+ } catch (b) {
+ }
+ s.documentElement.doScroll && a && ma()
+ }
+ }
+ }, 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 === w || 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;
+ a = c.trim(a);
+ 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 A.JSON && A.JSON.parse ? A.JSON.parse(a) : (new Function("return " +
+ a))(); else c.error("Invalid JSON: " + a)
+ }, noop:function () {
+ }, globalEval:function (a) {
+ if (a && Va.test(a)) {
+ var b = s.getElementsByTagName("head")[0] || s.documentElement, d = s.createElement("script");
+ d.type = "text/javascript";
+ if (c.support.scriptEval)d.appendChild(s.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, j = a.length, i = j === w || c.isFunction(a);
+ if (d)if (i)for (f in a) {
+ if (b.apply(a[f],
+ d) === false)break
+ } else for (; e < j;) {
+ if (b.apply(a[e++], d) === false)break
+ } else if (i)for (f in a) {
+ if (b.call(a[f], f, a[f]) === false)break
+ } else for (d = a[0]; e < j && b.call(d, e, d) !== false; d = a[++e]);
+ return a
+ }, trim:function (a) {
+ return(a || "").replace(Wa, "")
+ }, 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] !== w;)a[d++] = b[f++];
+ a.length = d;
+ return a
+ }, grep:function (a, b, d) {
+ for (var f = [], e = 0, j = a.length; e < j; e++)!d !== !b(a[e], e) && f.push(a[e]);
+ return f
+ }, map:function (a, b, d) {
+ for (var f = [], e, j = 0, i = a.length; j < i; j++) {
+ e = b(a[j], j, 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 = w
+ } else if (b &&
+ !c.isFunction(b)) {
+ d = b;
+ b = w
+ }
+ 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:{}});
+ P = c.uaMatch(P);
+ if (P.browser) {
+ c.browser[P.browser] = true;
+ c.browser.version = P.version
+ }
+ if (c.browser.webkit)c.browser.safari =
+ true;
+ if (ya)c.inArray = function (a, b) {
+ return ya.call(b, a)
+ };
+ T = c(s);
+ if (s.addEventListener)L = function () {
+ s.removeEventListener("DOMContentLoaded", L, false);
+ c.ready()
+ }; else if (s.attachEvent)L = function () {
+ if (s.readyState === "complete") {
+ s.detachEvent("onreadystatechange", L);
+ c.ready()
+ }
+ };
+ (function () {
+ c.support = {};
+ var a = s.documentElement, b = s.createElement("script"), d = s.createElement("div"), f = "script" + J();
+ d.style.display = "none";
+ d.innerHTML = " a ";
+ var e = d.getElementsByTagName("*"), j = d.getElementsByTagName("a")[0];
+ if (!(!e || !e.length || !j)) {
+ c.support = {leadingWhitespace:d.firstChild.nodeType === 3, tbody:!d.getElementsByTagName("tbody").length, htmlSerialize:!!d.getElementsByTagName("link").length, style:/red/.test(j.getAttribute("style")), hrefNormalized:j.getAttribute("href") === "/a", opacity:/^0.55$/.test(j.style.opacity), cssFloat:!!j.style.cssFloat, checkOn:d.getElementsByTagName("input")[0].value === "on", optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
+ parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode === null, deleteExpando:true, checkClone:false, scriptEval:false, noCloneEvent:true, boxModel:null};
+ b.type = "text/javascript";
+ try {
+ b.appendChild(s.createTextNode("window." + f + "=1;"))
+ } catch (i) {
+ }
+ a.insertBefore(b, a.firstChild);
+ if (A[f]) {
+ c.support.scriptEval = true;
+ delete A[f]
+ }
+ try {
+ delete b.test
+ } catch (o) {
+ c.support.deleteExpando = false
+ }
+ a.removeChild(b);
+ if (d.attachEvent && d.fireEvent) {
+ d.attachEvent("onclick", function k() {
+ c.support.noCloneEvent =
+ false;
+ d.detachEvent("onclick", k)
+ });
+ d.cloneNode(true).fireEvent("onclick")
+ }
+ d = s.createElement("div");
+ d.innerHTML = " ";
+ a = s.createDocumentFragment();
+ a.appendChild(d.firstChild);
+ c.support.checkClone = a.cloneNode(true).cloneNode(true).lastChild.checked;
+ c(function () {
+ var k = s.createElement("div");
+ k.style.width = k.style.paddingLeft = "1px";
+ s.body.appendChild(k);
+ c.boxModel = c.support.boxModel = k.offsetWidth === 2;
+ s.body.removeChild(k).style.display = "none"
+ });
+ a = function (k) {
+ var n =
+ s.createElement("div");
+ k = "on" + k;
+ var r = k in n;
+ if (!r) {
+ n.setAttribute(k, "return;");
+ r = typeof n[k] === "function"
+ }
+ return r
+ };
+ c.support.submitBubbles = a("submit");
+ c.support.changeBubbles = a("change");
+ a = b = d = e = j = 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(), Ya = 0, za = {};
+ 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 == A ? za : a;
+ var f = a[G], e = c.cache;
+ if (!f && typeof b === "string" && d === w)return null;
+ f || (f = ++Ya);
+ if (typeof b === "object") {
+ a[G] = f;
+ e[f] = c.extend(true, {}, b)
+ } else if (!e[f]) {
+ a[G] = f;
+ e[f] = {}
+ }
+ a = e[f];
+ if (d !== w)a[b] = d;
+ return typeof b === "string" ? a[b] : a
+ }
+ }, removeData:function (a, b) {
+ if (!(a.nodeName && c.noData[a.nodeName.toLowerCase()])) {
+ a = a == A ? za : 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 {
+ if (c.support.deleteExpando)delete a[c.expando];
+ else a.removeAttribute && a.removeAttribute(c.expando);
+ 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 === w) {
+ var f = this.triggerHandler("getData" + d[1] + "!", [d[0]]);
+ if (f === w && this.length)f = c.data(this[0], a);
+ return f === w && 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 ===
+ w)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 Aa = /[\n\t]/g, ca = /\s+/, Za = /\r/g, $a = /href|src|style/, ab = /(button|input)/i, bb = /(button|input|object|select|textarea)/i,
+ cb = /^(a|area)$/i, Ba = /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 (n) {
+ var r = c(this);
+ r.addClass(a.call(this, n, r.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 j = " " + e.className + " ",
+ i = e.className, o = 0, k = b.length; o < k; o++)if (j.indexOf(" " + b[o] + " ") < 0)i += " " + b[o];
+ e.className = c.trim(i)
+ } else e.className = a
+ }
+ return this
+ }, removeClass:function (a) {
+ if (c.isFunction(a))return this.each(function (k) {
+ var n = c(this);
+ n.removeClass(a.call(this, k, n.attr("class")))
+ });
+ if (a && typeof a === "string" || a === w)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 j = (" " + e.className + " ").replace(Aa, " "), i = 0, o = b.length; i < o; i++)j = j.replace(" " + b[i] + " ",
+ " ");
+ e.className = c.trim(j)
+ } 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 j = c(this);
+ j.toggleClass(a.call(this, e, j.attr("class"), b), b)
+ });
+ return this.each(function () {
+ if (d === "string")for (var e, j = 0, i = c(this), o = b, k = a.split(ca); e = k[j++];) {
+ o = f ? o : !i.hasClass(e);
+ i[o ? "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(Aa, " ").indexOf(a) > -1)return true;
+ return false
+ }, val:function (a) {
+ if (a === w) {
+ 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 j = b ? d : 0;
+ for (d = b ? d + 1 : e.length; j < d; j++) {
+ var i =
+ e[j];
+ if (i.selected) {
+ a = c(i).val();
+ if (b)return a;
+ f.push(a)
+ }
+ }
+ return f
+ }
+ if (Ba.test(b.type) && !c.support.checkOn)return b.getAttribute("value") === null ? "on" : b.value;
+ return(b.value || "").replace(Za, "")
+ }
+ return w
+ }
+ var o = c.isFunction(a);
+ return this.each(function (k) {
+ var n = c(this), r = a;
+ if (this.nodeType === 1) {
+ if (o)r = a.call(this, k, n.val());
+ if (typeof r === "number")r += "";
+ if (c.isArray(r) && Ba.test(this.type))this.checked = c.inArray(n.val(), r) >= 0; else if (c.nodeName(this, "select")) {
+ var u = c.makeArray(r);
+ c("option", this).each(function () {
+ this.selected =
+ c.inArray(c(this).val(), u) >= 0
+ });
+ if (!u.length)this.selectedIndex = -1
+ } else this.value = r
+ }
+ })
+ }});
+ 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 w;
+ if (f && b in c.attrFn)return c(a)[b](d);
+ f = a.nodeType !== 1 || !c.isXMLDoc(a);
+ var e = d !== w;
+ b = f && c.props[b] || b;
+ if (a.nodeType === 1) {
+ var j = $a.test(b);
+ if (b in a && f && !j) {
+ if (e) {
+ b === "type" && ab.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 : bb.test(a.nodeName) || cb.test(a.nodeName) && a.href ? 0 : w;
+ 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 && j ? a.getAttribute(b, 2) : a.getAttribute(b);
+ return a === null ? w : a
+ }
+ return c.style(a, b, d)
+ }});
+ var O = /\.(.*)$/, db = 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 !== A && !a.frameElement)a = A;
+ var e, j;
+ if (d.handler) {
+ e = d;
+ d = e.handler
+ }
+ if (!d.guid)d.guid = c.guid++;
+ if (j = c.data(a)) {
+ var i = j.events = j.events || {}, o = j.handle;
+ if (!o)j.handle = o = function () {
+ return typeof c !== "undefined" && !c.event.triggered ? c.event.handle.apply(o.elem, arguments) : w
+ };
+ o.elem = a;
+ b = b.split(" ");
+ for (var k, n = 0, r; k = b[n++];) {
+ j = e ? c.extend({}, e) : {handler:d, data:f};
+ if (k.indexOf(".") > -1) {
+ r = k.split(".");
+ k = r.shift();
+ j.namespace = r.slice(0).sort().join(".")
+ } else {
+ r = [];
+ j.namespace = ""
+ }
+ j.type = k;
+ j.guid = d.guid;
+ var u = i[k], z = c.event.special[k] || {};
+ if (!u) {
+ u = i[k] = [];
+ if (!z.setup || z.setup.call(a, f, r, o) === false)if (a.addEventListener)a.addEventListener(k, o, false); else a.attachEvent && a.attachEvent("on" + k, o)
+ }
+ if (z.add) {
+ z.add.call(a, j);
+ if (!j.handler.guid)j.handler.guid = d.guid
+ }
+ u.push(j);
+ c.event.global[k] = true
+ }
+ a = null
+ }
+ }
+ }, global:{}, remove:function (a, b, d, f) {
+ if (!(a.nodeType === 3 || a.nodeType === 8)) {
+ var e, j = 0, i, o, k, n, r, u, z = c.data(a),
+ C = z && z.events;
+ if (z && C) {
+ if (b && b.type) {
+ d = b.handler;
+ b = b.type
+ }
+ if (!b || typeof b === "string" && b.charAt(0) === ".") {
+ b = b || "";
+ for (e in C)c.event.remove(a, e + b)
+ } else {
+ for (b = b.split(" "); e = b[j++];) {
+ n = e;
+ i = e.indexOf(".") < 0;
+ o = [];
+ if (!i) {
+ o = e.split(".");
+ e = o.shift();
+ k = new RegExp("(^|\\.)" + c.map(o.slice(0).sort(), db).join("\\.(?:.*\\.)?") + "(\\.|$)")
+ }
+ if (r = C[e])if (d) {
+ n = c.event.special[e] || {};
+ for (B = f || 0; B < r.length; B++) {
+ u = r[B];
+ if (d.guid === u.guid) {
+ if (i || k.test(u.namespace)) {
+ f == null && r.splice(B--, 1);
+ n.remove && n.remove.call(a, u)
+ }
+ if (f !=
+ null)break
+ }
+ }
+ if (r.length === 0 || f != null && r.length === 1) {
+ if (!n.teardown || n.teardown.call(a, o) === false)Ca(a, e, z.handle);
+ delete C[e]
+ }
+ } else for (var B = 0; B < r.length; B++) {
+ u = r[B];
+ if (i || k.test(u.namespace)) {
+ c.event.remove(a, n, u.handler, B);
+ r.splice(B--, 1)
+ }
+ }
+ }
+ if (c.isEmptyObject(C)) {
+ if (b = z.handle)b.elem = null;
+ delete z.events;
+ delete z.handle;
+ c.isEmptyObject(z) && c.removeData(a)
+ }
+ }
+ }
+ }
+ }, 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();
+ c.event.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 w;
+ a.result = w;
+ 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 (j) {
+ }
+ if (!a.isPropagationStopped() &&
+ f)c.event.trigger(a, b, f, true); else if (!a.isDefaultPrevented()) {
+ f = a.target;
+ var i, o = c.nodeName(f, "a") && e === "click", k = c.event.special[e] || {};
+ if ((!k._default || k._default.call(d, a) === false) && !o && !(f && f.nodeName && c.noData[f.nodeName.toLowerCase()])) {
+ try {
+ if (f[e]) {
+ if (i = f["on" + e])f["on" + e] = null;
+ c.event.triggered = true;
+ f[e]()
+ }
+ } catch (n) {
+ }
+ if (i)f["on" + e] = i;
+ c.event.triggered = false
+ }
+ }
+ }, handle:function (a) {
+ var b, d, f, e;
+ a = arguments[0] = c.event.fix(a || A.event);
+ a.currentTarget = this;
+ b = a.type.indexOf(".") < 0 && !a.exclusive;
+ if (!b) {
+ d = a.type.split(".");
+ a.type = d.shift();
+ f = new RegExp("(^|\\.)" + d.slice(0).sort().join("\\.(?:.*\\.)?") + "(\\.|$)")
+ }
+ e = c.data(this, "events");
+ d = e[a.type];
+ if (e && d) {
+ d = d.slice(0);
+ e = 0;
+ for (var j = d.length; e < j; e++) {
+ var i = d[e];
+ if (b || f.test(i.namespace)) {
+ a.handler = i.handler;
+ a.data = i.data;
+ a.handleObj = i;
+ i = i.handler.apply(this, arguments);
+ if (i !== w) {
+ 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 || s;
+ 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 = s.documentElement;
+ d = s.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 !== w)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) {
+ c.event.add(this, a.origType, c.extend({}, a, {handler:oa}))
+ }, remove:function (a) {
+ var b = true, d = a.origType.replace(O, "");
+ c.each(c.data(this,
+ "events").live || [], function () {
+ if (d === this.origType.replace(O, ""))return b = false
+ });
+ b && c.event.remove(this, a.origType, oa)
+ }}, 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
+ }}}};
+ var Ca = s.removeEventListener ? function (a, b, d) {
+ a.removeEventListener(b, d, false)
+ } : function (a, b, d) {
+ a.detachEvent("on" + b, d)
+ };
+ 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 Da = function (a) {
+ var b = a.relatedTarget;
+ try {
+ for (; b && b !== this;)b = b.parentNode;
+ if (b !== this) {
+ a.type = a.data;
+ c.event.handle.apply(this, arguments)
+ }
+ } catch (d) {
+ }
+ }, Ea = 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 ? Ea : Da, a)
+ }, teardown:function (d) {
+ c.event.remove(this, b, d && d.selector ? Ea : Da)
+ }}
+ });
+ if (!c.support.submitBubbles)c.event.special.submit =
+ {setup:function () {
+ if (this.nodeName.toLowerCase() !== "form") {
+ c.event.add(this, "click.specialSubmit", function (a) {
+ var b = a.target, d = b.type;
+ if ((d === "submit" || d === "image") && c(b).closest("form").length)return na("submit", this, arguments)
+ });
+ c.event.add(this, "keypress.specialSubmit", function (a) {
+ var b = a.target, d = b.type;
+ if ((d === "text" || d === "password") && c(b).closest("form").length && a.keyCode === 13)return na("submit", this, arguments)
+ })
+ } else return false
+ }, teardown:function () {
+ c.event.remove(this, ".specialSubmit")
+ }};
+ if (!c.support.changeBubbles) {
+ var da = /textarea|input|select/i, ea, Fa = function (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
+ }, fa = function (a, b) {
+ var d = a.target, f, e;
+ if (!(!da.test(d.nodeName) || d.readOnly)) {
+ f = c.data(d, "_change_data");
+ e = Fa(d);
+ if (a.type !== "focusout" || d.type !== "radio")c.data(d, "_change_data",
+ e);
+ if (!(f === w || e === f))if (f != null || e) {
+ a.type = "change";
+ return c.event.trigger(a, b, d)
+ }
+ }
+ };
+ c.event.special.change = {filters:{focusout:fa, click:function (a) {
+ var b = a.target, d = b.type;
+ if (d === "radio" || d === "checkbox" || b.nodeName.toLowerCase() === "select")return fa.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 fa.call(this, a)
+ }, beforeactivate:function (a) {
+ a = a.target;
+ c.data(a,
+ "_change_data", Fa(a))
+ }}, setup:function () {
+ if (this.type === "file")return false;
+ for (var a in ea)c.event.add(this, a + ".specialChange", ea[a]);
+ return da.test(this.nodeName)
+ }, teardown:function () {
+ c.event.remove(this, ".specialChange");
+ return da.test(this.nodeName)
+ }};
+ ea = c.event.special.change.filters
+ }
+ s.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 j in d)this[b](j, f, d[j], e);
+ return this
+ }
+ if (c.isFunction(f)) {
+ e = f;
+ f = w
+ }
+ var i = b === "one" ? c.proxy(e, function (k) {
+ c(this).unbind(k, i);
+ return e.apply(this, arguments)
+ }) : e;
+ if (d === "unload" && b !== "one")this.one(d, f, e); else {
+ j = 0;
+ for (var o = this.length; j < o; j++)c.event.add(this[j], d, i, f)
+ }
+ return this
+ }
+ });
+ c.fn.extend({unbind:function (a, b) {
+ if (typeof a === "object" &&
+ !a.preventDefault)for (var d in a)this.unbind(d, a[d]); else {
+ d = 0;
+ for (var f = this.length; d < f; d++)c.event.remove(this[d], a, b)
+ }
+ return this
+ }, delegate:function (a, b, d, f) {
+ return this.live(b, d, f, a)
+ }, undelegate:function (a, b, d) {
+ return arguments.length === 0 ? this.unbind("live") : this.die(b, null, d, a)
+ }, 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)
+ }});
+ var Ga = {focus:"focusin", blur:"focusout", mouseenter:"mouseover", mouseleave:"mouseout"};
+ c.each(["live", "die"], function (a, b) {
+ c.fn[b] = function (d, f, e, j) {
+ var i, o = 0, k, n, r = j || this.selector,
+ u = j ? this : c(this.context);
+ if (c.isFunction(f)) {
+ e = f;
+ f = w
+ }
+ for (d = (d || "").split(" "); (i = d[o++]) != null;) {
+ j = O.exec(i);
+ k = "";
+ if (j) {
+ k = j[0];
+ i = i.replace(O, "")
+ }
+ if (i === "hover")d.push("mouseenter" + k, "mouseleave" + k); else {
+ n = i;
+ if (i === "focus" || i === "blur") {
+ d.push(Ga[i] + k);
+ i += k
+ } else i = (Ga[i] || i) + k;
+ b === "live" ? u.each(function () {
+ c.event.add(this, pa(i, r), {data:f, selector:r, handler:e, origType:i, origHandler:e, preType:n})
+ }) : u.unbind(pa(i, r), e)
+ }
+ }
+ 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
+ });
+ A.attachEvent && !A.addEventListener && A.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 = "", l, m = 0; g[m]; m++) {
+ l = g[m];
+ if (l.nodeType === 3 || l.nodeType === 4)h += l.nodeValue; else if (l.nodeType !== 8)h += a(l.childNodes)
+ }
+ return h
+ }
+
+ function b(g, h, l, m, q, p) {
+ q = 0;
+ for (var v = m.length; q < v; q++) {
+ var t = m[q];
+ if (t) {
+ t = t[g];
+ for (var y = false; t;) {
+ if (t.sizcache === l) {
+ y = m[t.sizset];
+ break
+ }
+ if (t.nodeType === 1 && !p) {
+ t.sizcache = l;
+ t.sizset = q
+ }
+ if (t.nodeName.toLowerCase() === h) {
+ y = t;
+ break
+ }
+ t = t[g]
+ }
+ m[q] = y
+ }
+ }
+ }
+
+ function d(g, h, l, m, q, p) {
+ q = 0;
+ for (var v = m.length; q < v; q++) {
+ var t = m[q];
+ if (t) {
+ t = t[g];
+ for (var y = false; t;) {
+ if (t.sizcache === l) {
+ y = m[t.sizset];
+ break
+ }
+ if (t.nodeType === 1) {
+ if (!p) {
+ t.sizcache = l;
+ t.sizset = q
+ }
+ if (typeof h !== "string") {
+ if (t === h) {
+ y = true;
+ break
+ }
+ } else if (k.filter(h, [t]).length > 0) {
+ y = t;
+ break
+ }
+ }
+ t = t[g]
+ }
+ m[q] = y
+ }
+ }
+ }
+
+ var f = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
+ e = 0, j = Object.prototype.toString, i = false, o = true;
+ [0, 0].sort(function () {
+ o = false;
+ return 0
+ });
+ var k = function (g, h, l, m) {
+ l = l || [];
+ var q = h = h || s;
+ if (h.nodeType !== 1 && h.nodeType !== 9)return[];
+ if (!g || typeof g !== "string")return l;
+ for (var p = [], v, t, y, S, H = true, M = x(h), I = g; (f.exec(""), v = f.exec(I)) !== null;) {
+ I = v[3];
+ p.push(v[1]);
+ if (v[2]) {
+ S = v[3];
+ break
+ }
+ }
+ if (p.length > 1 && r.exec(g))if (p.length === 2 && n.relative[p[0]])t = ga(p[0] + p[1], h); else for (t = n.relative[p[0]] ? [h] : k(p.shift(), h); p.length;) {
+ g = p.shift();
+ if (n.relative[g])g += p.shift();
+ t = ga(g, t)
+ } else {
+ if (!m && p.length > 1 && h.nodeType === 9 && !M && n.match.ID.test(p[0]) && !n.match.ID.test(p[p.length - 1])) {
+ v = k.find(p.shift(), h, M);
+ h = v.expr ? k.filter(v.expr, v.set)[0] : v.set[0]
+ }
+ if (h) {
+ v = m ? {expr:p.pop(), set:z(m)} : k.find(p.pop(), p.length === 1 && (p[0] === "~" || p[0] === "+") && h.parentNode ? h.parentNode : h, M);
+ t = v.expr ? k.filter(v.expr, v.set) : v.set;
+ if (p.length > 0)y = z(t); else H = false;
+ for (; p.length;) {
+ var D = p.pop();
+ v = D;
+ if (n.relative[D])v = p.pop(); else D = "";
+ if (v == null)v = h;
+ n.relative[D](y, v, M)
+ }
+ } else y = []
+ }
+ y || (y = t);
+ y || k.error(D ||
+ g);
+ if (j.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])))l.push(t[g])
+ } else for (g = 0; y[g] != null; g++)y[g] && y[g].nodeType === 1 && l.push(t[g]); else l.push.apply(l, y); else z(y, l);
+ if (S) {
+ k(S, q, l, m);
+ k.uniqueSort(l)
+ }
+ return l
+ };
+ k.uniqueSort = function (g) {
+ if (B) {
+ i = o;
+ g.sort(B);
+ if (i)for (var h = 1; h < g.length; h++)g[h] === g[h - 1] && g.splice(h--, 1)
+ }
+ return g
+ };
+ k.matches = function (g, h) {
+ return k(g, null, null, h)
+ };
+ k.find = function (g, h, l) {
+ var m, q;
+ if (!g)return[];
+ for (var p = 0, v = n.order.length; p < v; p++) {
+ var t = n.order[p];
+ if (q = n.leftMatch[t].exec(g)) {
+ var y = q[1];
+ q.splice(1, 1);
+ if (y.substr(y.length - 1) !== "\\") {
+ q[1] = (q[1] || "").replace(/\\/g, "");
+ m = n.find[t](q, h, l);
+ if (m != null) {
+ g = g.replace(n.match[t], "");
+ break
+ }
+ }
+ }
+ }
+ m || (m = h.getElementsByTagName("*"));
+ return{set:m, expr:g}
+ };
+ k.filter = function (g, h, l, m) {
+ for (var q = g, p = [], v = h, t, y, S = h && h[0] && x(h[0]); g && h.length;) {
+ for (var H in n.filter)if ((t = n.leftMatch[H].exec(g)) != null && t[2]) {
+ var M = n.filter[H], I, D;
+ D = t[1];
+ y = false;
+ t.splice(1, 1);
+ if (D.substr(D.length -
+ 1) !== "\\") {
+ if (v === p)p = [];
+ if (n.preFilter[H])if (t = n.preFilter[H](t, v, l, p, m, S)) {
+ if (t === true)continue
+ } else y = I = true;
+ if (t)for (var U = 0; (D = v[U]) != null; U++)if (D) {
+ I = M(D, t, U, v);
+ var Ha = m ^ !!I;
+ if (l && I != null)if (Ha)y = true; else v[U] = false; else if (Ha) {
+ p.push(D);
+ y = true
+ }
+ }
+ if (I !== w) {
+ l || (v = p);
+ g = g.replace(n.match[H], "");
+ if (!y)return[];
+ break
+ }
+ }
+ }
+ if (g === q)if (y == null)k.error(g); else break;
+ q = g
+ }
+ return v
+ };
+ k.error = function (g) {
+ throw"Syntax error, unrecognized expression: " + g;
+ };
+ var n = k.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 l = typeof h === "string", m = l && !/\W/.test(h);
+ l = l && !m;
+ if (m)h = h.toLowerCase();
+ m = 0;
+ for (var q = g.length, p; m < q; m++)if (p = g[m]) {
+ for (; (p = p.previousSibling) && p.nodeType !== 1;);
+ g[m] = l || p && p.nodeName.toLowerCase() === h ? p || false : p === h
+ }
+ l && k.filter(h, g, true)
+ }, ">":function (g, h) {
+ var l = typeof h === "string";
+ if (l && !/\W/.test(h)) {
+ h = h.toLowerCase();
+ for (var m = 0, q = g.length; m < q; m++) {
+ var p = g[m];
+ if (p) {
+ l = p.parentNode;
+ g[m] = l.nodeName.toLowerCase() === h ? l : false
+ }
+ }
+ } else {
+ m = 0;
+ for (q = g.length; m < q; m++)if (p = g[m])g[m] =
+ l ? p.parentNode : p.parentNode === h;
+ l && k.filter(h, g, true)
+ }
+ }, "":function (g, h, l) {
+ var m = e++, q = d;
+ if (typeof h === "string" && !/\W/.test(h)) {
+ var p = h = h.toLowerCase();
+ q = b
+ }
+ q("parentNode", h, m, g, p, l)
+ }, "~":function (g, h, l) {
+ var m = e++, q = d;
+ if (typeof h === "string" && !/\W/.test(h)) {
+ var p = h = h.toLowerCase();
+ q = b
+ }
+ q("previousSibling", h, m, g, p, l)
+ }}, find:{ID:function (g, h, l) {
+ if (typeof h.getElementById !== "undefined" && !l)return(g = h.getElementById(g[1])) ? [g] : []
+ }, NAME:function (g, h) {
+ if (typeof h.getElementsByName !== "undefined") {
+ var l = [];
+ h = h.getElementsByName(g[1]);
+ for (var m = 0, q = h.length; m < q; m++)h[m].getAttribute("name") === g[1] && l.push(h[m]);
+ return l.length === 0 ? null : l
+ }
+ }, TAG:function (g, h) {
+ return h.getElementsByTagName(g[1])
+ }}, preFilter:{CLASS:function (g, h, l, m, q, p) {
+ g = " " + g[1].replace(/\\/g, "") + " ";
+ if (p)return g;
+ p = 0;
+ for (var v; (v = h[p]) != null; p++)if (v)if (q ^ (v.className && (" " + v.className + " ").replace(/[\t\n]/g, " ").indexOf(g) >= 0))l || m.push(v); else if (l)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, l, m, q, p) {
+ h = g[1].replace(/\\/g, "");
+ if (!p && n.attrMap[h])g[1] = n.attrMap[h];
+ if (g[2] === "~=")g[4] = " " + g[4] + " ";
+ return g
+ }, PSEUDO:function (g, h, l, m, q) {
+ if (g[1] === "not")if ((f.exec(g[3]) || "").length > 1 || /^\w/.test(g[3]))g[3] = k(g[3], null, null, h); else {
+ g = k.filter(g[3], h, l, true ^ q);
+ l || m.push.apply(m,
+ g);
+ return false
+ } else if (n.match.POS.test(g[0]) || n.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, l) {
+ return!!k(l[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, l, m) {
+ return h === m.length - 1
+ }, even:function (g, h) {
+ return h % 2 === 0
+ }, odd:function (g, h) {
+ return h % 2 === 1
+ }, lt:function (g, h, l) {
+ return h < l[3] - 0
+ }, gt:function (g, h, l) {
+ return h > l[3] - 0
+ }, nth:function (g, h, l) {
+ return l[3] - 0 === h
+ }, eq:function (g, h, l) {
+ return l[3] - 0 === h
+ }}, filter:{PSEUDO:function (g, h, l, m) {
+ var q = h[1], p = n.filters[q];
+ if (p)return p(g, l, h, m); else if (q === "contains")return(g.textContent || g.innerText || a([g]) || "").indexOf(h[3]) >= 0; else if (q === "not") {
+ h =
+ h[3];
+ l = 0;
+ for (m = h.length; l < m; l++)if (h[l] === g)return false;
+ return true
+ } else k.error("Syntax error, unrecognized expression: " + q)
+ }, CHILD:function (g, h) {
+ var l = h[1], m = g;
+ switch (l) {
+ case "only":
+ case "first":
+ for (; m = m.previousSibling;)if (m.nodeType === 1)return false;
+ if (l === "first")return true;
+ m = g;
+ case "last":
+ for (; m = m.nextSibling;)if (m.nodeType === 1)return false;
+ return true;
+ case "nth":
+ l = h[2];
+ var q = h[3];
+ if (l === 1 && q === 0)return true;
+ h = h[0];
+ var p = g.parentNode;
+ if (p && (p.sizcache !== h || !g.nodeIndex)) {
+ var v = 0;
+ for (m = p.firstChild; m; m =
+ m.nextSibling)if (m.nodeType === 1)m.nodeIndex = ++v;
+ p.sizcache = h
+ }
+ g = g.nodeIndex - q;
+ return l === 0 ? g === 0 : g % l === 0 && g / l >= 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 l = h[1];
+ g = n.attrHandle[l] ? n.attrHandle[l](g) : g[l] != null ? g[l] : g.getAttribute(l);
+ l = g + "";
+ var m = h[2];
+ h = h[4];
+ return g == null ? m === "!=" : m ===
+ "=" ? l === h : m === "*=" ? l.indexOf(h) >= 0 : m === "~=" ? (" " + l + " ").indexOf(h) >= 0 : !h ? l && g !== false : m === "!=" ? l !== h : m === "^=" ? l.indexOf(h) === 0 : m === "$=" ? l.substr(l.length - h.length) === h : m === "|=" ? l === h || l.substr(0, h.length + 1) === h + "-" : false
+ }, POS:function (g, h, l, m) {
+ var q = n.setFilters[h[2]];
+ if (q)return q(g, l, h, m)
+ }}}, r = n.match.POS;
+ for (var u in n.match) {
+ n.match[u] = new RegExp(n.match[u].source + /(?![^\[]*\])(?![^\(]*\))/.source);
+ n.leftMatch[u] = new RegExp(/(^(?:.|\r|\n)*?)/.source + n.match[u].source.replace(/\\(\d+)/g, function (g, h) {
+ return"\\" + (h - 0 + 1)
+ }))
+ }
+ var z = 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(s.documentElement.childNodes, 0)
+ } catch (C) {
+ z = function (g, h) {
+ h = h || [];
+ if (j.call(g) === "[object Array]")Array.prototype.push.apply(h, g); else if (typeof g.length === "number")for (var l = 0, m = g.length; l < m; l++)h.push(g[l]); else for (l = 0; g[l]; l++)h.push(g[l]);
+ return h
+ }
+ }
+ var B;
+ if (s.documentElement.compareDocumentPosition)B = function (g, h) {
+ if (!g.compareDocumentPosition ||
+ !h.compareDocumentPosition) {
+ if (g == h)i = true;
+ return g.compareDocumentPosition ? -1 : 1
+ }
+ g = g.compareDocumentPosition(h) & 4 ? -1 : g === h ? 0 : 1;
+ if (g === 0)i = true;
+ return g
+ }; else if ("sourceIndex"in s.documentElement)B = function (g, h) {
+ if (!g.sourceIndex || !h.sourceIndex) {
+ if (g == h)i = true;
+ return g.sourceIndex ? -1 : 1
+ }
+ g = g.sourceIndex - h.sourceIndex;
+ if (g === 0)i = true;
+ return g
+ }; else if (s.createRange)B = function (g, h) {
+ if (!g.ownerDocument || !h.ownerDocument) {
+ if (g == h)i = true;
+ return g.ownerDocument ? -1 : 1
+ }
+ var l = g.ownerDocument.createRange(), m =
+ h.ownerDocument.createRange();
+ l.setStart(g, 0);
+ l.setEnd(g, 0);
+ m.setStart(h, 0);
+ m.setEnd(h, 0);
+ g = l.compareBoundaryPoints(Range.START_TO_END, m);
+ if (g === 0)i = true;
+ return g
+ };
+ (function () {
+ var g = s.createElement("div"), h = "script" + (new Date).getTime();
+ g.innerHTML = " ";
+ var l = s.documentElement;
+ l.insertBefore(g, l.firstChild);
+ if (s.getElementById(h)) {
+ n.find.ID = function (m, q, p) {
+ if (typeof q.getElementById !== "undefined" && !p)return(q = q.getElementById(m[1])) ? q.id === m[1] || typeof q.getAttributeNode !== "undefined" &&
+ q.getAttributeNode("id").nodeValue === m[1] ? [q] : w : []
+ };
+ n.filter.ID = function (m, q) {
+ var p = typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id");
+ return m.nodeType === 1 && p && p.nodeValue === q
+ }
+ }
+ l.removeChild(g);
+ l = g = null
+ })();
+ (function () {
+ var g = s.createElement("div");
+ g.appendChild(s.createComment(""));
+ if (g.getElementsByTagName("*").length > 0)n.find.TAG = function (h, l) {
+ l = l.getElementsByTagName(h[1]);
+ if (h[1] === "*") {
+ h = [];
+ for (var m = 0; l[m]; m++)l[m].nodeType === 1 && h.push(l[m]);
+ l = h
+ }
+ return l
+ };
+ g.innerHTML = " ";
+ if (g.firstChild && typeof g.firstChild.getAttribute !== "undefined" && g.firstChild.getAttribute("href") !== "#")n.attrHandle.href = function (h) {
+ return h.getAttribute("href", 2)
+ };
+ g = null
+ })();
+ s.querySelectorAll && function () {
+ var g = k, h = s.createElement("div");
+ h.innerHTML = "
";
+ if (!(h.querySelectorAll && h.querySelectorAll(".TEST").length === 0)) {
+ k = function (m, q, p, v) {
+ q = q || s;
+ if (!v && q.nodeType === 9 && !x(q))try {
+ return z(q.querySelectorAll(m), p)
+ } catch (t) {
+ }
+ return g(m, q, p, v)
+ };
+ for (var l in g)k[l] = g[l];
+ h = null
+ }
+ }();
+ (function () {
+ var g = s.createElement("div");
+ g.innerHTML = "
";
+ if (!(!g.getElementsByClassName || g.getElementsByClassName("e").length === 0)) {
+ g.lastChild.className = "e";
+ if (g.getElementsByClassName("e").length !== 1) {
+ n.order.splice(1, 0, "CLASS");
+ n.find.CLASS = function (h, l, m) {
+ if (typeof l.getElementsByClassName !== "undefined" && !m)return l.getElementsByClassName(h[1])
+ };
+ g = null
+ }
+ }
+ })();
+ var E = s.compareDocumentPosition ? function (g, h) {
+ return!!(g.compareDocumentPosition(h) & 16)
+ } :
+ function (g, h) {
+ return g !== h && (g.contains ? g.contains(h) : true)
+ }, x = function (g) {
+ return(g = (g ? g.ownerDocument || g : 0).documentElement) ? g.nodeName !== "HTML" : false
+ }, ga = function (g, h) {
+ var l = [], m = "", q;
+ for (h = h.nodeType ? [h] : h; q = n.match.PSEUDO.exec(g);) {
+ m += q[0];
+ g = g.replace(n.match.PSEUDO, "")
+ }
+ g = n.relative[g] ? g + "*" : g;
+ q = 0;
+ for (var p = h.length; q < p; q++)k(g, h[q], l);
+ return k.filter(m, l)
+ };
+ c.find = k;
+ c.expr = k.selectors;
+ c.expr[":"] = c.expr.filters;
+ c.unique = k.uniqueSort;
+ c.text = a;
+ c.isXMLDoc = x;
+ c.contains = E
+ })();
+ var eb = /Until$/, fb = /^(?:parents|prevUntil|prevAll)/,
+ gb = /,/;
+ R = Array.prototype.slice;
+ var Ia = function (a, b, d) {
+ if (c.isFunction(b))return c.grep(a, function (e, j) {
+ return!!b.call(e, j, 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 (Ua.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 j = d; j < b.length; j++)for (var i = 0; i < d; i++)if (b[i] === b[j]) {
+ b.splice(j--, 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(Ia(this, a, false), "not", a)
+ }, filter:function (a) {
+ return this.pushStack(Ia(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, j =
+ {}, i;
+ if (f && a.length) {
+ e = 0;
+ for (var o = a.length; e < o; e++) {
+ i = a[e];
+ j[i] || (j[i] = c.expr.match.POS.test(i) ? c(i, b || this.context) : i)
+ }
+ for (; f && f.ownerDocument && f !== b;) {
+ for (i in j) {
+ e = j[i];
+ if (e.jquery ? e.index(f) > -1 : c(f).is(e)) {
+ d.push({selector:i, elem:f});
+ delete j[i]
+ }
+ }
+ f = f.parentNode
+ }
+ }
+ return d
+ }
+ var k = c.expr.match.POS.test(a) ? c(a, b || this.context) : null;
+ return this.map(function (n, r) {
+ for (; r && r.ownerDocument && r !== b;) {
+ if (k ? k.index(r) > -1 : c(r).is(a))return r;
+ r = r.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(qa(a[0]) || qa(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);
+ eb.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 || gb.test(f)) && fb.test(a))e = e.reverse();
+ return this.pushStack(e, a, R.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 === w || 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 Ja = / jQuery\d+="(?:\d+|null)"/g, V = /^\s+/, Ka = /(<([\w:]+)[^>]*?)\/>/g, hb = /^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i, La = /<([\w:]+)/, ib = /" + d + ">"
+ }, F = {option:[1, "", " "], legend:[1, "", " "], thead:[1, ""], tr:[2, ""], td:[3, ""], col:[2, ""], area:[1, "", " "], _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", "
"];
+ 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 !== w)return this.empty().append((this[0] && this[0].ownerDocument || s).createTextNode(a));
+ return c.text(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
+ }
+ }, remove:function (a, b) {
+ for (var d = 0, f; (f = this[d]) != null; d++)if (!a || c.filter(a, [f]).length) {
+ if (!b && f.nodeType === 1) {
+ c.cleanData(f.getElementsByTagName("*"));
+ c.cleanData([f])
+ }
+ f.parentNode && f.parentNode.removeChild(f)
+ }
+ return this
+ }, empty:function () {
+ for (var a = 0, b; (b = this[a]) != null; a++)for (b.nodeType === 1 && c.cleanData(b.getElementsByTagName("*")); b.firstChild;)b.removeChild(b.firstChild);
+ return this
+ }, 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(Ja, "").replace(/=([^="'>\s]+\/)>/g, '="$1">').replace(V, "")], f)[0]
+ } else return this.cloneNode(true)
+ });
+ if (a === true) {
+ ra(this, b);
+ ra(this.find("*"), b.find("*"))
+ }
+ return b
+ }, html:function (a) {
+ if (a === w)return this[0] && this[0].nodeType === 1 ? this[0].innerHTML.replace(Ja,
+ "") : null; else if (typeof a === "string" && !ta.test(a) && (c.support.leadingWhitespace || !V.test(a)) && !F[(La.exec(a) || ["", ""])[1].toLowerCase()]) {
+ a = a.replace(Ka, Ma);
+ 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 j = c(this), i = j.html();
+ j.empty().append(function () {
+ return a.call(this, e, i)
+ })
+ }) : 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))
+ });
+ if (typeof a !== "string")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(u) {
+ return c.nodeName(u, "table") ? u.getElementsByTagName("tbody")[0] ||
+ u.appendChild(u.ownerDocument.createElement("tbody")) : u
+ }
+
+ var e, j, i = a[0], o = [], k;
+ if (!c.support.checkClone && arguments.length === 3 && typeof i === "string" && ua.test(i))return this.each(function () {
+ c(this).domManip(a, b, d, true)
+ });
+ if (c.isFunction(i))return this.each(function (u) {
+ var z = c(this);
+ a[0] = i.call(this, u, b ? z.html() : w);
+ z.domManip(a, b, d)
+ });
+ if (this[0]) {
+ e = i && i.parentNode;
+ e = c.support.parentNode && e && e.nodeType === 11 && e.childNodes.length === this.length ? {fragment:e} : sa(a, this, o);
+ k = e.fragment;
+ if (j = k.childNodes.length ===
+ 1 ? (k = k.firstChild) : k.firstChild) {
+ b = b && c.nodeName(j, "tr");
+ for (var n = 0, r = this.length; n < r; n++)d.call(b ? f(this[n], j) : this[n], n > 0 || e.cacheable || this.length > 1 ? k.cloneNode(true) : k)
+ }
+ o.length && c.each(o, Qa)
+ }
+ 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);
+ var e = this.length === 1 && this[0].parentNode;
+ if (e && e.nodeType === 11 && e.childNodes.length === 1 && d.length === 1) {
+ d[b](this[0]);
+ return this
+ } else {
+ e = 0;
+ for (var j = d.length; e < j; e++) {
+ var i = (e > 0 ? this.clone(true) : this).get();
+ c.fn[b].apply(c(d[e]), i);
+ f = f.concat(i)
+ }
+ return this.pushStack(f, a, d.selector)
+ }
+ }
+ });
+ c.extend({clean:function (a, b, d, f) {
+ b = b || s;
+ if (typeof b.createElement === "undefined")b = b.ownerDocument || b[0] && b[0].ownerDocument || s;
+ for (var e = [], j = 0, i; (i = a[j]) != null; j++) {
+ if (typeof i === "number")i += "";
+ if (i) {
+ if (typeof i === "string" && !jb.test(i))i = b.createTextNode(i); else if (typeof i === "string") {
+ i = i.replace(Ka, Ma);
+ var o = (La.exec(i) || ["",
+ ""])[1].toLowerCase(), k = F[o] || F._default, n = k[0], r = b.createElement("div");
+ for (r.innerHTML = k[1] + i + k[2]; n--;)r = r.lastChild;
+ if (!c.support.tbody) {
+ n = ib.test(i);
+ o = o === "table" && !n ? r.firstChild && r.firstChild.childNodes : k[1] === "" && !n ? r.childNodes : [];
+ for (k = o.length - 1; k >= 0; --k)c.nodeName(o[k], "tbody") && !o[k].childNodes.length && o[k].parentNode.removeChild(o[k])
+ }
+ !c.support.leadingWhitespace && V.test(i) && r.insertBefore(b.createTextNode(V.exec(i)[0]), r.firstChild);
+ i = r.childNodes
+ }
+ if (i.nodeType)e.push(i); else e =
+ c.merge(e, i)
+ }
+ }
+ if (d)for (j = 0; e[j]; j++)if (f && c.nodeName(e[j], "script") && (!e[j].type || e[j].type.toLowerCase() === "text/javascript"))f.push(e[j].parentNode ? e[j].parentNode.removeChild(e[j]) : e[j]); else {
+ e[j].nodeType === 1 && e.splice.apply(e, [j + 1, 0].concat(c.makeArray(e[j].getElementsByTagName("script"))));
+ d.appendChild(e[j])
+ }
+ return e
+ }, cleanData:function (a) {
+ for (var b, d, f = c.cache, e = c.event.special, j = c.support.deleteExpando, i = 0, o; (o = a[i]) != null; i++)if (d = o[c.expando]) {
+ b = f[d];
+ if (b.events)for (var k in b.events)e[k] ?
+ c.event.remove(o, k) : Ca(o, k, b.handle);
+ if (j)delete o[c.expando]; else o.removeAttribute && o.removeAttribute(c.expando);
+ delete f[d]
+ }
+ }});
+ var kb = /z-?index|font-?weight|opacity|zoom|line-?height/i, Na = /alpha\([^)]*\)/, Oa = /opacity=([^)]*)/, ha = /float/i, ia = /-([a-z])/ig, lb = /([A-Z])/g, mb = /^-?\d+(?:px)?$/i, nb = /^-?\d/, ob = {position:"absolute", visibility:"hidden", display:"block"}, pb = ["Left", "Right"], qb = ["Top", "Bottom"], rb = s.defaultView && s.defaultView.getComputedStyle, Pa = c.support.cssFloat ? "cssFloat" : "styleFloat", ja =
+ function (a, b) {
+ return b.toUpperCase()
+ };
+ c.fn.css = function (a, b) {
+ return X(this, a, b, true, function (d, f, e) {
+ if (e === w)return c.curCSS(d, f);
+ if (typeof e === "number" && !kb.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 w;
+ if ((b === "width" || b === "height") && parseFloat(d) < 0)d = w;
+ var f = a.style || a, e = d !== w;
+ 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 =
+ Na.test(a) ? a.replace(Na, b) : b
+ }
+ return f.filter && f.filter.indexOf("opacity=") >= 0 ? parseFloat(Oa.exec(f.filter)[1]) / 100 + "" : ""
+ }
+ if (ha.test(b))b = Pa;
+ b = b.replace(ia, ja);
+ if (e)f[b] = d;
+ return f[b]
+ }, css:function (a, b, d, f) {
+ if (b === "width" || b === "height") {
+ var e, j = b === "width" ? pb : qb;
+
+ function i() {
+ e = b === "width" ? a.offsetWidth : a.offsetHeight;
+ f !== "border" && c.each(j, 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 ? i() : c.swap(a, ob, i);
+ 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 = Oa.test(a.currentStyle.filter || "") ? parseFloat(RegExp.$1) / 100 + "" : "";
+ return f === "" ? "1" : f
+ }
+ if (ha.test(b))b = Pa;
+ if (!d && e && e[b])f = e[b]; else if (rb) {
+ if (ha.test(b))b = "float";
+ b = b.replace(lb, "-$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(ia, ja);
+ f = a.currentStyle[b] || a.currentStyle[d];
+ if (!mb.test(f) && nb.test(f)) {
+ b = e.left;
+ var j = 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 = j
+ }
+ }
+ 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 sb = J(), tb = /