Commit 62f1b3dc 62f1b3dc1d9971b3ec8e406e9784edab533c873f by tailor

从bitbucket迁移过来

0 parents
Showing 247 changed files with 11866 additions and 0 deletions
1 # See http://help.github.com/ignore-files/ for more about ignoring files.
2 #
3 # If you find yourself ignoring temporary files generated by your text editor
4 # or operating system, you probably want to add a global ignore instead:
5 # git config --global core.excludesfile ~/.gitignore_global
6
7 # Ignore bundler config
8 /.bundle
9
10 # Ignore the default SQLite database.
11 /db/*.sqlite3
12
13 # Ignore all logfiles and tempfiles.
14 /log
15 /tmp
16 /www
1 # Load DSL and set up stages
2 require 'capistrano/setup'
3
4 # Include default deployment tasks
5 require 'capistrano/deploy'
6
7 # Include tasks from other gems included in your Gemfile
8 #
9 # For documentation on these, see for example:
10 #
11 # https://github.com/capistrano/rvm
12 # https://github.com/capistrano/rbenv
13 # https://github.com/capistrano/chruby
14 # https://github.com/capistrano/bundler
15 # https://github.com/capistrano/rails
16 # https://github.com/capistrano/passenger
17 #
18 require 'capistrano/rvm'
19 # require 'capistrano/rbenv'
20 # require 'capistrano/chruby'
21 require 'capistrano/bundler'
22 # require 'capistrano/rails/assets'
23 # require 'capistrano/rails/migrations'
24 # require 'capistrano/passenger'
25
26 # Load custom tasks from `lib/capistrano/tasks` if you have any defined
27 Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
1 source 'https://rubygems.org'
2
3 gem 'rails', '3.2.15'
4
5 # Bundle edge Rails instead:
6 # gem 'rails', :git => 'git://github.com/rails/rails.git'
7
8 gem 'mysql2'
9 # 分页插件
10 gem "kaminari"
11 gem "awesome_print"
12 gem 'capistrano', '~> 3.4.0'
13 gem 'capistrano-bundler'
14 gem 'capistrano-rvm'
15 gem 'unicorn'
16
17
18 # Gems used only for assets and not required
19 # in production environments by default.
20 group :assets do
21 gem 'sass-rails', '~> 3.2.3'
22 gem 'coffee-rails', '~> 3.2.1'
23
24 # See https://github.com/sstephenson/execjs#readme for more supported runtimes
25 # gem 'therubyracer', :platforms => :ruby
26
27 gem 'uglifier', '>= 1.0.3'
28 end
29
30 gem 'jquery-rails'
31
32 # To use ActiveModel has_secure_password
33 # gem 'bcrypt-ruby', '~> 3.0.0'
34
35 # To use Jbuilder templates for JSON
36 # gem 'jbuilder'
37
38 # Use unicorn as the app server
39 # gem 'unicorn'
40
41 # Deploy with Capistrano
42 # gem 'capistrano'
43
44 # To use debugger
45 # gem 'debugger'
1 GEM
2 remote: https://rubygems.org/
3 specs:
4 actionmailer (3.2.15)
5 actionpack (= 3.2.15)
6 mail (~> 2.5.4)
7 actionpack (3.2.15)
8 activemodel (= 3.2.15)
9 activesupport (= 3.2.15)
10 builder (~> 3.0.0)
11 erubis (~> 2.7.0)
12 journey (~> 1.0.4)
13 rack (~> 1.4.5)
14 rack-cache (~> 1.2)
15 rack-test (~> 0.6.1)
16 sprockets (~> 2.2.1)
17 activemodel (3.2.15)
18 activesupport (= 3.2.15)
19 builder (~> 3.0.0)
20 activerecord (3.2.15)
21 activemodel (= 3.2.15)
22 activesupport (= 3.2.15)
23 arel (~> 3.0.2)
24 tzinfo (~> 0.3.29)
25 activeresource (3.2.15)
26 activemodel (= 3.2.15)
27 activesupport (= 3.2.15)
28 activesupport (3.2.15)
29 i18n (~> 0.6, >= 0.6.4)
30 multi_json (~> 1.0)
31 arel (3.0.3)
32 awesome_print (1.6.1)
33 builder (3.0.4)
34 capistrano (3.4.0)
35 i18n
36 rake (>= 10.0.0)
37 sshkit (~> 1.3)
38 capistrano-bundler (1.1.4)
39 capistrano (~> 3.1)
40 sshkit (~> 1.2)
41 capistrano-rvm (0.1.2)
42 capistrano (~> 3.0)
43 sshkit (~> 1.2)
44 coffee-rails (3.2.2)
45 coffee-script (>= 2.2.0)
46 railties (~> 3.2.0)
47 coffee-script (2.3.0)
48 coffee-script-source
49 execjs
50 coffee-script-source (1.8.0)
51 colorize (0.7.7)
52 erubis (2.7.0)
53 execjs (2.2.2)
54 hike (1.2.3)
55 i18n (0.6.11)
56 journey (1.0.4)
57 jquery-rails (3.1.2)
58 railties (>= 3.0, < 5.0)
59 thor (>= 0.14, < 2.0)
60 json (1.8.3)
61 kaminari (0.16.1)
62 actionpack (>= 3.0.0)
63 activesupport (>= 3.0.0)
64 kgio (2.10.0)
65 mail (2.5.4)
66 mime-types (~> 1.16)
67 treetop (~> 1.4.8)
68 mime-types (1.25.1)
69 multi_json (1.11.2)
70 mysql2 (0.3.16)
71 net-scp (1.2.1)
72 net-ssh (>= 2.6.5)
73 net-ssh (3.0.1)
74 polyglot (0.3.5)
75 rack (1.4.7)
76 rack-cache (1.2)
77 rack (>= 0.4)
78 rack-ssl (1.3.4)
79 rack
80 rack-test (0.6.3)
81 rack (>= 1.0)
82 rails (3.2.15)
83 actionmailer (= 3.2.15)
84 actionpack (= 3.2.15)
85 activerecord (= 3.2.15)
86 activeresource (= 3.2.15)
87 activesupport (= 3.2.15)
88 bundler (~> 1.0)
89 railties (= 3.2.15)
90 railties (3.2.15)
91 actionpack (= 3.2.15)
92 activesupport (= 3.2.15)
93 rack-ssl (~> 1.3.2)
94 rake (>= 0.8.7)
95 rdoc (~> 3.4)
96 thor (>= 0.14.6, < 2.0)
97 raindrops (0.15.0)
98 rake (10.4.2)
99 rdoc (3.12.2)
100 json (~> 1.4)
101 sass (3.4.6)
102 sass-rails (3.2.6)
103 railties (~> 3.2.0)
104 sass (>= 3.1.10)
105 tilt (~> 1.3)
106 sprockets (2.2.3)
107 hike (~> 1.2)
108 multi_json (~> 1.0)
109 rack (~> 1.0)
110 tilt (~> 1.1, != 1.3.0)
111 sshkit (1.7.1)
112 colorize (>= 0.7.0)
113 net-scp (>= 1.1.2)
114 net-ssh (>= 2.8.0)
115 thor (0.19.1)
116 tilt (1.4.1)
117 treetop (1.4.15)
118 polyglot
119 polyglot (>= 0.3.1)
120 tzinfo (0.3.42)
121 uglifier (2.5.3)
122 execjs (>= 0.3.0)
123 json (>= 1.8.0)
124 unicorn (5.0.1)
125 kgio (~> 2.6)
126 rack
127 raindrops (~> 0.7)
128
129 PLATFORMS
130 ruby
131
132 DEPENDENCIES
133 awesome_print
134 capistrano (~> 3.4.0)
135 capistrano-bundler
136 capistrano-rvm
137 coffee-rails (~> 3.2.1)
138 jquery-rails
139 kaminari
140 mysql2
141 rails (= 3.2.15)
142 sass-rails (~> 3.2.3)
143 uglifier (>= 1.0.3)
144 unicorn
145
146 BUNDLED WITH
147 1.16.2
1 山东诺正检测有限公司
...\ No newline at end of file ...\ No newline at end of file
1 #!/usr/bin/env rake
2 # Add your own tasks in files placed in lib/tasks ending in .rake,
3 # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
4
5 require File.expand_path('../config/application', __FILE__)
6
7 Nuozheng::Application.load_tasks
1 // This is a manifest file that'll be compiled into application.js, which will include all the files
2 // listed below.
3 //
4 // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5 // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6 //
7 // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8 // the compiled file.
9 //
10 // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
11 // GO AFTER THE REQUIRES BELOW.
12 //
13 //= require jquery
14 //= require jquery_ujs
15 //= require_directory ./plugin
1 (function(g,e,b,j,c,i,k){/*! Jssor */
2 new(function(){this.$DebugMode=c;this.$Log=function(c,d){var a=g.console||{},b=this.$DebugMode;if(b&&a.log)a.log(c);else b&&d&&alert(c)};this.$Error=function(b,d){var c=g.console||{},a=this.$DebugMode;if(a&&c.error)c.error(b);else a&&alert(b);if(a)throw d||new Error(b);};this.$Fail=function(a){throw new Error(a);};this.$Assert=function(b,c){var a=this.$DebugMode;if(a)if(!b)throw new Error("Assert failed "+c||"");};this.$Trace=function(c){var a=g.console||{},b=this.$DebugMode;b&&a.log&&a.log(c)};this.$Execute=function(b){var a=this.$DebugMode;a&&b()};this.$LiveStamp=function(c,d){var b=this.$DebugMode;if(b){var a=e.createElement("DIV");a.setAttribute("id",d);c.$Live=a}};this.$C_AbstractProperty=function(){throw new Error("The property is abstract, it should be implemented by subclass.");};this.$C_AbstractMethod=function(){throw new Error("The method is abstract, it should be implemented by subclass.");};function a(b){if(b.constructor===a.caller)throw new Error("Cannot create instance of an abstract class.");}this.$C_AbstractClass=a});var d=g.$JssorEasing$={$EaseSwing:function(a){return-b.cos(a*b.PI)/2+.5},$EaseLinear:function(a){return a},$EaseInQuad:function(a){return a*a},$EaseOutQuad:function(a){return-a*(a-2)},$EaseInOutQuad:function(a){return(a*=2)<1?1/2*a*a:-1/2*(--a*(a-2)-1)},$EaseInCubic:function(a){return a*a*a},$EaseOutCubic:function(a){return(a-=1)*a*a+1},$EaseInOutCubic:function(a){return(a*=2)<1?1/2*a*a*a:1/2*((a-=2)*a*a+2)},$EaseInQuart:function(a){return a*a*a*a},$EaseOutQuart:function(a){return-((a-=1)*a*a*a-1)},$EaseInOutQuart:function(a){return(a*=2)<1?1/2*a*a*a*a:-1/2*((a-=2)*a*a*a-2)},$EaseInQuint:function(a){return a*a*a*a*a},$EaseOutQuint:function(a){return(a-=1)*a*a*a*a+1},$EaseInOutQuint:function(a){return(a*=2)<1?1/2*a*a*a*a*a:1/2*((a-=2)*a*a*a*a+2)},$EaseInSine:function(a){return 1-b.cos(a*b.PI/2)},$EaseOutSine:function(a){return b.sin(a*b.PI/2)},$EaseInOutSine:function(a){return-1/2*(b.cos(b.PI*a)-1)},$EaseInExpo:function(a){return a==0?0:b.pow(2,10*(a-1))},$EaseOutExpo:function(a){return a==1?1:-b.pow(2,-10*a)+1},$EaseInOutExpo:function(a){return a==0||a==1?a:(a*=2)<1?1/2*b.pow(2,10*(a-1)):1/2*(-b.pow(2,-10*--a)+2)},$EaseInCirc:function(a){return-(b.sqrt(1-a*a)-1)},$EaseOutCirc:function(a){return b.sqrt(1-(a-=1)*a)},$EaseInOutCirc:function(a){return(a*=2)<1?-1/2*(b.sqrt(1-a*a)-1):1/2*(b.sqrt(1-(a-=2)*a)+1)},$EaseInElastic:function(a){if(!a||a==1)return a;var c=.3,d=.075;return-(b.pow(2,10*(a-=1))*b.sin((a-d)*2*b.PI/c))},$EaseOutElastic:function(a){if(!a||a==1)return a;var c=.3,d=.075;return b.pow(2,-10*a)*b.sin((a-d)*2*b.PI/c)+1},$EaseInOutElastic:function(a){if(!a||a==1)return a;var c=.45,d=.1125;return(a*=2)<1?-.5*b.pow(2,10*(a-=1))*b.sin((a-d)*2*b.PI/c):b.pow(2,-10*(a-=1))*b.sin((a-d)*2*b.PI/c)*.5+1},$EaseInBack:function(a){var b=1.70158;return a*a*((b+1)*a-b)},$EaseOutBack:function(a){var b=1.70158;return(a-=1)*a*((b+1)*a+b)+1},$EaseInOutBack:function(a){var b=1.70158;return(a*=2)<1?1/2*a*a*(((b*=1.525)+1)*a-b):1/2*((a-=2)*a*(((b*=1.525)+1)*a+b)+2)},$EaseInBounce:function(a){return 1-d.$EaseOutBounce(1-a)},$EaseOutBounce:function(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},$EaseInOutBounce:function(a){return a<1/2?d.$EaseInBounce(a*2)*.5:d.$EaseOutBounce(a*2-1)*.5+.5},$EaseGoBack:function(a){return 1-b.abs(2-1)},$EaseInWave:function(a){return 1-b.cos(a*b.PI*2)},$EaseOutWave:function(a){return b.sin(a*b.PI*2)},$EaseOutJump:function(a){return 1-((a*=2)<1?(a=1-a)*a*a:(a-=1)*a*a)},$EaseInJump:function(a){return(a*=2)<1?a*a*a:(a=2-a)*a*a}},f=g.$Jease$={$Swing:d.$EaseSwing,$Linear:d.$EaseLinear,$InQuad:d.$EaseInQuad,$OutQuad:d.$EaseOutQuad,$InOutQuad:d.$EaseInOutQuad,$InCubic:d.$EaseInCubic,$OutCubic:d.$EaseOutCubic,$InOutCubic:d.$EaseInOutCubic,$InQuart:d.$EaseInQuart,$OutQuart:d.$EaseOutQuart,$InOutQuart:d.$EaseInOutQuart,$InQuint:d.$EaseInQuint,$OutQuint:d.$EaseOutQuint,$InOutQuint:d.$EaseInOutQuint,$InSine:d.$EaseInSine,$OutSine:d.$EaseOutSine,$InOutSine:d.$EaseInOutSine,$InExpo:d.$EaseInExpo,$OutExpo:d.$EaseOutExpo,$InOutExpo:d.$EaseInOutExpo,$InCirc:d.$EaseInCirc,$OutCirc:d.$EaseOutCirc,$InOutCirc:d.$EaseInOutCirc,$InElastic:d.$EaseInElastic,$OutElastic:d.$EaseOutElastic,$InOutElastic:d.$EaseInOutElastic,$InBack:d.$EaseInBack,$OutBack:d.$EaseOutBack,$InOutBack:d.$EaseInOutBack,$InBounce:d.$EaseInBounce,$OutBounce:d.$EaseOutBounce,$InOutBounce:d.$EaseInOutBounce,$GoBack:d.$EaseGoBack,$InWave:d.$EaseInWave,$OutWave:d.$EaseOutWave,$OutJump:d.$EaseOutJump,$InJump:d.$EaseInJump};g.$JssorDirection$={$TO_LEFT:1,$TO_RIGHT:2,$TO_TOP:4,$TO_BOTTOM:8,$HORIZONTAL:3,$VERTICAL:12,$GetDirectionHorizontal:function(a){return a&3},$GetDirectionVertical:function(a){return a&12},$IsHorizontal:function(a){return a&3},$IsVertical:function(a){return a&12}};var a=g.$Jssor$=new function(){var f=this,zb=/\S+/g,S=1,fb=2,jb=3,ib=4,nb=5,I,s=0,l=0,q=0,J=0,C=0,y=navigator,sb=y.appName,n=y.userAgent,v=e.documentElement;function Ib(){if(!I){I={$Touchable:"ontouchstart"in g||"createTouch"in e};var a;if(y.pointerEnabled||(a=y.msPointerEnabled))I.$TouchActionAttr=a?"msTouchAction":"touchAction"}return I}function t(i){if(!s){s=-1;if(sb=="Microsoft Internet Explorer"&&!!g.attachEvent&&!!g.ActiveXObject){var f=n.indexOf("MSIE");s=S;q=o(n.substring(f+5,n.indexOf(";",f)));/*@cc_on J=@_jscript_version@*/;l=e.documentMode||q}else if(sb=="Netscape"&&!!g.addEventListener){var d=n.indexOf("Firefox"),b=n.indexOf("Safari"),h=n.indexOf("Chrome"),c=n.indexOf("AppleWebKit");if(d>=0){s=fb;l=o(n.substring(d+8))}else if(b>=0){var j=n.substring(0,b).lastIndexOf("/");s=h>=0?ib:jb;l=o(n.substring(j+1,b))}else{var a=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/i.exec(n);if(a){s=S;l=q=o(a[1])}}if(c>=0)C=o(n.substring(c+12))}else{var a=/(opera)(?:.*version|)[ \/]([\w.]+)/i.exec(n);if(a){s=nb;l=o(a[2])}}}return i==s}function p(){return t(S)}function N(){return p()&&(l<6||e.compatMode=="BackCompat")}function Ab(){return t(fb)}function hb(){return t(jb)}function Db(){return t(ib)}function mb(){return t(nb)}function ab(){return hb()&&C>534&&C<535}function L(){return p()&&l<9}function cb(a){var b;return function(d){if(!b){b=a;var c=a.substr(0,1).toUpperCase()+a.substr(1);m([a].concat(["WebKit","ms","Moz","O","webkit"]),function(g,f){var e=a;if(f)e=g+c;if(d.style[e]!=k)return b=e})}return b}}var bb=cb("transform");function rb(a){return{}.toString.call(a)}var H;function Fb(){if(!H){H={};m(["Boolean","Number","String","Function","Array","Date","RegExp","Object"],function(a){H["[object "+a+"]"]=a.toLowerCase()})}return H}function m(a,d){if(rb(a)=="[object Array]"){for(var b=0;b<a.length;b++)if(d(a[b],b,a))return c}else for(var e in a)if(d(a[e],e,a))return c}function A(a){return a==j?String(a):Fb()[rb(a)]||"object"}function pb(a){for(var b in a)return c}function x(a){try{return A(a)=="object"&&!a.nodeType&&a!=a.window&&(!a.constructor||{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))}catch(b){}}function w(a,b){return{x:a,y:b}}function vb(b,a){setTimeout(b,a||0)}function F(b,d,c){var a=!b||b=="inherit"?"":b;m(d,function(c){var b=c.exec(a);if(b){var d=a.substr(0,b.index),e=a.substr(b.lastIndex+1,a.length-(b.lastIndex+1));a=d+e}});a=c+(a.indexOf(" ")!=0?" ":"")+a;return a}function eb(b,a){if(l<9)b.style.filter=a}function Bb(g,a,i){if(!J||J<9){var d=a.$ScaleX,e=a.$ScaleY,j=(a.$Rotate||0)%360,h="";if(j||d!=k||e!=k){if(d==k)d=1;if(e==k)e=1;var c=f.$CreateMatrix(j/180*b.PI,d||1,e||1),i=f.$GetMatrixOffset(c,a.$OriginalWidth,a.$OriginalHeight);f.$CssMarginTop(g,i.y);f.$CssMarginLeft(g,i.x);h="progid:DXImageTransform.Microsoft.Matrix(M11="+c[0][0]+", M12="+c[0][1]+", M21="+c[1][0]+", M22="+c[1][1]+", SizingMethod='auto expand')"}var m=g.style.filter,n=new RegExp(/[\s]*progid:DXImageTransform\.Microsoft\.Matrix\([^\)]*\)/g),l=F(m,[n],h);eb(g,l)}}f.$Device=Ib;f.$IsBrowserIE=p;f.$IsBrowserIeQuirks=N;f.$IsBrowserFireFox=Ab;f.$IsBrowserSafari=hb;f.$IsBrowserChrome=Db;f.$IsBrowserOpera=mb;f.$IsBrowserBadTransform=ab;f.$IsBrowserIe9Earlier=L;f.$BrowserVersion=function(){return l};f.$BrowserEngineVersion=function(){return q||l};f.$WebKitVersion=function(){t();return C};f.$Delay=vb;f.$Inherit=function(a,b){b.call(a);return z({},a)};function V(a){a.constructor===V.caller&&a.$Construct&&a.$Construct.apply(a,V.caller.arguments)}f.$Construct=V;f.$GetElement=function(a){if(f.$IsString(a))a=e.getElementById(a);return a};function r(a){return a||g.event}f.$GetEvent=r;f.$EvtSrc=function(a){a=r(a);return a.target||a.srcElement||e};f.$EvtTarget=function(a){a=r(a);return a.relatedTarget||a.toElement};f.$EvtWhich=function(a){a=r(a);return a.which||([0,1,3,0,2])[a.button]||a.charCode||a.keyCode};f.$MousePosition=function(a){a=r(a);return{x:a.pageX||a.clientX||0,y:a.pageY||a.clientY||0}};f.$PageScroll=function(){var a=e.body;return{x:(g.pageXOffset||v.scrollLeft||a.scrollLeft||0)-(v.clientLeft||a.clientLeft||0),y:(g.pageYOffset||v.scrollTop||a.scrollTop||0)-(v.clientTop||a.clientTop||0)}};f.$WindowSize=function(){var a=e.body;return{x:a.clientWidth||v.clientWidth,y:a.clientHeight||v.clientHeight}};function B(c,d,a){if(a!==k)c.style[d]=a==k?"":a;else{var b=c.currentStyle||c.style;a=b[d];if(a==""&&g.getComputedStyle){b=c.ownerDocument.defaultView.getComputedStyle(c,j);b&&(a=b.getPropertyValue(d)||b[d])}return a}}function X(b,c,a,d){if(a!==k){if(a==j)a="";else d&&(a+="px");B(b,c,a)}else return o(B(b,c))}function Jb(b,d,a){return X(b,d,a,c)}function h(c,a){var d=a?X:B,b;if(a&4)b=cb(c);return function(e,f){return d(e,b?b(e):c,f,a&2)}}function Cb(b){if(p()&&q<9){var a=/opacity=([^)]*)/.exec(b.style.filter||"");return a?o(a[1])/100:1}else return o(b.style.opacity||"1")}function Eb(c,a,f){if(p()&&q<9){var h=c.style.filter||"",i=new RegExp(/[\s]*alpha\([^\)]*\)/g),e=b.round(100*a),d="";if(e<100||f)d="alpha(opacity="+e+") ";var g=F(h,[i],d);eb(c,g)}else c.style.opacity=a==1?"":b.round(a*100)/100}var xb={$Rotate:["rotate"],$RotateX:["rotateX"],$RotateY:["rotateY"],$ScaleX:["scaleX",2],$ScaleY:["scaleY",2],$TranslateX:["translateX",1],$TranslateY:["translateY",1],$TranslateZ:["translateZ",1],$SkewX:["skewX"],$SkewY:["skewY"]};function Z(e,c){if(p()&&l&&l<10){delete c.$RotateX;delete c.$RotateY}var d=bb(e);if(d){var b="";a.$Each(c,function(e,c){var a=xb[c];if(a){var d=a[1]||0;b+=(b?" ":"")+a[0]+"("+e+(["deg","px",""])[d]+")"}});e.style[d]=b}}f.$SetStyleTransform=function(b,a){if(ab())vb(f.$CreateCallback(j,Z,b,a));else(L()?Bb:Z)(b,a)};f.$CssTransformOrigin=h("transformOrigin",4);f.$CssBackfaceVisibility=h("backfaceVisibility",4);f.$CssTransformStyle=h("transformStyle",4);f.$CssPerspective=h("perspective",6);f.$CssPerspectiveOrigin=h("perspectiveOrigin",4);f.$CssScale=function(a,c){if(p()&&q<9||q<10&&N())a.style.zoom=c==1?"":c;else{var b=bb(a);if(b){var f="scale("+c+")",e=a.style[b],g=new RegExp(/[\s]*scale\(.*?\)/g),d=F(e,[g],f);a.style[b]=d}}};var lb=0,gb=0;f.$WindowResizeFilter=function(b,a){return L()?function(){var g=c,d=N()?b.document.body:b.document.documentElement;if(d){var f=d.offsetWidth-lb,e=d.offsetHeight-gb;if(f||e){lb+=f;gb+=e}else g=i}g&&a()}:a};f.$MouseOverOutFilter=function(b,a){return function(c){c=r(c);var e=c.type,d=c.relatedTarget||(e=="mouseout"?c.toElement:c.fromElement);(!d||d!==a&&!f.$IsChild(a,d))&&b(c)}};f.$AddEvent=function(a,c,d,b){a=f.$GetElement(a);if(a.addEventListener){c=="mousewheel"&&a.addEventListener("DOMMouseScroll",d,b);a.addEventListener(c,d,b)}else if(a.attachEvent){a.attachEvent("on"+c,d);b&&a.setCapture&&a.setCapture()}};f.$RemoveEvent=function(a,c,d,b){a=f.$GetElement(a);if(a.removeEventListener){c=="mousewheel"&&a.removeEventListener("DOMMouseScroll",d,b);a.removeEventListener(c,d,b)}else if(a.detachEvent){a.detachEvent("on"+c,d);b&&a.releaseCapture&&a.releaseCapture()}};f.$FireEvent=function(c,b){var a;if(e.createEvent){a=e.createEvent("HTMLEvents");a.initEvent(b,i,i);c.dispatchEvent(a)}else{var d="on"+b;a=e.createEventObject();c.fireEvent(d,a)}};f.$CancelEvent=function(a){a=r(a);a.preventDefault&&a.preventDefault();a.cancel=c;a.returnValue=i};f.$StopEvent=function(a){a=r(a);a.stopPropagation&&a.stopPropagation();a.cancelBubble=c};f.$CreateCallback=function(d,c){var a=[].slice.call(arguments,2),b=function(){var b=a.concat([].slice.call(arguments,0));return c.apply(d,b)};return b};f.$InnerText=function(a,b){if(b==k)return a.textContent||a.innerText;var c=e.createTextNode(b);f.$Empty(a);a.appendChild(c)};f.$InnerHtml=function(a,b){if(b==k)return a.innerHTML;a.innerHTML=b};f.$GetClientRect=function(b){var a=b.getBoundingClientRect();return{x:a.left,y:a.top,w:a.right-a.left,h:a.bottom-a.top}};f.$ClearInnerHtml=function(a){a.innerHTML=""};f.$EncodeHtml=function(b){var a=f.$CreateDiv();f.$InnerText(a,b);return f.$InnerHtml(a)};f.$DecodeHtml=function(b){var a=f.$CreateDiv();f.$InnerHtml(a,b);return f.$InnerText(a)};f.$SelectElement=function(c){var b;if(g.getSelection)b=g.getSelection();var a=j;if(e.createRange){a=e.createRange();a.selectNode(c)}else{a=e.body.createTextRange();a.moveToElementText(c);a.select()}b&&b.addRange(a)};f.$DeselectElements=function(){if(e.selection)e.selection.empty();else g.getSelection&&g.getSelection().removeAllRanges()};f.$Children=function(d,c){for(var b=[],a=d.firstChild;a;a=a.nextSibling)(c||a.nodeType==1)&&b.push(a);return b};function qb(a,c,e,b){b=b||"u";for(a=a?a.firstChild:j;a;a=a.nextSibling)if(a.nodeType==1){if(R(a,b)==c)return a;if(!e){var d=qb(a,c,e,b);if(d)return d}}}f.$FindChild=qb;function P(a,d,f,b){b=b||"u";var c=[];for(a=a?a.firstChild:j;a;a=a.nextSibling)if(a.nodeType==1){R(a,b)==d&&c.push(a);if(!f){var e=P(a,d,f,b);if(e.length)c=c.concat(e)}}return c}function kb(a,c,d){for(a=a?a.firstChild:j;a;a=a.nextSibling)if(a.nodeType==1){if(a.tagName==c)return a;if(!d){var b=kb(a,c,d);if(b)return b}}}f.$FindChildByTag=kb;function db(a,c,e){var b=[];for(a=a?a.firstChild:j;a;a=a.nextSibling)if(a.nodeType==1){(!c||a.tagName==c)&&b.push(a);if(!e){var d=db(a,c,e);if(d.length)b=b.concat(d)}}return b}f.$FindChildrenByTag=db;f.$GetElementsByTag=function(b,a){return b.getElementsByTagName(a)};function z(){var e=arguments,d,c,b,a,g=1&e[0],f=1+g;d=e[f-1]||{};for(;f<e.length;f++)if(c=e[f])for(b in c){a=c[b];if(a!==k){a=c[b];var h=d[b];d[b]=g&&(x(h)||x(a))?z(g,{},h,a):a}}return d}f.$Extend=z;function W(f,g){var d={},c,a,b;for(c in f){a=f[c];b=g[c];if(a!==b){var e;if(x(a)&&x(b)){a=W(a,b);e=!pb(a)}!e&&(d[c]=a)}}return d}f.$Unextend=W;f.$IsFunction=function(a){return A(a)=="function"};f.$IsArray=function(a){return A(a)=="array"};f.$IsString=function(a){return A(a)=="string"};f.$IsNumeric=function(a){return!isNaN(o(a))&&isFinite(a)};f.$Type=A;f.$Each=m;f.$IsNotEmpty=pb;f.$IsPlainObject=x;function O(a){return e.createElement(a)}f.$CreateElement=O;f.$CreateDiv=function(){return O("DIV")};f.$CreateSpan=function(){return O("SPAN")};f.$EmptyFunction=function(){};function T(b,c,a){if(a==k)return b.getAttribute(c);b.setAttribute(c,a)}function R(a,b){return T(a,b)||T(a,"data-"+b)}f.$Attribute=T;f.$AttributeEx=R;function u(b,a){if(a==k)return b.className;b.className=a}f.$ClassName=u;function ub(b){var a={};m(b,function(b){a[b]=b});return a}function Hb(b){var a=[];m(b,function(b){a.push(b)});return a}function wb(b,a){return b.match(a||zb)}function M(b,a){return ub(wb(b||"",a))}f.$ToHash=ub;f.$FromHash=Hb;f.$Split=wb;function Y(b,c){var a="";m(c,function(c){a&&(a+=b);a+=c});return a}function E(a,c,b){u(a,Y(" ",z(W(M(u(a)),M(c)),M(b))))}f.$Join=Y;f.$AddClass=function(b,a){E(b,j,a)};f.$RemoveClass=E;f.$ReplaceClass=E;f.$ParentNode=function(a){return a.parentNode};f.$HideElement=function(a){f.$CssDisplay(a,"none")};f.$EnableElement=function(a,b){if(b)f.$Attribute(a,"disabled",c);else f.$RemoveAttribute(a,"disabled")};f.$HideElements=function(b){for(var a=0;a<b.length;a++)f.$HideElement(b[a])};f.$ShowElement=function(a,b){f.$CssDisplay(a,b?"none":"")};f.$ShowElements=function(b,c){for(var a=0;a<b.length;a++)f.$ShowElement(b[a],c)};f.$RemoveAttribute=function(b,a){b.removeAttribute(a)};f.$CanClearClip=function(){return p()&&l<10};f.$SetStyleClip=function(d,c){if(c)d.style.clip="rect("+b.round(c.$Top)+"px "+b.round(c.$Right)+"px "+b.round(c.$Bottom)+"px "+b.round(c.$Left)+"px)";else{var g=d.style.cssText,f=[new RegExp(/[\s]*clip: rect\(.*?\)[;]?/i),new RegExp(/[\s]*cliptop: .*?[;]?/i),new RegExp(/[\s]*clipright: .*?[;]?/i),new RegExp(/[\s]*clipbottom: .*?[;]?/i),new RegExp(/[\s]*clipleft: .*?[;]?/i)],e=F(g,f,"");a.$CssCssText(d,e)}};f.$GetNow=function(){return+new Date};f.$AppendChild=function(b,a){b.appendChild(a)};f.$AppendChildren=function(b,a){m(a,function(a){f.$AppendChild(b,a)})};f.$InsertBefore=function(b,a,c){(c||a.parentNode).insertBefore(b,a)};f.$InsertAfter=function(b,a,c){f.$InsertBefore(b,a.nextSibling,c||a.parentNode)};f.$InsertAdjacentHtml=function(b,a,c){b.insertAdjacentHTML(a,c)};f.$RemoveElement=function(a,b){(b||a.parentNode).removeChild(a)};f.$RemoveElements=function(a,b){m(a,function(a){f.$RemoveElement(a,b)})};f.$Empty=function(a){f.$RemoveElements(f.$Children(a,c),a)};f.$CenterElement=function(a,b){var c=f.$ParentNode(a);b&1&&f.$CssLeft(a,(f.$CssWidth(c)-f.$CssWidth(a))/2);b&2&&f.$CssTop(a,(f.$CssHeight(c)-f.$CssHeight(a))/2)};f.$ParseInt=function(b,a){return parseInt(b,a||10)};var o=parseFloat;f.$ParseFloat=o;f.$IsChild=function(b,a){var c=e.body;while(a&&b!==a&&c!==a)try{a=a.parentNode}catch(d){return i}return b===a};function U(d,c,b){var a=d.cloneNode(!c);!b&&f.$RemoveAttribute(a,"id");return a}f.$CloneNode=U;f.$LoadImage=function(e,g){var a=new Image;function b(e,c){f.$RemoveEvent(a,"load",b);f.$RemoveEvent(a,"abort",d);f.$RemoveEvent(a,"error",d);g&&g(a,c)}function d(a){b(a,c)}if(mb()&&l<11.6||!e)b(!e);else{f.$AddEvent(a,"load",b);f.$AddEvent(a,"abort",d);f.$AddEvent(a,"error",d);a.src=e}};f.$LoadImages=function(d,a,e){var c=d.length+1;function b(b){c--;if(a&&b&&b.src==a.src)a=b;!c&&e&&e(a)}m(d,function(a){f.$LoadImage(a.src,b)});b()};f.$BuildElement=function(b,g,i,h){if(h)b=U(b);var c=P(b,g);if(!c.length)c=a.$GetElementsByTag(b,g);for(var f=c.length-1;f>-1;f--){var d=c[f],e=U(i);u(e,u(d));a.$CssCssText(e,d.style.cssText);a.$InsertBefore(e,d);a.$RemoveElement(d)}return b};function Gb(b){var l=this,p="",r=["av","pv","ds","dn"],g=[],q,j=0,h=0,d=0;function i(){E(b,q,g[d||j||h&2||h]);a.$Css(b,"pointer-events",d?"none":"")}function c(){j=0;i();f.$RemoveEvent(e,"mouseup",c);f.$RemoveEvent(e,"touchend",c);f.$RemoveEvent(e,"touchcancel",c)}function o(a){if(d)f.$CancelEvent(a);else{j=4;i();f.$AddEvent(e,"mouseup",c);f.$AddEvent(e,"touchend",c);f.$AddEvent(e,"touchcancel",c)}}l.$Selected=function(a){if(a===k)return h;h=a&2||a&1;i()};l.$Enable=function(a){if(a===k)return!d;d=a?0:3;i()};l.$Elmt=b=f.$GetElement(b);var n=a.$Split(u(b));if(n)p=n.shift();m(r,function(a){g.push(p+a)});q=Y(" ",g);g.unshift("");f.$AddEvent(b,"mousedown",o);f.$AddEvent(b,"touchstart",o)}f.$Buttonize=function(a){return new Gb(a)};f.$Css=B;f.$CssN=X;f.$CssP=Jb;f.$CssOverflow=h("overflow");f.$CssTop=h("top",2);f.$CssLeft=h("left",2);f.$CssWidth=h("width",2);f.$CssHeight=h("height",2);f.$CssMarginLeft=h("marginLeft",2);f.$CssMarginTop=h("marginTop",2);f.$CssPosition=h("position");f.$CssDisplay=h("display");f.$CssZIndex=h("zIndex",1);f.$CssFloat=function(b,a){return B(b,p()?"styleFloat":"cssFloat",a)};f.$CssOpacity=function(b,a,c){if(a!=k)Eb(b,a,c);else return Cb(b)};f.$CssCssText=function(a,b){if(b!=k)a.style.cssText=b;else return a.style.cssText};var Q={$Opacity:f.$CssOpacity,$Top:f.$CssTop,$Left:f.$CssLeft,$Width:f.$CssWidth,$Height:f.$CssHeight,$Position:f.$CssPosition,$Display:f.$CssDisplay,$ZIndex:f.$CssZIndex},K;function G(){if(!K)K=z({$MarginTop:f.$CssMarginTop,$MarginLeft:f.$CssMarginLeft,$Clip:f.$SetStyleClip,$Transform:f.$SetStyleTransform},Q);return K}function ob(){var a={};a.$Transform=a.$Transform;a.$Transform=a.$Rotate;a.$Transform=a.$RotateX;a.$Transform=a.$RotateY;a.$Transform=a.$SkewX;a.$Transform=a.$SkewY;a.$Transform=a.$TranslateX;a.$Transform=a.$TranslateY;a.$Transform=a.$TranslateZ;return G()}f.$StyleSetter=G;f.$StyleSetterEx=ob;f.$GetStyles=function(c,b){G();var a={};m(b,function(d,b){if(Q[b])a[b]=Q[b](c)});return a};f.$SetStyles=function(c,b){var a=G();m(b,function(d,b){a[b]&&a[b](c,d)})};f.$SetStylesEx=function(b,a){ob();f.$SetStyles(b,a)};var D=new function(){var a=this;function b(d,g){for(var j=d[0].length,i=d.length,h=g[0].length,f=[],c=0;c<i;c++)for(var k=f[c]=[],b=0;b<h;b++){for(var e=0,a=0;a<j;a++)e+=d[c][a]*g[a][b];k[b]=e}return f}a.$ScaleX=function(b,c){return a.$ScaleXY(b,c,0)};a.$ScaleY=function(b,c){return a.$ScaleXY(b,0,c)};a.$ScaleXY=function(a,c,d){return b(a,[[c,0],[0,d]])};a.$TransformPoint=function(d,c){var a=b(d,[[c.x],[c.y]]);return w(a[0][0],a[1][0])}};f.$CreateMatrix=function(d,a,c){var e=b.cos(d),f=b.sin(d);return[[e*a,-f*c],[f*a,e*c]]};f.$GetMatrixOffset=function(d,c,a){var e=D.$TransformPoint(d,w(-c/2,-a/2)),f=D.$TransformPoint(d,w(c/2,-a/2)),g=D.$TransformPoint(d,w(c/2,a/2)),h=D.$TransformPoint(d,w(-c/2,a/2));return w(b.min(e.x,f.x,g.x,h.x)+c/2,b.min(e.y,f.y,g.y,h.y)+a/2)};var yb={$Zoom:1,$ScaleX:1,$ScaleY:1,$Rotate:0,$RotateX:0,$RotateY:0,$TranslateX:0,$TranslateY:0,$TranslateZ:0,$SkewX:0,$SkewY:0};f.$FormatEasings=function(b){var c=b||{};if(b)if(a.$IsFunction(b))c={$Default:c};else if(a.$IsFunction(b.$Clip))c.$Clip={$Default:b.$Clip};return c};function tb(c,a){var b={};m(c,function(c,d){var e=c;if(a[d]!=k)if(f.$IsNumeric(c))e=c+a[d];else e=tb(c,a[d]);b[d]=e});return b}f.$AddDif=tb;f.$Cast=function(h,i,w,n,y,z,o){var c=i;if(h){c={};for(var g in i){var A=z[g]||1,v=y[g]||[0,1],e=(w-v[0])/v[1];e=b.min(b.max(e,0),1);e=e*A;var u=b.floor(e);if(e!=u)e-=u;var l=n.$Default||d.$EaseSwing,m,B=h[g],q=i[g];if(a.$IsNumeric(q)){l=n[g]||l;var x=l(e);m=B+q*x}else{m=a.$Extend({$Offset:{}},h[g]);a.$Each(q.$Offset||q,function(d,a){if(n.$Clip)l=n.$Clip[a]||n.$Clip.$Default||l;var c=l(e),b=d*c;m.$Offset[a]=b;m[a]+=b})}c[g]=m}var t,f={$OriginalWidth:o.$OriginalWidth,$OriginalHeight:o.$OriginalHeight};a.$Each(yb,function(d,a){t=t||i[a];var b=c[a];if(b!=k){if(b!=d)f[a]=b;delete c[a]}else if(h[a]!=k&&h[a]!=d)f[a]=h[a]});if(i.$Zoom&&f.$Zoom){f.$ScaleX=f.$Zoom;f.$ScaleY=f.$Zoom}c.$Transform=f}if(i.$Clip&&o.$Move){var p=c.$Clip.$Offset,s=(p.$Top||0)+(p.$Bottom||0),r=(p.$Left||0)+(p.$Right||0);c.$Left=(c.$Left||0)+r;c.$Top=(c.$Top||0)+s;c.$Clip.$Left-=r;c.$Clip.$Right-=r;c.$Clip.$Top-=s;c.$Clip.$Bottom-=s}if(c.$Clip&&a.$CanClearClip()&&!c.$Clip.$Top&&!c.$Clip.$Left&&c.$Clip.$Right==o.$OriginalWidth&&c.$Clip.$Bottom==o.$OriginalHeight)c.$Clip=j;return c}};function m(){var b=this,d=[],c=[];function i(a,b){d.push({$EventName:a,$Handler:b})}function h(b,c){a.$Each(d,function(a,e){a.$EventName==b&&a.$Handler===c&&d.splice(e,1)})}function f(){d=[]}function e(){a.$Each(c,function(b){a.$RemoveEvent(b.$Obj,b.$EventName,b.$Handler)});c=[]}b.$Listen=function(e,b,d,f){a.$AddEvent(e,b,d,f);c.push({$Obj:e,$EventName:b,$Handler:d})};b.$Unlisten=function(e,b,d){a.$Each(c,function(f,g){if(f.$Obj===e&&f.$EventName==b&&f.$Handler===d){a.$RemoveEvent(e,b,d);c.splice(g,1)}})};b.$UnlistenAll=e;b.$On=b.addEventListener=i;b.$Off=b.removeEventListener=h;b.$TriggerEvent=function(b){var c=[].slice.call(arguments,1);a.$Each(d,function(a){a.$EventName==b&&a.$Handler.apply(g,c)})};b.$Destroy=function(){e();f();for(var a in b)delete b[a]}}var l=g.$JssorAnimator$=function(y,C,k,P,N,J){y=y||0;var d=this,q,M,n,o,v,z=0,H,I,G,B,x=0,h=0,m=0,D,l,s,f,e,p,w=[],A;function O(a){f+=a;e+=a;l+=a;s+=a;h+=a;m+=a;x+=a}function u(n){var g=n;if(p&&(g>=e||g<=f))g=((g-f)%p+p)%p+f;if(!D||v||h!=g){var i=b.min(g,e);i=b.max(i,f);if(!D||v||i!=m){if(J){var j=(i-l)/(C||1);if(k.$Reverse)j=1-j;var o=a.$Cast(N,J,j,H,G,I,k);a.$Each(o,function(b,a){A[a]&&A[a](P,b)})}d.$OnInnerOffsetChange(m-l,i-l);m=i;a.$Each(w,function(b,c){var a=n<h?w[w.length-c-1]:b;a.$GoToPosition(m-x)});var r=h,q=m;h=g;D=c;d.$OnPositionChange(r,q)}}}function E(a,c,d){c&&a.$Shift(e);if(!d){f=b.min(f,a.$GetPosition_OuterBegin()+x);e=b.max(e,a.$GetPosition_OuterEnd()+x)}w.push(a)}var r=g.requestAnimationFrame||g.webkitRequestAnimationFrame||g.mozRequestAnimationFrame||g.msRequestAnimationFrame;if(a.$IsBrowserSafari()&&a.$BrowserVersion()<7)r=j;r=r||function(b){a.$Delay(b,k.$Interval)};function K(){if(q){var d=a.$GetNow(),e=b.min(d-z,k.$IntervalMax),c=h+e*o;z=d;if(c*o>=n*o)c=n;u(c);if(!v&&c*o>=n*o)L(B);else r(K)}}function t(g,i,j){if(!q){q=c;v=j;B=i;g=b.max(g,f);g=b.min(g,e);n=g;o=n<h?-1:1;d.$OnStart();z=a.$GetNow();r(K)}}function L(a){if(q){v=q=B=i;d.$OnStop();a&&a()}}d.$Play=function(a,b,c){t(a?h+a:e,b,c)};d.$PlayToPosition=t;d.$PlayToBegin=function(a,b){t(f,a,b)};d.$PlayToEnd=function(a,b){t(e,a,b)};d.$Stop=L;d.$Continue=function(a){t(a)};d.$GetPosition=function(){return h};d.$GetPlayToPosition=function(){return n};d.$GetPosition_Display=function(){return m};d.$GoToPosition=u;d.$GoToBegin=function(){u(f,c)};d.$GoToEnd=function(){u(e,c)};d.$Move=function(a){u(h+a)};d.$CombineMode=function(){return M};d.$GetDuration=function(){return C};d.$IsPlaying=function(){return q};d.$IsOnTheWay=function(){return h>l&&h<=s};d.$SetLoopLength=function(a){p=a};d.$Shift=O;d.$Join=E;d.$Combine=function(a,b){E(a,0,b)};d.$Chain=function(a){E(a,1)};d.$Expand=function(a){e+=a};d.$GetPosition_InnerBegin=function(){return l};d.$GetPosition_InnerEnd=function(){return s};d.$GetPosition_OuterBegin=function(){return f};d.$GetPosition_OuterEnd=function(){return e};d.$OnPositionChange=d.$OnStart=d.$OnStop=d.$OnInnerOffsetChange=a.$EmptyFunction;d.$Version=a.$GetNow();k=a.$Extend({$Interval:16,$IntervalMax:50},k);p=k.$LoopLength;A=a.$Extend({},a.$StyleSetter(),k.$Setter);f=l=y;e=s=y+C;I=k.$Round||{};G=k.$During||{};H=a.$FormatEasings(k.$Easing)};var o=g.$JssorSlideshowFormations$=new function(){var h=this,d=0,a=1,f=2,e=3,s=1,r=2,t=4,q=8,w=256,x=512,v=1024,u=2048,j=u+s,i=u+r,o=x+s,m=x+r,n=w+t,k=w+q,l=v+t,p=v+q;function y(a){return(a&r)==r}function z(a){return(a&t)==t}function g(b,a,c){c.push(a);b[a]=b[a]||[];b[a].push(c)}h.$FormationStraight=function(f){for(var d=f.$Cols,e=f.$Rows,s=f.$Assembly,t=f.$Count,r=[],a=0,b=0,p=d-1,q=e-1,h=t-1,c,b=0;b<e;b++)for(a=0;a<d;a++){switch(s){case j:c=h-(a*e+(q-b));break;case l:c=h-(b*d+(p-a));break;case o:c=h-(a*e+b);case n:c=h-(b*d+a);break;case i:c=a*e+b;break;case k:c=b*d+(p-a);break;case m:c=a*e+(q-b);break;default:c=b*d+a}g(r,c,[b,a])}return r};h.$FormationSwirl=function(q){var x=q.$Cols,y=q.$Rows,B=q.$Assembly,w=q.$Count,A=[],z=[],u=0,b=0,h=0,r=x-1,s=y-1,t,p,v=0;switch(B){case j:b=r;h=0;p=[f,a,e,d];break;case l:b=0;h=s;p=[d,e,a,f];break;case o:b=r;h=s;p=[e,a,f,d];break;case n:b=r;h=s;p=[a,e,d,f];break;case i:b=0;h=0;p=[f,d,e,a];break;case k:b=r;h=0;p=[a,f,d,e];break;case m:b=0;h=s;p=[e,d,f,a];break;default:b=0;h=0;p=[d,f,a,e]}u=0;while(u<w){t=h+","+b;if(b>=0&&b<x&&h>=0&&h<y&&!z[t]){z[t]=c;g(A,u++,[h,b])}else switch(p[v++%p.length]){case d:b--;break;case f:h--;break;case a:b++;break;case e:h++}switch(p[v%p.length]){case d:b++;break;case f:h++;break;case a:b--;break;case e:h--}}return A};h.$FormationZigZag=function(p){var w=p.$Cols,x=p.$Rows,z=p.$Assembly,v=p.$Count,t=[],u=0,b=0,c=0,q=w-1,r=x-1,y,h,s=0;switch(z){case j:b=q;c=0;h=[f,a,e,a];break;case l:b=0;c=r;h=[d,e,a,e];break;case o:b=q;c=r;h=[e,a,f,a];break;case n:b=q;c=r;h=[a,e,d,e];break;case i:b=0;c=0;h=[f,d,e,d];break;case k:b=q;c=0;h=[a,f,d,f];break;case m:b=0;c=r;h=[e,d,f,d];break;default:b=0;c=0;h=[d,f,a,f]}u=0;while(u<v){y=c+","+b;if(b>=0&&b<w&&c>=0&&c<x&&typeof t[y]=="undefined"){g(t,u++,[c,b]);switch(h[s%h.length]){case d:b++;break;case f:c++;break;case a:b--;break;case e:c--}}else{switch(h[s++%h.length]){case d:b--;break;case f:c--;break;case a:b++;break;case e:c++}switch(h[s++%h.length]){case d:b++;break;case f:c++;break;case a:b--;break;case e:c--}}}return t};h.$FormationStraightStairs=function(q){var u=q.$Cols,v=q.$Rows,e=q.$Assembly,t=q.$Count,r=[],s=0,c=0,d=0,f=u-1,h=v-1,x=t-1;switch(e){case j:case m:case o:case i:var a=0,b=0;break;case k:case l:case n:case p:var a=f,b=0;break;default:e=p;var a=f,b=0}c=a;d=b;while(s<t){if(z(e)||y(e))g(r,x-s++,[d,c]);else g(r,s++,[d,c]);switch(e){case j:case m:c--;d++;break;case o:case i:c++;d--;break;case k:case l:c--;d--;break;case p:case n:default:c++;d++}if(c<0||d<0||c>f||d>h){switch(e){case j:case m:a++;break;case k:case l:case o:case i:b++;break;case p:case n:default:a--}if(a<0||b<0||a>f||b>h){switch(e){case j:case m:a=f;b++;break;case o:case i:b=h;a++;break;case k:case l:b=h;a--;break;case p:case n:default:a=0;b++}if(b>h)b=h;else if(b<0)b=0;else if(a>f)a=f;else if(a<0)a=0}d=b;c=a}}return r};h.$FormationSquare=function(i){var a=i.$Cols||1,c=i.$Rows||1,j=[],d,e,f,h,k;f=a<c?(c-a)/2:0;h=a>c?(a-c)/2:0;k=b.round(b.max(a/2,c/2))+1;for(d=0;d<a;d++)for(e=0;e<c;e++)g(j,k-b.min(d+1+f,e+1+h,a-d+f,c-e+h),[e,d]);return j};h.$FormationRectangle=function(f){var d=f.$Cols||1,e=f.$Rows||1,h=[],a,c,i;i=b.round(b.min(d/2,e/2))+1;for(a=0;a<d;a++)for(c=0;c<e;c++)g(h,i-b.min(a+1,c+1,d-a,e-c),[c,a]);return h};h.$FormationRandom=function(d){for(var e=[],a,c=0;c<d.$Rows;c++)for(a=0;a<d.$Cols;a++)g(e,b.ceil(1e5*b.random())%13,[c,a]);return e};h.$FormationCircle=function(d){for(var e=d.$Cols||1,f=d.$Rows||1,h=[],a,i=e/2-.5,j=f/2-.5,c=0;c<e;c++)for(a=0;a<f;a++)g(h,b.round(b.sqrt(b.pow(c-i,2)+b.pow(a-j,2))),[a,c]);return h};h.$FormationCross=function(d){for(var e=d.$Cols||1,f=d.$Rows||1,h=[],a,i=e/2-.5,j=f/2-.5,c=0;c<e;c++)for(a=0;a<f;a++)g(h,b.round(b.min(b.abs(c-i),b.abs(a-j))),[a,c]);return h};h.$FormationRectangleCross=function(f){for(var h=f.$Cols||1,i=f.$Rows||1,j=[],a,d=h/2-.5,e=i/2-.5,k=b.max(d,e)+1,c=0;c<h;c++)for(a=0;a<i;a++)g(j,b.round(k-b.max(d-b.abs(c-d),e-b.abs(a-e)))-1,[a,c]);return j}};g.$JssorSlideshowRunner$=function(n,s,q,t,y){var f=this,u,g,e,x=0,w=t.$TransitionsOrder,r,h=8;function k(g,f){var e={$Interval:f,$Duration:1,$Delay:0,$Cols:1,$Rows:1,$Opacity:0,$Zoom:0,$Clip:0,$Move:i,$SlideOut:i,$Reverse:i,$Formation:o.$FormationRandom,$Assembly:1032,$ChessMode:{$Column:0,$Row:0},$Easing:d.$EaseSwing,$Round:{},$Blocks:[],$During:{}};a.$Extend(e,g);e.$Count=e.$Cols*e.$Rows;e.$Easing=a.$FormatEasings(e.$Easing);e.$FramesCount=b.ceil(e.$Duration/e.$Interval);e.$GetBlocks=function(b,a){b/=e.$Cols;a/=e.$Rows;var f=b+"x"+a;if(!e.$Blocks[f]){e.$Blocks[f]={$Width:b,$Height:a};for(var c=0;c<e.$Cols;c++)for(var d=0;d<e.$Rows;d++)e.$Blocks[f][d+","+c]={$Top:d*a,$Right:c*b+b,$Bottom:d*a+a,$Left:c*b}}return e.$Blocks[f]};if(e.$Brother){e.$Brother=k(e.$Brother,f);e.$SlideOut=c}return e}function p(A,h,d,v,n,l){var y=this,t,u={},j={},m=[],f,e,r,p=d.$ChessMode.$Column||0,q=d.$ChessMode.$Row||0,g=d.$GetBlocks(n,l),o=B(d),C=o.length-1,s=d.$Duration+d.$Delay*C,w=v+s,k=d.$SlideOut,x;w+=50;function B(a){var b=a.$Formation(a);return a.$Reverse?b.reverse():b}y.$EndTime=w;y.$ShowFrame=function(c){c-=v;var e=c<s;if(e||x){x=e;if(!k)c=s-c;var f=b.ceil(c/d.$Interval);a.$Each(j,function(c,e){var d=b.max(f,c.$Min);d=b.min(d,c.length-1);if(c.$LastFrameIndex!=d){if(!c.$LastFrameIndex&&!k)a.$ShowElement(m[e]);else d==c.$Max&&k&&a.$HideElement(m[e]);c.$LastFrameIndex=d;a.$SetStylesEx(m[e],c[d])}})}};h=a.$CloneNode(h);if(a.$IsBrowserIe9Earlier()){var D=!h["no-image"],z=a.$FindChildrenByTag(h);a.$Each(z,function(b){(D||b["jssor-slider"])&&a.$CssOpacity(b,a.$CssOpacity(b),c)})}a.$Each(o,function(h,m){a.$Each(h,function(G){var K=G[0],J=G[1],v=K+","+J,o=i,s=i,x=i;if(p&&J%2){if(p&3)o=!o;if(p&12)s=!s;if(p&16)x=!x}if(q&&K%2){if(q&3)o=!o;if(q&12)s=!s;if(q&16)x=!x}d.$Top=d.$Top||d.$Clip&4;d.$Bottom=d.$Bottom||d.$Clip&8;d.$Left=d.$Left||d.$Clip&1;d.$Right=d.$Right||d.$Clip&2;var C=s?d.$Bottom:d.$Top,z=s?d.$Top:d.$Bottom,B=o?d.$Right:d.$Left,A=o?d.$Left:d.$Right;d.$Clip=C||z||B||A;r={};e={$Top:0,$Left:0,$Opacity:1,$Width:n,$Height:l};f=a.$Extend({},e);t=a.$Extend({},g[v]);if(d.$Opacity)e.$Opacity=2-d.$Opacity;if(d.$ZIndex){e.$ZIndex=d.$ZIndex;f.$ZIndex=0}var I=d.$Cols*d.$Rows>1||d.$Clip;if(d.$Zoom||d.$Rotate){var H=c;if(a.$IsBrowserIe9Earlier())if(d.$Cols*d.$Rows>1)H=i;else I=i;if(H){e.$Zoom=d.$Zoom?d.$Zoom-1:1;f.$Zoom=1;if(a.$IsBrowserIe9Earlier()||a.$IsBrowserOpera())e.$Zoom=b.min(e.$Zoom,2);var N=d.$Rotate||0;e.$Rotate=N*360*(x?-1:1);f.$Rotate=0}}if(I){var h=t.$Offset={};if(d.$Clip){var w=d.$ScaleClip||1;if(C&&z){h.$Top=g.$Height/2*w;h.$Bottom=-h.$Top}else if(C)h.$Bottom=-g.$Height*w;else if(z)h.$Top=g.$Height*w;if(B&&A){h.$Left=g.$Width/2*w;h.$Right=-h.$Left}else if(B)h.$Right=-g.$Width*w;else if(A)h.$Left=g.$Width*w}r.$Clip=t;f.$Clip=g[v]}var L=o?1:-1,M=s?1:-1;if(d.x)e.$Left+=n*d.x*L;if(d.y)e.$Top+=l*d.y*M;a.$Each(e,function(b,c){if(a.$IsNumeric(b))if(b!=f[c])r[c]=b-f[c]});u[v]=k?f:e;var D=d.$FramesCount,y=b.round(m*d.$Delay/d.$Interval);j[v]=new Array(y);j[v].$Min=y;j[v].$Max=y+D-1;for(var F=0;F<=D;F++){var E=a.$Cast(f,r,F/D,d.$Easing,d.$During,d.$Round,{$Move:d.$Move,$OriginalWidth:n,$OriginalHeight:l});E.$ZIndex=E.$ZIndex||1;j[v].push(E)}})});o.reverse();a.$Each(o,function(b){a.$Each(b,function(c){var f=c[0],e=c[1],d=f+","+e,b=h;if(e||f)b=a.$CloneNode(h);a.$SetStyles(b,u[d]);a.$CssOverflow(b,"hidden");a.$CssPosition(b,"absolute");A.$AddClipElement(b);m[d]=b;a.$ShowElement(b,!k)})})}function v(){var a=this,b=0;l.call(a,0,u);a.$OnPositionChange=function(c,a){if(a-b>h){b=a;e&&e.$ShowFrame(a);g&&g.$ShowFrame(a)}};a.$Transition=r}f.$GetTransition=function(){var a=0,c=t.$Transitions,d=c.length;if(w)a=x++%d;else a=b.floor(b.random()*d);c[a]&&(c[a].$Index=a);return c[a]};f.$Initialize=function(w,x,j,l,a){r=a;a=k(a,h);var i=l.$Item,d=j.$Item;i["no-image"]=!l.$Image;d["no-image"]=!j.$Image;var m=i,o=d,v=a,c=a.$Brother||k({},h);if(!a.$SlideOut){m=d;o=i}var t=c.$Shift||0;g=new p(n,o,c,b.max(t-c.$Interval,0),s,q);e=new p(n,m,v,b.max(c.$Interval-t,0),s,q);g.$ShowFrame(0);e.$ShowFrame(0);u=b.max(g.$EndTime,e.$EndTime);f.$Index=w};f.$Clear=function(){n.$Clear();g=j;e=j};f.$GetProcessor=function(){var a=j;if(e)a=new v;return a};if(a.$IsBrowserIe9Earlier()||a.$IsBrowserOpera()||y&&a.$WebKitVersion()<537)h=16;m.call(f);l.call(f,-1e7,1e7)};var h=g.$JssorSlider$=function(q,fc){var o=this;function Ec(){var a=this;l.call(a,-1e8,2e8);a.$GetCurrentSlideInfo=function(){var c=a.$GetPosition_Display(),d=b.floor(c),f=t(d),e=c-b.floor(c);return{$Index:f,$VirtualIndex:d,$Position:e}};a.$OnPositionChange=function(d,a){var e=b.floor(a);if(e!=a&&a>d)e++;Ub(e,c);o.$TriggerEvent(h.$EVT_POSITION_CHANGE,t(a),t(d),a,d)}}function Dc(){var b=this;l.call(b,0,0,{$LoopLength:r});a.$Each(C,function(a){D&1&&a.$SetLoopLength(r);b.$Chain(a);a.$Shift(fb/bc)})}function Cc(){var a=this,b=Tb.$Elmt;l.call(a,-1,2,{$Easing:d.$EaseLinear,$Setter:{$Position:Zb},$LoopLength:r},b,{$Position:1},{$Position:-2});a.$Wrapper=b}function qc(n,m){var a=this,d,e,g,k,b;l.call(a,-1e8,2e8,{$IntervalMax:100});a.$OnStart=function(){O=c;R=j;o.$TriggerEvent(h.$EVT_SWIPE_START,t(w.$GetPosition()),w.$GetPosition())};a.$OnStop=function(){O=i;k=i;var a=w.$GetCurrentSlideInfo();o.$TriggerEvent(h.$EVT_SWIPE_END,t(w.$GetPosition()),w.$GetPosition());!a.$Position&&Gc(a.$VirtualIndex,s)};a.$OnPositionChange=function(i,h){var a;if(k)a=b;else{a=e;if(g){var c=h/g;a=f.$SlideEasing(c)*(e-d)+d}}w.$GoToPosition(a)};a.$PlayCarousel=function(b,f,c,h){d=b;e=f;g=c;w.$GoToPosition(b);a.$GoToPosition(0);a.$PlayToPosition(c,h)};a.$StandBy=function(d){k=c;b=d;a.$Play(d,j,c)};a.$SetStandByPosition=function(a){b=a};a.$MoveCarouselTo=function(a){w.$GoToPosition(a)};w=new Ec;w.$Combine(n);w.$Combine(m)}function rc(){var c=this,b=Xb();a.$CssZIndex(b,0);a.$Css(b,"pointerEvents","none");c.$Elmt=b;c.$AddClipElement=function(c){a.$AppendChild(b,c);a.$ShowElement(b)};c.$Clear=function(){a.$HideElement(b);a.$Empty(b)}}function Bc(k,e){var d=this,q,H,x,n,y=[],w,B,W,G,Q,F,g,v,p,eb;l.call(d,-u,u+1,{$SlideItemAnimator:c});function E(b){q&&q.$Revert();T(k,b,0);F=c;q=new I.$Class(k,I,a.$ParseFloat(a.$AttributeEx(k,"idle"))||pc);q.$GoToPosition(0)}function Y(){q.$Version<I.$Version&&E()}function N(p,r,m){if(!G){G=c;if(n&&m){var g=m.width,b=m.height,l=g,k=b;if(g&&b&&f.$FillMode){if(f.$FillMode&3&&(!(f.$FillMode&4)||g>K||b>J)){var j=i,q=K/J*b/g;if(f.$FillMode&1)j=q>1;else if(f.$FillMode&2)j=q<1;l=j?g*J/b:K;k=j?J:b*K/g}a.$CssWidth(n,l);a.$CssHeight(n,k);a.$CssTop(n,(J-k)/2);a.$CssLeft(n,(K-l)/2)}a.$CssPosition(n,"absolute");o.$TriggerEvent(h.$EVT_LOAD_END,e)}}a.$HideElement(r);p&&p(d)}function X(b,c,f,g){if(g==R&&s==e&&P)if(!Fc){var a=t(b);A.$Initialize(a,e,c,d,f);c.$HideContentForSlideshow();U.$Shift(a-U.$GetPosition_OuterBegin()-1);U.$GoToPosition(a);z.$PlayCarousel(b,b,0)}}function ab(b){if(b==R&&s==e){if(!g){var a=j;if(A)if(A.$Index==e)a=A.$GetProcessor();else A.$Clear();Y();g=new yc(k,e,a,q);g.$SetPlayer(p)}!g.$IsPlaying()&&g.$Replay()}}function S(c,h,l){if(c==e){if(c!=h)C[h]&&C[h].$ParkOut();else!l&&g&&g.$AdjustIdleOnPark();p&&p.$Enable();var m=R=a.$GetNow();d.$LoadImage(a.$CreateCallback(j,ab,m))}else{var k=b.min(e,c),i=b.max(e,c),o=b.min(i-k,k+r-i),n=u+f.$LazyLoading-1;(!Q||o<=n)&&d.$LoadImage()}}function bb(){if(s==e&&g){g.$Stop();p&&p.$Quit();p&&p.$Disable();g.$OpenSlideshowPanel()}}function db(){s==e&&g&&g.$Stop()}function Z(a){!M&&o.$TriggerEvent(h.$EVT_CLICK,e,a)}function O(){p=v.pInstance;g&&g.$SetPlayer(p)}d.$LoadImage=function(d,b){b=b||x;if(y.length&&!G){a.$ShowElement(b);if(!W){W=c;o.$TriggerEvent(h.$EVT_LOAD_START,e);a.$Each(y,function(b){if(!a.$Attribute(b,"src")){b.src=a.$AttributeEx(b,"src2");a.$CssDisplay(b,b["display-origin"])}})}a.$LoadImages(y,n,a.$CreateCallback(j,N,d,b))}else N(d,b)};d.$GoForNextSlide=function(){var h=e;if(f.$AutoPlaySteps<0)h-=r;var c=h+f.$AutoPlaySteps*wc;if(D&2)c=t(c);if(!(D&1))c=b.max(0,b.min(c,r-u));if(c!=e){if(A){var d=A.$GetTransition(r);if(d){var i=R=a.$GetNow(),g=C[t(c)];return g.$LoadImage(a.$CreateCallback(j,X,c,g,d,i),x)}}nb(c)}};d.$TryActivate=function(){S(e,e,c)};d.$ParkOut=function(){p&&p.$Quit();p&&p.$Disable();d.$UnhideContentForSlideshow();g&&g.$Abort();g=j;E()};d.$StampSlideItemElements=function(a){a=eb+"_"+a};d.$HideContentForSlideshow=function(){a.$HideElement(k)};d.$UnhideContentForSlideshow=function(){a.$ShowElement(k)};d.$EnablePlayer=function(){p&&p.$Enable()};function T(b,d,e){if(a.$Attribute(b,"jssor-slider"))return;if(!F){if(b.tagName=="IMG"){y.push(b);if(!a.$Attribute(b,"src")){Q=c;b["display-origin"]=a.$CssDisplay(b);a.$HideElement(b)}}a.$IsBrowserIe9Earlier()&&a.$CssZIndex(b,(a.$CssZIndex(b)||0)+1)}var f=a.$Children(b);a.$Each(f,function(f){var h=f.tagName,j=a.$AttributeEx(f,"u");if(j=="player"&&!v){v=f;if(v.pInstance)O();else a.$AddEvent(v,"dataavailable",O)}if(j=="caption"){if(d){a.$CssTransformOrigin(f,a.$AttributeEx(f,"to"));a.$CssBackfaceVisibility(f,a.$AttributeEx(f,"bf"));a.$CssTransformStyle(f,"preserve-3d")}else if(!a.$IsBrowserIE()){var g=a.$CloneNode(f,i,c);a.$InsertBefore(g,f,b);a.$RemoveElement(f,b);f=g;d=c}}else if(!F&&!e&&!n){if(h=="A"){if(a.$AttributeEx(f,"u")=="image")n=a.$FindChildByTag(f,"IMG");else n=a.$FindChild(f,"image",c);if(n){w=f;a.$CssDisplay(w,"block");a.$SetStyles(w,V);B=a.$CloneNode(w,c);a.$CssPosition(w,"relative");a.$CssOpacity(B,0);a.$Css(B,"backgroundColor","#000")}}else if(h=="IMG"&&a.$AttributeEx(f,"u")=="image")n=f;if(n){n.border=0;a.$SetStyles(n,V)}}T(f,d,e+1)})}d.$OnInnerOffsetChange=function(c,b){var a=u-b;Zb(H,a)};d.$Index=e;m.call(d);a.$CssPerspective(k,a.$AttributeEx(k,"p"));a.$CssPerspectiveOrigin(k,a.$AttributeEx(k,"po"));var L=a.$FindChild(k,"thumb",c);if(L){d.$Thumb=a.$CloneNode(L);a.$HideElement(L)}a.$ShowElement(k);x=a.$CloneNode(cb);a.$CssZIndex(x,1e3);a.$AddEvent(k,"click",Z);E(c);d.$Image=n;d.$Link=B;d.$Item=k;d.$Wrapper=H=k;a.$AppendChild(H,x);o.$On(203,S);o.$On(28,db);o.$On(24,bb)}function yc(y,f,p,q){var b=this,m=0,u=0,g,j,e,d,k,t,r,n=C[f];l.call(b,0,0);function v(){a.$Empty(N);dc&&k&&n.$Link&&a.$AppendChild(N,n.$Link);a.$ShowElement(N,!k&&n.$Image)}function w(){b.$Replay()}function x(a){r=a;b.$Stop();b.$Replay()}b.$Replay=function(){var a=b.$GetPosition_Display();if(!B&&!O&&!r&&s==f){if(!a){if(g&&!k){k=c;b.$OpenSlideshowPanel(c);o.$TriggerEvent(h.$EVT_SLIDESHOW_START,f,m,u,g,d)}v()}var i,p=h.$EVT_STATE_CHANGE;if(a!=d)if(a==e)i=d;else if(a==j)i=e;else if(!a)i=j;else i=b.$GetPlayToPosition();o.$TriggerEvent(p,f,a,m,j,e,d);var l=P&&(!E||F);if(a==d)(e!=d&&!(E&12)||l)&&n.$GoForNextSlide();else(l||a!=e)&&b.$PlayToPosition(i,w)}};b.$AdjustIdleOnPark=function(){e==d&&e==b.$GetPosition_Display()&&b.$GoToPosition(j)};b.$Abort=function(){A&&A.$Index==f&&A.$Clear();var a=b.$GetPosition_Display();a<d&&o.$TriggerEvent(h.$EVT_STATE_CHANGE,f,-a-1,m,j,e,d)};b.$OpenSlideshowPanel=function(b){p&&a.$CssOverflow(hb,b&&p.$Transition.$Outside?"":"hidden")};b.$OnInnerOffsetChange=function(b,a){if(k&&a>=g){k=i;v();n.$UnhideContentForSlideshow();A.$Clear();o.$TriggerEvent(h.$EVT_SLIDESHOW_END,f,m,u,g,d)}o.$TriggerEvent(h.$EVT_PROGRESS_CHANGE,f,a,m,j,e,d)};b.$SetPlayer=function(a){if(a&&!t){t=a;a.$On($JssorPlayer$.$EVT_SWITCH,x)}};p&&b.$Chain(p);g=b.$GetPosition_OuterEnd();b.$Chain(q);j=g+q.$IdleBegin;e=g+q.$IdleEnd;d=b.$GetPosition_OuterEnd()}function Zb(g,f){var e=x>0?x:gb,c=Bb*f*(e&1),d=Cb*f*(e>>1&1);c=b.round(c);d=b.round(d);a.$CssLeft(g,c);a.$CssTop(g,d)}function Pb(){pb=O;Kb=z.$GetPlayToPosition();G=w.$GetPosition()}function gc(){Pb();if(B||!F&&E&12){z.$Stop();o.$TriggerEvent(h.$EVT_FREEZE)}}function ec(e){if(!B&&(F||!(E&12))&&!z.$IsPlaying()){var c=w.$GetPosition(),a=b.ceil(G);if(e&&b.abs(H)>=f.$MinDragOffsetToSlide){a=b.ceil(c);a+=eb}if(!(D&1))a=b.min(r-u,b.max(a,0));var d=b.abs(a-c);d=1-b.pow(1-d,5);if(!M&&pb)z.$Continue(Kb);else if(c==a){tb.$EnablePlayer();tb.$TryActivate()}else z.$PlayCarousel(c,a,d*Vb)}}function Ib(b){!a.$AttributeEx(a.$EvtSrc(b),"nodrag")&&a.$CancelEvent(b)}function uc(a){Yb(a,1)}function Yb(b,d){b=a.$GetEvent(b);var k=a.$EvtSrc(b);if(!L&&!a.$AttributeEx(k,"nodrag")&&vc()&&(!d||b.touches.length==1)){B=c;Ab=i;R=j;a.$AddEvent(e,d?"touchmove":"mousemove",Db);a.$GetNow();M=0;gc();if(!pb)x=0;if(d){var g=b.touches[0];vb=g.clientX;wb=g.clientY}else{var f=a.$MousePosition(b);vb=f.x;wb=f.y}H=0;bb=0;eb=0;o.$TriggerEvent(h.$EVT_DRAG_START,t(G),G,b)}}function Db(e){if(B){e=a.$GetEvent(e);var f;if(e.type!="mousemove"){var l=e.touches[0];f={x:l.clientX,y:l.clientY}}else f=a.$MousePosition(e);if(f){var j=f.x-vb,k=f.y-wb;if(b.floor(G)!=G)x=x||gb&L;if((j||k)&&!x){if(L==3)if(b.abs(k)>b.abs(j))x=2;else x=1;else x=L;if(jb&&x==1&&b.abs(k)-b.abs(j)>3)Ab=c}if(x){var d=k,i=Cb;if(x==1){d=j;i=Bb}if(!(D&1)){if(d>0){var g=i*s,h=d-g;if(h>0)d=g+b.sqrt(h)*5}if(d<0){var g=i*(r-u-s),h=-d-g;if(h>0)d=-g-b.sqrt(h)*5}}if(H-bb<-2)eb=0;else if(H-bb>2)eb=-1;bb=H;H=d;sb=G-H/i/(Z||1);if(H&&x&&!Ab){a.$CancelEvent(e);if(!O)z.$StandBy(sb);else z.$SetStandByPosition(sb)}}}}}function mb(){sc();if(B){B=i;a.$GetNow();a.$RemoveEvent(e,"mousemove",Db);a.$RemoveEvent(e,"touchmove",Db);M=H;z.$Stop();var b=w.$GetPosition();o.$TriggerEvent(h.$EVT_DRAG_END,t(b),b,t(G),G);E&12&&Pb();ec(c)}}function kc(c){if(M){a.$StopEvent(c);var b=a.$EvtSrc(c);while(b&&v!==b){b.tagName=="A"&&a.$CancelEvent(c);try{b=b.parentNode}catch(d){break}}}}function oc(a){C[s];s=t(a);tb=C[s];Ub(a);return s}function Gc(a,b){x=0;oc(a);o.$TriggerEvent(h.$EVT_PARK,t(a),b)}function Ub(b,c){yb=b;a.$Each(S,function(a){a.$SetCurrentIndex(t(b),b,c)})}function vc(){var b=h.$DragRegistry||0,a=Y;if(jb)a&1&&(a&=1);h.$DragRegistry|=a;return L=a&~b}function sc(){if(L){h.$DragRegistry&=~Y;L=0}}function Xb(){var b=a.$CreateDiv();a.$SetStyles(b,V);a.$CssPosition(b,"absolute");return b}function t(a){return(a%r+r)%r}function lc(a,c){if(c)if(!D){a=b.min(b.max(a+yb,0),r-u);c=i}else if(D&2){a=t(a+yb);c=i}nb(a,f.$SlideDuration,c)}function zb(){a.$Each(S,function(a){a.$Show(a.$Options.$ChanceToShow<=F)})}function ic(){if(!F){F=1;zb();if(!B){E&12&&ec();E&3&&C[s].$TryActivate()}}}function hc(){if(F){F=0;zb();B||!(E&12)||gc()}}function jc(){V={$Width:K,$Height:J,$Top:0,$Left:0};a.$Each(T,function(b){a.$SetStyles(b,V);a.$CssPosition(b,"absolute");a.$CssOverflow(b,"hidden");a.$HideElement(b)});a.$SetStyles(cb,V)}function lb(b,a){nb(b,a,c)}function nb(g,e,l){if(Rb&&(!B&&(F||!(E&12))||f.$NaviQuitDrag)){O=c;B=i;z.$Stop();if(e==k)e=Vb;var d=Eb.$GetPosition_Display(),a=g;if(l){a=d+g;if(g>0)a=b.ceil(a);else a=b.floor(a)}if(D&2)a=t(a);if(!(D&1))a=b.max(0,b.min(a,r-u));var j=(a-d)%r;a=d+j;var h=d==a?0:e*b.abs(j);h=b.min(h,e*u*1.5);z.$PlayCarousel(d,a,h||1)}}o.$PlayTo=nb;o.$GoTo=function(a){w.$GoToPosition(a)};o.$Next=function(){lb(1)};o.$Prev=function(){lb(-1)};o.$Pause=function(){P=i};o.$Play=function(){if(!P){P=c;C[s]&&C[s].$TryActivate()}};o.$SetSlideshowTransitions=function(a){f.$SlideshowOptions.$Transitions=a};o.$SetCaptionTransitions=function(b){I.$Transitions=b;I.$Version=a.$GetNow()};o.$SlidesCount=function(){return T.length};o.$CurrentIndex=function(){return s};o.$IsAutoPlaying=function(){return P};o.$IsDragging=function(){return B};o.$IsSliding=function(){return O};o.$IsMouseOver=function(){return!F};o.$LastDragSucceded=function(){return M};function X(){return a.$CssWidth(y||q)}function ib(){return a.$CssHeight(y||q)}o.$OriginalWidth=o.$GetOriginalWidth=X;o.$OriginalHeight=o.$GetOriginalHeight=ib;function Gb(c,d){if(c==k)return a.$CssWidth(q);if(!y){var b=a.$CreateDiv(e);a.$ClassName(b,a.$ClassName(q));a.$CssCssText(b,a.$CssCssText(q));a.$CssDisplay(b,"block");a.$CssPosition(b,"relative");a.$CssTop(b,0);a.$CssLeft(b,0);a.$CssOverflow(b,"visible");y=a.$CreateDiv(e);a.$CssPosition(y,"absolute");a.$CssTop(y,0);a.$CssLeft(y,0);a.$CssWidth(y,a.$CssWidth(q));a.$CssHeight(y,a.$CssHeight(q));a.$CssTransformOrigin(y,"0 0");a.$AppendChild(y,b);var h=a.$Children(q);a.$AppendChild(q,y);a.$Css(q,"backgroundImage","");a.$Each(h,function(c){a.$AppendChild(a.$AttributeEx(c,"noscale")?q:b,c);a.$AttributeEx(c,"autocenter")&&Lb.push(c)})}Z=c/(d?a.$CssHeight:a.$CssWidth)(y);a.$CssScale(y,Z);var g=d?Z*X():c,f=d?c:Z*ib();a.$CssWidth(q,g);a.$CssHeight(q,f);a.$Each(Lb,function(b){var c=a.$ParseInt(a.$AttributeEx(b,"autocenter"));a.$CenterElement(b,c)})}o.$ScaleHeight=o.$GetScaleHeight=function(b){if(b==k)return a.$CssHeight(q);Gb(b,c)};o.$ScaleWidth=o.$SetScaleWidth=o.$GetScaleWidth=Gb;o.$GetVirtualIndex=function(a){var d=b.ceil(t(fb/bc)),c=t(a-s+d);if(c>u){if(a-s>r/2)a-=r;else if(a-s<=-r/2)a+=r}else a=s+c-d;return a};m.call(o);o.$Elmt=q=a.$GetElement(q);var f=a.$Extend({$FillMode:0,$LazyLoading:1,$ArrowKeyNavigation:1,$StartIndex:0,$AutoPlay:i,$Loop:1,$NaviQuitDrag:c,$AutoPlaySteps:1,$AutoPlayInterval:3e3,$PauseOnHover:1,$SlideDuration:500,$SlideEasing:d.$EaseOutQuad,$MinDragOffsetToSlide:20,$SlideSpacing:0,$Cols:1,$Align:0,$UISearchMode:1,$PlayOrientation:1,$DragOrientation:1},fc);if(f.$Idle!=k)f.$AutoPlayInterval=f.$Idle;if(f.$DisplayPieces!=k)f.$Cols=f.$DisplayPieces;if(f.$ParkingPosition!=k)f.$Align=f.$ParkingPosition;var gb=f.$PlayOrientation&3,wc=(f.$PlayOrientation&4)/-4||1,db=f.$SlideshowOptions,I=a.$Extend({$Class:p,$PlayInMode:1,$PlayOutMode:1},f.$CaptionSliderOptions);I.$Transitions=I.$Transitions||I.$CaptionTransitions;var qb=f.$BulletNavigatorOptions,W=f.$ArrowNavigatorOptions,ab=f.$ThumbnailNavigatorOptions,Q=!f.$UISearchMode,y,v=a.$FindChild(q,"slides",Q),cb=a.$FindChild(q,"loading",Q)||a.$CreateDiv(e),Jb=a.$FindChild(q,"navigator",Q),cc=a.$FindChild(q,"arrowleft",Q),ac=a.$FindChild(q,"arrowright",Q),Hb=a.$FindChild(q,"thumbnavigator",Q),nc=a.$CssWidth(v),mc=a.$CssHeight(v),V,T=[],xc=a.$Children(v);a.$Each(xc,function(b){if(b.tagName=="DIV"&&!a.$AttributeEx(b,"u"))T.push(b);else a.$IsBrowserIe9Earlier()&&a.$CssZIndex(b,(a.$CssZIndex(b)||0)+1)});var s=-1,yb,tb,r=T.length,K=f.$SlideWidth||nc,J=f.$SlideHeight||mc,Wb=f.$SlideSpacing,Bb=K+Wb,Cb=J+Wb,bc=gb&1?Bb:Cb,u=b.min(f.$Cols,r),hb,x,L,Ab,S=[],Qb,Sb,Ob,dc,Fc,P,E=f.$PauseOnHover,pc=f.$AutoPlayInterval,Vb=f.$SlideDuration,rb,ub,fb,Rb=u<r,D=Rb?f.$Loop:0,Y,M,F=1,O,B,R,vb=0,wb=0,H,bb,eb,Eb,w,U,z,Tb=new rc,Z,Lb=[];P=f.$AutoPlay;o.$Options=fc;jc();a.$Attribute(q,"jssor-slider",c);a.$CssZIndex(v,a.$CssZIndex(v)||0);a.$CssPosition(v,"absolute");hb=a.$CloneNode(v,c);a.$InsertBefore(hb,v);if(db){dc=db.$ShowLink;rb=db.$Class;ub=u==1&&r>1&&rb&&(!a.$IsBrowserIE()||a.$BrowserVersion()>=8)}fb=ub||u>=r||!(D&1)?0:f.$Align;Y=(u>1||fb?gb:-1)&f.$DragOrientation;var xb=v,C=[],A,N,Fb=a.$Device(),jb=Fb.$Touchable,G,pb,Kb,sb;Fb.$TouchActionAttr&&a.$Css(xb,Fb.$TouchActionAttr,([j,"pan-y","pan-x","none"])[Y]||"");U=new Cc;if(ub)A=new rb(Tb,K,J,db,jb);a.$AppendChild(hb,U.$Wrapper);a.$CssOverflow(v,"hidden");N=Xb();a.$Css(N,"backgroundColor","#000");a.$CssOpacity(N,0);a.$InsertBefore(N,xb.firstChild,xb);for(var ob=0;ob<T.length;ob++){var zc=T[ob],Ac=new Bc(zc,ob);C.push(Ac)}a.$HideElement(cb);Eb=new Dc;z=new qc(Eb,U);if(Y){a.$AddEvent(v,"mousedown",Yb);a.$AddEvent(v,"touchstart",uc);a.$AddEvent(v,"dragstart",Ib);a.$AddEvent(v,"selectstart",Ib);a.$AddEvent(e,"mouseup",mb);a.$AddEvent(e,"touchend",mb);a.$AddEvent(e,"touchcancel",mb);a.$AddEvent(g,"blur",mb)}E&=jb?10:5;if(Jb&&qb){Qb=new qb.$Class(Jb,qb,X(),ib());S.push(Qb)}if(W&&cc&&ac){W.$Loop=D;W.$Cols=u;Sb=new W.$Class(cc,ac,W,X(),ib());S.push(Sb)}if(Hb&&ab){ab.$StartIndex=f.$StartIndex;Ob=new ab.$Class(Hb,ab);S.push(Ob)}a.$Each(S,function(a){a.$Reset(r,C,cb);a.$On(n.$NAVIGATIONREQUEST,lc)});a.$Css(q,"visibility","visible");Gb(X());a.$AddEvent(v,"click",kc);a.$AddEvent(q,"mouseout",a.$MouseOverOutFilter(ic,q));a.$AddEvent(q,"mouseover",a.$MouseOverOutFilter(hc,q));zb();f.$ArrowKeyNavigation&&a.$AddEvent(e,"keydown",function(a){if(a.keyCode==37)lb(-f.$ArrowKeyNavigation);else a.keyCode==39&&lb(f.$ArrowKeyNavigation)});var kb=f.$StartIndex;if(!(D&1))kb=b.max(0,b.min(kb,r-u));z.$PlayCarousel(kb,kb,0)};h.$EVT_CLICK=21;h.$EVT_DRAG_START=22;h.$EVT_DRAG_END=23;h.$EVT_SWIPE_START=24;h.$EVT_SWIPE_END=25;h.$EVT_LOAD_START=26;h.$EVT_LOAD_END=27;h.$EVT_FREEZE=28;h.$EVT_POSITION_CHANGE=202;h.$EVT_PARK=203;h.$EVT_SLIDESHOW_START=206;h.$EVT_SLIDESHOW_END=207;h.$EVT_PROGRESS_CHANGE=208;h.$EVT_STATE_CHANGE=209;var n={$NAVIGATIONREQUEST:1,$INDEXCHANGE:2,$RESET:3};g.$JssorBulletNavigator$=function(e,C){var f=this;m.call(f);e=a.$GetElement(e);var s,A,z,r,l=0,d,o,k,w,x,h,g,q,p,B=[],y=[];function v(a){a!=-1&&y[a].$Selected(a==l)}function t(a){f.$TriggerEvent(n.$NAVIGATIONREQUEST,a*o)}f.$Elmt=e;f.$GetCurrentIndex=function(){return r};f.$SetCurrentIndex=function(a){if(a!=r){var d=l,c=b.floor(a/o);l=c;r=a;v(d);v(c)}};f.$Show=function(b){a.$ShowElement(e,b)};var u;f.$Reset=function(E){if(!u){s=b.ceil(E/o);l=0;var n=q+w,r=p+x,m=b.ceil(s/k)-1;A=q+n*(!h?m:k-1);z=p+r*(h?m:k-1);a.$CssWidth(e,A);a.$CssHeight(e,z);for(var f=0;f<s;f++){var C=a.$CreateSpan();a.$InnerText(C,f+1);var i=a.$BuildElement(g,"numbertemplate",C,c);a.$CssPosition(i,"absolute");var v=f%(m+1);a.$CssLeft(i,!h?n*v:f%k*n);a.$CssTop(i,h?r*v:b.floor(f/(m+1))*r);a.$AppendChild(e,i);B[f]=i;d.$ActionMode&1&&a.$AddEvent(i,"click",a.$CreateCallback(j,t,f));d.$ActionMode&2&&a.$AddEvent(i,"mouseover",a.$MouseOverOutFilter(a.$CreateCallback(j,t,f),i));y[f]=a.$Buttonize(i)}u=c}};f.$Options=d=a.$Extend({$SpacingX:10,$SpacingY:10,$Orientation:1,$ActionMode:1},C);g=a.$FindChild(e,"prototype");q=a.$CssWidth(g);p=a.$CssHeight(g);a.$RemoveElement(g,e);o=d.$Steps||1;k=d.$Lanes||1;w=d.$SpacingX;x=d.$SpacingY;h=d.$Orientation-1;d.$Scale==i&&a.$Attribute(e,"noscale",c);d.$AutoCenter&&a.$Attribute(e,"autocenter",d.$AutoCenter)};g.$JssorArrowNavigator$=function(b,g,h){var d=this;m.call(d);var r,q,e,f,k;a.$CssWidth(b);a.$CssHeight(b);function l(a){d.$TriggerEvent(n.$NAVIGATIONREQUEST,a,c)}function p(c){a.$ShowElement(b,c||!h.$Loop&&e==0);a.$ShowElement(g,c||!h.$Loop&&e>=q-h.$Cols);r=c}d.$GetCurrentIndex=function(){return e};d.$SetCurrentIndex=function(b,a,c){if(c)e=a;else{e=b;p(r)}};d.$Show=p;var o;d.$Reset=function(d){q=d;e=0;if(!o){a.$AddEvent(b,"click",a.$CreateCallback(j,l,-k));a.$AddEvent(g,"click",a.$CreateCallback(j,l,k));a.$Buttonize(b);a.$Buttonize(g);o=c}};d.$Options=f=a.$Extend({$Steps:1},h);k=f.$Steps;if(f.$Scale==i){a.$Attribute(b,"noscale",c);a.$Attribute(g,"noscale",c)}if(f.$AutoCenter){a.$Attribute(b,"autocenter",f.$AutoCenter);a.$Attribute(g,"autocenter",f.$AutoCenter)}};g.$JssorThumbnailNavigator$=function(g,C){var l=this,z,q,d,w=[],A,y,e,r,s,v,u,p,t,f,o;m.call(l);g=a.$GetElement(g);function B(m,f){var g=this,b,k,i;function p(){k.$Selected(q==f)}function h(d){if(d||!t.$LastDragSucceded()){var a=e-f%e,b=t.$GetVirtualIndex((f+a)/e-1),c=b*e+e-a;l.$TriggerEvent(n.$NAVIGATIONREQUEST,c)}}g.$Index=f;g.$Highlight=p;i=m.$Thumb||m.$Image||a.$CreateDiv();g.$Wrapper=b=a.$BuildElement(o,"thumbnailtemplate",i,c);k=a.$Buttonize(b);d.$ActionMode&1&&a.$AddEvent(b,"click",a.$CreateCallback(j,h,0));d.$ActionMode&2&&a.$AddEvent(b,"mouseover",a.$MouseOverOutFilter(a.$CreateCallback(j,h,1),b))}l.$GetCurrentIndex=function(){return q};l.$SetCurrentIndex=function(c,d,f){var a=q;q=c;a!=-1&&w[a].$Highlight();w[c].$Highlight();!f&&t.$PlayTo(t.$GetVirtualIndex(b.floor(d/e)))};l.$Show=function(b){a.$ShowElement(g,b)};var x;l.$Reset=function(F,C){if(!x){z=F;b.ceil(z/e);q=-1;p=b.min(p,C.length);var j=d.$Orientation&1,m=v+(v+r)*(e-1)*(1-j),l=u+(u+s)*(e-1)*j,o=m+(m+r)*(p-1)*j,n=l+(l+s)*(p-1)*(1-j);a.$CssPosition(f,"absolute");a.$CssOverflow(f,"hidden");d.$AutoCenter&1&&a.$CssLeft(f,(A-o)/2);d.$AutoCenter&2&&a.$CssTop(f,(y-n)/2);a.$CssWidth(f,o);a.$CssHeight(f,n);var k=[];a.$Each(C,function(l,g){var h=new B(l,g),d=h.$Wrapper,c=b.floor(g/e),i=g%e;a.$CssLeft(d,(v+r)*i*(1-j));a.$CssTop(d,(u+s)*i*j);if(!k[c]){k[c]=a.$CreateDiv();a.$AppendChild(f,k[c])}a.$AppendChild(k[c],d);w.push(h)});var E=a.$Extend({$AutoPlay:i,$NaviQuitDrag:i,$SlideWidth:m,$SlideHeight:l,$SlideSpacing:r*j+s*(1-j),$MinDragOffsetToSlide:12,$SlideDuration:200,$PauseOnHover:1,$PlayOrientation:d.$Orientation,$DragOrientation:d.$NoDrag||d.$DisableDrag?0:d.$Orientation},d);t=new h(g,E);x=c}};l.$Options=d=a.$Extend({$SpacingX:0,$SpacingY:0,$Cols:1,$Orientation:1,$AutoCenter:3,$ActionMode:1},C);if(d.$DisplayPieces!=k)d.$Cols=d.$DisplayPieces;if(d.$Rows!=k)d.$Lanes=d.$Rows;A=a.$CssWidth(g);y=a.$CssHeight(g);f=a.$FindChild(g,"slides",c);o=a.$FindChild(f,"prototype");v=a.$CssWidth(o);u=a.$CssHeight(o);a.$RemoveElement(o,f);e=d.$Lanes||1;r=d.$SpacingX;s=d.$SpacingY;p=d.$Cols;d.$Scale==i&&a.$Attribute(g,"noscale",c)};function p(e,d,c){var b=this;l.call(b,0,c);b.$Revert=a.$EmptyFunction;b.$IdleBegin=0;b.$IdleEnd=c}g.$JssorCaptionSlider$=function(h,f,i){var c=this;l.call(c,0,0);var e,d;function g(p,h,f){var c=this,g,n=f?h.$PlayInMode:h.$PlayOutMode,e=h.$Transitions,o={$Transition:"t",$Delay:"d",$Duration:"du",x:"x",y:"y",$Rotate:"r",$Zoom:"z",$Opacity:"f",$BeginTime:"b"},d={$Default:function(b,a){if(!isNaN(a.$Value))b=a.$Value;else b*=a.$Percent;return b},$Opacity:function(b,a){return this.$Default(b-1,a)}};d.$Zoom=d.$Opacity;l.call(c,0,0);function j(r,m){var l=[],i,k=[],c=[];function h(c,d){var b={};a.$Each(o,function(g,h){var e=a.$AttributeEx(c,g+(d||""));if(e){var f={};if(g=="t")f.$Value=e;else if(e.indexOf("%")+1)f.$Percent=a.$ParseFloat(e)/100;else f.$Value=a.$ParseFloat(e);b[h]=f}});return b}function p(){return e[b.floor(b.random()*e.length)]}function g(f){var h;if(f=="*")h=p();else if(f){var d=e[a.$ParseInt(f)]||e[f];if(a.$IsArray(d)){if(f!=i){i=f;c[f]=0;k[f]=d[b.floor(b.random()*d.length)]}else c[f]++;d=k[f];if(a.$IsArray(d)){d=d.length&&d[c[f]%d.length];if(a.$IsArray(d))d=d[b.floor(b.random()*d.length)]}}h=d;if(a.$IsString(h))h=g(h)}return h}var q=a.$Children(r);a.$Each(q,function(b){var c=[];c.$Elmt=b;var e=a.$AttributeEx(b,"u")=="caption";a.$Each(f?[0,3]:[2],function(l,o){if(e){var k,f;if(l!=2||!a.$AttributeEx(b,"t3")){f=h(b,l);if(l==2&&!f.$Transition){f.$Delay=f.$Delay||{$Value:0};f=a.$Extend(h(b,0),f)}}if(f&&f.$Transition){k=g(f.$Transition.$Value);if(k){var i=a.$Extend({$Delay:0},k);a.$Each(f,function(c,a){var b=(d[a]||d.$Default).apply(d,[i[a],f[a]]);if(!isNaN(b))i[a]=b});if(!o)if(f.$BeginTime)i.$BeginTime=f.$BeginTime.$Value||0;else if(n&2)i.$BeginTime=0}}c.push(i)}if(m%2&&!o)c.$Children=j(b,m+1)});l.push(c)});return l}function m(w,c,z){var g={$Easing:c.$Easing,$Round:c.$Round,$During:c.$During,$Reverse:f&&!z},m=w,r=a.$ParentNode(w),k=a.$CssWidth(m),j=a.$CssHeight(m),y=a.$CssWidth(r),x=a.$CssHeight(r),h={},e={},i=c.$ScaleClip||1;if(c.$Opacity)e.$Opacity=1-c.$Opacity;g.$OriginalWidth=k;g.$OriginalHeight=j;if(c.$Zoom||c.$Rotate){e.$Zoom=(c.$Zoom||2)-2;if(a.$IsBrowserIe9Earlier()||a.$IsBrowserOpera())e.$Zoom=b.min(e.$Zoom,1);h.$Zoom=1;var B=c.$Rotate||0;e.$Rotate=B*360;h.$Rotate=0}else if(c.$Clip){var s={$Top:0,$Right:k,$Bottom:j,$Left:0},v=a.$Extend({},s),d=v.$Offset={},u=c.$Clip&4,p=c.$Clip&8,t=c.$Clip&1,q=c.$Clip&2;if(u&&p){d.$Top=j/2*i;d.$Bottom=-d.$Top}else if(u)d.$Bottom=-j*i;else if(p)d.$Top=j*i;if(t&&q){d.$Left=k/2*i;d.$Right=-d.$Left}else if(t)d.$Right=-k*i;else if(q)d.$Left=k*i;g.$Move=c.$Move;e.$Clip=v;h.$Clip=s}var n=0,o=0;if(c.x)n-=y*c.x;if(c.y)o-=x*c.y;if(n||o||g.$Move){e.$Left=n;e.$Top=o}var A=c.$Duration;h=a.$Extend(h,a.$GetStyles(m,e));g.$Setter=a.$StyleSetterEx();return new l(c.$Delay,A,g,m,h,e)}function i(b,d){a.$Each(d,function(d){var a,h=d.$Elmt,e=d[0],j=d[1];if(e){a=m(h,e);e.$BeginTime==k&&a.$Shift(b);b=a.$GetPosition_OuterEnd()}b=i(b,d.$Children);if(j){var f=m(h,j,1);f.$Shift(b);c.$Combine(f);g.$Combine(f)}a&&c.$Combine(a)});return b}c.$Revert=function(){c.$GoToPosition(c.$GetPosition_OuterEnd()*(f||0));g.$GoToPosition(0)};g=new l(0,0);i(0,n?j(p,1):[])}c.$Revert=function(){d.$Revert();e.$Revert()};e=new g(h,f,1);c.$IdleBegin=e.$GetPosition_OuterEnd();c.$IdleEnd=c.$IdleBegin+i;d=new g(h,f);d.$Shift(c.$IdleEnd);c.$Combine(d);c.$Combine(e)};g.$JssorCaptionSlideo$=function(n,g,m){var b=this,o,h={},i=g.$Transitions,d=new l(0,0);l.call(b,0,0);function j(d,c){var b={};a.$Each(d,function(d,f){var e=h[f];if(e){if(a.$IsPlainObject(d))d=j(d,c||f=="e");else if(c)if(a.$IsNumeric(d))d=o[d];b[e]=d}});return b}function k(e,c){var b=[],d=a.$Children(e);a.$Each(d,function(d){var h=a.$AttributeEx(d,"u")=="caption";if(h){var e=a.$AttributeEx(d,"t"),g=i[a.$ParseInt(e)]||i[e],f={$Elmt:d,$Transition:g};b.push(f)}if(c<5)b=b.concat(k(d,c+1))});return b}function r(c,e,b){a.$Each(e,function(f){var e=j(f),g={$Easing:a.$FormatEasings(e.$Easing),$Setter:a.$StyleSetterEx(),$OriginalWidth:b.$Width,$OriginalHeight:b.$Height},h=new l(f.b,f.d,g,c,b,e);d.$Combine(h);b=a.$AddDif(b,e)});return b}function q(b){a.$Each(b,function(e){var b=e.$Elmt,d=a.$CssWidth(b),c=a.$CssHeight(b),f={$Left:a.$CssLeft(b),$Top:a.$CssTop(b),$Opacity:1,$ZIndex:a.$CssZIndex(b)||0,$Rotate:0,$RotateX:0,$RotateY:0,$ScaleX:1,$ScaleY:1,$TranslateX:0,$TranslateY:0,$TranslateZ:0,$SkewX:0,$SkewY:0,$Width:d,$Height:c,$Clip:{$Top:0,$Right:d,$Bottom:c,$Left:0}};r(b,e.$Transition,f)})}function t(g,f,h){var e=g.b-f;if(e){var a=new l(f,e);a.$Combine(d,c);a.$Shift(h);b.$Combine(a)}b.$Expand(g.d);return e}function s(f){var c=d.$GetPosition_OuterBegin(),e=0;a.$Each(f,function(d,f){d=a.$Extend({d:m},d);t(d,c,e);c=d.b;e+=d.d;if(!f||d.t==2){b.$IdleBegin=c;b.$IdleEnd=c+d.d}})}b.$Revert=function(){b.$GoToPosition(-1,c)};o=[f.$Swing,f.$Linear,f.$InQuad,f.$OutQuad,f.$InOutQuad,f.$InCubic,f.$OutCubic,f.$InOutCubic,f.$InQuart,f.$OutQuart,f.$InOutQuart,f.$InQuint,f.$OutQuint,f.$InOutQuint,f.$InSine,f.$OutSine,f.$InOutSine,f.$InExpo,f.$OutExpo,f.$InOutExpo,f.$InCirc,f.$OutCirc,f.$InOutCirc,f.$InElastic,f.$OutElastic,f.$InOutElastic,f.$InBack,f.$OutBack,f.$InOutBack,f.$InBounce,f.$OutBounce,f.$InOutBounce,f.$GoBack,f.$InWave,f.$OutWave,f.$OutJump,f.$InJump];var u={$Top:"y",$Left:"x",$Bottom:"m",$Right:"t",$Rotate:"r",$RotateX:"rX",$RotateY:"rY",$ScaleX:"sX",$ScaleY:"sY",$TranslateX:"tX",$TranslateY:"tY",$TranslateZ:"tZ",$SkewX:"kX",$SkewY:"kY",$Opacity:"o",$Easing:"e",$ZIndex:"i",$Clip:"c"};a.$Each(u,function(b,a){h[b]=a});q(k(n,1));d.$GoToPosition(-1);var p=g.$Breaks||[],e=[].concat(p[a.$ParseInt(a.$AttributeEx(n,"b"))]||[]);e.push({b:d.$GetPosition_OuterEnd(),d:e.length?0:m});s(e);b.$GoToPosition(-1)}})(window,document,Math,null,true,false)
...\ No newline at end of file ...\ No newline at end of file
1 (function() {
2 var MutationObserver, Util, WeakMap, getComputedStyle, getComputedStyleRX,
3 __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
4 __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
5
6 Util = (function() {
7 function Util() {}
8
9 Util.prototype.extend = function(custom, defaults) {
10 var key, value;
11 for (key in defaults) {
12 value = defaults[key];
13 if (custom[key] == null) {
14 custom[key] = value;
15 }
16 }
17 return custom;
18 };
19
20 Util.prototype.isMobile = function(agent) {
21 return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(agent);
22 };
23
24 Util.prototype.addEvent = function(elem, event, fn) {
25 if (elem.addEventListener != null) {
26 return elem.addEventListener(event, fn, false);
27 } else if (elem.attachEvent != null) {
28 return elem.attachEvent("on" + event, fn);
29 } else {
30 return elem[event] = fn;
31 }
32 };
33
34 Util.prototype.removeEvent = function(elem, event, fn) {
35 if (elem.removeEventListener != null) {
36 return elem.removeEventListener(event, fn, false);
37 } else if (elem.detachEvent != null) {
38 return elem.detachEvent("on" + event, fn);
39 } else {
40 return delete elem[event];
41 }
42 };
43
44 Util.prototype.innerHeight = function() {
45 if ('innerHeight' in window) {
46 return window.innerHeight;
47 } else {
48 return document.documentElement.clientHeight;
49 }
50 };
51
52 return Util;
53
54 })();
55
56 WeakMap = this.WeakMap || this.MozWeakMap || (WeakMap = (function() {
57 function WeakMap() {
58 this.keys = [];
59 this.values = [];
60 }
61
62 WeakMap.prototype.get = function(key) {
63 var i, item, _i, _len, _ref;
64 _ref = this.keys;
65 for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {
66 item = _ref[i];
67 if (item === key) {
68 return this.values[i];
69 }
70 }
71 };
72
73 WeakMap.prototype.set = function(key, value) {
74 var i, item, _i, _len, _ref;
75 _ref = this.keys;
76 for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {
77 item = _ref[i];
78 if (item === key) {
79 this.values[i] = value;
80 return;
81 }
82 }
83 this.keys.push(key);
84 return this.values.push(value);
85 };
86
87 return WeakMap;
88
89 })());
90
91 MutationObserver = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (MutationObserver = (function() {
92 function MutationObserver() {
93 if (typeof console !== "undefined" && console !== null) {
94 console.warn('MutationObserver is not supported by your browser.');
95 }
96 if (typeof console !== "undefined" && console !== null) {
97 console.warn('WOW.js cannot detect dom mutations, please call .sync() after loading new content.');
98 }
99 }
100
101 MutationObserver.notSupported = true;
102
103 MutationObserver.prototype.observe = function() {};
104
105 return MutationObserver;
106
107 })());
108
109 getComputedStyle = this.getComputedStyle || function(el, pseudo) {
110 this.getPropertyValue = function(prop) {
111 var _ref;
112 if (prop === 'float') {
113 prop = 'styleFloat';
114 }
115 if (getComputedStyleRX.test(prop)) {
116 prop.replace(getComputedStyleRX, function(_, char) {
117 return char.toUpperCase();
118 });
119 }
120 return ((_ref = el.currentStyle) != null ? _ref[prop] : void 0) || null;
121 };
122 return this;
123 };
124
125 getComputedStyleRX = /(\-([a-z]){1})/g;
126
127 this.WOW = (function() {
128 WOW.prototype.defaults = {
129 boxClass: 'wow',
130 animateClass: 'animated',
131 offset: 0,
132 mobile: true,
133 live: true
134 };
135
136 function WOW(options) {
137 if (options == null) {
138 options = {};
139 }
140 this.scrollCallback = __bind(this.scrollCallback, this);
141 this.scrollHandler = __bind(this.scrollHandler, this);
142 this.start = __bind(this.start, this);
143 this.scrolled = true;
144 this.config = this.util().extend(options, this.defaults);
145 this.animationNameCache = new WeakMap();
146 }
147
148 WOW.prototype.init = function() {
149 var _ref;
150 this.element = window.document.documentElement;
151 if ((_ref = document.readyState) === "interactive" || _ref === "complete") {
152 this.start();
153 } else {
154 this.util().addEvent(document, 'DOMContentLoaded', this.start);
155 }
156 return this.finished = [];
157 };
158
159 WOW.prototype.start = function() {
160 var box, _i, _len, _ref;
161 this.stopped = false;
162 this.boxes = (function() {
163 var _i, _len, _ref, _results;
164 _ref = this.element.querySelectorAll("." + this.config.boxClass);
165 _results = [];
166 for (_i = 0, _len = _ref.length; _i < _len; _i++) {
167 box = _ref[_i];
168 _results.push(box);
169 }
170 return _results;
171 }).call(this);
172 this.all = (function() {
173 var _i, _len, _ref, _results;
174 _ref = this.boxes;
175 _results = [];
176 for (_i = 0, _len = _ref.length; _i < _len; _i++) {
177 box = _ref[_i];
178 _results.push(box);
179 }
180 return _results;
181 }).call(this);
182 if (this.boxes.length) {
183 if (this.disabled()) {
184 this.resetStyle();
185 } else {
186 _ref = this.boxes;
187 for (_i = 0, _len = _ref.length; _i < _len; _i++) {
188 box = _ref[_i];
189 this.applyStyle(box, true);
190 }
191 this.util().addEvent(window, 'scroll', this.scrollHandler);
192 this.util().addEvent(window, 'resize', this.scrollHandler);
193 this.interval = setInterval(this.scrollCallback, 50);
194 }
195 }
196 if (this.config.live) {
197 return new MutationObserver((function(_this) {
198 return function(records) {
199 var node, record, _j, _len1, _results;
200 _results = [];
201 for (_j = 0, _len1 = records.length; _j < _len1; _j++) {
202 record = records[_j];
203 _results.push((function() {
204 var _k, _len2, _ref1, _results1;
205 _ref1 = record.addedNodes || [];
206 _results1 = [];
207 for (_k = 0, _len2 = _ref1.length; _k < _len2; _k++) {
208 node = _ref1[_k];
209 _results1.push(this.doSync(node));
210 }
211 return _results1;
212 }).call(_this));
213 }
214 return _results;
215 };
216 })(this)).observe(document.body, {
217 childList: true,
218 subtree: true
219 });
220 }
221 };
222
223 WOW.prototype.stop = function() {
224 this.stopped = true;
225 this.util().removeEvent(window, 'scroll', this.scrollHandler);
226 this.util().removeEvent(window, 'resize', this.scrollHandler);
227 if (this.interval != null) {
228 return clearInterval(this.interval);
229 }
230 };
231
232 WOW.prototype.sync = function(element) {
233 if (MutationObserver.notSupported) {
234 return this.doSync(this.element);
235 }
236 };
237
238 WOW.prototype.doSync = function(element) {
239 var box, _i, _len, _ref, _results;
240 if (!this.stopped) {
241 if (element == null) {
242 element = this.element;
243 }
244 if (element.nodeType !== 1) {
245 return;
246 }
247 element = element.parentNode || element;
248 _ref = element.querySelectorAll("." + this.config.boxClass);
249 _results = [];
250 for (_i = 0, _len = _ref.length; _i < _len; _i++) {
251 box = _ref[_i];
252 if (__indexOf.call(this.all, box) < 0) {
253 this.applyStyle(box, true);
254 this.boxes.push(box);
255 this.all.push(box);
256 _results.push(this.scrolled = true);
257 } else {
258 _results.push(void 0);
259 }
260 }
261 return _results;
262 }
263 };
264
265 WOW.prototype.show = function(box) {
266 this.applyStyle(box);
267 return box.className = "" + box.className + " " + this.config.animateClass;
268 };
269
270 WOW.prototype.applyStyle = function(box, hidden) {
271 var delay, duration, iteration;
272 duration = box.getAttribute('data-wow-duration');
273 delay = box.getAttribute('data-wow-delay');
274 iteration = box.getAttribute('data-wow-iteration');
275 return this.animate((function(_this) {
276 return function() {
277 return _this.customStyle(box, hidden, duration, delay, iteration);
278 };
279 })(this));
280 };
281
282 WOW.prototype.animate = (function() {
283 if ('requestAnimationFrame' in window) {
284 return function(callback) {
285 return window.requestAnimationFrame(callback);
286 };
287 } else {
288 return function(callback) {
289 return callback();
290 };
291 }
292 })();
293
294 WOW.prototype.resetStyle = function() {
295 var box, _i, _len, _ref, _results;
296 _ref = this.boxes;
297 _results = [];
298 for (_i = 0, _len = _ref.length; _i < _len; _i++) {
299 box = _ref[_i];
300 _results.push(box.setAttribute('style', 'visibility: visible;'));
301 }
302 return _results;
303 };
304
305 WOW.prototype.customStyle = function(box, hidden, duration, delay, iteration) {
306 if (hidden) {
307 this.cacheAnimationName(box);
308 }
309 box.style.visibility = hidden ? 'hidden' : 'visible';
310 if (duration) {
311 this.vendorSet(box.style, {
312 animationDuration: duration
313 });
314 }
315 if (delay) {
316 this.vendorSet(box.style, {
317 animationDelay: delay
318 });
319 }
320 if (iteration) {
321 this.vendorSet(box.style, {
322 animationIterationCount: iteration
323 });
324 }
325 this.vendorSet(box.style, {
326 animationName: hidden ? 'none' : this.cachedAnimationName(box)
327 });
328 return box;
329 };
330
331 WOW.prototype.vendors = ["moz", "webkit"];
332
333 WOW.prototype.vendorSet = function(elem, properties) {
334 var name, value, vendor, _results;
335 _results = [];
336 for (name in properties) {
337 value = properties[name];
338 elem["" + name] = value;
339 _results.push((function() {
340 var _i, _len, _ref, _results1;
341 _ref = this.vendors;
342 _results1 = [];
343 for (_i = 0, _len = _ref.length; _i < _len; _i++) {
344 vendor = _ref[_i];
345 _results1.push(elem["" + vendor + (name.charAt(0).toUpperCase()) + (name.substr(1))] = value);
346 }
347 return _results1;
348 }).call(this));
349 }
350 return _results;
351 };
352
353 WOW.prototype.vendorCSS = function(elem, property) {
354 var result, style, vendor, _i, _len, _ref;
355 style = getComputedStyle(elem);
356 result = style.getPropertyCSSValue(property);
357 _ref = this.vendors;
358 for (_i = 0, _len = _ref.length; _i < _len; _i++) {
359 vendor = _ref[_i];
360 result = result || style.getPropertyCSSValue("-" + vendor + "-" + property);
361 }
362 return result;
363 };
364
365 WOW.prototype.animationName = function(box) {
366 var animationName;
367 try {
368 animationName = this.vendorCSS(box, 'animation-name').cssText;
369 } catch (_error) {
370 animationName = getComputedStyle(box).getPropertyValue('animation-name');
371 }
372 if (animationName === 'none') {
373 return '';
374 } else {
375 return animationName;
376 }
377 };
378
379 WOW.prototype.cacheAnimationName = function(box) {
380 return this.animationNameCache.set(box, this.animationName(box));
381 };
382
383 WOW.prototype.cachedAnimationName = function(box) {
384 return this.animationNameCache.get(box);
385 };
386
387 WOW.prototype.scrollHandler = function() {
388 return this.scrolled = true;
389 };
390
391 WOW.prototype.scrollCallback = function() {
392 var box;
393 if (this.scrolled) {
394 this.scrolled = false;
395 this.boxes = (function() {
396 var _i, _len, _ref, _results;
397 _ref = this.boxes;
398 _results = [];
399 for (_i = 0, _len = _ref.length; _i < _len; _i++) {
400 box = _ref[_i];
401 if (!(box)) {
402 continue;
403 }
404 if (this.isVisible(box)) {
405 this.show(box);
406 continue;
407 }
408 _results.push(box);
409 }
410 return _results;
411 }).call(this);
412 if (!(this.boxes.length || this.config.live)) {
413 return this.stop();
414 }
415 }
416 };
417
418 WOW.prototype.offsetTop = function(element) {
419 var top;
420 while (element.offsetTop === void 0) {
421 element = element.parentNode;
422 }
423 top = element.offsetTop;
424 while (element = element.offsetParent) {
425 top += element.offsetTop;
426 }
427 return top;
428 };
429
430 WOW.prototype.isVisible = function(box) {
431 var bottom, offset, top, viewBottom, viewTop;
432 offset = box.getAttribute('data-wow-offset') || this.config.offset;
433 viewTop = window.pageYOffset;
434 viewBottom = viewTop + Math.min(this.element.clientHeight, this.util().innerHeight()) - offset;
435 top = this.offsetTop(box);
436 bottom = top + box.clientHeight;
437 return top <= viewBottom && bottom >= viewTop;
438 };
439
440 WOW.prototype.util = function() {
441 return this._util != null ? this._util : this._util = new Util();
442 };
443
444 WOW.prototype.disabled = function() {
445 return !this.config.mobile && this.util().isMobile(navigator.userAgent);
446 };
447
448 return WOW;
449
450 })();
451
452 }).call(this);
1 /*
2 * This is a manifest file that'll be compiled into application.css, which will include all the files
3 * listed below.
4 *
5 * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6 * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7 *
8 * You're free to add application-wide styles to this file and they'll appear at the top of the
9 * compiled file, but it's generally better to create a new file per style scope.
10 *
11 *= require_self
12 *= require_directory ./admin
13 */
1 input:focus,
2 textarea:focus{
3 outline: none;
4 }
5 .posts a:link, .posts a:visited{
6 color: #7594B3;
7 }
8 .posts a:hover{
9 color: #f78927;
10 }
11 .posts a{
12 text-decoration: none;
13 }
14 .postdetail{
15 padding: 20px 0;
16 margin-bottom: 50px;
17 border-bottom: 3px solid #ccc;
18 min-height:400px;
19 }
20 .postdetail li{
21 margin: 0.5em auto;
22 line-height: 26px;
23 }
24 .postdetail p{
25 line-height: 30px;
26 margin: 0.5em auto;
27 }
28 .postdetail img,
29 .mp4 video,
30 .mp4 object{
31 max-width: 100%;
32 height: auto;
33 }
34 .postdetail > table,
35 .posts > table{
36 width: 100%;
37 border-collapse: collapse;
38 empty-cells: show;
39 border: 1px solid #ddd;
40 }
41 .postdetail > table th,
42 .posts > table th{
43 font-size: 13px;
44 height: 30px;
45 line-height: 30px;
46 font-weight: bold;
47 text-align: center;
48 background: #EEEEEE;
49 position: relative;
50 }
51 .postdetail > table td,
52 .posts > table td{
53 text-align: center;
54 font-size: 12px;
55 color: #666;
56 line-height: 30px;
57 padding-left: 10px;
58 border: 1px solid #ddd;
59 }
60 .posts{
61 width: 96%;
62 max-width: 960px;
63 margin: 50px auto;
64 }
65 .posts > table th input{
66 position: absolute;
67 left: 2%;
68 top: 17%;
69 width: 100px;
70 }
71 .posts h3.title{
72 position: relative;
73 }
74 .posts h3.title small{
75 position: absolute;
76 right: 0;
77 bottom: 0;
78 font-weight: normal;
79 font-size: 14px;
80 }
81 .posts textarea{
82 resize:none;
83 }
84 .posts .field{
85 margin-bottom: 20px;
86 font-size: 14px;
87 }
88 .posts .field span{
89 margin-right: 10px;
90 }
91 .posts .field input{
92 width: 300px;
93 line-height: 21px;
94 padding: 2px 5px;
95 }
96 .posts .field select{
97 width: 100px;
98 }
99 .postdetail form .field{
100 margin: auto auto 20px auto;
101 }
102 .postdetail form .field label{
103 width: 70px;
104 display: inline-block;
105 vertical-align: middle;
106 overflow: hidden;
107 font-size: 14px;
108 padding: 0 20px 0 0;
109 }
110 .postdetail form .field input,
111 .postdetail form .field textarea{
112 width: 320px;
113 line-height: 20px;
114 border: 1px solid #2aad6f;
115 font-size: 12px;
116 padding: .5em .8em;
117 border-radius: 2px;
118 vertical-align: middle;
119 background: #ffffff;
120 }
121 .postdetail form .field input.captcha{
122 width: 160px;
123 }
124 .postdetail form .field input.submit{
125 width: 120px;
126 padding: 0 30px;
127 border: none;
128 color: #fff;
129 background-color: #2aad6f;
130 -webkit-border-radius: 3px;
131 -moz-border-radius: 3px;
132 border-radius: 3px;
133 line-height: 34px;
134 font-size: 14px;
135 cursor: pointer;
136 }
137 .postdetail form .field textarea{
138 height: 120px;
139 resize: none;
140 }
141 .pagination {
142 margin: 10px auto;
143 overflow: hidden;
144 padding: 10px 0;
145 }
146 .pagination li{
147 display: inline-block;
148 margin: auto 2px;
149 }
150 .pagination li.disabled a{
151 background-color: #cccccc;
152 }
153 .pagination li.active a{
154 border: 1px solid #398439;
155 color: #ffffff;
156 background-color: #00AA91;
157 }
158 .pagination a {
159 border: 1px solid #cccccc;
160 color: #666666;
161 height: 26px;
162 line-height: 26px;
163 display: inline-block;
164 padding: 0 10px;
165 }
166 .pagination li.disabled a:hover,
167 .pagination li.disabled a:active{
168 color: #666666;
169 }
170 .pagination a:hover,
171 .pagination a:active {
172 color: #990000;
173 }
1 /*
2 * This is a manifest file that'll be compiled into application.css, which will include all the files
3 * listed below.
4 *
5 * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6 * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7 *
8 * You're free to add application-wide styles to this file and they'll appear at the top of the
9 * compiled file, but it's generally better to create a new file per style scope.
10 *
11 *= require_self
12 *= require_directory ./plugin
13 *= require_directory ./website
14 */
1 /*
2 *= require_directory ./mobile
3 */
1 .gallery-view .image-container{position:relative;overflow:hidden;border:2px solid white}.gallery-view .image-container img{position:absolute;top:-9999px;bottom:-9999px;left:-9999px;right:-9999px;margin:auto}.imageView .has-no-header{top:0px !important}.imageView .close-btn{font-weight:900;border:2px solid;position:absolute;right:5px;border-radius:5px}.imageView .headerView{background-image:none;background-color:black}.imageView .gallery-slide-view{width:98%;background-color:transparent}.imageView .image-subtitle{color:white;position:absolute;bottom:0px;left:10px;width:95%;height:15%;z-index:100}.imageView .listContainer{width:100%;height:100%;background-color:black}.imageView .hideAll{display:none}.imageView img{display:block;width:100%;height:auto}.imageView .scroll-view{position:absolute;width:100%;height:100%}.imageView .scroll-view .scroll{min-height:100%;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:center;-moz-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-content:stretch;-ms-flex-line-pack:stretch;align-content:stretch;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
1 .post-detail img{
2 max-width: 100%;
3 }
...\ No newline at end of file ...\ No newline at end of file
1 @charset "UTF-8";
2 /*!
3 Animate.css - http://daneden.me/animate
4 Licensed under the MIT license - http://opensource.org/licenses/MIT
5
6 Copyright (c) 2014 Daniel Eden
7 */
8
9 .animated {
10 -webkit-animation-duration: 1s;
11 animation-duration: 1s;
12 -webkit-animation-fill-mode: both;
13 animation-fill-mode: both;
14 }
15
16 .animated.infinite {
17 -webkit-animation-iteration-count: infinite;
18 animation-iteration-count: infinite;
19 }
20
21 .animated.hinge {
22 -webkit-animation-duration: 2s;
23 animation-duration: 2s;
24 }
25
26 @-webkit-keyframes bounce {
27 0%, 20%, 53%, 80%, 100% {
28 -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
29 transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
30 -webkit-transform: translate3d(0,0,0);
31 transform: translate3d(0,0,0);
32 }
33
34 40%, 43% {
35 -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
36 transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
37 -webkit-transform: translate3d(0, -30px, 0);
38 transform: translate3d(0, -30px, 0);
39 }
40
41 70% {
42 -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
43 transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
44 -webkit-transform: translate3d(0, -15px, 0);
45 transform: translate3d(0, -15px, 0);
46 }
47
48 90% {
49 -webkit-transform: translate3d(0,-4px,0);
50 transform: translate3d(0,-4px,0);
51 }
52 }
53
54 @keyframes bounce {
55 0%, 20%, 53%, 80%, 100% {
56 -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
57 transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
58 -webkit-transform: translate3d(0,0,0);
59 transform: translate3d(0,0,0);
60 }
61
62 40%, 43% {
63 -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
64 transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
65 -webkit-transform: translate3d(0, -30px, 0);
66 transform: translate3d(0, -30px, 0);
67 }
68
69 70% {
70 -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
71 transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
72 -webkit-transform: translate3d(0, -15px, 0);
73 transform: translate3d(0, -15px, 0);
74 }
75
76 90% {
77 -webkit-transform: translate3d(0,-4px,0);
78 transform: translate3d(0,-4px,0);
79 }
80 }
81
82 .bounce {
83 -webkit-animation-name: bounce;
84 animation-name: bounce;
85 -webkit-transform-origin: center bottom;
86 -ms-transform-origin: center bottom;
87 transform-origin: center bottom;
88 }
89
90 @-webkit-keyframes flash {
91 0%, 50%, 100% {
92 opacity: 1;
93 }
94
95 25%, 75% {
96 opacity: 0;
97 }
98 }
99
100 @keyframes flash {
101 0%, 50%, 100% {
102 opacity: 1;
103 }
104
105 25%, 75% {
106 opacity: 0;
107 }
108 }
109
110 .flash {
111 -webkit-animation-name: flash;
112 animation-name: flash;
113 }
114
115 /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
116
117 @-webkit-keyframes pulse {
118 0% {
119 -webkit-transform: scale3d(1, 1, 1);
120 transform: scale3d(1, 1, 1);
121 }
122
123 50% {
124 -webkit-transform: scale3d(1.05, 1.05, 1.05);
125 transform: scale3d(1.05, 1.05, 1.05);
126 }
127
128 100% {
129 -webkit-transform: scale3d(1, 1, 1);
130 transform: scale3d(1, 1, 1);
131 }
132 }
133
134 @keyframes pulse {
135 0% {
136 -webkit-transform: scale3d(1, 1, 1);
137 transform: scale3d(1, 1, 1);
138 }
139
140 50% {
141 -webkit-transform: scale3d(1.05, 1.05, 1.05);
142 transform: scale3d(1.05, 1.05, 1.05);
143 }
144
145 100% {
146 -webkit-transform: scale3d(1, 1, 1);
147 transform: scale3d(1, 1, 1);
148 }
149 }
150
151 .pulse {
152 -webkit-animation-name: pulse;
153 animation-name: pulse;
154 }
155
156 @-webkit-keyframes rubberBand {
157 0% {
158 -webkit-transform: scale3d(1, 1, 1);
159 transform: scale3d(1, 1, 1);
160 }
161
162 30% {
163 -webkit-transform: scale3d(1.25, 0.75, 1);
164 transform: scale3d(1.25, 0.75, 1);
165 }
166
167 40% {
168 -webkit-transform: scale3d(0.75, 1.25, 1);
169 transform: scale3d(0.75, 1.25, 1);
170 }
171
172 50% {
173 -webkit-transform: scale3d(1.15, 0.85, 1);
174 transform: scale3d(1.15, 0.85, 1);
175 }
176
177 65% {
178 -webkit-transform: scale3d(.95, 1.05, 1);
179 transform: scale3d(.95, 1.05, 1);
180 }
181
182 75% {
183 -webkit-transform: scale3d(1.05, .95, 1);
184 transform: scale3d(1.05, .95, 1);
185 }
186
187 100% {
188 -webkit-transform: scale3d(1, 1, 1);
189 transform: scale3d(1, 1, 1);
190 }
191 }
192
193 @keyframes rubberBand {
194 0% {
195 -webkit-transform: scale3d(1, 1, 1);
196 transform: scale3d(1, 1, 1);
197 }
198
199 30% {
200 -webkit-transform: scale3d(1.25, 0.75, 1);
201 transform: scale3d(1.25, 0.75, 1);
202 }
203
204 40% {
205 -webkit-transform: scale3d(0.75, 1.25, 1);
206 transform: scale3d(0.75, 1.25, 1);
207 }
208
209 50% {
210 -webkit-transform: scale3d(1.15, 0.85, 1);
211 transform: scale3d(1.15, 0.85, 1);
212 }
213
214 65% {
215 -webkit-transform: scale3d(.95, 1.05, 1);
216 transform: scale3d(.95, 1.05, 1);
217 }
218
219 75% {
220 -webkit-transform: scale3d(1.05, .95, 1);
221 transform: scale3d(1.05, .95, 1);
222 }
223
224 100% {
225 -webkit-transform: scale3d(1, 1, 1);
226 transform: scale3d(1, 1, 1);
227 }
228 }
229
230 .rubberBand {
231 -webkit-animation-name: rubberBand;
232 animation-name: rubberBand;
233 }
234
235 @-webkit-keyframes shake {
236 0%, 100% {
237 -webkit-transform: translate3d(0, 0, 0);
238 transform: translate3d(0, 0, 0);
239 }
240
241 10%, 30%, 50%, 70%, 90% {
242 -webkit-transform: translate3d(-10px, 0, 0);
243 transform: translate3d(-10px, 0, 0);
244 }
245
246 20%, 40%, 60%, 80% {
247 -webkit-transform: translate3d(10px, 0, 0);
248 transform: translate3d(10px, 0, 0);
249 }
250 }
251
252 @keyframes shake {
253 0%, 100% {
254 -webkit-transform: translate3d(0, 0, 0);
255 transform: translate3d(0, 0, 0);
256 }
257
258 10%, 30%, 50%, 70%, 90% {
259 -webkit-transform: translate3d(-10px, 0, 0);
260 transform: translate3d(-10px, 0, 0);
261 }
262
263 20%, 40%, 60%, 80% {
264 -webkit-transform: translate3d(10px, 0, 0);
265 transform: translate3d(10px, 0, 0);
266 }
267 }
268
269 .shake {
270 -webkit-animation-name: shake;
271 animation-name: shake;
272 }
273
274 @-webkit-keyframes swing {
275 20% {
276 -webkit-transform: rotate3d(0, 0, 1, 15deg);
277 transform: rotate3d(0, 0, 1, 15deg);
278 }
279
280 40% {
281 -webkit-transform: rotate3d(0, 0, 1, -10deg);
282 transform: rotate3d(0, 0, 1, -10deg);
283 }
284
285 60% {
286 -webkit-transform: rotate3d(0, 0, 1, 5deg);
287 transform: rotate3d(0, 0, 1, 5deg);
288 }
289
290 80% {
291 -webkit-transform: rotate3d(0, 0, 1, -5deg);
292 transform: rotate3d(0, 0, 1, -5deg);
293 }
294
295 100% {
296 -webkit-transform: rotate3d(0, 0, 1, 0deg);
297 transform: rotate3d(0, 0, 1, 0deg);
298 }
299 }
300
301 @keyframes swing {
302 20% {
303 -webkit-transform: rotate3d(0, 0, 1, 15deg);
304 transform: rotate3d(0, 0, 1, 15deg);
305 }
306
307 40% {
308 -webkit-transform: rotate3d(0, 0, 1, -10deg);
309 transform: rotate3d(0, 0, 1, -10deg);
310 }
311
312 60% {
313 -webkit-transform: rotate3d(0, 0, 1, 5deg);
314 transform: rotate3d(0, 0, 1, 5deg);
315 }
316
317 80% {
318 -webkit-transform: rotate3d(0, 0, 1, -5deg);
319 transform: rotate3d(0, 0, 1, -5deg);
320 }
321
322 100% {
323 -webkit-transform: rotate3d(0, 0, 1, 0deg);
324 transform: rotate3d(0, 0, 1, 0deg);
325 }
326 }
327
328 .swing {
329 -webkit-transform-origin: top center;
330 -ms-transform-origin: top center;
331 transform-origin: top center;
332 -webkit-animation-name: swing;
333 animation-name: swing;
334 }
335
336 @-webkit-keyframes tada {
337 0% {
338 -webkit-transform: scale3d(1, 1, 1);
339 transform: scale3d(1, 1, 1);
340 }
341
342 10%, 20% {
343 -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
344 transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
345 }
346
347 30%, 50%, 70%, 90% {
348 -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
349 transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
350 }
351
352 40%, 60%, 80% {
353 -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
354 transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
355 }
356
357 100% {
358 -webkit-transform: scale3d(1, 1, 1);
359 transform: scale3d(1, 1, 1);
360 }
361 }
362
363 @keyframes tada {
364 0% {
365 -webkit-transform: scale3d(1, 1, 1);
366 transform: scale3d(1, 1, 1);
367 }
368
369 10%, 20% {
370 -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
371 transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
372 }
373
374 30%, 50%, 70%, 90% {
375 -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
376 transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
377 }
378
379 40%, 60%, 80% {
380 -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
381 transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
382 }
383
384 100% {
385 -webkit-transform: scale3d(1, 1, 1);
386 transform: scale3d(1, 1, 1);
387 }
388 }
389
390 .tada {
391 -webkit-animation-name: tada;
392 animation-name: tada;
393 }
394
395 /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
396
397 @-webkit-keyframes wobble {
398 0% {
399 -webkit-transform: none;
400 transform: none;
401 }
402
403 15% {
404 -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
405 transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
406 }
407
408 30% {
409 -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
410 transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
411 }
412
413 45% {
414 -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
415 transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
416 }
417
418 60% {
419 -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
420 transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
421 }
422
423 75% {
424 -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
425 transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
426 }
427
428 100% {
429 -webkit-transform: none;
430 transform: none;
431 }
432 }
433
434 @keyframes wobble {
435 0% {
436 -webkit-transform: none;
437 transform: none;
438 }
439
440 15% {
441 -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
442 transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
443 }
444
445 30% {
446 -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
447 transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
448 }
449
450 45% {
451 -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
452 transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
453 }
454
455 60% {
456 -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
457 transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
458 }
459
460 75% {
461 -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
462 transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
463 }
464
465 100% {
466 -webkit-transform: none;
467 transform: none;
468 }
469 }
470
471 .wobble {
472 -webkit-animation-name: wobble;
473 animation-name: wobble;
474 }
475
476 @-webkit-keyframes bounceIn {
477 0%, 20%, 40%, 60%, 80%, 100% {
478 -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
479 transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
480 }
481
482 0% {
483 opacity: 0;
484 -webkit-transform: scale3d(.3, .3, .3);
485 transform: scale3d(.3, .3, .3);
486 }
487
488 20% {
489 -webkit-transform: scale3d(1.1, 1.1, 1.1);
490 transform: scale3d(1.1, 1.1, 1.1);
491 }
492
493 40% {
494 -webkit-transform: scale3d(.9, .9, .9);
495 transform: scale3d(.9, .9, .9);
496 }
497
498 60% {
499 opacity: 1;
500 -webkit-transform: scale3d(1.03, 1.03, 1.03);
501 transform: scale3d(1.03, 1.03, 1.03);
502 }
503
504 80% {
505 -webkit-transform: scale3d(.97, .97, .97);
506 transform: scale3d(.97, .97, .97);
507 }
508
509 100% {
510 opacity: 1;
511 -webkit-transform: scale3d(1, 1, 1);
512 transform: scale3d(1, 1, 1);
513 }
514 }
515
516 @keyframes bounceIn {
517 0%, 20%, 40%, 60%, 80%, 100% {
518 -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
519 transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
520 }
521
522 0% {
523 opacity: 0;
524 -webkit-transform: scale3d(.3, .3, .3);
525 transform: scale3d(.3, .3, .3);
526 }
527
528 20% {
529 -webkit-transform: scale3d(1.1, 1.1, 1.1);
530 transform: scale3d(1.1, 1.1, 1.1);
531 }
532
533 40% {
534 -webkit-transform: scale3d(.9, .9, .9);
535 transform: scale3d(.9, .9, .9);
536 }
537
538 60% {
539 opacity: 1;
540 -webkit-transform: scale3d(1.03, 1.03, 1.03);
541 transform: scale3d(1.03, 1.03, 1.03);
542 }
543
544 80% {
545 -webkit-transform: scale3d(.97, .97, .97);
546 transform: scale3d(.97, .97, .97);
547 }
548
549 100% {
550 opacity: 1;
551 -webkit-transform: scale3d(1, 1, 1);
552 transform: scale3d(1, 1, 1);
553 }
554 }
555
556 .bounceIn {
557 -webkit-animation-name: bounceIn;
558 animation-name: bounceIn;
559 -webkit-animation-duration: .75s;
560 animation-duration: .75s;
561 }
562
563 @-webkit-keyframes bounceInDown {
564 0%, 60%, 75%, 90%, 100% {
565 -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
566 transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
567 }
568
569 0% {
570 opacity: 0;
571 -webkit-transform: translate3d(0, -3000px, 0);
572 transform: translate3d(0, -3000px, 0);
573 }
574
575 60% {
576 opacity: 1;
577 -webkit-transform: translate3d(0, 25px, 0);
578 transform: translate3d(0, 25px, 0);
579 }
580
581 75% {
582 -webkit-transform: translate3d(0, -10px, 0);
583 transform: translate3d(0, -10px, 0);
584 }
585
586 90% {
587 -webkit-transform: translate3d(0, 5px, 0);
588 transform: translate3d(0, 5px, 0);
589 }
590
591 100% {
592 -webkit-transform: none;
593 transform: none;
594 }
595 }
596
597 @keyframes bounceInDown {
598 0%, 60%, 75%, 90%, 100% {
599 -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
600 transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
601 }
602
603 0% {
604 opacity: 0;
605 -webkit-transform: translate3d(0, -3000px, 0);
606 transform: translate3d(0, -3000px, 0);
607 }
608
609 60% {
610 opacity: 1;
611 -webkit-transform: translate3d(0, 25px, 0);
612 transform: translate3d(0, 25px, 0);
613 }
614
615 75% {
616 -webkit-transform: translate3d(0, -10px, 0);
617 transform: translate3d(0, -10px, 0);
618 }
619
620 90% {
621 -webkit-transform: translate3d(0, 5px, 0);
622 transform: translate3d(0, 5px, 0);
623 }
624
625 100% {
626 -webkit-transform: none;
627 transform: none;
628 }
629 }
630
631 .bounceInDown {
632 -webkit-animation-name: bounceInDown;
633 animation-name: bounceInDown;
634 }
635
636 @-webkit-keyframes bounceInLeft {
637 0%, 60%, 75%, 90%, 100% {
638 -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
639 transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
640 }
641
642 0% {
643 opacity: 0;
644 -webkit-transform: translate3d(-3000px, 0, 0);
645 transform: translate3d(-3000px, 0, 0);
646 }
647
648 60% {
649 opacity: 1;
650 -webkit-transform: translate3d(25px, 0, 0);
651 transform: translate3d(25px, 0, 0);
652 }
653
654 75% {
655 -webkit-transform: translate3d(-10px, 0, 0);
656 transform: translate3d(-10px, 0, 0);
657 }
658
659 90% {
660 -webkit-transform: translate3d(5px, 0, 0);
661 transform: translate3d(5px, 0, 0);
662 }
663
664 100% {
665 -webkit-transform: none;
666 transform: none;
667 }
668 }
669
670 @keyframes bounceInLeft {
671 0%, 60%, 75%, 90%, 100% {
672 -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
673 transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
674 }
675
676 0% {
677 opacity: 0;
678 -webkit-transform: translate3d(-3000px, 0, 0);
679 transform: translate3d(-3000px, 0, 0);
680 }
681
682 60% {
683 opacity: 1;
684 -webkit-transform: translate3d(25px, 0, 0);
685 transform: translate3d(25px, 0, 0);
686 }
687
688 75% {
689 -webkit-transform: translate3d(-10px, 0, 0);
690 transform: translate3d(-10px, 0, 0);
691 }
692
693 90% {
694 -webkit-transform: translate3d(5px, 0, 0);
695 transform: translate3d(5px, 0, 0);
696 }
697
698 100% {
699 -webkit-transform: none;
700 transform: none;
701 }
702 }
703
704 .bounceInLeft {
705 -webkit-animation-name: bounceInLeft;
706 animation-name: bounceInLeft;
707 }
708
709 @-webkit-keyframes bounceInRight {
710 0%, 60%, 75%, 90%, 100% {
711 -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
712 transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
713 }
714
715 0% {
716 opacity: 0;
717 -webkit-transform: translate3d(3000px, 0, 0);
718 transform: translate3d(3000px, 0, 0);
719 }
720
721 60% {
722 opacity: 1;
723 -webkit-transform: translate3d(-25px, 0, 0);
724 transform: translate3d(-25px, 0, 0);
725 }
726
727 75% {
728 -webkit-transform: translate3d(10px, 0, 0);
729 transform: translate3d(10px, 0, 0);
730 }
731
732 90% {
733 -webkit-transform: translate3d(-5px, 0, 0);
734 transform: translate3d(-5px, 0, 0);
735 }
736
737 100% {
738 -webkit-transform: none;
739 transform: none;
740 }
741 }
742
743 @keyframes bounceInRight {
744 0%, 60%, 75%, 90%, 100% {
745 -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
746 transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
747 }
748
749 0% {
750 opacity: 0;
751 -webkit-transform: translate3d(3000px, 0, 0);
752 transform: translate3d(3000px, 0, 0);
753 }
754
755 60% {
756 opacity: 1;
757 -webkit-transform: translate3d(-25px, 0, 0);
758 transform: translate3d(-25px, 0, 0);
759 }
760
761 75% {
762 -webkit-transform: translate3d(10px, 0, 0);
763 transform: translate3d(10px, 0, 0);
764 }
765
766 90% {
767 -webkit-transform: translate3d(-5px, 0, 0);
768 transform: translate3d(-5px, 0, 0);
769 }
770
771 100% {
772 -webkit-transform: none;
773 transform: none;
774 }
775 }
776
777 .bounceInRight {
778 -webkit-animation-name: bounceInRight;
779 animation-name: bounceInRight;
780 }
781
782 @-webkit-keyframes bounceInUp {
783 0%, 60%, 75%, 90%, 100% {
784 -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
785 transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
786 }
787
788 0% {
789 opacity: 0;
790 -webkit-transform: translate3d(0, 3000px, 0);
791 transform: translate3d(0, 3000px, 0);
792 }
793
794 60% {
795 opacity: 1;
796 -webkit-transform: translate3d(0, -20px, 0);
797 transform: translate3d(0, -20px, 0);
798 }
799
800 75% {
801 -webkit-transform: translate3d(0, 10px, 0);
802 transform: translate3d(0, 10px, 0);
803 }
804
805 90% {
806 -webkit-transform: translate3d(0, -5px, 0);
807 transform: translate3d(0, -5px, 0);
808 }
809
810 100% {
811 -webkit-transform: translate3d(0, 0, 0);
812 transform: translate3d(0, 0, 0);
813 }
814 }
815
816 @keyframes bounceInUp {
817 0%, 60%, 75%, 90%, 100% {
818 -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
819 transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
820 }
821
822 0% {
823 opacity: 0;
824 -webkit-transform: translate3d(0, 3000px, 0);
825 transform: translate3d(0, 3000px, 0);
826 }
827
828 60% {
829 opacity: 1;
830 -webkit-transform: translate3d(0, -20px, 0);
831 transform: translate3d(0, -20px, 0);
832 }
833
834 75% {
835 -webkit-transform: translate3d(0, 10px, 0);
836 transform: translate3d(0, 10px, 0);
837 }
838
839 90% {
840 -webkit-transform: translate3d(0, -5px, 0);
841 transform: translate3d(0, -5px, 0);
842 }
843
844 100% {
845 -webkit-transform: translate3d(0, 0, 0);
846 transform: translate3d(0, 0, 0);
847 }
848 }
849
850 .bounceInUp {
851 -webkit-animation-name: bounceInUp;
852 animation-name: bounceInUp;
853 }
854
855 @-webkit-keyframes bounceOut {
856 20% {
857 -webkit-transform: scale3d(.9, .9, .9);
858 transform: scale3d(.9, .9, .9);
859 }
860
861 50%, 55% {
862 opacity: 1;
863 -webkit-transform: scale3d(1.1, 1.1, 1.1);
864 transform: scale3d(1.1, 1.1, 1.1);
865 }
866
867 100% {
868 opacity: 0;
869 -webkit-transform: scale3d(.3, .3, .3);
870 transform: scale3d(.3, .3, .3);
871 }
872 }
873
874 @keyframes bounceOut {
875 20% {
876 -webkit-transform: scale3d(.9, .9, .9);
877 transform: scale3d(.9, .9, .9);
878 }
879
880 50%, 55% {
881 opacity: 1;
882 -webkit-transform: scale3d(1.1, 1.1, 1.1);
883 transform: scale3d(1.1, 1.1, 1.1);
884 }
885
886 100% {
887 opacity: 0;
888 -webkit-transform: scale3d(.3, .3, .3);
889 transform: scale3d(.3, .3, .3);
890 }
891 }
892
893 .bounceOut {
894 -webkit-animation-name: bounceOut;
895 animation-name: bounceOut;
896 -webkit-animation-duration: .75s;
897 animation-duration: .75s;
898 }
899
900 @-webkit-keyframes bounceOutDown {
901 20% {
902 -webkit-transform: translate3d(0, 10px, 0);
903 transform: translate3d(0, 10px, 0);
904 }
905
906 40%, 45% {
907 opacity: 1;
908 -webkit-transform: translate3d(0, -20px, 0);
909 transform: translate3d(0, -20px, 0);
910 }
911
912 100% {
913 opacity: 0;
914 -webkit-transform: translate3d(0, 2000px, 0);
915 transform: translate3d(0, 2000px, 0);
916 }
917 }
918
919 @keyframes bounceOutDown {
920 20% {
921 -webkit-transform: translate3d(0, 10px, 0);
922 transform: translate3d(0, 10px, 0);
923 }
924
925 40%, 45% {
926 opacity: 1;
927 -webkit-transform: translate3d(0, -20px, 0);
928 transform: translate3d(0, -20px, 0);
929 }
930
931 100% {
932 opacity: 0;
933 -webkit-transform: translate3d(0, 2000px, 0);
934 transform: translate3d(0, 2000px, 0);
935 }
936 }
937
938 .bounceOutDown {
939 -webkit-animation-name: bounceOutDown;
940 animation-name: bounceOutDown;
941 }
942
943 @-webkit-keyframes bounceOutLeft {
944 20% {
945 opacity: 1;
946 -webkit-transform: translate3d(20px, 0, 0);
947 transform: translate3d(20px, 0, 0);
948 }
949
950 100% {
951 opacity: 0;
952 -webkit-transform: translate3d(-2000px, 0, 0);
953 transform: translate3d(-2000px, 0, 0);
954 }
955 }
956
957 @keyframes bounceOutLeft {
958 20% {
959 opacity: 1;
960 -webkit-transform: translate3d(20px, 0, 0);
961 transform: translate3d(20px, 0, 0);
962 }
963
964 100% {
965 opacity: 0;
966 -webkit-transform: translate3d(-2000px, 0, 0);
967 transform: translate3d(-2000px, 0, 0);
968 }
969 }
970
971 .bounceOutLeft {
972 -webkit-animation-name: bounceOutLeft;
973 animation-name: bounceOutLeft;
974 }
975
976 @-webkit-keyframes bounceOutRight {
977 20% {
978 opacity: 1;
979 -webkit-transform: translate3d(-20px, 0, 0);
980 transform: translate3d(-20px, 0, 0);
981 }
982
983 100% {
984 opacity: 0;
985 -webkit-transform: translate3d(2000px, 0, 0);
986 transform: translate3d(2000px, 0, 0);
987 }
988 }
989
990 @keyframes bounceOutRight {
991 20% {
992 opacity: 1;
993 -webkit-transform: translate3d(-20px, 0, 0);
994 transform: translate3d(-20px, 0, 0);
995 }
996
997 100% {
998 opacity: 0;
999 -webkit-transform: translate3d(2000px, 0, 0);
1000 transform: translate3d(2000px, 0, 0);
1001 }
1002 }
1003
1004 .bounceOutRight {
1005 -webkit-animation-name: bounceOutRight;
1006 animation-name: bounceOutRight;
1007 }
1008
1009 @-webkit-keyframes bounceOutUp {
1010 20% {
1011 -webkit-transform: translate3d(0, -10px, 0);
1012 transform: translate3d(0, -10px, 0);
1013 }
1014
1015 40%, 45% {
1016 opacity: 1;
1017 -webkit-transform: translate3d(0, 20px, 0);
1018 transform: translate3d(0, 20px, 0);
1019 }
1020
1021 100% {
1022 opacity: 0;
1023 -webkit-transform: translate3d(0, -2000px, 0);
1024 transform: translate3d(0, -2000px, 0);
1025 }
1026 }
1027
1028 @keyframes bounceOutUp {
1029 20% {
1030 -webkit-transform: translate3d(0, -10px, 0);
1031 transform: translate3d(0, -10px, 0);
1032 }
1033
1034 40%, 45% {
1035 opacity: 1;
1036 -webkit-transform: translate3d(0, 20px, 0);
1037 transform: translate3d(0, 20px, 0);
1038 }
1039
1040 100% {
1041 opacity: 0;
1042 -webkit-transform: translate3d(0, -2000px, 0);
1043 transform: translate3d(0, -2000px, 0);
1044 }
1045 }
1046
1047 .bounceOutUp {
1048 -webkit-animation-name: bounceOutUp;
1049 animation-name: bounceOutUp;
1050 }
1051
1052 @-webkit-keyframes fadeIn {
1053 0% {opacity: 0;}
1054 100% {opacity: 1;}
1055 }
1056
1057 @keyframes fadeIn {
1058 0% {opacity: 0;}
1059 100% {opacity: 1;}
1060 }
1061
1062 .fadeIn {
1063 -webkit-animation-name: fadeIn;
1064 animation-name: fadeIn;
1065 }
1066
1067 @-webkit-keyframes fadeInDown {
1068 0% {
1069 opacity: 0;
1070 -webkit-transform: translate3d(0, -100%, 0);
1071 transform: translate3d(0, -100%, 0);
1072 }
1073
1074 100% {
1075 opacity: 1;
1076 -webkit-transform: none;
1077 transform: none;
1078 }
1079 }
1080
1081 @keyframes fadeInDown {
1082 0% {
1083 opacity: 0;
1084 -webkit-transform: translate3d(0, -100%, 0);
1085 transform: translate3d(0, -100%, 0);
1086 }
1087
1088 100% {
1089 opacity: 1;
1090 -webkit-transform: none;
1091 transform: none;
1092 }
1093 }
1094
1095 .fadeInDown {
1096 -webkit-animation-name: fadeInDown;
1097 animation-name: fadeInDown;
1098 }
1099
1100 @-webkit-keyframes fadeInDownBig {
1101 0% {
1102 opacity: 0;
1103 -webkit-transform: translate3d(0, -2000px, 0);
1104 transform: translate3d(0, -2000px, 0);
1105 }
1106
1107 100% {
1108 opacity: 1;
1109 -webkit-transform: none;
1110 transform: none;
1111 }
1112 }
1113
1114 @keyframes fadeInDownBig {
1115 0% {
1116 opacity: 0;
1117 -webkit-transform: translate3d(0, -2000px, 0);
1118 transform: translate3d(0, -2000px, 0);
1119 }
1120
1121 100% {
1122 opacity: 1;
1123 -webkit-transform: none;
1124 transform: none;
1125 }
1126 }
1127
1128 .fadeInDownBig {
1129 -webkit-animation-name: fadeInDownBig;
1130 animation-name: fadeInDownBig;
1131 }
1132
1133 @-webkit-keyframes fadeInLeft {
1134 0% {
1135 opacity: 0;
1136 -webkit-transform: translate3d(-100%, 0, 0);
1137 transform: translate3d(-100%, 0, 0);
1138 }
1139
1140 100% {
1141 opacity: 1;
1142 -webkit-transform: none;
1143 transform: none;
1144 }
1145 }
1146
1147 @keyframes fadeInLeft {
1148 0% {
1149 opacity: 0;
1150 -webkit-transform: translate3d(-100%, 0, 0);
1151 transform: translate3d(-100%, 0, 0);
1152 }
1153
1154 100% {
1155 opacity: 1;
1156 -webkit-transform: none;
1157 transform: none;
1158 }
1159 }
1160
1161 .fadeInLeft {
1162 -webkit-animation-name: fadeInLeft;
1163 animation-name: fadeInLeft;
1164 }
1165
1166 @-webkit-keyframes fadeInLeftBig {
1167 0% {
1168 opacity: 0;
1169 -webkit-transform: translate3d(-2000px, 0, 0);
1170 transform: translate3d(-2000px, 0, 0);
1171 }
1172
1173 100% {
1174 opacity: 1;
1175 -webkit-transform: none;
1176 transform: none;
1177 }
1178 }
1179
1180 @keyframes fadeInLeftBig {
1181 0% {
1182 opacity: 0;
1183 -webkit-transform: translate3d(-2000px, 0, 0);
1184 transform: translate3d(-2000px, 0, 0);
1185 }
1186
1187 100% {
1188 opacity: 1;
1189 -webkit-transform: none;
1190 transform: none;
1191 }
1192 }
1193
1194 .fadeInLeftBig {
1195 -webkit-animation-name: fadeInLeftBig;
1196 animation-name: fadeInLeftBig;
1197 }
1198
1199 @-webkit-keyframes fadeInRight {
1200 0% {
1201 opacity: 0;
1202 -webkit-transform: translate3d(100%, 0, 0);
1203 transform: translate3d(100%, 0, 0);
1204 }
1205
1206 100% {
1207 opacity: 1;
1208 -webkit-transform: none;
1209 transform: none;
1210 }
1211 }
1212
1213 @keyframes fadeInRight {
1214 0% {
1215 opacity: 0;
1216 -webkit-transform: translate3d(100%, 0, 0);
1217 transform: translate3d(100%, 0, 0);
1218 }
1219
1220 100% {
1221 opacity: 1;
1222 -webkit-transform: none;
1223 transform: none;
1224 }
1225 }
1226
1227 .fadeInRight {
1228 -webkit-animation-name: fadeInRight;
1229 animation-name: fadeInRight;
1230 }
1231
1232 @-webkit-keyframes fadeInRightBig {
1233 0% {
1234 opacity: 0;
1235 -webkit-transform: translate3d(2000px, 0, 0);
1236 transform: translate3d(2000px, 0, 0);
1237 }
1238
1239 100% {
1240 opacity: 1;
1241 -webkit-transform: none;
1242 transform: none;
1243 }
1244 }
1245
1246 @keyframes fadeInRightBig {
1247 0% {
1248 opacity: 0;
1249 -webkit-transform: translate3d(2000px, 0, 0);
1250 transform: translate3d(2000px, 0, 0);
1251 }
1252
1253 100% {
1254 opacity: 1;
1255 -webkit-transform: none;
1256 transform: none;
1257 }
1258 }
1259
1260 .fadeInRightBig {
1261 -webkit-animation-name: fadeInRightBig;
1262 animation-name: fadeInRightBig;
1263 }
1264
1265 @-webkit-keyframes fadeInUp {
1266 0% {
1267 opacity: 0;
1268 -webkit-transform: translate3d(0, 100%, 0);
1269 transform: translate3d(0, 100%, 0);
1270 }
1271
1272 100% {
1273 opacity: 1;
1274 -webkit-transform: none;
1275 transform: none;
1276 }
1277 }
1278
1279 @keyframes fadeInUp {
1280 0% {
1281 opacity: 0;
1282 -webkit-transform: translate3d(0, 100%, 0);
1283 transform: translate3d(0, 100%, 0);
1284 }
1285
1286 100% {
1287 opacity: 1;
1288 -webkit-transform: none;
1289 transform: none;
1290 }
1291 }
1292
1293 .fadeInUp {
1294 -webkit-animation-name: fadeInUp;
1295 animation-name: fadeInUp;
1296 }
1297
1298 @-webkit-keyframes fadeInUpBig {
1299 0% {
1300 opacity: 0;
1301 -webkit-transform: translate3d(0, 2000px, 0);
1302 transform: translate3d(0, 2000px, 0);
1303 }
1304
1305 100% {
1306 opacity: 1;
1307 -webkit-transform: none;
1308 transform: none;
1309 }
1310 }
1311
1312 @keyframes fadeInUpBig {
1313 0% {
1314 opacity: 0;
1315 -webkit-transform: translate3d(0, 2000px, 0);
1316 transform: translate3d(0, 2000px, 0);
1317 }
1318
1319 100% {
1320 opacity: 1;
1321 -webkit-transform: none;
1322 transform: none;
1323 }
1324 }
1325
1326 .fadeInUpBig {
1327 -webkit-animation-name: fadeInUpBig;
1328 animation-name: fadeInUpBig;
1329 }
1330
1331 @-webkit-keyframes fadeOut {
1332 0% {opacity: 1;}
1333 100% {opacity: 0;}
1334 }
1335
1336 @keyframes fadeOut {
1337 0% {opacity: 1;}
1338 100% {opacity: 0;}
1339 }
1340
1341 .fadeOut {
1342 -webkit-animation-name: fadeOut;
1343 animation-name: fadeOut;
1344 }
1345
1346 @-webkit-keyframes fadeOutDown {
1347 0% {
1348 opacity: 1;
1349 }
1350
1351 100% {
1352 opacity: 0;
1353 -webkit-transform: translate3d(0, 100%, 0);
1354 transform: translate3d(0, 100%, 0);
1355 }
1356 }
1357
1358 @keyframes fadeOutDown {
1359 0% {
1360 opacity: 1;
1361 }
1362
1363 100% {
1364 opacity: 0;
1365 -webkit-transform: translate3d(0, 100%, 0);
1366 transform: translate3d(0, 100%, 0);
1367 }
1368 }
1369
1370 .fadeOutDown {
1371 -webkit-animation-name: fadeOutDown;
1372 animation-name: fadeOutDown;
1373 }
1374
1375 @-webkit-keyframes fadeOutDownBig {
1376 0% {
1377 opacity: 1;
1378 }
1379
1380 100% {
1381 opacity: 0;
1382 -webkit-transform: translate3d(0, 2000px, 0);
1383 transform: translate3d(0, 2000px, 0);
1384 }
1385 }
1386
1387 @keyframes fadeOutDownBig {
1388 0% {
1389 opacity: 1;
1390 }
1391
1392 100% {
1393 opacity: 0;
1394 -webkit-transform: translate3d(0, 2000px, 0);
1395 transform: translate3d(0, 2000px, 0);
1396 }
1397 }
1398
1399 .fadeOutDownBig {
1400 -webkit-animation-name: fadeOutDownBig;
1401 animation-name: fadeOutDownBig;
1402 }
1403
1404 @-webkit-keyframes fadeOutLeft {
1405 0% {
1406 opacity: 1;
1407 }
1408
1409 100% {
1410 opacity: 0;
1411 -webkit-transform: translate3d(-100%, 0, 0);
1412 transform: translate3d(-100%, 0, 0);
1413 }
1414 }
1415
1416 @keyframes fadeOutLeft {
1417 0% {
1418 opacity: 1;
1419 }
1420
1421 100% {
1422 opacity: 0;
1423 -webkit-transform: translate3d(-100%, 0, 0);
1424 transform: translate3d(-100%, 0, 0);
1425 }
1426 }
1427
1428 .fadeOutLeft {
1429 -webkit-animation-name: fadeOutLeft;
1430 animation-name: fadeOutLeft;
1431 }
1432
1433 @-webkit-keyframes fadeOutLeftBig {
1434 0% {
1435 opacity: 1;
1436 }
1437
1438 100% {
1439 opacity: 0;
1440 -webkit-transform: translate3d(-2000px, 0, 0);
1441 transform: translate3d(-2000px, 0, 0);
1442 }
1443 }
1444
1445 @keyframes fadeOutLeftBig {
1446 0% {
1447 opacity: 1;
1448 }
1449
1450 100% {
1451 opacity: 0;
1452 -webkit-transform: translate3d(-2000px, 0, 0);
1453 transform: translate3d(-2000px, 0, 0);
1454 }
1455 }
1456
1457 .fadeOutLeftBig {
1458 -webkit-animation-name: fadeOutLeftBig;
1459 animation-name: fadeOutLeftBig;
1460 }
1461
1462 @-webkit-keyframes fadeOutRight {
1463 0% {
1464 opacity: 1;
1465 }
1466
1467 100% {
1468 opacity: 0;
1469 -webkit-transform: translate3d(100%, 0, 0);
1470 transform: translate3d(100%, 0, 0);
1471 }
1472 }
1473
1474 @keyframes fadeOutRight {
1475 0% {
1476 opacity: 1;
1477 }
1478
1479 100% {
1480 opacity: 0;
1481 -webkit-transform: translate3d(100%, 0, 0);
1482 transform: translate3d(100%, 0, 0);
1483 }
1484 }
1485
1486 .fadeOutRight {
1487 -webkit-animation-name: fadeOutRight;
1488 animation-name: fadeOutRight;
1489 }
1490
1491 @-webkit-keyframes fadeOutRightBig {
1492 0% {
1493 opacity: 1;
1494 }
1495
1496 100% {
1497 opacity: 0;
1498 -webkit-transform: translate3d(2000px, 0, 0);
1499 transform: translate3d(2000px, 0, 0);
1500 }
1501 }
1502
1503 @keyframes fadeOutRightBig {
1504 0% {
1505 opacity: 1;
1506 }
1507
1508 100% {
1509 opacity: 0;
1510 -webkit-transform: translate3d(2000px, 0, 0);
1511 transform: translate3d(2000px, 0, 0);
1512 }
1513 }
1514
1515 .fadeOutRightBig {
1516 -webkit-animation-name: fadeOutRightBig;
1517 animation-name: fadeOutRightBig;
1518 }
1519
1520 @-webkit-keyframes fadeOutUp {
1521 0% {
1522 opacity: 1;
1523 }
1524
1525 100% {
1526 opacity: 0;
1527 -webkit-transform: translate3d(0, -100%, 0);
1528 transform: translate3d(0, -100%, 0);
1529 }
1530 }
1531
1532 @keyframes fadeOutUp {
1533 0% {
1534 opacity: 1;
1535 }
1536
1537 100% {
1538 opacity: 0;
1539 -webkit-transform: translate3d(0, -100%, 0);
1540 transform: translate3d(0, -100%, 0);
1541 }
1542 }
1543
1544 .fadeOutUp {
1545 -webkit-animation-name: fadeOutUp;
1546 animation-name: fadeOutUp;
1547 }
1548
1549 @-webkit-keyframes fadeOutUpBig {
1550 0% {
1551 opacity: 1;
1552 }
1553
1554 100% {
1555 opacity: 0;
1556 -webkit-transform: translate3d(0, -2000px, 0);
1557 transform: translate3d(0, -2000px, 0);
1558 }
1559 }
1560
1561 @keyframes fadeOutUpBig {
1562 0% {
1563 opacity: 1;
1564 }
1565
1566 100% {
1567 opacity: 0;
1568 -webkit-transform: translate3d(0, -2000px, 0);
1569 transform: translate3d(0, -2000px, 0);
1570 }
1571 }
1572
1573 .fadeOutUpBig {
1574 -webkit-animation-name: fadeOutUpBig;
1575 animation-name: fadeOutUpBig;
1576 }
1577
1578 @-webkit-keyframes flip {
1579 0% {
1580 -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1581 transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1582 -webkit-animation-timing-function: ease-out;
1583 animation-timing-function: ease-out;
1584 }
1585
1586 40% {
1587 -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1588 transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1589 -webkit-animation-timing-function: ease-out;
1590 animation-timing-function: ease-out;
1591 }
1592
1593 50% {
1594 -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1595 transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1596 -webkit-animation-timing-function: ease-in;
1597 animation-timing-function: ease-in;
1598 }
1599
1600 80% {
1601 -webkit-transform: perspective(400px) scale3d(.95, .95, .95);
1602 transform: perspective(400px) scale3d(.95, .95, .95);
1603 -webkit-animation-timing-function: ease-in;
1604 animation-timing-function: ease-in;
1605 }
1606
1607 100% {
1608 -webkit-transform: perspective(400px);
1609 transform: perspective(400px);
1610 -webkit-animation-timing-function: ease-in;
1611 animation-timing-function: ease-in;
1612 }
1613 }
1614
1615 @keyframes flip {
1616 0% {
1617 -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1618 transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1619 -webkit-animation-timing-function: ease-out;
1620 animation-timing-function: ease-out;
1621 }
1622
1623 40% {
1624 -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1625 transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1626 -webkit-animation-timing-function: ease-out;
1627 animation-timing-function: ease-out;
1628 }
1629
1630 50% {
1631 -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1632 transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1633 -webkit-animation-timing-function: ease-in;
1634 animation-timing-function: ease-in;
1635 }
1636
1637 80% {
1638 -webkit-transform: perspective(400px) scale3d(.95, .95, .95);
1639 transform: perspective(400px) scale3d(.95, .95, .95);
1640 -webkit-animation-timing-function: ease-in;
1641 animation-timing-function: ease-in;
1642 }
1643
1644 100% {
1645 -webkit-transform: perspective(400px);
1646 transform: perspective(400px);
1647 -webkit-animation-timing-function: ease-in;
1648 animation-timing-function: ease-in;
1649 }
1650 }
1651
1652 .animated.flip {
1653 -webkit-backface-visibility: visible;
1654 backface-visibility: visible;
1655 -webkit-animation-name: flip;
1656 animation-name: flip;
1657 }
1658
1659 @-webkit-keyframes flipInX {
1660 0% {
1661 -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1662 transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1663 -webkit-transition-timing-function: ease-in;
1664 transition-timing-function: ease-in;
1665 opacity: 0;
1666 }
1667
1668 40% {
1669 -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1670 transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1671 -webkit-transition-timing-function: ease-in;
1672 transition-timing-function: ease-in;
1673 }
1674
1675 60% {
1676 -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1677 transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1678 opacity: 1;
1679 }
1680
1681 80% {
1682 -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
1683 transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
1684 }
1685
1686 100% {
1687 -webkit-transform: perspective(400px);
1688 transform: perspective(400px);
1689 }
1690 }
1691
1692 @keyframes flipInX {
1693 0% {
1694 -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1695 transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1696 -webkit-transition-timing-function: ease-in;
1697 transition-timing-function: ease-in;
1698 opacity: 0;
1699 }
1700
1701 40% {
1702 -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1703 transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1704 -webkit-transition-timing-function: ease-in;
1705 transition-timing-function: ease-in;
1706 }
1707
1708 60% {
1709 -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1710 transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1711 opacity: 1;
1712 }
1713
1714 80% {
1715 -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
1716 transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
1717 }
1718
1719 100% {
1720 -webkit-transform: perspective(400px);
1721 transform: perspective(400px);
1722 }
1723 }
1724
1725 .flipInX {
1726 -webkit-backface-visibility: visible !important;
1727 backface-visibility: visible !important;
1728 -webkit-animation-name: flipInX;
1729 animation-name: flipInX;
1730 }
1731
1732 @-webkit-keyframes flipInY {
1733 0% {
1734 -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1735 transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1736 -webkit-transition-timing-function: ease-in;
1737 transition-timing-function: ease-in;
1738 opacity: 0;
1739 }
1740
1741 40% {
1742 -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
1743 transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
1744 -webkit-transition-timing-function: ease-in;
1745 transition-timing-function: ease-in;
1746 }
1747
1748 60% {
1749 -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
1750 transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
1751 opacity: 1;
1752 }
1753
1754 80% {
1755 -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
1756 transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
1757 }
1758
1759 100% {
1760 -webkit-transform: perspective(400px);
1761 transform: perspective(400px);
1762 }
1763 }
1764
1765 @keyframes flipInY {
1766 0% {
1767 -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1768 transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1769 -webkit-transition-timing-function: ease-in;
1770 transition-timing-function: ease-in;
1771 opacity: 0;
1772 }
1773
1774 40% {
1775 -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
1776 transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
1777 -webkit-transition-timing-function: ease-in;
1778 transition-timing-function: ease-in;
1779 }
1780
1781 60% {
1782 -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
1783 transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
1784 opacity: 1;
1785 }
1786
1787 80% {
1788 -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
1789 transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
1790 }
1791
1792 100% {
1793 -webkit-transform: perspective(400px);
1794 transform: perspective(400px);
1795 }
1796 }
1797
1798 .flipInY {
1799 -webkit-backface-visibility: visible !important;
1800 backface-visibility: visible !important;
1801 -webkit-animation-name: flipInY;
1802 animation-name: flipInY;
1803 }
1804
1805 @-webkit-keyframes flipOutX {
1806 0% {
1807 -webkit-transform: perspective(400px);
1808 transform: perspective(400px);
1809 }
1810
1811 30% {
1812 -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1813 transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1814 opacity: 1;
1815 }
1816
1817 100% {
1818 -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1819 transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1820 opacity: 0;
1821 }
1822 }
1823
1824 @keyframes flipOutX {
1825 0% {
1826 -webkit-transform: perspective(400px);
1827 transform: perspective(400px);
1828 }
1829
1830 30% {
1831 -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1832 transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1833 opacity: 1;
1834 }
1835
1836 100% {
1837 -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1838 transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1839 opacity: 0;
1840 }
1841 }
1842
1843 .flipOutX {
1844 -webkit-animation-name: flipOutX;
1845 animation-name: flipOutX;
1846 -webkit-animation-duration: .75s;
1847 animation-duration: .75s;
1848 -webkit-backface-visibility: visible !important;
1849 backface-visibility: visible !important;
1850 }
1851
1852 @-webkit-keyframes flipOutY {
1853 0% {
1854 -webkit-transform: perspective(400px);
1855 transform: perspective(400px);
1856 }
1857
1858 30% {
1859 -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
1860 transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
1861 opacity: 1;
1862 }
1863
1864 100% {
1865 -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1866 transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1867 opacity: 0;
1868 }
1869 }
1870
1871 @keyframes flipOutY {
1872 0% {
1873 -webkit-transform: perspective(400px);
1874 transform: perspective(400px);
1875 }
1876
1877 30% {
1878 -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
1879 transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
1880 opacity: 1;
1881 }
1882
1883 100% {
1884 -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1885 transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1886 opacity: 0;
1887 }
1888 }
1889
1890 .flipOutY {
1891 -webkit-backface-visibility: visible !important;
1892 backface-visibility: visible !important;
1893 -webkit-animation-name: flipOutY;
1894 animation-name: flipOutY;
1895 -webkit-animation-duration: .75s;
1896 animation-duration: .75s;
1897 }
1898
1899 @-webkit-keyframes lightSpeedIn {
1900 0% {
1901 -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
1902 transform: translate3d(100%, 0, 0) skewX(-30deg);
1903 opacity: 0;
1904 }
1905
1906 60% {
1907 -webkit-transform: skewX(20deg);
1908 transform: skewX(20deg);
1909 opacity: 1;
1910 }
1911
1912 80% {
1913 -webkit-transform: skewX(-5deg);
1914 transform: skewX(-5deg);
1915 opacity: 1;
1916 }
1917
1918 100% {
1919 -webkit-transform: none;
1920 transform: none;
1921 opacity: 1;
1922 }
1923 }
1924
1925 @keyframes lightSpeedIn {
1926 0% {
1927 -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
1928 transform: translate3d(100%, 0, 0) skewX(-30deg);
1929 opacity: 0;
1930 }
1931
1932 60% {
1933 -webkit-transform: skewX(20deg);
1934 transform: skewX(20deg);
1935 opacity: 1;
1936 }
1937
1938 80% {
1939 -webkit-transform: skewX(-5deg);
1940 transform: skewX(-5deg);
1941 opacity: 1;
1942 }
1943
1944 100% {
1945 -webkit-transform: none;
1946 transform: none;
1947 opacity: 1;
1948 }
1949 }
1950
1951 .lightSpeedIn {
1952 -webkit-animation-name: lightSpeedIn;
1953 animation-name: lightSpeedIn;
1954 -webkit-animation-timing-function: ease-out;
1955 animation-timing-function: ease-out;
1956 }
1957
1958 @-webkit-keyframes lightSpeedOut {
1959 0% {
1960 opacity: 1;
1961 }
1962
1963 100% {
1964 -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
1965 transform: translate3d(100%, 0, 0) skewX(30deg);
1966 opacity: 0;
1967 }
1968 }
1969
1970 @keyframes lightSpeedOut {
1971 0% {
1972 opacity: 1;
1973 }
1974
1975 100% {
1976 -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
1977 transform: translate3d(100%, 0, 0) skewX(30deg);
1978 opacity: 0;
1979 }
1980 }
1981
1982 .lightSpeedOut {
1983 -webkit-animation-name: lightSpeedOut;
1984 animation-name: lightSpeedOut;
1985 -webkit-animation-timing-function: ease-in;
1986 animation-timing-function: ease-in;
1987 }
1988
1989 @-webkit-keyframes rotateIn {
1990 0% {
1991 -webkit-transform-origin: center;
1992 transform-origin: center;
1993 -webkit-transform: rotate3d(0, 0, 1, -200deg);
1994 transform: rotate3d(0, 0, 1, -200deg);
1995 opacity: 0;
1996 }
1997
1998 100% {
1999 -webkit-transform-origin: center;
2000 transform-origin: center;
2001 -webkit-transform: none;
2002 transform: none;
2003 opacity: 1;
2004 }
2005 }
2006
2007 @keyframes rotateIn {
2008 0% {
2009 -webkit-transform-origin: center;
2010 transform-origin: center;
2011 -webkit-transform: rotate3d(0, 0, 1, -200deg);
2012 transform: rotate3d(0, 0, 1, -200deg);
2013 opacity: 0;
2014 }
2015
2016 100% {
2017 -webkit-transform-origin: center;
2018 transform-origin: center;
2019 -webkit-transform: none;
2020 transform: none;
2021 opacity: 1;
2022 }
2023 }
2024
2025 .rotateIn {
2026 -webkit-animation-name: rotateIn;
2027 animation-name: rotateIn;
2028 }
2029
2030 @-webkit-keyframes rotateInDownLeft {
2031 0% {
2032 -webkit-transform-origin: left bottom;
2033 transform-origin: left bottom;
2034 -webkit-transform: rotate3d(0, 0, 1, -45deg);
2035 transform: rotate3d(0, 0, 1, -45deg);
2036 opacity: 0;
2037 }
2038
2039 100% {
2040 -webkit-transform-origin: left bottom;
2041 transform-origin: left bottom;
2042 -webkit-transform: none;
2043 transform: none;
2044 opacity: 1;
2045 }
2046 }
2047
2048 @keyframes rotateInDownLeft {
2049 0% {
2050 -webkit-transform-origin: left bottom;
2051 transform-origin: left bottom;
2052 -webkit-transform: rotate3d(0, 0, 1, -45deg);
2053 transform: rotate3d(0, 0, 1, -45deg);
2054 opacity: 0;
2055 }
2056
2057 100% {
2058 -webkit-transform-origin: left bottom;
2059 transform-origin: left bottom;
2060 -webkit-transform: none;
2061 transform: none;
2062 opacity: 1;
2063 }
2064 }
2065
2066 .rotateInDownLeft {
2067 -webkit-animation-name: rotateInDownLeft;
2068 animation-name: rotateInDownLeft;
2069 }
2070
2071 @-webkit-keyframes rotateInDownRight {
2072 0% {
2073 -webkit-transform-origin: right bottom;
2074 transform-origin: right bottom;
2075 -webkit-transform: rotate3d(0, 0, 1, 45deg);
2076 transform: rotate3d(0, 0, 1, 45deg);
2077 opacity: 0;
2078 }
2079
2080 100% {
2081 -webkit-transform-origin: right bottom;
2082 transform-origin: right bottom;
2083 -webkit-transform: none;
2084 transform: none;
2085 opacity: 1;
2086 }
2087 }
2088
2089 @keyframes rotateInDownRight {
2090 0% {
2091 -webkit-transform-origin: right bottom;
2092 transform-origin: right bottom;
2093 -webkit-transform: rotate3d(0, 0, 1, 45deg);
2094 transform: rotate3d(0, 0, 1, 45deg);
2095 opacity: 0;
2096 }
2097
2098 100% {
2099 -webkit-transform-origin: right bottom;
2100 transform-origin: right bottom;
2101 -webkit-transform: none;
2102 transform: none;
2103 opacity: 1;
2104 }
2105 }
2106
2107 .rotateInDownRight {
2108 -webkit-animation-name: rotateInDownRight;
2109 animation-name: rotateInDownRight;
2110 }
2111
2112 @-webkit-keyframes rotateInUpLeft {
2113 0% {
2114 -webkit-transform-origin: left bottom;
2115 transform-origin: left bottom;
2116 -webkit-transform: rotate3d(0, 0, 1, 45deg);
2117 transform: rotate3d(0, 0, 1, 45deg);
2118 opacity: 0;
2119 }
2120
2121 100% {
2122 -webkit-transform-origin: left bottom;
2123 transform-origin: left bottom;
2124 -webkit-transform: none;
2125 transform: none;
2126 opacity: 1;
2127 }
2128 }
2129
2130 @keyframes rotateInUpLeft {
2131 0% {
2132 -webkit-transform-origin: left bottom;
2133 transform-origin: left bottom;
2134 -webkit-transform: rotate3d(0, 0, 1, 45deg);
2135 transform: rotate3d(0, 0, 1, 45deg);
2136 opacity: 0;
2137 }
2138
2139 100% {
2140 -webkit-transform-origin: left bottom;
2141 transform-origin: left bottom;
2142 -webkit-transform: none;
2143 transform: none;
2144 opacity: 1;
2145 }
2146 }
2147
2148 .rotateInUpLeft {
2149 -webkit-animation-name: rotateInUpLeft;
2150 animation-name: rotateInUpLeft;
2151 }
2152
2153 @-webkit-keyframes rotateInUpRight {
2154 0% {
2155 -webkit-transform-origin: right bottom;
2156 transform-origin: right bottom;
2157 -webkit-transform: rotate3d(0, 0, 1, -90deg);
2158 transform: rotate3d(0, 0, 1, -90deg);
2159 opacity: 0;
2160 }
2161
2162 100% {
2163 -webkit-transform-origin: right bottom;
2164 transform-origin: right bottom;
2165 -webkit-transform: none;
2166 transform: none;
2167 opacity: 1;
2168 }
2169 }
2170
2171 @keyframes rotateInUpRight {
2172 0% {
2173 -webkit-transform-origin: right bottom;
2174 transform-origin: right bottom;
2175 -webkit-transform: rotate3d(0, 0, 1, -90deg);
2176 transform: rotate3d(0, 0, 1, -90deg);
2177 opacity: 0;
2178 }
2179
2180 100% {
2181 -webkit-transform-origin: right bottom;
2182 transform-origin: right bottom;
2183 -webkit-transform: none;
2184 transform: none;
2185 opacity: 1;
2186 }
2187 }
2188
2189 .rotateInUpRight {
2190 -webkit-animation-name: rotateInUpRight;
2191 animation-name: rotateInUpRight;
2192 }
2193
2194 @-webkit-keyframes rotateOut {
2195 0% {
2196 -webkit-transform-origin: center;
2197 transform-origin: center;
2198 opacity: 1;
2199 }
2200
2201 100% {
2202 -webkit-transform-origin: center;
2203 transform-origin: center;
2204 -webkit-transform: rotate3d(0, 0, 1, 200deg);
2205 transform: rotate3d(0, 0, 1, 200deg);
2206 opacity: 0;
2207 }
2208 }
2209
2210 @keyframes rotateOut {
2211 0% {
2212 -webkit-transform-origin: center;
2213 transform-origin: center;
2214 opacity: 1;
2215 }
2216
2217 100% {
2218 -webkit-transform-origin: center;
2219 transform-origin: center;
2220 -webkit-transform: rotate3d(0, 0, 1, 200deg);
2221 transform: rotate3d(0, 0, 1, 200deg);
2222 opacity: 0;
2223 }
2224 }
2225
2226 .rotateOut {
2227 -webkit-animation-name: rotateOut;
2228 animation-name: rotateOut;
2229 }
2230
2231 @-webkit-keyframes rotateOutDownLeft {
2232 0% {
2233 -webkit-transform-origin: left bottom;
2234 transform-origin: left bottom;
2235 opacity: 1;
2236 }
2237
2238 100% {
2239 -webkit-transform-origin: left bottom;
2240 transform-origin: left bottom;
2241 -webkit-transform: rotate3d(0, 0, 1, 45deg);
2242 transform: rotate3d(0, 0, 1, 45deg);
2243 opacity: 0;
2244 }
2245 }
2246
2247 @keyframes rotateOutDownLeft {
2248 0% {
2249 -webkit-transform-origin: left bottom;
2250 transform-origin: left bottom;
2251 opacity: 1;
2252 }
2253
2254 100% {
2255 -webkit-transform-origin: left bottom;
2256 transform-origin: left bottom;
2257 -webkit-transform: rotate3d(0, 0, 1, 45deg);
2258 transform: rotate3d(0, 0, 1, 45deg);
2259 opacity: 0;
2260 }
2261 }
2262
2263 .rotateOutDownLeft {
2264 -webkit-animation-name: rotateOutDownLeft;
2265 animation-name: rotateOutDownLeft;
2266 }
2267
2268 @-webkit-keyframes rotateOutDownRight {
2269 0% {
2270 -webkit-transform-origin: right bottom;
2271 transform-origin: right bottom;
2272 opacity: 1;
2273 }
2274
2275 100% {
2276 -webkit-transform-origin: right bottom;
2277 transform-origin: right bottom;
2278 -webkit-transform: rotate3d(0, 0, 1, -45deg);
2279 transform: rotate3d(0, 0, 1, -45deg);
2280 opacity: 0;
2281 }
2282 }
2283
2284 @keyframes rotateOutDownRight {
2285 0% {
2286 -webkit-transform-origin: right bottom;
2287 transform-origin: right bottom;
2288 opacity: 1;
2289 }
2290
2291 100% {
2292 -webkit-transform-origin: right bottom;
2293 transform-origin: right bottom;
2294 -webkit-transform: rotate3d(0, 0, 1, -45deg);
2295 transform: rotate3d(0, 0, 1, -45deg);
2296 opacity: 0;
2297 }
2298 }
2299
2300 .rotateOutDownRight {
2301 -webkit-animation-name: rotateOutDownRight;
2302 animation-name: rotateOutDownRight;
2303 }
2304
2305 @-webkit-keyframes rotateOutUpLeft {
2306 0% {
2307 -webkit-transform-origin: left bottom;
2308 transform-origin: left bottom;
2309 opacity: 1;
2310 }
2311
2312 100% {
2313 -webkit-transform-origin: left bottom;
2314 transform-origin: left bottom;
2315 -webkit-transform: rotate3d(0, 0, 1, -45deg);
2316 transform: rotate3d(0, 0, 1, -45deg);
2317 opacity: 0;
2318 }
2319 }
2320
2321 @keyframes rotateOutUpLeft {
2322 0% {
2323 -webkit-transform-origin: left bottom;
2324 transform-origin: left bottom;
2325 opacity: 1;
2326 }
2327
2328 100% {
2329 -webkit-transform-origin: left bottom;
2330 transform-origin: left bottom;
2331 -webkit-transform: rotate3d(0, 0, 1, -45deg);
2332 transform: rotate3d(0, 0, 1, -45deg);
2333 opacity: 0;
2334 }
2335 }
2336
2337 .rotateOutUpLeft {
2338 -webkit-animation-name: rotateOutUpLeft;
2339 animation-name: rotateOutUpLeft;
2340 }
2341
2342 @-webkit-keyframes rotateOutUpRight {
2343 0% {
2344 -webkit-transform-origin: right bottom;
2345 transform-origin: right bottom;
2346 opacity: 1;
2347 }
2348
2349 100% {
2350 -webkit-transform-origin: right bottom;
2351 transform-origin: right bottom;
2352 -webkit-transform: rotate3d(0, 0, 1, 90deg);
2353 transform: rotate3d(0, 0, 1, 90deg);
2354 opacity: 0;
2355 }
2356 }
2357
2358 @keyframes rotateOutUpRight {
2359 0% {
2360 -webkit-transform-origin: right bottom;
2361 transform-origin: right bottom;
2362 opacity: 1;
2363 }
2364
2365 100% {
2366 -webkit-transform-origin: right bottom;
2367 transform-origin: right bottom;
2368 -webkit-transform: rotate3d(0, 0, 1, 90deg);
2369 transform: rotate3d(0, 0, 1, 90deg);
2370 opacity: 0;
2371 }
2372 }
2373
2374 .rotateOutUpRight {
2375 -webkit-animation-name: rotateOutUpRight;
2376 animation-name: rotateOutUpRight;
2377 }
2378
2379 @-webkit-keyframes hinge {
2380 0% {
2381 -webkit-transform-origin: top left;
2382 transform-origin: top left;
2383 -webkit-animation-timing-function: ease-in-out;
2384 animation-timing-function: ease-in-out;
2385 }
2386
2387 20%, 60% {
2388 -webkit-transform: rotate3d(0, 0, 1, 80deg);
2389 transform: rotate3d(0, 0, 1, 80deg);
2390 -webkit-transform-origin: top left;
2391 transform-origin: top left;
2392 -webkit-animation-timing-function: ease-in-out;
2393 animation-timing-function: ease-in-out;
2394 }
2395
2396 40%, 80% {
2397 -webkit-transform: rotate3d(0, 0, 1, 60deg);
2398 transform: rotate3d(0, 0, 1, 60deg);
2399 -webkit-transform-origin: top left;
2400 transform-origin: top left;
2401 -webkit-animation-timing-function: ease-in-out;
2402 animation-timing-function: ease-in-out;
2403 opacity: 1;
2404 }
2405
2406 100% {
2407 -webkit-transform: translate3d(0, 700px, 0);
2408 transform: translate3d(0, 700px, 0);
2409 opacity: 0;
2410 }
2411 }
2412
2413 @keyframes hinge {
2414 0% {
2415 -webkit-transform-origin: top left;
2416 transform-origin: top left;
2417 -webkit-animation-timing-function: ease-in-out;
2418 animation-timing-function: ease-in-out;
2419 }
2420
2421 20%, 60% {
2422 -webkit-transform: rotate3d(0, 0, 1, 80deg);
2423 transform: rotate3d(0, 0, 1, 80deg);
2424 -webkit-transform-origin: top left;
2425 transform-origin: top left;
2426 -webkit-animation-timing-function: ease-in-out;
2427 animation-timing-function: ease-in-out;
2428 }
2429
2430 40%, 80% {
2431 -webkit-transform: rotate3d(0, 0, 1, 60deg);
2432 transform: rotate3d(0, 0, 1, 60deg);
2433 -webkit-transform-origin: top left;
2434 transform-origin: top left;
2435 -webkit-animation-timing-function: ease-in-out;
2436 animation-timing-function: ease-in-out;
2437 opacity: 1;
2438 }
2439
2440 100% {
2441 -webkit-transform: translate3d(0, 700px, 0);
2442 transform: translate3d(0, 700px, 0);
2443 opacity: 0;
2444 }
2445 }
2446
2447 .hinge {
2448 -webkit-animation-name: hinge;
2449 animation-name: hinge;
2450 }
2451
2452 /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
2453
2454 @-webkit-keyframes rollIn {
2455 0% {
2456 opacity: 0;
2457 -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2458 transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2459 }
2460
2461 100% {
2462 opacity: 1;
2463 -webkit-transform: none;
2464 transform: none;
2465 }
2466 }
2467
2468 @keyframes rollIn {
2469 0% {
2470 opacity: 0;
2471 -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2472 transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2473 }
2474
2475 100% {
2476 opacity: 1;
2477 -webkit-transform: none;
2478 transform: none;
2479 }
2480 }
2481
2482 .rollIn {
2483 -webkit-animation-name: rollIn;
2484 animation-name: rollIn;
2485 }
2486
2487 /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
2488
2489 @-webkit-keyframes rollOut {
2490 0% {
2491 opacity: 1;
2492 }
2493
2494 100% {
2495 opacity: 0;
2496 -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2497 transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2498 }
2499 }
2500
2501 @keyframes rollOut {
2502 0% {
2503 opacity: 1;
2504 }
2505
2506 100% {
2507 opacity: 0;
2508 -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2509 transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2510 }
2511 }
2512
2513 .rollOut {
2514 -webkit-animation-name: rollOut;
2515 animation-name: rollOut;
2516 }
2517
2518 @-webkit-keyframes zoomIn {
2519 0% {
2520 opacity: 0;
2521 -webkit-transform: scale3d(.3, .3, .3);
2522 transform: scale3d(.3, .3, .3);
2523 }
2524
2525 50% {
2526 opacity: 1;
2527 }
2528 }
2529
2530 @keyframes zoomIn {
2531 0% {
2532 opacity: 0;
2533 -webkit-transform: scale3d(.3, .3, .3);
2534 transform: scale3d(.3, .3, .3);
2535 }
2536
2537 50% {
2538 opacity: 1;
2539 }
2540 }
2541
2542 .zoomIn {
2543 -webkit-animation-name: zoomIn;
2544 animation-name: zoomIn;
2545 }
2546
2547 @-webkit-keyframes zoomInDown {
2548 0% {
2549 opacity: 0;
2550 -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2551 transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2552 -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2553 animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2554 }
2555
2556 60% {
2557 opacity: 1;
2558 -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2559 transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2560 -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2561 animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2562 }
2563 }
2564
2565 @keyframes zoomInDown {
2566 0% {
2567 opacity: 0;
2568 -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2569 transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2570 -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2571 animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2572 }
2573
2574 60% {
2575 opacity: 1;
2576 -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2577 transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2578 -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2579 animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2580 }
2581 }
2582
2583 .zoomInDown {
2584 -webkit-animation-name: zoomInDown;
2585 animation-name: zoomInDown;
2586 }
2587
2588 @-webkit-keyframes zoomInLeft {
2589 0% {
2590 opacity: 0;
2591 -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2592 transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2593 -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2594 animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2595 }
2596
2597 60% {
2598 opacity: 1;
2599 -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2600 transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2601 -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2602 animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2603 }
2604 }
2605
2606 @keyframes zoomInLeft {
2607 0% {
2608 opacity: 0;
2609 -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2610 transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2611 -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2612 animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2613 }
2614
2615 60% {
2616 opacity: 1;
2617 -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2618 transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2619 -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2620 animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2621 }
2622 }
2623
2624 .zoomInLeft {
2625 -webkit-animation-name: zoomInLeft;
2626 animation-name: zoomInLeft;
2627 }
2628
2629 @-webkit-keyframes zoomInRight {
2630 0% {
2631 opacity: 0;
2632 -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2633 transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2634 -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2635 animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2636 }
2637
2638 60% {
2639 opacity: 1;
2640 -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2641 transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2642 -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2643 animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2644 }
2645 }
2646
2647 @keyframes zoomInRight {
2648 0% {
2649 opacity: 0;
2650 -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2651 transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2652 -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2653 animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2654 }
2655
2656 60% {
2657 opacity: 1;
2658 -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2659 transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2660 -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2661 animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2662 }
2663 }
2664
2665 .zoomInRight {
2666 -webkit-animation-name: zoomInRight;
2667 animation-name: zoomInRight;
2668 }
2669
2670 @-webkit-keyframes zoomInUp {
2671 0% {
2672 opacity: 0;
2673 -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2674 transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2675 -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2676 animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2677 }
2678
2679 60% {
2680 opacity: 1;
2681 -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2682 transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2683 -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2684 animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2685 }
2686 }
2687
2688 @keyframes zoomInUp {
2689 0% {
2690 opacity: 0;
2691 -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2692 transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2693 -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2694 animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2695 }
2696
2697 60% {
2698 opacity: 1;
2699 -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2700 transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2701 -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2702 animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2703 }
2704 }
2705
2706 .zoomInUp {
2707 -webkit-animation-name: zoomInUp;
2708 animation-name: zoomInUp;
2709 }
2710
2711 @-webkit-keyframes zoomOut {
2712 0% {
2713 opacity: 1;
2714 }
2715
2716 50% {
2717 opacity: 0;
2718 -webkit-transform: scale3d(.3, .3, .3);
2719 transform: scale3d(.3, .3, .3);
2720 }
2721
2722 100% {
2723 opacity: 0;
2724 }
2725 }
2726
2727 @keyframes zoomOut {
2728 0% {
2729 opacity: 1;
2730 }
2731
2732 50% {
2733 opacity: 0;
2734 -webkit-transform: scale3d(.3, .3, .3);
2735 transform: scale3d(.3, .3, .3);
2736 }
2737
2738 100% {
2739 opacity: 0;
2740 }
2741 }
2742
2743 .zoomOut {
2744 -webkit-animation-name: zoomOut;
2745 animation-name: zoomOut;
2746 }
2747
2748 @-webkit-keyframes zoomOutDown {
2749 40% {
2750 opacity: 1;
2751 -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2752 transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2753 -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2754 animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2755 }
2756
2757 100% {
2758 opacity: 0;
2759 -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2760 transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2761 -webkit-transform-origin: center bottom;
2762 transform-origin: center bottom;
2763 -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2764 animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2765 }
2766 }
2767
2768 @keyframes zoomOutDown {
2769 40% {
2770 opacity: 1;
2771 -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2772 transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2773 -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2774 animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2775 }
2776
2777 100% {
2778 opacity: 0;
2779 -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2780 transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2781 -webkit-transform-origin: center bottom;
2782 transform-origin: center bottom;
2783 -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2784 animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2785 }
2786 }
2787
2788 .zoomOutDown {
2789 -webkit-animation-name: zoomOutDown;
2790 animation-name: zoomOutDown;
2791 }
2792
2793 @-webkit-keyframes zoomOutLeft {
2794 40% {
2795 opacity: 1;
2796 -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
2797 transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
2798 }
2799
2800 100% {
2801 opacity: 0;
2802 -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
2803 transform: scale(.1) translate3d(-2000px, 0, 0);
2804 -webkit-transform-origin: left center;
2805 transform-origin: left center;
2806 }
2807 }
2808
2809 @keyframes zoomOutLeft {
2810 40% {
2811 opacity: 1;
2812 -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
2813 transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
2814 }
2815
2816 100% {
2817 opacity: 0;
2818 -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
2819 transform: scale(.1) translate3d(-2000px, 0, 0);
2820 -webkit-transform-origin: left center;
2821 transform-origin: left center;
2822 }
2823 }
2824
2825 .zoomOutLeft {
2826 -webkit-animation-name: zoomOutLeft;
2827 animation-name: zoomOutLeft;
2828 }
2829
2830 @-webkit-keyframes zoomOutRight {
2831 40% {
2832 opacity: 1;
2833 -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
2834 transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
2835 }
2836
2837 100% {
2838 opacity: 0;
2839 -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
2840 transform: scale(.1) translate3d(2000px, 0, 0);
2841 -webkit-transform-origin: right center;
2842 transform-origin: right center;
2843 }
2844 }
2845
2846 @keyframes zoomOutRight {
2847 40% {
2848 opacity: 1;
2849 -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
2850 transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
2851 }
2852
2853 100% {
2854 opacity: 0;
2855 -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
2856 transform: scale(.1) translate3d(2000px, 0, 0);
2857 -webkit-transform-origin: right center;
2858 transform-origin: right center;
2859 }
2860 }
2861
2862 .zoomOutRight {
2863 -webkit-animation-name: zoomOutRight;
2864 animation-name: zoomOutRight;
2865 }
2866
2867 @-webkit-keyframes zoomOutUp {
2868 40% {
2869 opacity: 1;
2870 -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2871 transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2872 -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2873 animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2874 }
2875
2876 100% {
2877 opacity: 0;
2878 -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
2879 transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
2880 -webkit-transform-origin: center bottom;
2881 transform-origin: center bottom;
2882 -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2883 animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2884 }
2885 }
2886
2887 @keyframes zoomOutUp {
2888 40% {
2889 opacity: 1;
2890 -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2891 transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2892 -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2893 animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2894 }
2895
2896 100% {
2897 opacity: 0;
2898 -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
2899 transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
2900 -webkit-transform-origin: center bottom;
2901 transform-origin: center bottom;
2902 -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2903 animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2904 }
2905 }
2906
2907 .zoomOutUp {
2908 -webkit-animation-name: zoomOutUp;
2909 animation-name: zoomOutUp;
2910 }
2911
2912 @-webkit-keyframes slideInDown {
2913 0% {
2914 -webkit-transform: translateY(-100%);
2915 transform: translateY(-100%);
2916 visibility: visible;
2917 }
2918
2919 100% {
2920 -webkit-transform: translateY(0);
2921 transform: translateY(0);
2922 }
2923 }
2924
2925 @keyframes slideInDown {
2926 0% {
2927 -webkit-transform: translateY(-100%);
2928 transform: translateY(-100%);
2929 visibility: visible;
2930 }
2931
2932 100% {
2933 -webkit-transform: translateY(0);
2934 transform: translateY(0);
2935 }
2936 }
2937
2938 .slideInDown {
2939 -webkit-animation-name: slideInDown;
2940 animation-name: slideInDown;
2941 }
2942
2943 @-webkit-keyframes slideInLeft {
2944 0% {
2945 -webkit-transform: translateX(-100%);
2946 transform: translateX(-100%);
2947 visibility: visible;
2948 }
2949
2950 100% {
2951 -webkit-transform: translateX(0);
2952 transform: translateX(0);
2953 }
2954 }
2955
2956 @keyframes slideInLeft {
2957 0% {
2958 -webkit-transform: translateX(-100%);
2959 transform: translateX(-100%);
2960 visibility: visible;
2961 }
2962
2963 100% {
2964 -webkit-transform: translateX(0);
2965 transform: translateX(0);
2966 }
2967 }
2968
2969 .slideInLeft {
2970 -webkit-animation-name: slideInLeft;
2971 animation-name: slideInLeft;
2972 }
2973
2974 @-webkit-keyframes slideInRight {
2975 0% {
2976 -webkit-transform: translateX(100%);
2977 transform: translateX(100%);
2978 visibility: visible;
2979 }
2980
2981 100% {
2982 -webkit-transform: translateX(0);
2983 transform: translateX(0);
2984 }
2985 }
2986
2987 @keyframes slideInRight {
2988 0% {
2989 -webkit-transform: translateX(100%);
2990 transform: translateX(100%);
2991 visibility: visible;
2992 }
2993
2994 100% {
2995 -webkit-transform: translateX(0);
2996 transform: translateX(0);
2997 }
2998 }
2999
3000 .slideInRight {
3001 -webkit-animation-name: slideInRight;
3002 animation-name: slideInRight;
3003 }
3004
3005 @-webkit-keyframes slideInUp {
3006 0% {
3007 -webkit-transform: translateY(100%);
3008 transform: translateY(100%);
3009 visibility: visible;
3010 }
3011
3012 100% {
3013 -webkit-transform: translateY(0);
3014 transform: translateY(0);
3015 }
3016 }
3017
3018 @keyframes slideInUp {
3019 0% {
3020 -webkit-transform: translateY(100%);
3021 transform: translateY(100%);
3022 visibility: visible;
3023 }
3024
3025 100% {
3026 -webkit-transform: translateY(0);
3027 transform: translateY(0);
3028 }
3029 }
3030
3031 .slideInUp {
3032 -webkit-animation-name: slideInUp;
3033 animation-name: slideInUp;
3034 }
3035
3036 @-webkit-keyframes slideOutDown {
3037 0% {
3038 -webkit-transform: translateY(0);
3039 transform: translateY(0);
3040 }
3041
3042 100% {
3043 visibility: hidden;
3044 -webkit-transform: translateY(100%);
3045 transform: translateY(100%);
3046 }
3047 }
3048
3049 @keyframes slideOutDown {
3050 0% {
3051 -webkit-transform: translateY(0);
3052 transform: translateY(0);
3053 }
3054
3055 100% {
3056 visibility: hidden;
3057 -webkit-transform: translateY(100%);
3058 transform: translateY(100%);
3059 }
3060 }
3061
3062 .slideOutDown {
3063 -webkit-animation-name: slideOutDown;
3064 animation-name: slideOutDown;
3065 }
3066
3067 @-webkit-keyframes slideOutLeft {
3068 0% {
3069 -webkit-transform: translateX(0);
3070 transform: translateX(0);
3071 }
3072
3073 100% {
3074 visibility: hidden;
3075 -webkit-transform: translateX(-100%);
3076 transform: translateX(-100%);
3077 }
3078 }
3079
3080 @keyframes slideOutLeft {
3081 0% {
3082 -webkit-transform: translateX(0);
3083 transform: translateX(0);
3084 }
3085
3086 100% {
3087 visibility: hidden;
3088 -webkit-transform: translateX(-100%);
3089 transform: translateX(-100%);
3090 }
3091 }
3092
3093 .slideOutLeft {
3094 -webkit-animation-name: slideOutLeft;
3095 animation-name: slideOutLeft;
3096 }
3097
3098 @-webkit-keyframes slideOutRight {
3099 0% {
3100 -webkit-transform: translateX(0);
3101 transform: translateX(0);
3102 }
3103
3104 100% {
3105 visibility: hidden;
3106 -webkit-transform: translateX(100%);
3107 transform: translateX(100%);
3108 }
3109 }
3110
3111 @keyframes slideOutRight {
3112 0% {
3113 -webkit-transform: translateX(0);
3114 transform: translateX(0);
3115 }
3116
3117 100% {
3118 visibility: hidden;
3119 -webkit-transform: translateX(100%);
3120 transform: translateX(100%);
3121 }
3122 }
3123
3124 .slideOutRight {
3125 -webkit-animation-name: slideOutRight;
3126 animation-name: slideOutRight;
3127 }
3128
3129 @-webkit-keyframes slideOutUp {
3130 0% {
3131 -webkit-transform: translateY(0);
3132 transform: translateY(0);
3133 }
3134
3135 100% {
3136 visibility: hidden;
3137 -webkit-transform: translateY(-100%);
3138 transform: translateY(-100%);
3139 }
3140 }
3141
3142 @keyframes slideOutUp {
3143 0% {
3144 -webkit-transform: translateY(0);
3145 transform: translateY(0);
3146 }
3147
3148 100% {
3149 visibility: hidden;
3150 -webkit-transform: translateY(-100%);
3151 transform: translateY(-100%);
3152 }
3153 }
3154
3155 .slideOutUp {
3156 -webkit-animation-name: slideOutUp;
3157 animation-name: slideOutUp;
3158 }
1 .detectype h2, .service h2{
2 text-align: center;
3 font-weight: 400;
4 color: #433e51;
5 font-size: 45px;
6 padding: 0;
7 margin: 50px 0;
8 }
9 .detectype .detectrange{
10 float: left;
11 min-height: 1px;
12 position: relative;
13 cursor: pointer;
14 width: 22.75%;
15 margin-right: 3%;
16 overflow: hidden;
17 }
18 .detectype .detectrange.mb{
19 margin-bottom: 50px;
20 }
21 .detectype .detectrange .mask{
22 position: absolute;
23 top: 0;
24 bottom: 0;
25 left: 0;
26 right: 0;
27 text-align: center;
28 -webkit-backface-visibility: hidden;
29 backface-visibility: hidden;
30 }
31 .detectype .detectrange.l{
32 margin-right: 0;
33 }
34 .detectype .detectrange .detecticon{
35 height: 150px;
36 }
37 .detectype .detectrange .detectfood{
38 background: url(/images/jcrange/nongchanpin.jpg);
39 }
40 .detectype .detectrange .detectmeat{
41 background: url(/images/jcrange/rouzhipin.jpg);
42 }
43 .detectype .detectrange .detectfire{
44 background: url(/images/jcrange/xiaofangjiance.jpg);
45 }
46 .detectype .detectrange .detectmilieu{
47 background: url(/images/jcrange/huanjing.jpg);
48 }
49 .detectype .detectrange .detectfeiliao{
50 background: url(/images/jcrange/fljc.jpg);
51 }
52 .detectype .detectrange .detectsiliao{
53 background: url(/images/jcrange/sljc.jpg);
54 }
55 .detectype .detectrange .detectshuichan{
56 background: url(/images/jcrange/scjc.jpg);
57 }
58 .detectype .detectrange .detectshipin{
59 background: url(/images/jcrange/spjc.jpg?v=2);
60 }
61 .detectype .detectrange .detecttext{
62 padding: 15px 10px;
63 height: 80px;
64 border: 1px solid #ccc;
65 border-top: 0;
66 }
67 .detectype .detectrange .detecttext h5{
68 margin: 0 0 10px;
69 font-size: 18px;
70 font-weight: 400;
71 color: #433e51;
72 }
73 .detectype .detectrange .detecttext p{
74 line-height: 1.6em;
75 font-size: 14px;
76 margin: 0 0 10px;
77 color: #7b7b7b;
78 }
79 .detectype .detectrange .mask {
80 background: #1a4a72;
81 background: rgba(26, 74, 114, 0.6);
82 visibility: hidden;
83 opacity: 0;
84 -webkit-transition: all 0.35s ease-in;
85 -moz-transition: all 0.35s ease-in;
86 transition: all 0.35s ease-in;
87 }
88 .detectype .detectrange .mask a{
89 color: #fff;
90 }
91 .detectype .detectrange .mask h3 {
92 text-transform: uppercase;
93 color: #fff;
94 text-align: center;
95 font-size: 17px;
96 padding: 10px;
97 background: #111111;
98 background: rgba(12, 34, 52, 0.6);
99 margin: 30px 0 0 0;
100 -webkit-transition: all 0.35s ease-in;
101 -moz-transition: all 0.35s ease-in;
102 transition: all 0.35s ease-in;
103 }
104 .detectype .detectrange .mask p {
105 font-size: 12px;
106 position: relative;
107 color: #bbb;
108 padding: 20px 20px 20px;
109 text-align: center;
110 -webkit-transition: all 0.35s ease-in;
111 -moz-transition: all 0.35s ease-in;
112 transition: all 0.35s ease-in;
113 }
114 .detectype .detectrange:hover .mask {
115 visibility: visible;
116 opacity: 1;
117 -webkit-transition-delay: 0.2s;
118 -moz-transition-delay: 0.2s;
119 transition-delay: 0.2s;
120 }
121 .detectype .detectrange:hover .mask h3 {
122 -webkit-transition-delay: 0.3s;
123 -moz-transition-delay: 0.3s;
124 transition-delay: 0.3s;
125 }
126 .detectype .detectrange:hover .mask p {
127 -webkit-transition-delay: 0.25s;
128 -moz-transition-delay: 0.25s;
129 transition-delay: 0.25s;
130 }
131
132 .detectype .detectrange .mask {
133 -webkit-transform: translate(-460px, -100px) rotate(-180deg);
134 -moz-transform: translate(-460px, -100px) rotate(-180deg);
135 -ms-transform: translate(-460px, -100px) rotate(-180deg);
136 -o-transform: translate(-460px, -100px) rotate(-180deg);
137 transform: translate(-460px, -100px) rotate(-180deg);
138 }
139 .detectype .detectrange .mask h3 {
140 -webkit-transform: translateY(-100px);
141 -moz-transform: translateY(-100px);
142 -ms-transform: translateY(-100px);
143 -o-transform: translateY(-100px);
144 transform: translateY(-100px);
145 }
146 .detectype .detectrange .mask p {
147 -webkit-transform: translateX(-300px) rotate(-90deg);
148 -moz-transform: translateX(-300px) rotate(-90deg);
149 -ms-transform: translateX(-300px) rotate(-90deg);
150 -o-transform: translateX(-300px) rotate(-90deg);
151 transform: translateX(-300px) rotate(-90deg);
152 }
153 .detectype .detectrange:hover .mask {
154 -webkit-transform: translate(0px, 0px);
155 -moz-transform: translate(0px, 0px);
156 -ms-transform: translate(0px, 0px);
157 -o-transform: translate(0px, 0px);
158 transform: translate(0px, 0px);
159 }
160 .detectype .detectrange:hover .mask h3 {
161 -webkit-transform: translateY(0px);
162 -moz-transform: translateY(0px);
163 -ms-transform: translateY(0px);
164 -o-transform: translateY(0px);
165 transform: translateY(0px);
166 }
167 .detectype .detectrange:hover .mask p {
168 -webkit-transform: translateX(0px) rotate(0deg);
169 -moz-transform: translateX(0px) rotate(0deg);
170 -ms-transform: translateX(0px) rotate(0deg);
171 -o-transform: translateX(0px) rotate(0deg);
172 transform: translateX(0px) rotate(0deg);
173 }
1 body{
2 margin: 0px;
3 color: #393939;
4 }
5 a{
6 text-decoration: none;
7 }
8 input:focus,
9 textarea:focus{
10 outline: none;
11 }
12 .wrapper:after {
13 clear: both;
14 content: '';
15 display: table;
16 }
17 .wrapper {
18 padding: 0;
19 max-width: 1200px;
20 margin: 0 auto;
21 width: 96%;
22 }
23 .header{
24 background: #ffffff;
25 position: relative;
26 z-index: 100;
27 height: 80px;
28 }
29 .header .wrapper .logo{
30 min-width: 100px;
31 padding: 0;
32 text-align: left;
33 float: left;
34 }
35 .header .wrapper .logo a{
36 display: inline-block;
37 line-height: 80px;
38 }
39 .header .wrapper .logo a img{
40 border: none;
41 vertical-align: middle;
42 }
43 .header .wrapper .nav{
44 display: block;
45 position: relative;
46 width: auto;
47 background: none;
48 float: right;
49 }
50 .header .wrapper .nav ul.menu{
51 list-style: none;
52 padding: 0;
53 margin: 0;
54 display: block;
55 height: 80px;
56 line-height: 80px;
57 }
58
59 .header .wrapper .nav ul.menu li{
60 float: left;
61 display: inline-block;
62 height: 30px;
63 line-height: 30px;
64 margin: 40px 10px 10px 10px;
65 }
66 .header .wrapper .nav ul.menu li a{
67 font-size: 0.9375rem;
68 display: block;
69 height: 30px;
70 width: 75px;
71 color: #1f8657;
72 font-weight: bold;
73 text-align: center;
74 }
75 .header .wrapper .nav ul.menu li a:hover,
76 .header .wrapper .nav ul.menu li a.active{
77 color: #393939;
78 border-bottom: 2px solid #2aad6f;
79 }
80 .uptoshow{
81 margin-top: 20px;
82 }
83 .uptoshow .leftrow,
84 .uptoshow .rightrow{
85 float: left;
86 width: 50%;
87 }
88 .uptoshow .leftrow{
89 text-align: right;
90 }
91 .uptoshow .rightrow{
92 text-align: left;
93 }
94 .uptoshow .leftrow .wow{
95 margin-top: 10px;
96 }
97 .uptoshow .leftrow .wow img{
98 height: 40px;
99 margin-right: 15px;
100 }
101 .uptoshow .rightrow .wow img{
102 max-width: 100%;
103 margin-left: 15px;
104 }
105
106
107
108
109
110
111
112
113 .navi-scroll{
114 position: fixed;
115 right: 32px;
116 bottom: 32px;
117 width: 42px;
118 min-height: 74px;
119 z-index: 999;
120 }
121 .navi-scroll .navi-scroll-content {
122 position: relative;
123 text-align: center;
124 width: 100%;
125 height: 100%;
126 }
127 .navi-scroll .navi-scroll-content a {
128 width: 42px;
129 height: 36px;
130 display: block;
131 overflow: hidden;
132 position: relative;
133 background-color: #ededed;
134 }
135 .navi-scroll .navi-scroll-content a span {
136 width: 78px;
137 height: 36px;
138 color: #fff;
139 line-height: 36px;
140 font-size: 14px;
141 text-align: center;
142 display: none;
143 }
144 .navi-scroll .navi-scroll-content a i {
145 width: 20px;
146 height: 20px;
147 position: absolute;
148 right: 0;
149 top: 50%;
150 background-repeat: no-repeat;
151 background-position: center center;
152 }
153 .navi-scroll .navi-scroll-content .scroll-top-btn i {
154 width: 20px;
155 height: 20px;
156 margin-top: -10px;
157 right: 11px;
158 background-image: url("/images/icons/backtop-icon.png");
159 }
160 .navi-scroll .navi-scroll-content .scroll-contact-btn i {
161 width: 18px;
162 height: 18px;
163 margin-top: -9px;
164 right: 12px;
165 background-image: url("/images/icons/contact-icon.png");
166 }
167 .navi-scroll .navi-scroll-content .scroll-order-btn i {
168 width: 20px;
169 height: 20px;
170 margin-top: -9px;
171 right: 12px;
172 background-image: url("/images/icons/intent-icon.png");
173 }
174 .navi-scroll .navi-scroll-content a:hover {
175 width: 120px;
176 margin-left: -78px;
177 background-color: #47b488;
178 }
179 .navi-scroll .navi-scroll-content a:hover span{
180 display: block;
181 }
182 .navi-scroll .navi-scroll-content .scroll-top-btn:hover i {
183 background-image: url("/images/icons/backtop-icon-active.png");
184 }
185 .navi-scroll .navi-scroll-content .scroll-contact-btn:hover i {
186 background-image: url("/images/icons/contact-icon-active.png");
187 }
188 .navi-scroll .navi-scroll-content .scroll-order-btn:hover i {
189 background-image: url("/images/icons/intent-icon-active.png");
190 }
191 .navi-scroll .navi-scroll-content .scroll-contact-btn,
192 .navi-scroll .navi-scroll-content .scroll-order-btn {
193 margin-bottom: 2px;
194 }
195 .ftcontact.wrapper.wechat{
196 margin-top: 10px;
197 }
198 .ftcontact.wrapper{
199 padding: 0;
200 }
201 .ftcontact .ftphoneicon{
202 width: 67px;
203 height: 67px;
204 line-height: 67px;
205 background: #2aad6f;
206 border-radius: 50%;
207 text-align: center;
208 float: left;
209 }
210 .ftcontact .ftphoneicon span{
211 background: url(http://www.oppo.com/cn/assets/images/sprite-icons.png);
212 width: 100%;
213 height: 100%;
214 display: inline-block;
215 background-position: -417px -1px;
216 background-repeat: no-repeat;
217 }
218 .ftcontact.wechat .ftphoneicon span{
219 background-position: -420px -791px;
220 height: 50px;
221 margin-top: 10px;
222 }
223 .ftcontact .ftphoneinfo{
224 text-align: left;
225 float: left;
226 margin-left: 15px;
227 }
228 .ftcontact .ftphoneinfo h4{
229 font-size: 20px;
230 font-size: 1.25rem;
231 margin: 10px 0 5px 0;
232 color: #1f8657;
233 }
234 .ftcontact .ftphoneinfo p{
235 margin: 0;
236 text-align: left;
237 }
238 .footer{
239 padding: 50px 0;
240 background: #fff;
241 }
242 .footer .ftservice{
243 height: 125px;
244 list-style-type: none;
245 overflow: hidden;
246 }
247 .footer .ftservice .item{
248 display: inline-block;
249 width: 20%;
250 height: 125px;
251 zoom: 1;
252 position: relative;
253 float: left;
254 }
255 .footer .ftservice .item img{
256 position: absolute;
257 width: 45px;
258 height: 45px;
259 top: 45px;
260 }
261 .footer .ftservice .item h5{
262 position: absolute;
263 font-size: 18px;
264 font-weight: bold;
265 margin: 0;
266 top: 50px;
267 left: 50px;
268 color: rgb(54, 54, 54);
269 }
270 .footer .ftservice .item p{
271 position: absolute;
272 color: rgb(152, 152, 152);
273 margin: 0;
274 font-size: 12px;
275 left: 50px;
276 bottom: 40px;
277 }
278 .line{
279 background: #ededed;
280 height: 1px;
281 }
282 .footer .ftlinks{
283 list-style-type: none;
284 margin-top: 20px;
285 }
286 .footer .ftlinks .ftlink{
287 width: 20%;
288 display: inline-block;
289 float: left;
290 height: 200px;
291 }
292 .footer .ftlinks .ftlink .linktitle{
293 display: inline-block;
294 padding: 0;
295 margin-bottom: 20px;
296 color: #1f8657;
297 font-size: 1.125rem;
298 font-weight: bold;
299 }
300 .footer .ftlinks .ftlink ul{
301 padding: 0;
302 margin: 0;
303 list-style-type: none;
304 }
305 .footer .ftlinks .ftlink ul li{
306
307 }
308 .footer .ftlinks .ftlink ul li a{
309 margin: 10px 0;
310 display: block;
311 font-size: 15px;
312 font-size: 0.9375rem;
313 color: #7b7b7b;
314 }
315 .footer .ftlinks .ftlink ul li a:hover{
316 color: #1f8657;
317 }
318 .footer .ftwarp{
319 margin-top: 20px;
320 color: #7b7b7b;
321 font-size: 13px;
322 font-size: 0.8125rem;
323 }
324 .footer .ftwarp .copyright{
325 width: 45%;
326 height: 50px;
327 float: left;
328 text-align: left;
329 }
330 .footer .ftwarp ul{
331 width: 45%;
332 height: 50px;
333 float: right;
334 list-style-type: none;
335 margin: 0;
336 padding: 0;
337 }
338 .footer .ftwarp ul li{
339 float: right;
340 margin-left: 15px;
341 }
342 .footer .ftwarp ul li a{
343 color: #7b7b7b;
344 }
345 .footer .ftwarp ul li a:hover{
346 color: #1f8657;
347 }
348
349 .pagination {
350 margin: 10px auto;
351 overflow: hidden;
352 padding: 10px 0;
353 }
354 .pagination li{
355 display: inline-block;
356 margin: auto 2px;
357 }
358 .pagination li.disabled a{
359 background-color: #cccccc;
360 }
361 .pagination li.active a{
362 border: 1px solid #398439;
363 color: #ffffff;
364 background-color: #00AA91;
365 }
366 .pagination a {
367 border: 1px solid #cccccc;
368 color: #666666;
369 height: 26px;
370 line-height: 26px;
371 display: inline-block;
372 padding: 0 10px;
373 }
374 .pagination li.disabled a:hover,
375 .pagination li.disabled a:active{
376 color: #666666;
377 }
378 .pagination a:hover,
379 .pagination a:active {
380 color: #990000;
381 }
1 .banner{
2 overflow: hidden;
3 background-repeat: no-repeat;
4 -webkit-background-size: cover;
5 background-size: cover;
6 background-position: 50% 50%;
7 width:100%;
8 height: 300px;
9 position: relative;
10 }
11 .inside{
12 padding-top: 50px;
13 }
14 .inside .inside-left{
15 width: 25%;
16 float: left;
17 }
18 .inside .inside-left .top{
19 height: 60px;
20 background: #2aad6f;
21 color: #ffffff;
22 text-align: center;
23 line-height: 60px;
24 font-size: 24px;
25 font-weight: bold;
26 }
27 .inside .inside-left ul{
28 margin: 0;
29 list-style: none;
30 padding: 0;
31 }
32 .inside .inside-left ul li{
33 padding: 0 10px;
34 margin-top: 10px;
35 border: 1px solid #ededed;
36 background: #ffffff;
37 height: 35px;
38 line-height: 35px;
39 }
40 .inside .inside-left ul li a{
41 display: inline-block;
42 width: 100%;
43 height: 100%;
44 font-weight: bold;
45 color: #333333;
46 }
47 .inside .inside-left ul li:hover,
48 .inside .inside-left ul li.active{
49 background: #2aad6f;
50 }
51 .inside .inside-left ul li:hover a,
52 .inside .inside-left ul li.active a{
53 color: #ffffff;
54 }
55 .inside .inside-right{
56 width: 75%;
57 float: left;
58 }
59 .inside .inside-right .detail{
60 padding-left: 20px;
61 }
62 .inside .inside-right .detail .title{
63 height: 40px;
64 border-bottom: 1px solid #ededed;
65 margin-bottom: 20px;
66 }
67 .inside .inside-right .detail .title h3{
68 margin: 0;
69 }
70 .inside .inside-right .detail .title small{
71 float: right;
72 }
73 .inside .inside-right .detail .title small a{
74 color: #7b7b7b;
75 }
76 .inside .inside-right .detail .title small a:hover{
77 color: #1f8657;
78 }
79 .inside .inside-right .detail .preview{
80
81 }
82 .inside .inside-right .detail .preview .item{
83 cursor: pointer;
84 margin-bottom: 50px;
85 position: relative;
86 height: 150px;
87 padding-bottom: 10px;
88 border-bottom: 1px solid #ccc;
89 }
90 .inside .inside-right .detail .preview .item img{
91 max-width: 200px;
92 }
93 .inside .inside-right .detail .preview .item .posth4{
94 position: absolute;
95 left: 220px;
96 top: 0;
97 margin: 0;
98 font-size: 18px;
99 }
100 .inside .inside-right .detail .preview .item .posth4 a{
101 color: #1f8657;
102 }
103 .inside .inside-right .detail .preview .item .posth4 a:hover,
104 .inside .inside-right .detail .preview .item .posth4 a:visited{
105 color: #1f8657;
106 }
107 .inside .inside-right .detail .preview .item .postdesc{
108 position: absolute;
109 left: 220px;
110 top: 30px;
111 line-height: 22px;
112 }
113 .inside .inside-right .detail .preview p,
114 .inside .inside-right .detail .preview li{
115 line-height: 30px;
116 margin: 0.5em auto;
117 }
118 .inside .inside-right .detail .preview li{
119 line-height: 26px;
120 }
121 .inside .inside-right .detail .preview img{
122 max-width: 100%;
123 }
124 .inside .inside-right .detail .preview .mp4 video,
125 .inside .inside-right .detail .preview .mp4 object,
126 .inside .inside-right .detail .preview .mp4 object img{
127 width: 100%;
128 height: auto;
129 }
130 .inside .inside-right .detail .preview form .field{
131 margin: auto auto 20px auto;
132 }
133 .inside .inside-right .detail .preview form .field label{
134 width: 70px;
135 display: inline-block;
136 vertical-align: middle;
137 overflow: hidden;
138 font-size: 14px;
139 padding: 0 20px 0 0;
140 }
141 .inside .inside-right .detail .preview form .field input,
142 .inside .inside-right .detail .preview form .field textarea{
143 width: 320px;
144 line-height: 20px;
145 border: 1px solid #2aad6f;
146 font-size: 12px;
147 padding: .5em .8em;
148 border-radius: 2px;
149 vertical-align: middle;
150 background: #ffffff;
151 }
152 .inside .inside-right .detail .preview form .field input.captcha{
153 width: 160px;
154 }
155 .inside .inside-right .detail .preview form .field input.submit{
156 width: 120px;
157 padding: 0 30px;
158 border: none;
159 color: #fff;
160 background-color: #2aad6f;
161 -webkit-border-radius: 3px;
162 -moz-border-radius: 3px;
163 border-radius: 3px;
164 line-height: 34px;
165 font-size: 14px;
166 cursor: pointer;
167 }
168 .inside .inside-right .detail .preview form .field textarea{
169 height: 120px;
170 resize: none;
171 }
1 .captionOrange, .captionBlue, .captionBlack, .captionSymbol
2 {
3 display: block;
4 color: #fff;
5 /*font-size: 20px;*/
6 font-size: 18px;
7 line-height: 30px;
8 text-align: center;
9 border-radius: 4px;
10 }
11 .captionOrange
12 {
13 background: #EB5100;
14 background-color: rgba(235, 81, 0, 0.6);
15 }
16 .captionBlue
17 {
18 background: #746FBD;
19 background-color: rgba(21, 21, 120, 0.6);
20 }
21 .captionBlack
22 {
23 background: #000;
24 background-color: rgba(0, 0, 0, 0.4);
25 }
26 .captionSymbol
27 {
28 border-radius: 100px !important;
29 font-weight: 400 !important;
30 font-size: 26px !important;
31 background: #000;
32 background-color: rgba(0, 0, 0, 0.4);
33 }
34 .captionTextBlack
35 {
36 display: block;
37 color: #000;
38 font-size: 20px;
39 line-height: 30px;
40 }
41 .captionTextWhite
42 {
43 display: block;
44 color: #fff;
45 font-size: 20px;
46 line-height: 30px;
47 }
48 a.captionOrange, a.captionOrange:active, a.captionOrange:visited,a.captionTextWhite, a.captionTextWhite:active, a.captionTextWhite:visited
49 {
50 color: #fff;
51 text-decoration: none;
52 }
53 a.captionOrange:hover
54 {
55 color: #eb5100;
56 text-decoration: underline;
57 background-color: #eeeeee;
58 background-color: rgba(238, 238, 238, 0.7);
59 }
60 a.captionTextBlack, a.captionTextBlack:active, a.captionTextBlack:visited
61 {
62 color: #000;
63 text-decoration: none;
64 }
65 a.captionTextWhite:hover
66 {
67 color: #eb5100;
68 text-decoration: underline;
69 }
70 a.captionTextBlack:hover
71 {
72 color: #eb5100;
73 text-decoration: underline;
74 }
75 .jssorb01 {
76 position: absolute;
77 }
78 .jssorb01 div, .jssorb01 div:hover, .jssorb01 .av {
79 position: absolute;
80 /* size of bullet elment */
81 width: 12px;
82 height: 12px;
83 filter: alpha(opacity=70);
84 opacity: .7;
85 overflow: hidden;
86 cursor: pointer;
87 border: #000 1px solid;
88 }
89 .jssorb01 div { background-color: gray; }
90 .jssorb01 div:hover, .jssorb01 .av:hover { background-color: #d3d3d3; }
91 .jssorb01 .av { background-color: #fff; }
92 .jssorb01 .dn, .jssorb01 .dn:hover { background-color: #555555; }
93 .jssorb17 {
94 position: absolute;
95 }
96 .jssorb17 div, .jssorb17 div:hover, .jssorb17 .av {
97 position: absolute;
98 /* size of bullet elment */
99 width: 16px;
100 height: 16px;
101 background: url(/images/banner/b17.png) no-repeat;
102 overflow: hidden;
103 cursor: pointer;
104 }
105 .jssorb17 div { background-position: -7px -7px; }
106 .jssorb17 div:hover, .jssorb17 .av:hover { background-position: -37px -7px; }
107 .jssorb17 .av { background-position: -67px -7px; }
108 .jssorb17 .dn, .jssorb17 .dn:hover { background-position: -97px -7px; }
109 .jssora05l, .jssora05r {
110 display: block;
111 position: absolute;
112 /* size of arrow element */
113 width: 40px;
114 height: 40px;
115 cursor: pointer;
116 background: url(/images/banner/a17.png) no-repeat;
117 overflow: hidden;
118 }
119 .jssora05l { background-position: -10px -40px; }
120 .jssora05r { background-position: -70px -40px; }
121 .jssora05l:hover { background-position: -130px -40px; }
122 .jssora05r:hover { background-position: -190px -40px; }
123 .jssora05l.jssora05ldn { background-position: -250px -40px; }
124 .jssora05r.jssora05rdn { background-position: -310px -40px; }
125
126 .jssorb05 {
127 position: absolute;
128 }
129 .jssorb05 div, .jssorb05 div:hover, .jssorb05 .av {
130 position: absolute;
131 /* size of bullet elment */
132 width: 16px;
133 height: 16px;
134 background: url(/images/banner/b05.png) no-repeat;
135 overflow: hidden;
136 cursor: pointer;
137 }
138 .jssorb05 div { background-position: -7px -7px; }
139 .jssorb05 div:hover, .jssorb05 .av:hover { background-position: -37px -7px; }
140 .jssorb05 .av { background-position: -67px -7px; }
141 .jssorb05 .dn, .jssorb05 .dn:hover { background-position: -97px -7px; }
142
143 .jssora22l, .jssora22r {
144 display: block;
145 position: absolute;
146 /* size of arrow element */
147 width: 40px;
148 height: 58px;
149 cursor: pointer;
150 background: url(/images/banner/a22.png) center center no-repeat;
151 overflow: hidden;
152 }
153 .jssora22l { background-position: -10px -31px; }
154 .jssora22r { background-position: -70px -31px; }
155 .jssora22l:hover { background-position: -130px -31px; }
156 .jssora22r:hover { background-position: -190px -31px; }
157 .jssora22l.jssora22ldn { background-position: -250px -31px; }
158 .jssora22r.jssora22rdn { background-position: -310px -31px; }
159
160 .service .block{
161 margin-bottom: 80px;
162 }
163 .service .block.blocklast{
164 margin-bottom: 0px;
165 }
166 .service .block:after {
167 clear: both;
168 }
169 .service .block:before, .service .block:after {
170 display: table;
171 line-height: 0;
172 content: "";
173 }
174 .service .block .imgblock{
175 float: left;
176 margin-right: 20px;
177 }
178 .service .block .imgblock.r{
179 margin-left: 20px;
180 float: right;
181 }
182 .service .block .imgblock img{
183 -webkit-border-radius: 10px;
184 -moz-border-radius: 10px;
185 -ms-border-radius: 10px;
186 -o-border-radius: 10px;
187 border-radius: 10px;
188 }
189 .service .block .txtblock{
190 /*float: left;*/
191 }
192 .service .block .txtblock h3{
193 font-size: 26px;
194 margin: 0;
195 opacity: .99;
196 text-transform: uppercase;
197 color: #475f75;
198 font-weight: normal;
199 }
200 .service .block .txtblock p{
201 font-size: 15px;
202 margin: 10px 0 0;
203 line-height: 23px;
204 color: #666666;
205 font-weight: lighter;
206 }
207 /*.service .block .txtblock ul{
208 display: block;
209 padding: 0;
210 list-style: outside;
211 width: 95%;
212 }
213 .service .block .txtblock ul li{
214 font-size: 15px;
215 line-height: 23px;
216 display: list-item;
217 text-align: -webkit-match-parent;
218 color: #666666;
219 }*/
220
221
1 class ApplicationController < ActionController::Base
2 protect_from_forgery
3
4 before_filter :subdomain_filter, :key_words_filter
5
6 def key_words_filter
7 title_arr = ['诺正检测 | NORMZ TESTING']
8 keywords_arr = ['诺正', '山东诺正', '诺正检测', '食品检测', '消防检测', '第三方检测', '环境检测', '农产品检测', '肉制品检测', 'CANS认证']
9 # description
10 if (chan = params[:chan]).present?
11 @chan = Post::CATE[chan] # => {name: '招贤纳士', cate: {'shzp' => '社会招聘''xyzp' => '校园招聘'}}
12 @chan_name = @chan[:name]
13 @cates = @chan[:cate] # 找到当前频道下的所有类别, 用作左侧导航
14 @cate_name = @cates[params[:cate]] # 当前类别的中文名称
15 title_arr.unshift(@chan_name) if @chan_name.present?
16 title_arr.unshift(@cate_name) if @cate_name
17 end
18 @title = title_arr.join(" - ")
19 @keywords = keywords_arr.join(",")
20 # @description = "诺正检测是独立的第三方检测公司,具有省级资质及农业行业机构的认证,主要从事食品检测、消防检测、环境检测及农产品、饲料、肥料、水产养殖、畜牧产品等领域的检验检测,以及相关技术咨询、培训、研发。"
21 @description = "诺正检测是在中国科学院沈阳应用生态研究所技术支持下成立的综合性第三方检测公司,是通过山东省级资质认定及农业行业机构认证的第三方检验机构,主要从事食品、农产品、环境、饲料、肥料及水产养殖、畜牧产品、消防设施等领域的检验检测,以及相关技术咨询、培训、研发。"
22 end
23
24 def subdomain_filter
25 subdomain = request.subdomain
26 ismobile = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.match(request.user_agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.match(request.user_agent[0..3])
27 # 不存在www的情况 subdomain != 'www'
28 if params[:type] != 'api'
29 if Rails.env.production? and ismobile and subdomain.blank?
30 # redirect_to 'http://h5.normz.cn/#/app/' + request.path
31 url = request.url.to_s.sub('normz.cn/', 'h5.normz.cn/#/app/')
32 if url == 'http://h5.normz.cn/#/app/'
33 url = 'http://h5.normz.cn/#/app/home'
34 end
35 redirect_to url
36 end
37 # if subdomain.present? and !@ismobile
38 # redirect_to request.url.to_s.sub('h5.localhost:3001/#/', 'localhost:3001/')
39 # end
40 end
41 end
42 end
1 class HomeController < ApplicationController
2 def index
3 end
4
5 # /:chan/:cate/:flag
6 def show
7 if @cate.blank?
8 @cate = params[:cate] || @cates.keys[0]# 如果没有类别, 默认第一个为当前类别
9 @cate_name = @cates[@cate]# 当前类别的中文名称
10 end
11
12 @posts = Post.where(isdel: false, chan: params[:chan], cate: @cate).page(params[:page]).per(5).order('id desc')
13 unless params[:page].to_i > 1
14 @post = @posts.first if @posts.length == 1
15 @post = @posts.find_by_flag(params[:flag]) if params[:flag].present?
16 # 网页关键词
17 if @post and @post.words
18 keywords = @post.words.split(",") + @keywords.split(",")
19 keystr = keywords.uniq.join(",")
20 if keystr.length > 100 # 如果长度大于200截取, 删掉最后一个
21 keywords = keystr[0..100].split(",")
22 keywords.pop
23 keystr = keywords.join(',')
24 end
25 @keywords = keystr
26 if params[:flag].present?
27 @title = @post.title + " 诺正检测 | NORMZ TESTING"
28 end
29 end
30 end
31
32 if params[:type] == 'api'
33 posts = @posts.map do |post|
34 img = post.detail.scan(/<img[^>]+src\s*=\s*(['\"][^'\"]+['\"])[^>]*>/).flatten.first.gsub(/\"/, '') rescue '/images/default_200x150.jpg'
35 detail = post.detail.gsub(/<\/?.*?>/,"")[0..120]
36 {title: post.title, flag: post.flag, detail: post.detail, sub_detail: detail, img: img}
37 end
38 post = {title: @post.title, flag: @post.flag, detail: @post.detail} if @post
39 render json: {code: 200, posts: posts, post: post}
40 end
41 end
42 end
...\ No newline at end of file ...\ No newline at end of file
1 class MobileController < ApplicationController
2 def index
3 end
4 end
...\ No newline at end of file ...\ No newline at end of file
1 class PostsController < ApplicationController
2
3 before_filter :current_user, except: [:sign_in]
4 # GET /posts
5 # GET /posts.json
6 def index
7 sort = []
8 params[:screa] ||= 'desc'
9 {scate: :cate, schan: :chan, screa: :created_at}.each do |key, val|
10 if params[key].present?
11 sort.push(params[key] == "desc" ? "#{val} desc" : "#{val} asc")
12 end
13 end
14 @posts = Post.where(isdel: false).page(params[:page]).per(20).order(sort.join(', '))
15
16 respond_to do |format|
17 format.html # index.html.erb
18 format.json { render json: @posts }
19 end
20 end
21
22 # GET /posts/1
23 # GET /posts/1.json
24 def show
25 @post = Post.find_by_flag(params[:id])
26
27 respond_to do |format|
28 format.html # show.html.erb
29 format.json { render json: @post }
30 end
31 end
32
33 # GET /posts/new
34 # GET /posts/new.json
35 def new
36 @post = Post.new
37
38 respond_to do |format|
39 format.html # new.html.erb
40 format.json { render json: @post }
41 end
42 end
43
44 # GET /posts/1/edit
45 def edit
46 @post = Post.find_by_flag(params[:id])
47 end
48
49 # POST /posts
50 # POST /posts.json
51 def create
52 @post = Post.new(params[:post])
53
54 respond_to do |format|
55 if @post.save
56 format.html { redirect_to @post, notice: '文章创建成功.' }
57 format.json { render json: @post, status: :created, location: @post }
58 else
59 format.html { render action: "new" }
60 format.json { render json: @post.errors, status: :unprocessable_entity }
61 end
62 end
63 end
64
65 # PUT /posts/1
66 # PUT /posts/1.json
67 def update
68 @post = Post.find_by_flag(params[:id])
69
70 respond_to do |format|
71 if @post.update_attributes(params[:post])
72 format.html { redirect_to @post, notice: '文章修改成功.' }
73 format.json { head :no_content }
74 else
75 format.html { render action: "edit" }
76 format.json { render json: @post.errors, status: :unprocessable_entity }
77 end
78 end
79 end
80
81 # DELETE /posts/1
82 # DELETE /posts/1.json
83 def destroy
84 @post = Post.find_by_flag(params[:id])
85 @post.update_attributes(isdel: true) if @post
86
87 redirect_to :back
88 end
89
90 # 上传图片
91 def upload
92 if params[:upload_file].present?
93 upload = params[:upload_file]
94 ext = File.extname(upload.original_filename).downcase
95 picture = Picture.create(filename: upload.original_filename)
96 system("convert #{upload.tempfile.path} -auto-orient -resize '1000>' -gravity center -strip -quality 85 -format jpg public/uploads/#{picture.id}.jpg")
97 # 有一个2:1.5的缩略图裁剪 最宽200
98 # File.open("public/uploads/#{picture.id}#{ext}", "wb") { |f| f.write(upload.read) }
99 render json: {success: true, msg: '上传成功', file_path: "/uploads/#{picture.id}.jpg"}
100 else
101 render json: {success: false, msg: '上传错误,联系管理员', file_path: '/images/logo.png'}
102 end
103 end
104
105 def sign_in
106 if request.post?
107 if params[:username] == 'normz' and params[:password] == 'normz-nuozheng'
108 session[:current_user] = 'normz'
109 redirect_to posts_path
110 else
111 flash[:notice] = '账号或密码错误'
112 redirect_to :sign_in
113 end
114 end
115 end
116
117 def sign_out
118 session[:current_user] = nil
119 redirect_to root_path
120 end
121
122 private
123
124 def current_user
125 unless session[:current_user] == 'normz'
126 redirect_to :sign_in and return
127 end
128 end
129 end
1 module ApplicationHelper
2 end
1 module PostsHelper
2 end
File mode changed
File mode changed
1 class Picture < ActiveRecord::Base
2 attr_accessible :filename
3 end
1 class Post < ActiveRecord::Base
2 attr_accessible :title, :flag, :detail, :chan, :cate, :words, :parent_id, :isdel
3
4 CATE = {
5 'ranges' => {
6 name: '诺正业务',
7 cate: {
8 # 'kyly' => '科研领域',
9 'spncp' => '食品/农产品检测',
10 # 'ncpjc' => '农产品检测',
11 # 'rzpjc' => '肉制品检测',
12 'hjjc' => '环境检测',
13 # 'swjc' => '生物检测',
14 # 'yyjc' => '医药检测',
15 'xfjc' => '消防检测',
16 'rhpjc' => '日化品检测',
17 'hfsl' => '化肥/饲料检测',
18 'sfjd' => '环境损害司法鉴定',
19 # 'jtjjc' => '添加剂检测',
20 }
21 },
22 'sources' => {
23 name: '资源中心',
24 cate: {
25 # 'zscx' => '证书查询',
26 'bgcx' => '报告查询',
27 'wssj' => '网上送检'
28 }
29 },
30 'dynamics' => {
31 name: '诺正动态',
32 cate: {
33 'gsdt' => '公司动态',
34 'hykx' => '行业快讯',
35 'pxxx' => '培训学习'
36 }
37 },
38 'cultures' => {
39 name: '诺正文化',
40 cate: {
41 'jzg' => '诺正价值观',
42 # 'hj' => '诺正环境',
43 # 'yj' => '诺正愿景',
44 # 'ygfc' => '员工风采',
45 # 'zd' => '诺正制度',
46 'js' => '诺正精神'
47 }
48 },
49 'abouts' => {
50 name: '关于诺正',
51 cate: {
52 'gsjj' => '公司简介',
53 'jclc' => '检测流程',
54 'yjss' => '硬件设施',
55 'fwcn' => '服务承诺',
56 # 'lxwm' => '联系我们'
57 }
58 },
59 'contact' => {
60 name: '联系我们',
61 cate: {
62 'lxdz' => '联系地址'
63 }
64 },
65 'jobs' => {
66 name: '招贤纳士',
67 cate: {
68 'shzp' => '社会招聘',
69 'xyzp' => '校园招聘'
70 }
71 }
72 }
73
74 BaseArr = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
75
76 validates_presence_of :title, :detail, :chan, :cate, message: '不能为空'
77 validates_uniqueness_of :flag, allow_blank: true, message: '已存在'
78
79 def to_param
80 flag
81 end
82
83 def flag=(val)
84 if flag.blank?
85 write_attribute(:flag, val.blank? ? shorturl : val)
86 else
87 if flag != val and val.present?
88 write_attribute(:flag, val)
89 end
90 end
91 end
92
93 def shorturl
94 hex = Digest::MD5.hexdigest("base_key" + Time.now.to_f.to_s)
95 output = []
96 4.times do |i|
97 str = hex[(i * 8)...(8 * (i + 1))]
98 int = 0x3FFFFFFF & ('0x' + str).to_i(16)
99 out = ''
100 6.times do
101 out += BaseArr[0x0000003D & int]
102 int = int >> 5
103 end
104 output << out
105 end
106 output.sort_by{rand}[0]
107 end
108 end
1 <div style="position: relative; top: 0px; left: 0px; width:100%; text-align: center; background-image: url(/images/banner/back-dice-02.jpg); border-top: 1px solid gray; border-bottom: 1px solid gray; overflow: hidden;">
2 <!-- Jssor Slider Begin -->
3 <!-- To move inline styles to css file/block, please specify a class name for each element. -->
4 <div id="sliderc_container" style="position: relative; margin: 0 auto; width: 960px;
5 height: 450px; text-align: left; overflow: hidden;">
6
7 <!-- Slides Container -->
8 <div u="slides" style="cursor: move; position: absolute; left: 0px; top: 0px; width: 960px; height: 450px;
9 overflow: hidden;">
10 <div>
11 <!-- Jssor Slider Begin -->
12 <!-- To move inline styles to css file/block, please specify a class name for each element. -->
13 <div id="slider1_container" style="position: relative; top: 90px; left: 0px; width: 600px;
14 height: 300px; overflow: hidden; border-radius: 8px;">
15
16 <!-- Loading Screen -->
17 <div u="loading" style="position: absolute; top: 0px; left: 0px;">
18 <div style="filter: alpha(opacity=70); opacity:0.7; position: absolute; display: block;
19 background-color: #000; top: 0px; left: 0px;width: 100%;height:100%;">
20 </div>
21 <div style="position: absolute; display: block; background: url(/images/banner/loading.gif) no-repeat center center;
22 top: 0px; left: 0px;width: 100%;height:100%;">
23 </div>
24 </div>
25
26 <!-- Slides Container -->
27 <div u="slides" style="cursor: move; position: absolute; left: 0px; top: 0px; width: 600px; height: 300px; overflow: hidden;">
28 <div>
29 <a u="image" href="/dynamics/gsdt/iuIvaa">
30 <img src="/images/banner/1-1.jpg" alt="image slider" />
31 </a>
32 <div u=caption t="*" class="captionOrange" style="position:absolute; left:20px; top: 30px; width:420px; height:30px;">
33 中科院沈阳应用生态研究所成立农产品安全山东中心
34 </div>
35 </div>
36 <div>
37 <a u="image" href="javascript:void(0);">
38 <img src="/images/banner/1-2.jpg" alt="jqeury image slider" />
39 </a>
40 <div u=caption t="*" class="captionOrange" style="position:absolute; left:20px; top: 30px; width:420px; height:30px;">
41 中科院沈阳应用生态研究所为诺正检测进行技术培训
42 </div>
43 </div>
44 <div>
45 <a u="image" href="javascript:void(0);">
46 <img src="/images/banner/1-3.jpg" alt="responsive image slider" />
47 </a>
48 <div u=caption t="*" class="captionOrange" style="position:absolute; left:20px; top: 30px; width:350px; height:30px;">
49 潍坊市科技局长与食药局长为诺正检测揭牌
50 </div>
51 </div>
52 <div>
53 <a u="image" href="/abouts/yjss/devices">
54 <img src="/images/banner/1-4.jpg" alt="touch swipe image slider" />
55 </a>
56 <div u=caption t="*" class="captionOrange" style="position:absolute; left:20px; top: 30px; width:350px; height:30px;">
57 诺正检测投入巨资引进国外先进检测设备
58 </div>
59 </div>
60 </div>
61
62 <!--#region Bullet Navigator Skin Begin -->
63 <!-- bullet navigator container -->
64 <div u="navigator" class="jssorb17" style="bottom: 16px; right: 10px;">
65 <!-- bullet navigator item prototype -->
66 <div u="prototype"></div>
67 </div>
68 <!--#endregion Bullet Navigator Skin End -->
69
70 <!-- Arrow Left -->
71 <span u="arrowleft" class="jssora05l" style="top: 123px; left: 8px;">
72 </span>
73 <!-- Arrow Right -->
74 <span u="arrowright" class="jssora05r" style="top: 123px; right: 8px;">
75 </span>
76 <!--#endregion Arrow Navigator Skin End -->
77
78 <a style="display: none" href="javascript:void(0);">Image Slider</a>
79 </div>
80 <!-- Jssor Slider End -->
81 <div u="caption" t="RTT*JUP|BR" t2="SPACESHIP|RB" style="position: absolute; left: 0px;top:30px;width:600px;height:30px;font-size:28px;color:#fff;line-height:30px; text-align: center;">
82 诺正检测,质量和安全的保障
83 </div>
84 <div style="position: absolute; top: 110px; left: 640px; width: 320px; height: 250px;">
85 <div u="caption" t="TEAM_1" d="-200" du="50%" class="captionSymbol" style="position: absolute; top: 10px; left: 0px; width: 30px; height: 30px;">+</div>
86 <div u="caption" t="TEAM_1" d="-200" y="100%" class="captionOrange" style="position: absolute; top: 10px; left: 40px; width: 280px; height: 30px;">
87 国家级认定权威检测机构
88 </div>
89 <div u="caption" t="TEAM_1" d="-200" du="50%" class="captionSymbol" style="position: absolute; top: 60px; left: 0px; width: 30px; height: 30px;" debug-id="team-caption">+</div>
90 <div u="caption" t="TEAM_1" d="-200" y="50%" class="captionOrange" style="position: absolute; top: 60px; left: 40px; width: 280px; height: 30px;">
91 独立的第三方检测机构
92 </div>
93 <div u="caption" t="TEAM_1" d="-200" du="50%" class="captionSymbol" style="position: absolute; top: 110px; left: 0px; width: 30px; height: 30px;">+</div>
94 <div u="caption" t="TEAM_1" d="-200" y="0" class="captionOrange" style="position: absolute; top: 110px; left: 40px; width: 280px; height: 30px;">
95 一期资金投入5000万人民币
96 </div>
97 <div u="caption" t="TEAM_1" d="-200" du="50%" class="captionSymbol" style="position: absolute; top: 160px; left: 0px; width: 30px; height: 30px;">+</div>
98 <div u="caption" t="TEAM_1" d="-200" y="-50%" class="captionOrange" style="position: absolute; top: 160px; left: 40px; width: 280px; height: 30px;">
99 实验室面积2000平方米
100 </div>
101 <div u="caption" t="TEAM_1" d="-200" du="50%" class="captionSymbol" style="position: absolute; top: 210px; left: 0px; width: 30px; height: 30px;">+</div>
102 <div u="caption" t="TEAM_1" d="-200" y="-100%" class="captionOrange" style="position: absolute; top: 210px; left: 40px; width: 280px; height: 30px;">
103 诚信、公正、科学、高效
104 </div>
105 </div>
106 </div>
107 <div>
108 <!-- Jssor Slider Begin -->
109 <!-- To move inline styles to css file/block, please specify a class name for each element. -->
110 <div id="slider2_container" style="position: relative; top: 30px; left: 360px; width: 600px;
111 height: 300px; overflow: hidden; border-radius: 8px; zoom: 1; filter: matrix">
112
113 <!-- Loading Screen -->
114 <div u="loading" style="position: absolute; top: 0px; left: 0px;">
115 <div style="filter: alpha(opacity=70); opacity:0.7; position: absolute; display: block;
116 background-color: #000; top: 0px; left: 0px;width: 100%;height:100%;">
117 </div>
118 <div style="position: absolute; display: block; background: url(/images/banner/loading.gif) no-repeat center center;
119 top: 0px; left: 0px;width: 100%;height:100%;">
120 </div>
121 </div>
122
123 <!-- Slides Container -->
124 <div u="slides" style="cursor: move; position: absolute; left: 0px; top: 0px; width: 600px; height: 300px;
125 overflow: hidden;">
126 <div>
127 <a u=image href="/dynamics/gsdt/2E77vy">
128 <img src="/images/banner/2-1.jpg" alt="banner rotator" />
129 </a>
130 <div u=caption t="*" class="captionOrange" style="position:absolute; left:20px; top: 30px; width:300px; height:30px;">
131 潍坊市市长视察指导工作
132 </div>
133 </div>
134 <div>
135 <a u=image href="http://wfrb.wfnews.com.cn/content/20160109/Articel02006TB.htm" target="_blank">
136 <img src="/images/banner/2-2.jpg" alt="jquery banner rotator" />
137 </a>
138 <div u=caption t="*" class="captionOrange" style="position:absolute; left:20px; top: 30px; width:300px; height:30px;">
139 潍坊日报报道诺正检测公司
140 </div>
141 </div>
142 <div>
143 <a u=image href="/dynamics/pxxx/6Zj22y">
144 <img src="/images/banner/2-3.jpg" alt="responsive banner rotator" />
145 </a>
146 <div u=caption t="*" class="captionOrange" style="position:absolute; left:20px; top: 30px; width:430px; height:30px;">
147 中科院沈阳应用生态研究所主任王颜红为同事解答疑惑
148 </div>
149 </div>
150 <div>
151 <a u=image href="javascript:void(0);">
152 <img src="/images/banner/2-4.jpg" alt="touch swipe banner rotator" />
153 </a>
154 <div u=caption t="*" class="captionOrange" style="position:absolute; left:20px; top: 30px; width:300px; height:30px;">
155 人们放心的笑容是我们一直追求
156 </div>
157 </div>
158 </div>
159
160 <!--#region Bullet Navigator Skin Begin -->
161 <!-- bullet navigator container -->
162 <div u="navigator" class="jssorb17" style="bottom: 16px; right: 10px;">
163 <!-- bullet navigator item prototype -->
164 <div u="prototype"></div>
165 </div>
166 <!--#endregion Bullet Navigator Skin End -->
167
168 <!--#region Arrow Navigator Skin Begin -->
169 <!-- Arrow Left -->
170 <span u="arrowleft" class="jssora05l" style="top: 123px; left: 8px;">
171 </span>
172 <!-- Arrow Right -->
173 <span u="arrowright" class="jssora05r" style="top: 123px; right: 8px;">
174 </span>
175 <!--#endregion Arrow Navigator Skin End -->
176 <a style="display: none" href="javascript:void(0);">Image Slider</a>
177 </div>
178 <!-- Jssor Slider End -->
179 <div u="caption" t="T|IE*IE" t2="B*IB" style="position: absolute; left: 360px;top:360px;width:600px;height:30px;font-size:28px;color:#fff;line-height:30px; text-align: center;">
180 高质高效是诺正不变的承诺
181 </div>
182 <a class="captionTextBlack" u="caption" t="CLIP|L" d="-200" href="javascript:void(0);" style="position: absolute; top: 30px; left: 0px; width: 320px; height: 30px; font-size: 26px; background-color:transparent;">获得政府的大力支持</a>
183
184 <div u="caption" t="ZM" t2="NO" style="position: absolute; top: 80px; left: 0px; width: 320px; height: 80px;">
185 <div u="caption" t2="TEAM_2" class="captionOrange" style="position: absolute; top: 0px; left: 0px; width: 230px; height: 30px;">
186 潍坊市政府
187 </div>
188 <div u="caption" t2="TEAM_2" class="captionBlack" style="position: absolute; top: 40px; left: 0px; width: 100px; height: 30px;">
189 潍坊科技局
190 </div>
191 <div u="caption" t2="TEAM_2" class="captionBlack" style="position: absolute; top: 40px; left: 130px; width: 100px; height: 30px;">
192 潍坊农业局
193 </div>
194 </div>
195
196 <a class="captionTextBlack" u="caption" t="L|EP" href="javascript:void(0);" style="position: absolute; top: 210px; left: 0px; width: 320px; height: 30px; font-size: 26px; background-color:transparent;">社会各界的广泛关注</a>
197
198 <div u="caption" t="B*IB" t2="NO" style="position: absolute; top: 260px; left: 0px; width: 320px; height: 80px;">
199 <div u="caption" t2="TEAM_2" class="captionOrange" style="position: absolute; top: 0px; left: 0px; width: 230px; height: 30px;">
200 潍坊日报
201 </div>
202 <div u="caption" t2="TEAM_2" class="captionBlack" style="position: absolute; top: 40px; left: 0px; width: 100px; height: 30px;">
203 漫拍网
204 </div>
205 <div u="caption" t2="TEAM_2" class="captionBlack" style="position: absolute; top: 40px; left: 130px; width: 100px; height: 30px;">
206 凤凰山东
207 </div>
208 </div>
209 </div>
210 <div>
211 <!-- Jssor Slider Begin -->
212 <!-- To move inline styles to css file/block, please specify a class name for each element. -->
213 <div id="slider3_container" style="position: relative; top: 90px; left: 360px; width: 600px;
214 height: 300px; overflow: hidden; border-radius: 8px;">
215
216 <!-- Loading Screen -->
217 <div u="loading" style="position: absolute; top: 0px; left: 0px;">
218 <div style="filter: alpha(opacity=70); opacity:0.7; position: absolute; display: block;
219 background-color: #000; top: 0px; left: 0px;width: 100%;height:100%;">
220 </div>
221 <div style="position: absolute; display: block; background: url(/images/banner/loading.gif) no-repeat center center;
222 top: 0px; left: 0px;width: 100%;height:100%;">
223 </div>
224 </div>
225
226 <!-- Slides Container -->
227 <div u="slides" style="cursor: move; position: absolute; left: 0px; top: 0px; width: 600px; height: 300px;
228 overflow: hidden;">
229 <div>
230 <a u=image href="javascript:void(0);">
231 <img src="/images/banner/3-1.jpg" alt="banner slider" />
232 </a>
233 <div u="thumb">开放式管理,节日福利,五险一金</div>
234 </div>
235 <div>
236 <a u=image href="javascript:void(0);">
237 <img src="/images/banner/3-2.jpg" alt="jquery banner slider" />
238 </a>
239 <div u="thumb">团建活动频繁到惨无人道</div>
240 </div>
241 <div>
242 <a u=image href="javascript:void(0);">
243 <img src="/images/banner/3-3.jpg" alt="responsive banner slider" />
244 </a>
245 <div u="thumb">工作气氛自由,同事三观正常相貌端庄</div>
246 </div>
247 <div>
248 <a u=image href="javascript:void(0);">
249 <img src="/images/banner/3-4.jpg" alt="touch swipe banner slider" />
250 </a>
251 <div u="thumb">高大上的办公环境给你无尽享受</div>
252 </div>
253 </div>
254
255 <!--#region Thumbnail Navigator Skin Begin -->
256 <!-- thumbnail navigator container -->
257 <div u="thumbnavigator" class="slider3-T" style="position: absolute; bottom: 0px; left: 0px; height:45px; width:600px;">
258 <div style="filter: alpha(opacity=40); opacity:0.4; position: absolute; display: block;
259 background-color: #000; top: 0px; left: 0px; width: 100%; height: 100%;">
260 </div>
261 <!-- Thumbnail Item Skin Begin -->
262 <div u="slides">
263 <div u="prototype" style="POSITION: absolute; WIDTH: 600px; HEIGHT: 45px; TOP: 0; LEFT: 0;">
264 <div u="thumbnailtemplate" style="font-family: verdana; font-weight: normal; POSITION: absolute; WIDTH: 100%; HEIGHT: 100%; TOP: 0; LEFT: 0; color:#fff; line-height: 45px; font-size:20px; padding-left:10px;"></div>
265 </div>
266 </div>
267 <!-- Thumbnail Item Skin End -->
268 </div>
269 <!--#endregion ThumbnailNavigator Skin End -->
270
271 <!--#region Bullet Navigator Skin Begin -->
272 <!-- bullet navigator container -->
273 <div u="navigator" class="jssorb01" style="bottom: 16px; right: 10px;">
274 <!-- bullet navigator item prototype -->
275 <div u="prototype"></div>
276 </div>
277 <!--#endregion Bullet Navigator Skin End -->
278
279 <!--#region Arrow Navigator Skin Begin -->
280 <!-- Arrow Left -->
281 <span u="arrowleft" class="jssora05l" style="top: 123px; left: 8px;">
282 </span>
283 <!-- Arrow Right -->
284 <span u="arrowright" class="jssora05r" style="top: 123px; right: 8px;">
285 </span>
286 <!--#endregion Arrow Navigator Skin End -->
287 <a style="display: none" href="javascript:void(0);">Image Slider</a>
288 </div>
289 <!-- Jssor Slider End -->
290 <div u="caption" t="L*IB" t2="SPACESHIP|LB" style="position: absolute; left: 360px;top:30px;width:600px;height:30px;font-size:28px;color:#fff;line-height:30px; text-align: center;">
291 科学严谨, 服务至上
292 </div>
293 <div class="captionTextBlack" u="caption" t="CLIP|LR" d="-200"
294 style="position: absolute; top: 60px; left: 0px; width: 320px; height: 30px; font-size: 26px; background-color:transparent;">我们的团队</div>
295
296 <div u="caption" t2="ZM" style="position: absolute; top: 120px; left: 0px; width: 320px; height: 120px;">
297 <div u="caption" class="captionOrange" t="TEAM_2" t2="NO" d=-300 style="position: absolute; top: 0px; left: 0px; width: 200px; height: 30px;">
298 共同事业, 共同奋斗
299 </div>
300 <div u="caption" class="captionBlack" t="TEAM_2" t2="NO" d=-300 style="position: absolute; top: 40px; left: 0px; width: 200px; height: 30px;">
301 因为专注, 所以专业
302 </div>
303 <div u="caption" class="captionBlack" t="TEAM_2" t2="NO" d=-300 style="position: absolute; top: 80px; left: 00px; width: 200px; height: 30px;">
304 科学严谨, 服务至上
305 </div>
306 </div>
307
308 <div u="caption" t="RTT|360" t2="NO" style="position: absolute; top: 290px; left: 0px; width: 320px; height: 80px;">
309 <div u="caption" class="captionOrange" t2="TEAM_2" style="position: absolute; top: 0px; left: 0px; width: 120px; height: 30px;">
310 高级职称6人
311 </div>
312 <div u="caption" class="captionOrange" t2="TEAM_2" style="position: absolute; top: 40px; left: 0px; width: 120px; height: 30px;">
313 中级职称10人
314 </div>
315 <div u="caption" class="captionBlack" t2="TEAM_2" style="position: absolute; top: 0px; left: 170px; width: 120px; height: 30px;">
316 初级职称10人
317 </div>
318 <div u="caption" class="captionBlack" t2="TEAM_2" style="position: absolute; top: 40px; left: 170px; width: 120px; height: 30px;">
319 其他6人
320 </div>
321 </div>
322 </div>
323 </div>
324
325 <!-- bullet navigator container -->
326 <div data-u="navigator" class="jssorb05" style="bottom:16px;right:16px;" data-autocenter="1">
327 <!-- bullet navigator item prototype -->
328 <div data-u="prototype" style="width:16px;height:16px;"></div>
329 </div>
330 <!--#endregion Bullet Navigator Skin End -->
331
332 <!-- Arrow Left -->
333 <span u="arrowleft" class="jssora22l" style="top: 123px; left: 8px;">
334 </span>
335 <!-- Arrow Right -->
336 <span u="arrowright" class="jssora22r" style="top: 123px; right: 8px;">
337 </span>
338 <!--#endregion Arrow Navigator Skin End -->
339 <a style="display: none" href="javascript:void(0);">Image Slider</a>
340 <!-- Trigger -->
341 </div>
342 <!-- Jssor Slider End -->
343 </div>
344
345 <script>
346 jssor_sliderc_starter = function (containerId) {
347
348 var _SlideshowTransitions = [
349 //Fade Twins
350 { $Duration: 700, $Opacity: 2, $Brother: { $Duration: 1000, $Opacity: 2 } },
351 //Rotate Overlap
352 { $Duration: 1200, $Zoom: 11, $Rotate: -1, $Easing: { $Zoom: $JssorEasing$.$EaseInQuad, $Opacity: $JssorEasing$.$EaseLinear, $Rotate: $JssorEasing$.$EaseInQuad }, $Opacity: 2, $Round: { $Rotate: 0.5 }, $Brother: { $Duration: 1200, $Zoom: 1, $Rotate: 1, $Easing: $JssorEasing$.$EaseSwing, $Opacity: 2, $Round: { $Rotate: 0.5 }, $Shift: 90 } },
353 //Switch
354 { $Duration: 1400, x: 0.25, $Zoom: 1.5, $Easing: { $Left: $JssorEasing$.$EaseInWave, $Zoom: $JssorEasing$.$EaseInSine }, $Opacity: 2, $ZIndex: -10, $Brother: { $Duration: 1400, x: -0.25, $Zoom: 1.5, $Easing: { $Left: $JssorEasing$.$EaseInWave, $Zoom: $JssorEasing$.$EaseInSine }, $Opacity: 2, $ZIndex: -10 } },
355 //Rotate Relay
356 { $Duration: 1200, $Zoom: 11, $Rotate: 1, $Easing: { $Opacity: $JssorEasing$.$EaseLinear, $Rotate: $JssorEasing$.$EaseInQuad }, $Opacity: 2, $Round: { $Rotate: 1 }, $ZIndex: -10, $Brother: { $Duration: 1200, $Zoom: 11, $Rotate: -1, $Easing: { $Opacity: $JssorEasing$.$EaseLinear, $Rotate: $JssorEasing$.$EaseInQuad }, $Opacity: 2, $Round: { $Rotate: 1 }, $ZIndex: -10, $Shift: 600 } },
357 //Doors
358 { $Duration: 1500, x: 0.5, $Cols: 2, $ChessMode: { $Column: 3 }, $Easing: { $Left: $JssorEasing$.$EaseInOutCubic }, $Opacity: 2, $Brother: { $Duration: 1500, $Opacity: 2 } },
359 //Rotate in+ out-
360 { $Duration: 1500, x: -0.3, y: 0.5, $Zoom: 1, $Rotate: 0.1, $During: { $Left: [0.6, 0.4], $Top: [0.6, 0.4], $Rotate: [0.6, 0.4], $Zoom: [0.6, 0.4] }, $Easing: { $Left: $JssorEasing$.$EaseInQuad, $Top: $JssorEasing$.$EaseInQuad, $Opacity: $JssorEasing$.$EaseLinear, $Rotate: $JssorEasing$.$EaseInQuad }, $Opacity: 2, $Brother: { $Duration: 1000, $Zoom: 11, $Rotate: -0.5, $Easing: { $Opacity: $JssorEasing$.$EaseLinear, $Rotate: $JssorEasing$.$EaseInQuad }, $Opacity: 2, $Shift: 200 } },
361 //Fly Twins
362 { $Duration: 1500, x: 0.3, $During: { $Left: [0.6, 0.4] }, $Easing: { $Left: $JssorEasing$.$EaseInQuad, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2, $Outside: true, $Brother: { $Duration: 1000, x: -0.3, $Easing: { $Left: $JssorEasing$.$EaseInQuad, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2 } },
363 //Rotate in- out+
364 { $Duration: 1500, $Zoom: 11, $Rotate: 0.5, $During: { $Left: [0.4, 0.6], $Top: [0.4, 0.6], $Rotate: [0.4, 0.6], $Zoom: [0.4, 0.6] }, $Easing: { $Opacity: $JssorEasing$.$EaseLinear, $Rotate: $JssorEasing$.$EaseInQuad }, $Opacity: 2, $Brother: { $Duration: 1000, $Zoom: 1, $Rotate: -0.5, $Easing: { $Opacity: $JssorEasing$.$EaseLinear, $Rotate: $JssorEasing$.$EaseInQuad }, $Opacity: 2, $Shift: 200 } },
365 //Rotate Axis up overlap
366 { $Duration: 1200, x: 0.25, y: 0.5, $Rotate: -0.1, $Easing: { $Left: $JssorEasing$.$EaseInQuad, $Top: $JssorEasing$.$EaseInQuad, $Opacity: $JssorEasing$.$EaseLinear, $Rotate: $JssorEasing$.$EaseInQuad }, $Opacity: 2, $Brother: { $Duration: 1200, x: -0.1, y: -0.7, $Rotate: 0.1, $Easing: { $Left: $JssorEasing$.$EaseInQuad, $Top: $JssorEasing$.$EaseInQuad, $Opacity: $JssorEasing$.$EaseLinear, $Rotate: $JssorEasing$.$EaseInQuad }, $Opacity: 2 } },
367 //Chess Replace TB
368 { $Duration: 1600, x: 1, $Rows: 2, $ChessMode: { $Row: 3 }, $Easing: { $Left: $JssorEasing$.$EaseInOutQuart, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2, $Brother: { $Duration: 1600, x: -1, $Rows: 2, $ChessMode: { $Row: 3 }, $Easing: { $Left: $JssorEasing$.$EaseInOutQuart, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2 } },
369 //Chess Replace LR
370 { $Duration: 1600, y: -1, $Cols: 2, $ChessMode: { $Column: 12 }, $Easing: { $Top: $JssorEasing$.$EaseInOutQuart, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2, $Brother: { $Duration: 1600, y: 1, $Cols: 2, $ChessMode: { $Column: 12 }, $Easing: { $Top: $JssorEasing$.$EaseInOutQuart, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2 } },
371 //Shift TB
372 { $Duration: 1200, y: 1, $Easing: { $Top: $JssorEasing$.$EaseInOutQuart, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2, $Brother: { $Duration: 1200, y: -1, $Easing: { $Top: $JssorEasing$.$EaseInOutQuart, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2 } },
373 //Shift LR
374 { $Duration: 1200, x: 1, $Easing: { $Left: $JssorEasing$.$EaseInOutQuart, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2, $Brother: { $Duration: 1200, x: -1, $Easing: { $Left: $JssorEasing$.$EaseInOutQuart, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2 } },
375 //Return TB
376 { $Duration: 1200, y: -1, $Easing: { $Top: $JssorEasing$.$EaseInOutQuart, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2, $ZIndex: -10, $Brother: { $Duration: 1200, y: -1, $Easing: { $Top: $JssorEasing$.$EaseInOutQuart, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2, $ZIndex: -10, $Shift: -100 } },
377 //Return LR
378 { $Duration: 1200, x: 1, $Delay: 40, $Cols: 6, $Formation: $JssorSlideshowFormations$.$FormationStraight, $Easing: { $Left: $JssorEasing$.$EaseInOutQuart, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2, $ZIndex: -10, $Brother: { $Duration: 1200, x: 1, $Delay: 40, $Cols: 6, $Formation: $JssorSlideshowFormations$.$FormationStraight, $Easing: { $Top: $JssorEasing$.$EaseInOutQuart, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2, $ZIndex: -10, $Shift: -100 } },
379 //Rotate Axis down
380 { $Duration: 1500, x: -0.1, y: -0.7, $Rotate: 0.1, $During: { $Left: [0.6, 0.4], $Top: [0.6, 0.4], $Rotate: [0.6, 0.4] }, $Easing: { $Left: $JssorEasing$.$EaseInQuad, $Top: $JssorEasing$.$EaseInQuad, $Opacity: $JssorEasing$.$EaseLinear, $Rotate: $JssorEasing$.$EaseInQuad }, $Opacity: 2, $Brother: { $Duration: 1000, x: 0.2, y: 0.5, $Rotate: -0.1, $Easing: { $Left: $JssorEasing$.$EaseInQuad, $Top: $JssorEasing$.$EaseInQuad, $Opacity: $JssorEasing$.$EaseLinear, $Rotate: $JssorEasing$.$EaseInQuad }, $Opacity: 2 } },
381 //Extrude Replace
382 { $Duration: 1600, x: -0.2, $Delay: 40, $Cols: 12, $During: { $Left: [0.4, 0.6] }, $SlideOut: true, $Formation: $JssorSlideshowFormations$.$FormationStraight, $Assembly: 260, $Easing: { $Left: $JssorEasing$.$EaseInOutExpo, $Opacity: $JssorEasing$.$EaseInOutQuad }, $Opacity: 2, $Outside: true, $Round: { $Top: 0.5 }, $Brother: { $Duration: 1000, x: 0.2, $Delay: 40, $Cols: 12, $Formation: $JssorSlideshowFormations$.$FormationStraight, $Assembly: 1028, $Easing: { $Left: $JssorEasing$.$EaseInOutExpo, $Opacity: $JssorEasing$.$EaseInOutQuad }, $Opacity: 2, $Round: { $Top: 0.5 } } }
383 ];
384
385 var captionTransitions = [];
386
387 var t_tr = { $Duration: 700, x: -0.6, y: 0.6, $Easing: { $Left: $JssorEasing$.$EaseInOutSine, $Top: $JssorEasing$.$EaseInOutSine }, $Opacity: 2 };
388 var t_tr_ib = { $Duration: 900, x: -0.6, y: 0.6, $Easing: { $Left: $JssorEasing$.$EaseInOutBack, $Top: $JssorEasing$.$EaseInOutBack }, $Opacity: 2 };
389 var t_rtt_tr = { $Duration: 700, x: -0.6, y: 0.6, $Zoom: 11, $Rotate: 1, $Easing: { $Left: $JssorEasing$.$EaseInCubic, $Top: $JssorEasing$.$EaseInCubic, $Zoom: $JssorEasing$.$EaseInCubic, $Opacity: $JssorEasing$.$EaseLinear, $Rotate: $JssorEasing$.$EaseInCubic }, $Opacity: 2, $Round: { $Rotate: 0.8} };
390
391 var t_rtt_360 = { $Duration: 800, $Rotate: 1, $Easing: { $Opacity: $JssorEasing$.$EaseLinear, $Rotate: $JssorEasing$.$EaseInQuad }, $Opacity: 2 };
392 var t_clip_lr = { $Duration: 900, $Clip: 3, $Easing: { $Clip: $JssorEasing$.$EaseInOutCubic }, $Opacity: 2 };
393 var t_zm = { $Duration: 700, $Zoom: 1, $Easing: $JssorEasing$.$EaseInCubic, $Opacity: 2 };
394 var t_b_ = { $Duration: 700, y: -0.6, $Rotate: 0.05, $Easing: { $Top: $JssorEasing$.$EaseInOutSine }, $Opacity: 2 };
395
396 captionTransitions["TEAM_1"] = [[t_rtt_360, t_zm], [t_zm, t_rtt_tr]];
397 captionTransitions["TEAM_2"] = [t_rtt_360, t_clip_lr, t_zm, t_b_];
398
399 captionTransitions["L|IB"] = { $Duration: 900, x: 0.6, $Easing: { $Left: $JssorEasing$.$EaseInOutBack }, $Opacity: 2 };
400 captionTransitions["L|EP"] = { $Duration: 900, x: 0.6, $Easing: { $Left: $JssorEasing$.$EaseInOutExpo }, $Opacity: 2 };
401 captionTransitions["L*IB"] = { $Duration: 900, x: 0.6, $Zoom: 3, $Rotate: -0.3, $Easing: { $Left: $JssorEasing$.$EaseInCubic, $Rotate: $JssorEasing$.$EaseInBack }, $Opacity: 2 };
402 captionTransitions["B*IB"] = { $Duration: 900, y: -0.6, $Zoom: 3, $Rotate: -0.3, $Easing: { $Top: $JssorEasing$.$EaseInCubic, $Rotate: $JssorEasing$.$EaseInBack }, $Opacity: 2 };
403 captionTransitions["T|IE*IE"] = { $Duration: 1800, y: 0.8, $Zoom: 11, $Rotate: -1.5, $Easing: { $Top: $JssorEasing$.$EaseInOutElastic, $Zoom: $JssorEasing$.$EaseInElastic, $Rotate: $JssorEasing$.$EaseInOutElastic }, $Opacity: 2, $During: { $Zoom: [0, 0.8], $Opacity: [0, 0.7] }, $Round: { $Rotate: 0.5} };
404 captionTransitions["CLIP|L"] = { $Duration: 800, $Clip: 1, $Easing: { $Clip: $JssorEasing$.$EaseInOutCubic }, $Opacity: 2 };
405 captionTransitions["CLIP|LR"] = t_clip_lr;
406 captionTransitions["RTT|360"] = t_rtt_360;
407 captionTransitions["RTT*JUP|BR"] = { $Duration: 1000, x: -0.5, y: -0.8, $Zoom: 11, $Rotate: 0.2, $Easing: { $Left: $JssorEasing$.$EaseInCubic, $Top: $JssorEasing$.$EaseLinear, $Zoom: $JssorEasing$.$EaseInCubic }, $Opacity: 2, $During: { $Left: [0, 0.5]} };
408 captionTransitions["RTT*JDN|L"] = { $Duration: 1200, x: 0.3, $Zoom: 11, $Rotate: 0.2, $Easing: { $Left: $JssorEasing$.$EaseOutCubic, $Zoom: $JssorEasing$.$EaseInCubic }, $Opacity: 2, $During: { $Left: [0, 0.5]} };
409 captionTransitions["SPACESHIP|LB"] = { $Duration: 1000, x: 1, y: -0.1, $Zoom: 3, $Rotate: -0.1, $Easing: { $Left: $JssorEasing$.$EaseInQuint, $Top: $JssorEasing$.$EaseInWave, $Opacity: $JssorEasing$.$EaseInQuint }, $Opacity: 2 };
410 captionTransitions["SPACESHIP|RB"] = { $Duration: 1000, x: -1, y: -0.1, $Zoom: 3, $Rotate: 0.1, $Easing: { $Left: $JssorEasing$.$EaseInQuint, $Top: $JssorEasing$.$EaseInWave, $Opacity: $JssorEasing$.$EaseInQuint }, $Opacity: 2 };
411 captionTransitions["ZM"] = { $Duration: 600, $Zoom: 1, $Easing: $JssorEasing$.$EaseInCubic, $Opacity: 2 };
412
413 var captionTransitions_childSliders = [
414 //R|IB
415 {$Duration: 900, x: -0.6, $Easing: { $Left: $JssorEasing$.$EaseInOutBack }, $Opacity: 2 }
416 //B|IB
417 , { $Duration: 900, y: -0.6, $Easing: { $Top: $JssorEasing$.$EaseInOutBack }, $Opacity: 2 }
418 //R*|IB
419 , { $Duration: 900, x: -0.6, $Zoom: 3, $Rotate: -0.3, $Easing: { $Left: $JssorEasing$.$EaseInCubic, $Rotate: $JssorEasing$.$EaseInBack }, $Opacity: 2 }
420 //B*|IB
421 , { $Duration: 900, y: -0.6, $Zoom: 3, $Rotate: -0.3, $Easing: { $Top: $JssorEasing$.$EaseInCubic, $Rotate: $JssorEasing$.$EaseInBack }, $Opacity: 2 }
422 //R-*|IB
423 , { $Duration: 900, x: -0.7, $Rotate: 0.5, $Easing: { $Left: $JssorEasing$.$EaseInCubic, $Opacity: $JssorEasing$.$EaseInQuad, $Rotate: $JssorEasing$.$EaseInBack }, $Opacity: 2, $During: { $Left: [0.2, 0.8]} }
424 //B-*|IB
425 , { $Duration: 900, y: -0.7, $Rotate: 0.5, $Easing: { $Top: $JssorEasing$.$EaseInCubic, $Opacity: $JssorEasing$.$EaseInQuad, $Rotate: $JssorEasing$.$EaseInBack }, $Opacity: 2, $During: { $Top: [0.2, 0.8]} }
426 //CLIP|LR
427 , { $Duration: 900, $Clip: 3, $Easing: { $Clip: $JssorEasing$.$EaseInOutCubic }, $Opacity: 2 }
428 //CLIP|TB
429 , { $Duration: 900, $Clip: 12, $Easing: { $Clip: $JssorEasing$.$EaseInOutCubic }, $Opacity: 2 }
430 //CLIP|L
431 , { $Duration: 800, $Clip: 1, $Easing: { $Clip: $JssorEasing$.$EaseInOutCubic }, $Opacity: 2 }
432 //ZM*JDN|RB
433 , { $Duration: 1200, x: -0.8, y: -0.5, $Zoom: 11, $Easing: { $Left: $JssorEasing$.$EaseLinear, $Top: $JssorEasing$.$EaseOutCubic, $Zoom: $JssorEasing$.$EaseInCubic }, $Opacity: 2, $During: { $Top: [0, 0.5]} }
434 //RTT*JUP|RB
435 , { $Duration: 1200, x: -0.8, y: -0.5, $Zoom: 11, $Rotate: 0.2, $Easing: { $Left: $JssorEasing$.$EaseLinear, $Top: $JssorEasing$.$EaseInCubic, $Zoom: $JssorEasing$.$EaseInCubic }, $Opacity: 2, $During: { $Top: [0, 0.5]} }
436 //TORTUOUS|VB
437 , { $Duration: 1800, y: -0.2, $Zoom: 1, $Easing: { $Top: $JssorEasing$.$EaseOutWave, $Zoom: $JssorEasing$.$EaseOutCubic }, $Opacity: 2, $During: { $Top: [0, 0.7] }, $Round: { $Top: 1.3} }
438 ];
439
440 var slider1Options = {
441 $AutoPlayInterval: 3000, //[Optional] Interval (in milliseconds) to go for next slide since the previous stopped if the slider is auto playing, default value is 3000
442 $DragOrientation: 0, //[Optional] Orientation to drag slide, 0 no drag, 1 horizental, 2 vertical, 3 either, default value is 1 (Note that the $DragOrientation should be the same as $PlayOrientation when $DisplayPieces is greater than 1, or parking position is not 0)
443
444 $CaptionSliderOptions: { //[Optional] Options which specifies how to animate caption
445 $Class: $JssorCaptionSlider$, //[Required] Class to create instance to animate caption
446 $CaptionTransitions: captionTransitions_childSliders, //[Required] An array of caption transitions to play caption, see caption transition section at jssor slideshow transition builder
447 $PlayInMode: 1, //[Optional] 0 None (no play), 1 Chain (goes after main slide), 3 Chain Flatten (goes after main slide and flatten all caption animations), default value is 1
448 $PlayOutMode: 3 //[Optional] 0 None (no play), 1 Chain (goes before main slide), 3 Chain Flatten (goes before main slide and flatten all caption animations), default value is 1
449 },
450
451 $BulletNavigatorOptions: { //[Optional] Options to specify and enable navigator or not
452 $Class: $JssorBulletNavigator$, //[Required] Class to create navigator instance
453 $ChanceToShow: 2, //[Required] 0 Never, 1 Mouse Over, 2 Always
454 $SpacingX: 10, //[Optional] Horizontal space between each item in pixel, default value is 0
455 $SpacingY: 10 //[Optional] Vertical space between each item in pixel, default value is 0
456 },
457
458 $ArrowNavigatorOptions: {
459 $Class: $JssorArrowNavigator$, //[Requried] Class to create arrow navigator instance
460 $ChanceToShow: 2 //[Required] 0 Never, 1 Mouse Over, 2 Always
461 }
462 };
463
464 var jssorSlider1 = new $JssorSlider$("slider1_container", slider1Options);
465
466 var slider2Options = {
467 $AutoPlayInterval: 3000, //[Optional] Interval (in milliseconds) to go for next slide since the previous stopped if the slider is auto playing, default value is 3000
468 $DragOrientation: 0, //[Optional] Orientation to drag slide, 0 no drag, 1 horizental, 2 vertical, 3 either, default value is 1 (Note that the $DragOrientation should be the same as $PlayOrientation when $DisplayPieces is greater than 1, or parking position is not 0)
469
470 $SlideshowOptions: { //[Optional] Options to specify and enable slideshow or not
471 $Class: $JssorSlideshowRunner$, //[Required] Class to create instance of slideshow
472 $Transitions: _SlideshowTransitions, //[Required] An array of slideshow transitions to play slideshow
473 $TransitionsOrder: 1, //[Optional] The way to choose transition to play slide, 1 Sequence, 0 Random
474 $ShowLink: true //[Optional] Whether to bring slide link on top of the slider when slideshow is running, default value is false
475 },
476
477 $CaptionSliderOptions: { //[Optional] Options which specifies how to animate caption
478 $Class: $JssorCaptionSlider$, //[Required] Class to create instance to animate caption
479 $CaptionTransitions: captionTransitions_childSliders, //[Required] An array of caption transitions to play caption, see caption transition section at jssor slideshow transition builder
480 $PlayInMode: 1, //[Optional] 0 None (no play), 1 Chain (goes after main slide), 3 Chain Flatten (goes after main slide and flatten all caption animations), default value is 1
481 $PlayOutMode: 3 //[Optional] 0 None (no play), 1 Chain (goes before main slide), 3 Chain Flatten (goes before main slide and flatten all caption animations), default value is 1
482 },
483
484 $BulletNavigatorOptions: { //[Optional] Options to specify and enable navigator or not
485 $Class: $JssorBulletNavigator$, //[Required] Class to create navigator instance
486 $ChanceToShow: 2, //[Required] 0 Never, 1 Mouse Over, 2 Always
487 $SpacingX: 10, //[Optional] Horizontal space between each item in pixel, default value is 0
488 $SpacingY: 10 //[Optional] Vertical space between each item in pixel, default value is 0
489 },
490
491 $ArrowNavigatorOptions: {
492 $Class: $JssorArrowNavigator$, //[Requried] Class to create arrow navigator instance
493 $ChanceToShow: 2 //[Required] 0 Never, 1 Mouse Over, 2 Always
494 }
495 };
496
497 var jssorSlider2 = new $JssorSlider$("slider2_container", slider2Options);
498
499 var bannerSlider_slideshowTransitions = [
500 //Fade in R
501 {$Duration: 1200, x: -0.3, $During: { $Left: [0.3, 0.7] }, $Easing: { $Left: $JssorEasing$.$EaseInCubic, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2 }
502 //Fade out L
503 , { $Duration: 1200, x: 0.3, $SlideOut: true, $Easing: { $Left: $JssorEasing$.$EaseInCubic, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2 }
504 ];
505
506 var slider3Options = {
507 $AutoPlayInterval: 3000, //[Optional] Interval (in milliseconds) to go for next slide since the previous stopped if the slider is auto playing, default value is 3000
508 $DragOrientation: 0, //[Optional] Orientation to drag slide, 0 no drag, 1 horizental, 2 vertical, 3 either, default value is 1 (Note that the $DragOrientation should be the same as $PlayOrientation when $DisplayPieces is greater than 1, or parking position is not 0)
509
510 $SlideshowOptions: { //[Optional] Options to specify and enable slideshow or not
511 $Class: $JssorSlideshowRunner$, //[Required] Class to create instance of slideshow
512 $Transitions: bannerSlider_slideshowTransitions, //[Required] An array of slideshow transitions to play slideshow
513 $TransitionsOrder: 1, //[Optional] The way to choose transition to play slide, 1 Sequence, 0 Random
514 $ShowLink: true //[Optional] Whether to bring slide link on top of the slider when slideshow is running, default value is false
515 },
516
517 $BulletNavigatorOptions: { //[Optional] Options to specify and enable navigator or not
518 $Class: $JssorBulletNavigator$, //[Required] Class to create navigator instance
519 $ChanceToShow: 2, //[Required] 0 Never, 1 Mouse Over, 2 Always
520 $SpacingX: 10, //[Optional] Horizontal space between each item in pixel, default value is 0
521 $SpacingY: 10 //[Optional] Vertical space between each item in pixel, default value is 0
522 },
523
524 $ArrowNavigatorOptions: {
525 $Class: $JssorArrowNavigator$, //[Requried] Class to create arrow navigator instance
526 $ChanceToShow: 2 //[Required] 0 Never, 1 Mouse Over, 2 Always
527 },
528
529 $ThumbnailNavigatorOptions: {
530 $Class: $JssorThumbnailNavigator$, //[Required] Class to create thumbnail navigator instance
531 $ChanceToShow: 2, //[Required] 0 Never, 1 Mouse Over, 2 Always
532 $ActionMode: 0, //[Optional] 0 None, 1 act by click, 2 act by mouse hover, 3 both, default value is 1
533 $DisableDrag: true //[Optional] Disable drag or not, default value is false
534 }
535 };
536
537 var jssorSlider3 = new $JssorSlider$("slider3_container", slider3Options);
538
539 var sliderClusterSlideshowOptions = ($Jssor$.$IsBrowserIE() && $Jssor$.$BrowserEngineVersion() < 8) ? null : { //[Optional] Options to specify and enable slideshow or not
540 $Class: $JssorSlideshowRunner$, //[Required] Class to create instance of slideshow
541 $Transitions: _SlideshowTransitions, //[Required] An array of slideshow transitions to play slideshow
542 $TransitionsOrder: 1, //[Optional] The way to choose transition to play slide, 1 Sequence, 0 Random
543 $ShowLink: true //[Optional] Whether to bring slide link on top of the slider when slideshow is running, default value is false
544 };
545
546 var slidercOptions = {
547 $AutoPlay: false, //[Optional] Whether to auto play, to enable slideshow, this option must be set to true, default value is false
548 $AutoPlayInterval: 3000, //[Optional] Interval (in milliseconds) to go for next slide since the previous stopped if the slider is auto playing, default value is 3000
549 $PauseOnHover: 1, //[Optional] Whether to pause when mouse over if a slider is auto playing, 0 no pause, 1 pause for desktop, 2 pause for touch device, 3 pause for desktop and touch device, 4 freeze for desktop, 8 freeze for touch device, 12 freeze for desktop and touch device, default value is 1
550
551 $ArrowKeyNavigation: true, //Allows arrow key to navigate or not, default value is true
552 $SlideDuration: 800, //[Optional] Specifies default duration (swipe) for slide in milliseconds, default value is 500
553 $UISearchMode: 0, //[Optional] The way (0 parellel, 1 recursive, default value is 1) to search UI components (slides container, loading screen, navigator container, arrow navigator container, thumbnail navigator container etc).
554 $DragOrientation: 3, //[Optional] Orientation to drag slide, 0 no drag, 1 horizental, 2 vertical, 3 either, default value is 1 (Note that the $DragOrientation should be the same as $PlayOrientation when $DisplayPieces is greater than 1, or parking position is not 0)
555
556 $SlideshowOptions: sliderClusterSlideshowOptions,
557
558 $CaptionSliderOptions: { //[Optional] Options which specifies how to animate caption
559 $Class: $JssorCaptionSlider$, //[Required] Class to create instance to animate caption
560 $CaptionTransitions: captionTransitions, //[Required] An array of caption transitions to play caption, see caption transition section at jssor slideshow transition builder
561 $PlayInMode: 1, //[Optional] 0 None (no play), 1 Chain (goes after main slide), 3 Chain Flatten (goes after main slide and flatten all caption animations), default value is 1
562 $PlayOutMode: 3 //[Optional] 0 None (no play), 1 Chain (goes before main slide), 3 Chain Flatten (goes before main slide and flatten all caption animations), default value is 1
563 },
564
565 $ArrowNavigatorOptions: { //[Optional] Options to specify and enable arrow navigator or not
566 $Class: $JssorArrowNavigator$, //[Requried] Class to create arrow navigator instance
567 $ChanceToShow: 1, //[Required] 0 Never, 1 Mouse Over, 2 Always
568 $AutoCenter: 2 //[Optional] Auto center arrows in parent container, 0 No, 1 Horizontal, 2 Vertical, 3 Both, default value is 0
569 },
570
571 $BulletNavigatorOptions: { //[Optional] Options to specify and enable navigator or not
572 $Class: $JssorBulletNavigator$, //[Required] Class to create navigator instance
573 $ChanceToShow: 2, //[Required] 0 Never, 1 Mouse Over, 2 Always
574 $AutoCenter: 1, //[Optional] Auto center navigator in parent container, 0 None, 1 Horizontal, 2 Vertical, 3 Both, default value is 0
575 $SpacingX: 4, //[Optional] Horizontal space between each item in pixel, default value is 0
576 $SpacingY: 4 //[Optional] Vertical space between each item in pixel, default value is 0
577 }
578 };
579
580 var jssorSliderc = new $JssorSlider$(containerId, slidercOptions);
581
582 //responsive code begin
583 //you can remove responsive code if you don't want the slider scales while window resizes
584 function ScaleSlider() {
585 var parentWidth = jssorSliderc.$Elmt.parentNode.clientWidth;
586 if (parentWidth)
587 jssorSliderc.$ScaleWidth(Math.max(Math.min(parentWidth, 960), 300));
588 else
589 $Jssor$.$Delay(ScaleSlider, 30);
590 }
591
592 ScaleSlider();
593 $Jssor$.$AddEvent(window, "load", ScaleSlider);
594
595 $Jssor$.$AddEvent(window, "resize", $Jssor$.$WindowResizeFilter(window, ScaleSlider));
596 $Jssor$.$AddEvent(window, "orientationchange", ScaleSlider);
597 //responsive code end
598
599 //slider cluster controller code begin
600 function SliderCluster(mainSlider, autoPlayInterval) {
601 var _Self = this;
602 var _NestedSliders = [];
603 var _NestedSliderCurrent;
604
605 var _CaptionInCounter = 0;
606
607 function OnChildSliderStateChange(currentIndex, progress, progressBegin, idleBegin, idleEnd, progressEnd) {
608 if (progress == idleBegin) {
609 if (!(++_CaptionInCounter % 4)) {
610
611 _NestedSliderCurrent && _NestedSliderCurrent.$Pause();
612
613 mainSlider.$Play(true);
614 }
615 }
616 }
617
618 function OnMainSliderStateChange(currentIndex, progress, progressBegin, idleBegin, idleEnd, progressEnd) {
619
620 _NestedSliderCurrent = _NestedSliders[currentIndex];
621
622 if (_NestedSliderCurrent) {
623 if (progress == idleBegin) {
624
625 mainSlider.$Pause();
626 _NestedSliderCurrent.$Play(true);
627 }
628 else if (progress == progressBegin) {
629 _CaptionInCounter = 0;
630 mainSlider.$Play(true);
631 }
632 }
633 }
634
635 function OnMainSliderSwipeStart(position, virtualPosition) {
636 _NestedSliderCurrent && _NestedSliderCurrent.$Pause();
637 mainSlider.$Pause();
638 }
639
640 function OnMainSliderPark(slideIndex, fromIndex) {
641 _CaptionInCounter = 0;
642 mainSlider.$Play();
643 }
644
645 _Self.$AddChildSlider = function (childSlider, slideIndex) {
646 _NestedSliders[slideIndex] = childSlider;
647 childSlider.$On($JssorSlider$.$EVT_STATE_CHANGE, OnChildSliderStateChange);
648 };
649
650 _Self.$Start = function () {
651 mainSlider.$On($JssorSlider$.$EVT_PARK, OnMainSliderPark);
652 mainSlider.$On($JssorSlider$.$EVT_STATE_CHANGE, OnMainSliderStateChange);
653 mainSlider.$On($JssorSlider$.$EVT_SWIPE_START, OnMainSliderSwipeStart);
654
655 mainSlider.$Play(true);
656 }
657 }
658
659 var sliderCluster = new SliderCluster(jssorSliderc);
660 sliderCluster.$AddChildSlider(jssorSlider1, 0);
661 sliderCluster.$AddChildSlider(jssorSlider2, 1);
662 sliderCluster.$AddChildSlider(jssorSlider3, 2);
663 sliderCluster.$Start();
664
665 //slider cluster controller code end
666 };
667 jssor_sliderc_starter('sliderc_container');
668 </script>
1 <div class="chartbox wrapper">
2 <div class="innertext" id="innerchart"></div>
3 <div class="innertext il"></div>
4 </div>
5 <!-- <script src="/javascripts/liucheng.js?body=1" type="text/javascript"></script> -->
6 <style>
7 .chartbox{
8 margin: 50px auto;
9 }
10 .innertext{
11 float: left;
12 width: 70%;
13 min-height: 500px;
14 }
15 .innertext.il{
16 width: 30%;
17 }
18 </style>
19
20 <svg version="1.1" style="font-family:&quot;Lucida Grande&quot;, &quot;Lucida Sans Unicode&quot;, Arial, Helvetica, sans-serif;font-size:12px;" xmlns="http://www.w3.org/2000/svg" width="840" height="500"><desc><img src="/uploads/1.png" alt="山东诺正检测流程图"></desc><defs><clipPath id="normz-1"><rect x="0" y="0" width="820" height="439"></rect></clipPath></defs><rect x="0" y="0" width="840" height="500" strokeWidth="0" fill="#FFFFFF" class=" normz-background"></rect><g style="" transform="translate(5,150)"><rect x="0" y="0" width="22" height="210" strokeWidth="2" fill="none" stroke="black" stroke-width="5" rx="5" ry="5" isShadow="true" stroke-opacity="0.049999999999999996" transform="translate(1, 1)"></rect><rect x="0" y="0" width="22" height="210" strokeWidth="2" fill="none" stroke="black" stroke-width="3" rx="5" ry="5" isShadow="true" stroke-opacity="0.09999999999999999" transform="translate(1, 1)"></rect><rect x="0" y="0" width="22" height="210" strokeWidth="2" fill="none" stroke="black" stroke-width="1" rx="5" ry="5" isShadow="true" stroke-opacity="0.15" transform="translate(1, 1)"></rect><rect x="0" y="0" width="22" height="210" strokeWidth="2" fill="#7cb5ec" stroke="white" stroke-width="2" rx="5" ry="5"></rect><text x="5" zIndex="1" style="color:white;fill:white;" y="17"><tspan></tspan><tspan x="5" dy="15"></tspan><tspan x="5" dy="15"></tspan><tspan x="5" dy="15"></tspan><tspan x="5" dy="15"></tspan><tspan x="5" dy="15"></tspan><tspan x="5" dy="15"></tspan><tspan x="5" dy="15"></tspan><tspan x="5" dy="15"></tspan><tspan x="5" dy="15"></tspan></text></g><g style="" transform="translate(100,150)"><rect x="0" y="0" width="81" height="21" fill="#f7a35c" rx="5" ry="5"></rect><text x="3" zIndex="1" style="color:white;fill:white;" y="15">诉讼处理意见</text></g><g style="text-align:center;" transform="translate(100,220)"><rect x="0" y="0" width="81" height="21" fill="#f15c80" rx="5" ry="5"></rect><text x="16.5" zIndex="1" style="color:white;fill:white;" y="15">提出诉讼</text></g><g style="text-align:center;" transform="translate(100,280)"><rect x="0" y="0" width="81" height="21" fill="#e4d354" rx="5" ry="5"></rect><text x="16.5" zIndex="1" style="color:white;fill:white;" y="15">发送报告</text></g><g style="text-align:center;" transform="translate(100,340)"><rect x="0" y="0" width="81" height="21" fill="#2b908f" rx="5" ry="5"></rect><text x="28.5" zIndex="1" style="color:white;fill:white;" y="15">图纸</text></g><g style="" transform="translate(250,150)"><rect x="0" y="0" width="22" height="210" strokeWidth="2" fill="none" stroke="black" stroke-width="5" rx="5" ry="5" isShadow="true" stroke-opacity="0.049999999999999996" transform="translate(1, 1)"></rect><rect x="0" y="0" width="22" height="210" strokeWidth="2" fill="none" stroke="black" stroke-width="3" rx="5" ry="5" isShadow="true" stroke-opacity="0.09999999999999999" transform="translate(1, 1)"></rect><rect x="0" y="0" width="22" height="210" strokeWidth="2" fill="none" stroke="black" stroke-width="1" rx="5" ry="5" isShadow="true" stroke-opacity="0.15" transform="translate(1, 1)"></rect><rect x="0" y="0" width="22" height="210" strokeWidth="2" fill="#f45b5b" stroke="white" stroke-width="2" rx="5" ry="5"></rect><text x="5" zIndex="1" style="color:white;fill:white;" y="17"><tspan></tspan><tspan x="5" dy="15"></tspan><tspan x="5" dy="15"></tspan></text></g><g style="text-align:center;" transform="translate(230,60)"><rect x="0" y="0" width="70" height="40" strokeWidth="2" fill="none" stroke="black" stroke-width="5" rx="5" ry="5" isShadow="true" stroke-opacity="0.049999999999999996" transform="translate(1, 1)"></rect><rect x="0" y="0" width="70" height="40" strokeWidth="2" fill="none" stroke="black" stroke-width="3" rx="5" ry="5" isShadow="true" stroke-opacity="0.09999999999999999" transform="translate(1, 1)"></rect><rect x="0" y="0" width="70" height="40" strokeWidth="2" fill="none" stroke="black" stroke-width="1" rx="5" ry="5" isShadow="true" stroke-opacity="0.15" transform="translate(1, 1)"></rect><rect x="0" y="0" width="70" height="40" strokeWidth="2" fill="#91e8e1" stroke="white" stroke-width="2" rx="5" ry="5"></rect><text x="5" zIndex="1" style="color:white;fill:white;" y="17"><tspan>报告副本及</tspan><tspan x="5" dy="15">原记录归档</tspan></text></g><g style="text-align:center;" transform="translate(340,100)"><rect x="0" y="0" width="60" height="40" strokeWidth="2" fill="none" stroke="black" stroke-width="5" rx="5" ry="5" isShadow="true" stroke-opacity="0.049999999999999996" transform="translate(1, 1)"></rect><rect x="0" y="0" width="60" height="40" strokeWidth="2" fill="none" stroke="black" stroke-width="3" rx="5" ry="5" isShadow="true" stroke-opacity="0.09999999999999999" transform="translate(1, 1)"></rect><rect x="0" y="0" width="60" height="40" strokeWidth="2" fill="none" stroke="black" stroke-width="1" rx="5" ry="5" isShadow="true" stroke-opacity="0.15" transform="translate(1, 1)"></rect><rect x="0" y="0" width="60" height="40" strokeWidth="2" fill="#7cb5ec" stroke="white" stroke-width="2" rx="5" ry="5"></rect><text x="18" zIndex="1" style="color:white;fill:white;" y="17">归档</text></g><g style="text-align:center;" transform="translate(340,150)"><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="#434348" rx="5" ry="5"></rect><text x="9" zIndex="1" style="color:white;fill:white;" y="15">受理投诉</text></g><g style="text-align:center;" transform="translate(440,150)"><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="#90ed7d" rx="5" ry="5"></rect><text x="3" zIndex="1" style="color:white;fill:white;" y="15">质量负责人</text></g><g style="text-align:center;" transform="translate(540,150)"><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="#f7a35c" rx="5" ry="5"></rect><text x="9" zIndex="1" style="color:white;fill:white;" y="15">调查原因</text></g><g style="text-align:center;" transform="translate(640,150)"><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="#8085e9" rx="5" ry="5"></rect><text x="9" zIndex="1" style="color:white;fill:white;" y="15">反馈意见</text></g><g style="text-align:center;" transform="translate(340,200)"><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="#f15c80" rx="5" ry="5"></rect><text x="9" zIndex="1" style="color:white;fill:white;" y="15">编写报告</text></g><g style="text-align:center;" transform="translate(440,200)"><rect x="0" y="0" width="90" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="90" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="90" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="90" height="21" fill="#e4d354" rx="5" ry="5"></rect><text x="3" zIndex="1" style="color:white;fill:white;" y="15">技术负责人审批</text></g><g style="text-align:center;" transform="translate(340,250)"><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="#2b908f" rx="5" ry="5"></rect><text x="9" zIndex="1" style="color:white;fill:white;" y="15">合同审批</text></g><g style="text-align:center;" transform="translate(445,240)"><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="#8085e9" rx="5" ry="5"></rect><text x="3" zIndex="1" style="color:white;fill:white;" y="15"><tspan></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan></text></g><g style="text-align:center;" transform="translate(505,240)"><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="#f15c80" rx="5" ry="5"></rect><text x="3" zIndex="1" style="color:white;fill:white;" y="15"><tspan></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan></text></g><g style="text-align:center;" transform="translate(565,240)"><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="#e4d354" rx="5" ry="5"></rect><text x="3" zIndex="1" style="color:white;fill:white;" y="15"><tspan></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan></text></g><g style="text-align:center;" transform="translate(625,240)"><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="#2b908f" rx="5" ry="5"></rect><text x="3" zIndex="1" style="color:white;fill:white;" y="15"><tspan></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan></text></g><g style="text-align:center;" transform="translate(685,240)"><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="#f45b5b" rx="5" ry="5"></rect><text x="3" zIndex="1" style="color:white;fill:white;" y="15"><tspan></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan></text></g><g style="text-align:center;" transform="translate(745,240)"><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="#91e8e1" rx="5" ry="5"></rect><text x="3" zIndex="1" style="color:white;fill:white;" y="15"><tspan></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan></text></g><g style="text-align:center;" transform="translate(340,360)"><rect x="0" y="0" width="70" height="25" strokeWidth="2" fill="none" stroke="black" stroke-width="5" rx="5" ry="5" isShadow="true" stroke-opacity="0.049999999999999996" transform="translate(1, 1)"></rect><rect x="0" y="0" width="70" height="25" strokeWidth="2" fill="none" stroke="black" stroke-width="3" rx="5" ry="5" isShadow="true" stroke-opacity="0.09999999999999999" transform="translate(1, 1)"></rect><rect x="0" y="0" width="70" height="25" strokeWidth="2" fill="none" stroke="black" stroke-width="1" rx="5" ry="5" isShadow="true" stroke-opacity="0.15" transform="translate(1, 1)"></rect><rect x="0" y="0" width="70" height="25" strokeWidth="2" fill="#7cb5ec" stroke="white" stroke-width="2" rx="5" ry="5"></rect><text x="23" zIndex="1" style="color:white;fill:white;" y="17">记录</text></g><g style="text-align:center;" transform="translate(480,360)"><rect x="0" y="0" width="70" height="25" strokeWidth="2" fill="none" stroke="black" stroke-width="5" rx="5" ry="5" isShadow="true" stroke-opacity="0.049999999999999996" transform="translate(1, 1)"></rect><rect x="0" y="0" width="70" height="25" strokeWidth="2" fill="none" stroke="black" stroke-width="3" rx="5" ry="5" isShadow="true" stroke-opacity="0.09999999999999999" transform="translate(1, 1)"></rect><rect x="0" y="0" width="70" height="25" strokeWidth="2" fill="none" stroke="black" stroke-width="1" rx="5" ry="5" isShadow="true" stroke-opacity="0.15" transform="translate(1, 1)"></rect><rect x="0" y="0" width="70" height="25" strokeWidth="2" fill="#434348" stroke="white" stroke-width="2" rx="5" ry="5"></rect><text x="23" zIndex="1" style="color:white;fill:white;" y="17">修改</text></g><path fill="none" d="M 50 0 L 0 0 L 3 3 M 0 0 L 3 -3" transform="translate(40,160)" stroke="#7cb5ec" stroke-width="2"></path><path fill="none" d="M 0 0 L 50 0 L 47 3 M 50 0 L 47 -3" transform="translate(40,230)" stroke="#434348" stroke-width="2"></path><path fill="none" d="M 50 0 L 0 0 L 3 3 M 0 0 L 3 -3" transform="translate(40,290)" stroke="#90ed7d" stroke-width="2"></path><path fill="none" d="M 0 0 L 50 0 L 47 3 M 50 0 L 47 -3" transform="translate(40,350)" stroke="#f7a35c" stroke-width="2"></path><path fill="none" d="M 0 0 L 50 0 L 47 3 M 50 0 L 47 -3" transform="translate(190,160)" stroke="#8085e9" stroke-width="2"></path><path fill="none" d="M 50 0 L 0 0 L 3 3 M 0 0 L 3 -3" transform="translate(190,230)" stroke="#f15c80" stroke-width="2"></path><path fill="none" d="M 0 0 L 50 0 L 47 3 M 50 0 L 47 -3" transform="translate(190,290)" stroke="#e4d354" stroke-width="2"></path><path fill="none" d="M 50 0 L 0 0 L 3 3 M 0 0 L 3 -3" transform="translate(190,350)" stroke="#2b908f" stroke-width="2"></path><path fill="none" d="M 0 40 L 0 0 L -3 3 M 0 0 L 3 3" transform="translate(255,105)" stroke="#f45b5b" stroke-width="2"></path><path fill="none" d="M 0 0 L 50 0 L 47 3 M 50 0 L 47 -3" transform="translate(280,160)" stroke="#91e8e1" stroke-width="2"></path><path fill="none" d="M 150 145 L 150 125 C 150 115 150 115 160 115 L 335 115 L 332 118 M 335 115 L 332 112" stroke="#7cb5ec" stroke-width="2"></path><path fill="none" d="M 310 70 L 360 70 C 370 70 370 80 370 80 L 370 95 L 367 92 M 370 95 L 373 92" stroke="#434348" stroke-width="2"></path><path fill="none" d="M 260 145 L 260 135 C 260 125 260 125 270 125 L 335 125 L 332 122 M 335 125 L 332 128" stroke="#90ed7d" stroke-width="2"></path><path fill="none" d="M 0 0 L 25 0 L 22 3 M 25 0 L 22 -3" transform="translate(410,160)" stroke="#f7a35c" stroke-width="2"></path><path fill="none" d="M 0 0 L 25 0 L 22 3 M 25 0 L 22 -3" transform="translate(510,160)" stroke="#8085e9" stroke-width="2"></path><path fill="none" d="M 0 0 L 25 0 L 22 3 M 25 0 L 22 -3" transform="translate(610,160)" stroke="#f15c80" stroke-width="2"></path><path fill="none" d="M 0 0 L 50 0 L 47 3 M 50 0 L 47 -3" transform="translate(280,210)" stroke="#e4d354" stroke-width="2"></path><path fill="none" d="M 0 0 L 25 0 L 22 3 M 25 0 L 22 -3" transform="translate(410,210)" stroke="#2b908f" stroke-width="2"></path><path fill="none" d="M 0 0 L 50 0 L 47 3 M 50 0 L 47 -3" transform="translate(280,260)" stroke="#f45b5b" stroke-width="2"></path><path fill="none" d="M 0 0 L 30 0 L 27 3 M 30 0 L 27 -3" transform="translate(410,260)" stroke="#91e8e1" stroke-width="2"></path><path fill="none" d="M 0 0 L 30 0 L 27 3 M 30 0 L 27 -3" transform="translate(470,260)" stroke="#7cb5ec" stroke-width="2"></path><path fill="none" d="M 0 0 L 30 0 L 27 3 M 30 0 L 27 -3" transform="translate(530,260)" stroke="#434348" stroke-width="2"></path><path fill="none" d="M 0 0 L 30 0 L 27 3 M 30 0 L 27 -3" transform="translate(590,260)" stroke="#90ed7d" stroke-width="2"></path><path fill="none" d="M 0 0 L 30 0 L 27 3 M 30 0 L 27 -3" transform="translate(650,260)" stroke="#f7a35c" stroke-width="2"></path><path fill="none" d="M 0 0 L 30 0 L 27 3 M 30 0 L 27 -3" transform="translate(710,260)" stroke="#8085e9" stroke-width="2"></path><path fill="none" d="M 0 0 L 0 15 L -3 12 M 0 15 L 3 12" transform="translate(515,340)" stroke="#f15c80" stroke-width="2"></path><path fill="none" d="M 0 0 L -50 0 L -47 -3 M -50 0 L -47 3" transform="translate(475,372)" stroke="#e4d354" stroke-width="2"></path><path fill="none" d="M 0 0 L 0 75 L -3 72 M 0 75 L 3 72" transform="translate(370,280)" stroke="#2b908f" stroke-width="2"></path><path fill="none" d="M 710 160 L 720 160 C 720 160 725 160 725 165 L 725 170 C 725 175 720 175 720 175 L 280 175 L 283 178 M 280 175 L 283 172" stroke="#f45b5b" stroke-width="2"></path><path fill="none" d="M 535 210 L 550 210 C 550 210 555 210 555 205 L 555 195 C 555 190 550 190 550 190 L 280 190 L 283 193 M 280 190 L 283 187" stroke="#91e8e1" stroke-width="2"></path><path fill="none" d="M 770 280 L 780 280 L 780 230 L 280 230 L 283 233 M 280 230 L 283 227" stroke="#7cb5ec" stroke-width="2"></path><g class="normz-series-group" zIndex="3"></g><text x="420" text-anchor="middle" class="normz-title" zIndex="4" style="color:#333333;font-size:18px;fill:#333333;width:776px;" y="24">诺正检验工作流程图</text><g class="normz-legend" zIndex="7"><g zIndex="1"><g></g></g></g><g class="normz-tooltip" zIndex="8" style="cursor:default;padding:0;pointer-events:none;white-space:nowrap;" transform="translate(0,-9999)"><path fill="none" d="M 3.5 0.5 L 13.5 0.5 C 16.5 0.5 16.5 0.5 16.5 3.5 L 16.5 13.5 C 16.5 16.5 16.5 16.5 13.5 16.5 L 3.5 16.5 C 0.5 16.5 0.5 16.5 0.5 13.5 L 0.5 3.5 C 0.5 0.5 0.5 0.5 3.5 0.5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></path><path fill="none" d="M 3.5 0.5 L 13.5 0.5 C 16.5 0.5 16.5 0.5 16.5 3.5 L 16.5 13.5 C 16.5 16.5 16.5 16.5 13.5 16.5 L 3.5 16.5 C 0.5 16.5 0.5 16.5 0.5 13.5 L 0.5 3.5 C 0.5 0.5 0.5 0.5 3.5 0.5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></path><path fill="none" d="M 3.5 0.5 L 13.5 0.5 C 16.5 0.5 16.5 0.5 16.5 3.5 L 16.5 13.5 C 16.5 16.5 16.5 16.5 13.5 16.5 L 3.5 16.5 C 0.5 16.5 0.5 16.5 0.5 13.5 L 0.5 3.5 C 0.5 0.5 0.5 0.5 3.5 0.5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></path><path fill="rgba(249, 249, 249, .85)" d="M 3.5 0.5 L 13.5 0.5 C 16.5 0.5 16.5 0.5 16.5 3.5 L 16.5 13.5 C 16.5 16.5 16.5 16.5 13.5 16.5 L 3.5 16.5 C 0.5 16.5 0.5 16.5 0.5 13.5 L 0.5 3.5 C 0.5 0.5 0.5 0.5 3.5 0.5"></path><text x="8" zIndex="1" style="font-size:12px;color:#333333;fill:#333333;" y="20"></text></g></svg>
21
22 <svg version="1.1" style="font-family:&quot;Lucida Grande&quot;, &quot;Lucida Sans Unicode&quot;, Arial, Helvetica, sans-serif;font-size:12px;" xmlns="http://www.w3.org/2000/svg" width="840" height="500"><desc><img src="/uploads/1.jpg" alt="山东诺正检测流程图"></desc><defs><clipPath id="normz-1"><rect x="0" y="0" width="820" height="439"></rect></clipPath></defs><rect x="0" y="0" width="840" height="500" strokeWidth="0" fill="#FFFFFF" class=" normz-background"></rect><g style="" transform="translate(5,150)"><rect x="0" y="0" width="22" height="210" strokeWidth="2" fill="none" stroke="black" stroke-width="5" rx="5" ry="5" isShadow="true" stroke-opacity="0.049999999999999996" transform="translate(1, 1)"></rect><rect x="0" y="0" width="22" height="210" strokeWidth="2" fill="none" stroke="black" stroke-width="3" rx="5" ry="5" isShadow="true" stroke-opacity="0.09999999999999999" transform="translate(1, 1)"></rect><rect x="0" y="0" width="22" height="210" strokeWidth="2" fill="none" stroke="black" stroke-width="1" rx="5" ry="5" isShadow="true" stroke-opacity="0.15" transform="translate(1, 1)"></rect><rect x="0" y="0" width="22" height="210" strokeWidth="2" fill="#7cb5ec" stroke="white" stroke-width="2" rx="5" ry="5"></rect><text x="5" zIndex="1" style="color:white;fill:white;" y="17"><tspan></tspan><tspan x="5" dy="15"></tspan><tspan x="5" dy="15"></tspan><tspan x="5" dy="15"></tspan><tspan x="5" dy="15"></tspan><tspan x="5" dy="15"></tspan><tspan x="5" dy="15"></tspan><tspan x="5" dy="15"></tspan><tspan x="5" dy="15"></tspan><tspan x="5" dy="15"></tspan></text></g><g style="" transform="translate(100,150)"><rect x="0" y="0" width="81" height="21" fill="#f7a35c" rx="5" ry="5"></rect><text x="3" zIndex="1" style="color:white;fill:white;" y="15">诉讼处理意见</text></g><g style="text-align:center;" transform="translate(100,220)"><rect x="0" y="0" width="81" height="21" fill="#f15c80" rx="5" ry="5"></rect><text x="16.5" zIndex="1" style="color:white;fill:white;" y="15">提出诉讼</text></g><g style="text-align:center;" transform="translate(100,280)"><rect x="0" y="0" width="81" height="21" fill="#e4d354" rx="5" ry="5"></rect><text x="16.5" zIndex="1" style="color:white;fill:white;" y="15">发送报告</text></g><g style="text-align:center;" transform="translate(100,340)"><rect x="0" y="0" width="81" height="21" fill="#2b908f" rx="5" ry="5"></rect><text x="28.5" zIndex="1" style="color:white;fill:white;" y="15">图纸</text></g><g style="" transform="translate(250,150)"><rect x="0" y="0" width="22" height="210" strokeWidth="2" fill="none" stroke="black" stroke-width="5" rx="5" ry="5" isShadow="true" stroke-opacity="0.049999999999999996" transform="translate(1, 1)"></rect><rect x="0" y="0" width="22" height="210" strokeWidth="2" fill="none" stroke="black" stroke-width="3" rx="5" ry="5" isShadow="true" stroke-opacity="0.09999999999999999" transform="translate(1, 1)"></rect><rect x="0" y="0" width="22" height="210" strokeWidth="2" fill="none" stroke="black" stroke-width="1" rx="5" ry="5" isShadow="true" stroke-opacity="0.15" transform="translate(1, 1)"></rect><rect x="0" y="0" width="22" height="210" strokeWidth="2" fill="#f45b5b" stroke="white" stroke-width="2" rx="5" ry="5"></rect><text x="5" zIndex="1" style="color:white;fill:white;" y="17"><tspan></tspan><tspan x="5" dy="15"></tspan><tspan x="5" dy="15"></tspan></text></g><g style="text-align:center;" transform="translate(230,60)"><rect x="0" y="0" width="70" height="40" strokeWidth="2" fill="none" stroke="black" stroke-width="5" rx="5" ry="5" isShadow="true" stroke-opacity="0.049999999999999996" transform="translate(1, 1)"></rect><rect x="0" y="0" width="70" height="40" strokeWidth="2" fill="none" stroke="black" stroke-width="3" rx="5" ry="5" isShadow="true" stroke-opacity="0.09999999999999999" transform="translate(1, 1)"></rect><rect x="0" y="0" width="70" height="40" strokeWidth="2" fill="none" stroke="black" stroke-width="1" rx="5" ry="5" isShadow="true" stroke-opacity="0.15" transform="translate(1, 1)"></rect><rect x="0" y="0" width="70" height="40" strokeWidth="2" fill="#91e8e1" stroke="white" stroke-width="2" rx="5" ry="5"></rect><text x="5" zIndex="1" style="color:white;fill:white;" y="17"><tspan>报告副本及</tspan><tspan x="5" dy="15">原记录归档</tspan></text></g><g style="text-align:center;" transform="translate(340,100)"><rect x="0" y="0" width="60" height="40" strokeWidth="2" fill="none" stroke="black" stroke-width="5" rx="5" ry="5" isShadow="true" stroke-opacity="0.049999999999999996" transform="translate(1, 1)"></rect><rect x="0" y="0" width="60" height="40" strokeWidth="2" fill="none" stroke="black" stroke-width="3" rx="5" ry="5" isShadow="true" stroke-opacity="0.09999999999999999" transform="translate(1, 1)"></rect><rect x="0" y="0" width="60" height="40" strokeWidth="2" fill="none" stroke="black" stroke-width="1" rx="5" ry="5" isShadow="true" stroke-opacity="0.15" transform="translate(1, 1)"></rect><rect x="0" y="0" width="60" height="40" strokeWidth="2" fill="#7cb5ec" stroke="white" stroke-width="2" rx="5" ry="5"></rect><text x="18" zIndex="1" style="color:white;fill:white;" y="17">归档</text></g><g style="text-align:center;" transform="translate(340,150)"><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="#434348" rx="5" ry="5"></rect><text x="9" zIndex="1" style="color:white;fill:white;" y="15">受理投诉</text></g><g style="text-align:center;" transform="translate(440,150)"><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="#90ed7d" rx="5" ry="5"></rect><text x="3" zIndex="1" style="color:white;fill:white;" y="15">质量负责人</text></g><g style="text-align:center;" transform="translate(540,150)"><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="#f7a35c" rx="5" ry="5"></rect><text x="9" zIndex="1" style="color:white;fill:white;" y="15">调查原因</text></g><g style="text-align:center;" transform="translate(640,150)"><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="#8085e9" rx="5" ry="5"></rect><text x="9" zIndex="1" style="color:white;fill:white;" y="15">反馈意见</text></g><g style="text-align:center;" transform="translate(340,200)"><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="#f15c80" rx="5" ry="5"></rect><text x="9" zIndex="1" style="color:white;fill:white;" y="15">编写报告</text></g><g style="text-align:center;" transform="translate(440,200)"><rect x="0" y="0" width="90" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="90" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="90" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="90" height="21" fill="#e4d354" rx="5" ry="5"></rect><text x="3" zIndex="1" style="color:white;fill:white;" y="15">技术负责人审批</text></g><g style="text-align:center;" transform="translate(340,250)"><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="66" height="21" fill="#2b908f" rx="5" ry="5"></rect><text x="9" zIndex="1" style="color:white;fill:white;" y="15">合同审批</text></g><g style="text-align:center;" transform="translate(445,240)"><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="#8085e9" rx="5" ry="5"></rect><text x="3" zIndex="1" style="color:white;fill:white;" y="15"><tspan></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan></text></g><g style="text-align:center;" transform="translate(505,240)"><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="#f15c80" rx="5" ry="5"></rect><text x="3" zIndex="1" style="color:white;fill:white;" y="15"><tspan></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan></text></g><g style="text-align:center;" transform="translate(565,240)"><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="#e4d354" rx="5" ry="5"></rect><text x="3" zIndex="1" style="color:white;fill:white;" y="15"><tspan></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan></text></g><g style="text-align:center;" transform="translate(625,240)"><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="#2b908f" rx="5" ry="5"></rect><text x="3" zIndex="1" style="color:white;fill:white;" y="15"><tspan></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan></text></g><g style="text-align:center;" transform="translate(685,240)"><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="#f45b5b" rx="5" ry="5"></rect><text x="3" zIndex="1" style="color:white;fill:white;" y="15"><tspan></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan></text></g><g style="text-align:center;" transform="translate(745,240)"><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="none" rx="5" ry="5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></rect><rect x="0" y="0" width="18" height="96" fill="#91e8e1" rx="5" ry="5"></rect><text x="3" zIndex="1" style="color:white;fill:white;" y="15"><tspan></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan><tspan x="3" dy="15"></tspan></text></g><g style="text-align:center;" transform="translate(340,360)"><rect x="0" y="0" width="70" height="25" strokeWidth="2" fill="none" stroke="black" stroke-width="5" rx="5" ry="5" isShadow="true" stroke-opacity="0.049999999999999996" transform="translate(1, 1)"></rect><rect x="0" y="0" width="70" height="25" strokeWidth="2" fill="none" stroke="black" stroke-width="3" rx="5" ry="5" isShadow="true" stroke-opacity="0.09999999999999999" transform="translate(1, 1)"></rect><rect x="0" y="0" width="70" height="25" strokeWidth="2" fill="none" stroke="black" stroke-width="1" rx="5" ry="5" isShadow="true" stroke-opacity="0.15" transform="translate(1, 1)"></rect><rect x="0" y="0" width="70" height="25" strokeWidth="2" fill="#7cb5ec" stroke="white" stroke-width="2" rx="5" ry="5"></rect><text x="23" zIndex="1" style="color:white;fill:white;" y="17">记录</text></g><g style="text-align:center;" transform="translate(480,360)"><rect x="0" y="0" width="70" height="25" strokeWidth="2" fill="none" stroke="black" stroke-width="5" rx="5" ry="5" isShadow="true" stroke-opacity="0.049999999999999996" transform="translate(1, 1)"></rect><rect x="0" y="0" width="70" height="25" strokeWidth="2" fill="none" stroke="black" stroke-width="3" rx="5" ry="5" isShadow="true" stroke-opacity="0.09999999999999999" transform="translate(1, 1)"></rect><rect x="0" y="0" width="70" height="25" strokeWidth="2" fill="none" stroke="black" stroke-width="1" rx="5" ry="5" isShadow="true" stroke-opacity="0.15" transform="translate(1, 1)"></rect><rect x="0" y="0" width="70" height="25" strokeWidth="2" fill="#434348" stroke="white" stroke-width="2" rx="5" ry="5"></rect><text x="23" zIndex="1" style="color:white;fill:white;" y="17">修改</text></g><path fill="none" d="M 50 0 L 0 0 L 3 3 M 0 0 L 3 -3" transform="translate(40,160)" stroke="#7cb5ec" stroke-width="2"></path><path fill="none" d="M 0 0 L 50 0 L 47 3 M 50 0 L 47 -3" transform="translate(40,230)" stroke="#434348" stroke-width="2"></path><path fill="none" d="M 50 0 L 0 0 L 3 3 M 0 0 L 3 -3" transform="translate(40,290)" stroke="#90ed7d" stroke-width="2"></path><path fill="none" d="M 0 0 L 50 0 L 47 3 M 50 0 L 47 -3" transform="translate(40,350)" stroke="#f7a35c" stroke-width="2"></path><path fill="none" d="M 0 0 L 50 0 L 47 3 M 50 0 L 47 -3" transform="translate(190,160)" stroke="#8085e9" stroke-width="2"></path><path fill="none" d="M 50 0 L 0 0 L 3 3 M 0 0 L 3 -3" transform="translate(190,230)" stroke="#f15c80" stroke-width="2"></path><path fill="none" d="M 0 0 L 50 0 L 47 3 M 50 0 L 47 -3" transform="translate(190,290)" stroke="#e4d354" stroke-width="2"></path><path fill="none" d="M 50 0 L 0 0 L 3 3 M 0 0 L 3 -3" transform="translate(190,350)" stroke="#2b908f" stroke-width="2"></path><path fill="none" d="M 0 40 L 0 0 L -3 3 M 0 0 L 3 3" transform="translate(255,105)" stroke="#f45b5b" stroke-width="2"></path><path fill="none" d="M 0 0 L 50 0 L 47 3 M 50 0 L 47 -3" transform="translate(280,160)" stroke="#91e8e1" stroke-width="2"></path><path fill="none" d="M 150 145 L 150 125 C 150 115 150 115 160 115 L 335 115 L 332 118 M 335 115 L 332 112" stroke="#7cb5ec" stroke-width="2"></path><path fill="none" d="M 310 70 L 360 70 C 370 70 370 80 370 80 L 370 95 L 367 92 M 370 95 L 373 92" stroke="#434348" stroke-width="2"></path><path fill="none" d="M 260 145 L 260 135 C 260 125 260 125 270 125 L 335 125 L 332 122 M 335 125 L 332 128" stroke="#90ed7d" stroke-width="2"></path><path fill="none" d="M 0 0 L 25 0 L 22 3 M 25 0 L 22 -3" transform="translate(410,160)" stroke="#f7a35c" stroke-width="2"></path><path fill="none" d="M 0 0 L 25 0 L 22 3 M 25 0 L 22 -3" transform="translate(510,160)" stroke="#8085e9" stroke-width="2"></path><path fill="none" d="M 0 0 L 25 0 L 22 3 M 25 0 L 22 -3" transform="translate(610,160)" stroke="#f15c80" stroke-width="2"></path><path fill="none" d="M 0 0 L 50 0 L 47 3 M 50 0 L 47 -3" transform="translate(280,210)" stroke="#e4d354" stroke-width="2"></path><path fill="none" d="M 0 0 L 25 0 L 22 3 M 25 0 L 22 -3" transform="translate(410,210)" stroke="#2b908f" stroke-width="2"></path><path fill="none" d="M 0 0 L 50 0 L 47 3 M 50 0 L 47 -3" transform="translate(280,260)" stroke="#f45b5b" stroke-width="2"></path><path fill="none" d="M 0 0 L 30 0 L 27 3 M 30 0 L 27 -3" transform="translate(410,260)" stroke="#91e8e1" stroke-width="2"></path><path fill="none" d="M 0 0 L 30 0 L 27 3 M 30 0 L 27 -3" transform="translate(470,260)" stroke="#7cb5ec" stroke-width="2"></path><path fill="none" d="M 0 0 L 30 0 L 27 3 M 30 0 L 27 -3" transform="translate(530,260)" stroke="#434348" stroke-width="2"></path><path fill="none" d="M 0 0 L 30 0 L 27 3 M 30 0 L 27 -3" transform="translate(590,260)" stroke="#90ed7d" stroke-width="2"></path><path fill="none" d="M 0 0 L 30 0 L 27 3 M 30 0 L 27 -3" transform="translate(650,260)" stroke="#f7a35c" stroke-width="2"></path><path fill="none" d="M 0 0 L 30 0 L 27 3 M 30 0 L 27 -3" transform="translate(710,260)" stroke="#8085e9" stroke-width="2"></path><path fill="none" d="M 0 0 L 0 15 L -3 12 M 0 15 L 3 12" transform="translate(515,340)" stroke="#f15c80" stroke-width="2"></path><path fill="none" d="M 0 0 L -50 0 L -47 -3 M -50 0 L -47 3" transform="translate(475,372)" stroke="#e4d354" stroke-width="2"></path><path fill="none" d="M 0 0 L 0 75 L -3 72 M 0 75 L 3 72" transform="translate(370,280)" stroke="#2b908f" stroke-width="2"></path><path fill="none" d="M 710 160 L 720 160 C 720 160 725 160 725 165 L 725 170 C 725 175 720 175 720 175 L 280 175 L 283 178 M 280 175 L 283 172" stroke="#f45b5b" stroke-width="2"></path><path fill="none" d="M 535 210 L 550 210 C 550 210 555 210 555 205 L 555 195 C 555 190 550 190 550 190 L 280 190 L 283 193 M 280 190 L 283 187" stroke="#91e8e1" stroke-width="2"></path><path fill="none" d="M 770 280 L 780 280 L 780 230 L 280 230 L 283 233 M 280 230 L 283 227" stroke="#7cb5ec" stroke-width="2"></path><g class="normz-series-group" zIndex="3"></g><text x="420" text-anchor="middle" class="normz-title" zIndex="4" style="color:#333333;font-size:18px;fill:#333333;width:776px;" y="24">诺正检验工作流程图</text><g class="normz-legend" zIndex="7"><g zIndex="1"><g></g></g></g><g class="normz-tooltip" zIndex="8" style="cursor:default;padding:0;pointer-events:none;white-space:nowrap;" transform="translate(0,-9999)"><path fill="none" d="M 3.5 0.5 L 13.5 0.5 C 16.5 0.5 16.5 0.5 16.5 3.5 L 16.5 13.5 C 16.5 16.5 16.5 16.5 13.5 16.5 L 3.5 16.5 C 0.5 16.5 0.5 16.5 0.5 13.5 L 0.5 3.5 C 0.5 0.5 0.5 0.5 3.5 0.5" isShadow="true" stroke="black" stroke-opacity="0.049999999999999996" stroke-width="5" transform="translate(1, 1)"></path><path fill="none" d="M 3.5 0.5 L 13.5 0.5 C 16.5 0.5 16.5 0.5 16.5 3.5 L 16.5 13.5 C 16.5 16.5 16.5 16.5 13.5 16.5 L 3.5 16.5 C 0.5 16.5 0.5 16.5 0.5 13.5 L 0.5 3.5 C 0.5 0.5 0.5 0.5 3.5 0.5" isShadow="true" stroke="black" stroke-opacity="0.09999999999999999" stroke-width="3" transform="translate(1, 1)"></path><path fill="none" d="M 3.5 0.5 L 13.5 0.5 C 16.5 0.5 16.5 0.5 16.5 3.5 L 16.5 13.5 C 16.5 16.5 16.5 16.5 13.5 16.5 L 3.5 16.5 C 0.5 16.5 0.5 16.5 0.5 13.5 L 0.5 3.5 C 0.5 0.5 0.5 0.5 3.5 0.5" isShadow="true" stroke="black" stroke-opacity="0.15" stroke-width="1" transform="translate(1, 1)"></path><path fill="rgba(249, 249, 249, .85)" d="M 3.5 0.5 L 13.5 0.5 C 16.5 0.5 16.5 0.5 16.5 3.5 L 16.5 13.5 C 16.5 16.5 16.5 16.5 13.5 16.5 L 3.5 16.5 C 0.5 16.5 0.5 16.5 0.5 13.5 L 0.5 3.5 C 0.5 0.5 0.5 0.5 3.5 0.5"></path><text x="8" zIndex="1" style="font-size:12px;color:#333333;fill:#333333;" y="20"></text></g></svg>
1 <div class="detectype wrapper">
2 <h2>检测范围</h2>
3 <div class="detectrange left_to_right mb">
4 <div class="mask">
5 <h3>图表展示</h3>
6 <p>详细内容/跳转检测业务/详细描述页</p>
7 </div>
8 <div class="detecticon detectfood"></div>
9 <div class="detecttext">
10 <h5>农产品检测</h5>
11 <p>诺正检测具备省级检测资质, 检测范围涵盖农药残留、营养含量等</p>
12 </div>
13 </div>
14 <div class="detectrange left_to_right mb">
15 <div class="mask">
16 <h3><a href="javascript:void(0);">图表展示</a></h3>
17 <p><a href="javascript:void(0);">详细内容/跳转检测业务/详细描述页</a></p>
18 </div>
19 <div class="detecticon detectmeat"></div>
20 <div class="detecttext">
21 <h5>肉制品检测</h5>
22 <p>诺正检测具备省级检测资质, 检测范围涵盖农药残留、化学品含量等</p>
23 </div>
24 </div>
25 <div class="detectrange left_to_right mb">
26 <div class="mask">
27 <h3><a href="javascript:void(0);">图表展示</a></h3>
28 <p><a href="javascript:void(0);">详细内容/跳转检测业务/详细描述页</a></p>
29 </div>
30 <div class="detecticon detectmilieu"></div>
31 <div class="detecttext">
32 <h5>环境检测</h5>
33 <p>诺正检测具备省级检测资质, 检测范围涵盖农药残留、化学品含量等</p>
34 </div>
35 </div>
36 <div class="detectrange left_to_right mb l">
37 <div class="mask">
38 <h3><a href="javascript:void(0);">图表展示</a></h3>
39 <p><a href="javascript:void(0);">详细内容/跳转检测业务/详细描述页</a></p>
40 </div>
41 <div class="detecticon detectfire"></div>
42 <div class="detecttext">
43 <h5>消防检测</h5>
44 <p>诺正检测具备省级检测资质, 检测范围涵盖农药残留、化学品含量等</p>
45 </div>
46 </div>
47 <div class="detectrange left_to_right">
48 <div class="mask">
49 <h3>图表展示</h3>
50 <p>详细内容/跳转检测业务/详细描述页</p>
51 </div>
52 <div class="detecticon detectfeiliao"></div>
53 <div class="detecttext">
54 <h5>肥料检测</h5>
55 <p>诺正检测具备省级检测资质, 检测范围涵盖农药残留、化学品含量等</p>
56 </div>
57 </div>
58 <div class="detectrange left_to_right">
59 <div class="mask">
60 <h3><a href="javascript:void(0);">图表展示</a></h3>
61 <p><a href="javascript:void(0);">详细内容/跳转检测业务/详细描述页</a></p>
62 </div>
63 <div class="detecticon detectsiliao"></div>
64 <div class="detecttext">
65 <h5>饲料检测</h5>
66 <p>诺正检测具备省级检测资质, 检测范围涵盖农药残留、化学品含量等</p>
67 </div>
68 </div>
69
70 <div class="detectrange left_to_right">
71 <div class="mask">
72 <h3><a href="javascript:void(0);">图表展示</a></h3>
73 <p><a href="javascript:void(0);">详细内容/跳转检测业务/详细描述页</a></p>
74 </div>
75 <div class="detecticon detectshipin"></div>
76 <div class="detecttext">
77 <h5>食品检测</h5>
78 <p>诺正检测具备省级检测资质, 检测范围涵盖农药残留、化学品含量等</p>
79 </div>
80 </div>
81 <div class="detectrange left_to_right l">
82 <div class="mask">
83 <h3><a href="javascript:void(0);">图表展示</a></h3>
84 <p><a href="javascript:void(0);">详细内容/跳转检测业务/详细描述页</a></p>
85 </div>
86 <div class="detecticon detectshuichan"></div>
87 <div class="detecttext">
88 <h5>水产品检测</h5>
89 <p>诺正检测具备省级检测资质, 检测范围涵盖农药残留、化学品含量等</p>
90 </div>
91 </div>
92 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <div class="service wrapper">
2 <h2>服务宗旨</h2>
3 <div class="block wow bounceInLeft">
4 <div class="imgblock" data-wow-delay="0.1s">
5 <img src="/images/jcrange/mubiao.jpg" alt="图片">
6 </div>
7 <div class="txtblock">
8 <h3>质量方针</h3>
9 <p>
10 诚信、公正、科学、高效地保证质量第一。<br>
11 坚持秉公检验,保证良好的职业规范和职业道德。<br>
12 坚持信誉至上,保守秘密,确保客户权益。<br>
13 坚持科学管理,保证资源,切实执行规范程序。<br>
14 坚持高效服务,保证准确及时出具检验报告。<br>
15 坚持服务质量第一、体系运行质量第一。<br>
16 </p>
17 <h3 style="margin-top:20px;">质量目标</h3>
18 <p>
19 全年测试项目错误率不大于1‰。<br>
20 报告及时率不低于99%。<br>
21 客户投诉率不大于1%、投诉处理率100%。
22 </p>
23 </div>
24 </div>
25 <div class="block wow bounceInRight">
26 <div class="imgblock r">
27 <img src="/images/jcrange/shangyang.jpg" alt="图片">
28 </div>
29 <div class="txtblock">
30 <h3>科学速检</h3>
31 <p>中科院沈阳生态应用研究所是中国农产品检测标准的制定者, 也是国内农产品检测技术最前沿的团队。</p>
32 <p>诺正检测与中科院沈阳生态应用研究所深入合作, 强强联手, 培养了大批国内顶尖的检测人员服务于诺正检测。并且公司购入大量进口的先进检测设备, 保证检测的权威, 公正, 科学性。</p>
33 </div>
34 </div>
35 <div class="block blocklast">
36 <div class="imgblock wow bounceInLeft">
37 <img src="/images/jcrange/kexuegongzheng.jpg" alt="图片">
38 </div>
39 <div class="txtblock wow bounceInRight">
40 <h3>服务承诺</h3>
41 <p>本公司具有第三方实验室的地位,检测工作不受任何来自内、外部的不正当的行政干预、商业利润和其它方面压力的影响。不生产、不经营所检验的产品,不和被检测单位发生利益冲突。</p>
42 <p>本公司严格遵守保密原则,保证不泄漏用户技术资料和检测结果。保证完善质量体系,提高检测水平和管理水平,在确保检验报告的真实和准确的前提下,使客户满意率达到100%。</p>
43 </div>
44 </div>
45 </div>
1 <%= render 'banner' %>
2 <%= render 'range' %>
3 <%= render 'service' %>
1 <% if params[:chan] == 'cultures' or params[:chan] == 'dynamics' %>
2 <div class="banner" style="background-image: url(/images/banner/<%= params[:chan] %>.jpg?v=1);"></div>
3 <% else %>
4 <div class="banner" style="background-image: url(/images/banner/banner.jpg?v=1);"></div>
5 <% end %>
6
7 <div class="inside wrapper">
8 <div class="inside-left">
9 <div class="top"><%= @chan_name %></div>
10 <ul>
11 <% @cates.each do |key, val| %>
12 <% if key.eql?(@cate) %>
13 <li class="active">
14 <%= link_to val, {controller: :home, action: :show, chan: params[:chan], cate: key} %>
15 </li>
16 <% else %>
17 <li>
18 <%= link_to val, {controller: :home, action: :show, chan: params[:chan], cate: key} %>
19 </li>
20 <% end %>
21 <% end %>
22 </ul>
23 </div>
24 <div class="inside-right">
25 <div class="detail">
26 <div class="title">
27 <h3><%= @post.try(:title) || @cate_name %></h3>
28 <small>
29 <%= link_to '首页', root_path %>
30 -
31 <%= link_to @chan_name, controller: :home, action: :show, chan: params[:chan] %>
32 -
33 <%= link_to @cate_name, controller: :home, action: :show, chan: params[:chan], cate: @cate %>
34 <% if params[:flag].present? %>
35 -
36 <%= link_to @post.title, 'javascript:void(0);' %>
37 <% end %>
38 </small>
39 </div>
40 <div class="preview">
41 <% if @post %>
42 <%= @post.detail.html_safe %>
43 <% else %>
44 <% @posts.each do |post| %>
45 <div class="item">
46 <% img_path = post.detail.scan(/<img[^>]+src\s*=\s*(['\"][^'\"]+['\"])[^>]*>/).flatten.first.gsub(/\"/, '') rescue '/images/default_200x150.jpg' %>
47 <img src="<%= img_path %>" alt="默认图片" class="pic">
48 <h4 class="posth4">
49 <%= link_to post.title, controller: :home, action: :show, chan: params[:chan], cate: @cate, flag: post.flag %>
50 </h4>
51 <div class="postdesc">
52 <%= truncate(post.detail.gsub(/<\/?.*?>/,""), length: 120) %>
53 </div>
54 </div>
55 <% end %>
56 <%= paginate @posts %>
57 <% end %>
58 </div>
59 </div>
60 </div>
61 </div>
1 <% if current_page.first? %>
2 <li class="disabled">
3 <%= link_to raw(t 'views.pagination.first'), 'javascript:void(0);' %>
4 </li>
5 <% else %>
6 <li>
7 <%= link_to raw(t 'views.pagination.first'), url, :remote => remote %>
8 </li>
9 <% end %>
10
1 <li class='disabled'>
2 <%= content_tag :a, raw(t 'views.pagination.truncate') %>
3 </li>
1 <% if current_page.last? %>
2 <li class="disabled">
3 <%= link_to raw(t 'views.pagination.last'), 'javascript:void(0);' %>
4 </li>
5 <% else %>
6 <li>
7 <%= link_to raw(t 'views.pagination.last'), url, :remote => remote %>
8 </li>
9 <% end %>
10
11
1 <% if current_page.last? %>
2 <li class="disabled">
3 <%= link_to raw(t 'views.pagination.next'), 'javascript:void(0);', :rel =>'next' %>
4 </li>
5 <% else %>
6 <li>
7 <%= link_to raw(t 'views.pagination.next'), url, :rel =>'next', :remote => remote %>
8 </li>
9 <% end %>
...\ No newline at end of file ...\ No newline at end of file
1 <% if page.current? %>
2 <li class='active'>
3 <%= content_tag :a, page, remote: remote, rel: (page.next? ? 'next' : (page.prev? ? 'prev' : nil)) %>
4 </li>
5 <% else %>
6 <li>
7 <%= link_to page, url, remote: remote, rel: (page.next? ? 'next' : (page.prev? ? 'prev' : nil)) %>
8 </li>
9 <% end %>
1 <%= paginator.render do -%>
2 <ul class="pagination<%= " page#{size}" if defined?(size) %> text-center">
3 <%= first_page_tag %>
4 <%= prev_page_tag %>
5 <% each_page do |page| -%>
6 <% if page.left_outer? || page.right_outer? || page.inside_window? -%>
7 <%= page_tag page %>
8 <% elsif !page.was_truncated? -%>
9 <%= gap_tag %>
10 <% end -%>
11 <% end -%>
12 <%= next_page_tag %>
13 <%= last_page_tag %>
14 </ul>
15 <% end -%>
1 <% if current_page.first? %>
2 <li class="disabled">
3 <%= link_to raw(t 'views.pagination.previous'), 'javascript:void(0);', :rel =>'prev' %>
4 </li>
5 <% else %>
6 <li>
7 <%= link_to raw(t 'views.pagination.previous'), url, :rel =>'prev', :remote => remote %>
8 </li>
9 <% end %>
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title><%= @title %></title>
5 <meta name="keywords" content="<%= @keywords %>">
6 <meta name="description" content="<%= @description %>">
7 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
8 <meta http-equiv="content-type" content="text/html;charset=utf-8">
9 <link rel="shortcut icon" href="/images/favicon.ico" type="image/x-icon">
10 <%= stylesheet_link_tag "application", :media => "all" %>
11 <%= javascript_include_tag "application" %>
12 <%= csrf_meta_tags %>
13 </head>
14 <body>
15 <%= render 'shared/header' %>
16 <%= yield %>
17 <%= render 'shared/footer' %>
18 <div class="navi-scroll" style="display: block;">
19 <div class="navi-scroll-content">
20 <a href="/abouts/lxwm" class="scroll-contact-btn">
21 <span>联系我们</span>
22 <i></i>
23 </a>
24 <a href="/sources/wssj" class="scroll-order-btn">
25 <span>我要送检</span>
26 <i></i>
27 </a>
28 <a href="javascript:void(0);" class="scroll-top-btn" id="to-top">
29 <span>回到顶部</span>
30 <i></i>
31 </a>
32 </div>
33 </div>
34 <script src="/javascripts/initialize.js" type="text/javascript"></script>
35 </body>
36 </html>
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title><%= @title %></title>
5 <meta charset="utf-8">
6 <meta name="keywords" content="<%= @keywords %>">
7 <meta name="description" content="<%= @description %>">
8 <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
9
10 <script>
11 window.CHANNELS = <%= raw Post::CATE.to_json %>;
12 </script>
13 <%= stylesheet_link_tag "mobile", :media => "all" %>
14 <script src="/javascripts/mobile/ionic.bundle.js"></script>
15 <script src="/javascripts/mobile/ion-gallery.js"></script>
16 <script src="/javascripts/mobile/app.js"></script>
17 <script src="/javascripts/mobile/controllers.js"></script>
18 <%= csrf_meta_tags %>
19 </head>
20 <body ng-app="starter">
21 <ion-nav-view></ion-nav-view>
22 </body>
23 </html>
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>诺正检测 | NORMZ TESTING</title>
5 <meta name="keywords" content="诺正检测,农产品检测,肉制品检测,消防检测,环境检测,CANS认证">
6 <meta name="description" content="诺正检测是在中国科学院沈阳应用生态研究所技术支持下成立的综合性检测公司,是通过山东省级资质认定及农业行业机构认证的第三方检验机构,主要从事食品、农产品、环境、饲料、肥料及水产养殖、畜牧产品、消防设施等领域的检验检测,以及相关技术咨询、培训、研发。">
7 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
8 <meta http-equiv="content-type" content="text/html;charset=utf-8">
9 <link rel="shortcut icon" href="/images/favicon.ico" type="image/x-icon">
10 <%= stylesheet_link_tag "admin", :media => "all" %>
11 <%= javascript_include_tag "application" %>
12 <link rel="stylesheet" type="text/css" href="/stylesheets/simditor.css" />
13 <script type="text/javascript" src="/javascripts/simditor/module.js"></script>
14 <script type="text/javascript" src="/javascripts/simditor/uploader.js"></script>
15 <script type="text/javascript" src="/javascripts/simditor/hotkeys.js"></script>
16 <script type="text/javascript" src="/javascripts/simditor/simditor.js"></script>
17 <script type="text/javascript" src="/javascripts/simditor/mobilecheck.js"></script>
18 <%= csrf_meta_tags %>
19 </head>
20 <body>
21 <div class="posts">
22 <%= yield %>
23 </div>
24 <script type="text/javascript">
25 $(function(){
26 var cate = <%= Post::CATE.to_json.html_safe %>;
27 $(document).on("change", "#post_chan", function(){
28 var _val = cate[$(this).val()]['cate'];
29 var _str = '';
30 for(var k in _val){
31 _str += '<option value="' + k + '">' + _val[k] + '</option>';
32 }
33 $("#post_cate").html(_str);
34 })
35 })
36 </script>
37 </body>
38 </html>
1 <%= form_for(@post) do |f| %>
2 <% if @post.errors.any? %>
3 <div id="error_explanation">
4 <h2><%= pluralize(@post.errors.count, "error") %> prohibited this post from being saved:</h2>
5 <ul>
6 <% @post.errors.full_messages.each do |msg| %>
7 <li><%= msg %></li>
8 <% end %>
9 </ul>
10 </div>
11 <% end %>
12 <div class="field">
13 <span><%= f.label :title, '标题' %></span>
14 <%= f.text_field :title, placeholder: '标题 30字以内 不能为空' %>
15 </div>
16 <div class="field">
17 <span><%= f.label :flag, '别名' %></span>
18 <%= f.text_field :flag, placeholder: '可以不填让系统自动生成' %>
19 </div>
20 <div class="field">
21 <span><%= f.label :words, '关键词' %></span>
22 <%= f.text_field :words, placeholder: '英文逗号隔开,' %>
23 </div>
24 <div class="field">
25 <span><%= f.label :chan, '频道' %></span>
26 <%= f.select :chan, Hash[Post::CATE.map{|k, v| [v[:name], k]}] %>
27 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
28 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
29 <span><%= f.label :cate, '类别' %></span>
30 <%= f.select :cate, Post::CATE[@post.try(:chan) || Post::CATE.keys.first][:cate].invert %>
31 </div>
32 <% if params[:source] == 'edit' %>
33 <%= f.text_area :detail, style: "border: 1px solid #c9d8db;width:100%;height:400px;" %>
34 <% else %>
35 <%= render 'source', f: f %>
36 <% end %>
37 <br>
38 <%= f.submit %>
39 <% end %>
1 <section id="nuozheng-post">
2 <%= f.text_area :detail, id: 'txt-content', 'data-autosave' => 'editor-content', autofocus: nil %>
3 <div class="postdetail"></div>
4 </section>
5 <script>
6 (function() {
7 $(function() {
8 var $preview, editor, mobileToolbar, toolbar;
9 Simditor.locale = 'zh-CN';
10 toolbar = ['title', 'bold', 'italic', 'underline', 'strikethrough', 'fontScale', 'color', '|', 'ol', 'ul', 'blockquote', 'table', '|', 'link', 'image', 'hr', '|', 'indent', 'outdent', 'alignment'];
11 mobileToolbar = ["bold", "underline", "strikethrough", "color", "ul", "ol"];
12 if (mobilecheck()) {
13 toolbar = mobileToolbar;
14 }
15 editor = new Simditor({
16 textarea: $('#txt-content'),
17 placeholder: '这里输入文字...',
18 toolbar: toolbar,
19 pasteImage: true,
20 defaultImage: '/images/logo.png',
21 upload: {
22 url: '/upload'
23 }
24 });
25 $preview = $('.postdetail');
26 if ($preview.length > 0) {
27 return editor.on('valuechanged', function(e) {
28 return $preview.html(editor.getValue());
29 });
30 }
31 });
32
33 }).call(this);
34 </script>
...\ No newline at end of file ...\ No newline at end of file
1 <h3 class="title">
2 修改文章
3 <small>
4 <%= link_to '返回文章列表', posts_path(schan: params[:schan], scate: params[:scate], screa: params[:screa], page: params[:page]) %>
5 /
6 <%= link_to '预览效果', post_path(@post, schan: params[:schan], scate: params[:scate], screa: params[:screa], page: params[:page]) %>
7 /
8 <% if params[:source] == 'edit' %>
9 <%= link_to '正常编辑', edit_post_path(@post, schan: params[:schan], scate: params[:scate], screa: params[:screa], page: params[:page]) %>
10 <% else %>
11 <%= link_to '源码编辑', edit_post_path(@post, schan: params[:schan], scate: params[:scate], screa: params[:screa], page: params[:page], source: 'edit') %>
12 <% end %>
13 </small>
14 </h3>
15
16 <%= render 'form' %>
1 <h3 class="title">
2 文章管理
3 <small>
4 <%= link_to '去首页', root_path %>
5 /
6 <%= link_to '注销', sign_out_path %>
7 /
8 <%= link_to '发布文章', new_post_path(schan: params[:schan], scate: params[:scate], screa: params[:screa], page: params[:page]) %>
9 </small>
10 </h3>
11 <table class="list">
12 <tr>
13 <th width="3%">
14 ID
15 </th>
16 <th width="25%">
17 <!-- <input> -->
18 标题
19 </th>
20 <th width="16%">
21 <%= link_to "类别#{params[:scate] == 'desc' ? '△' : '▽'}", posts_path(scate: params[:scate] == 'desc' ? 'asc' : 'desc') %>
22 </th>
23 <th width="16%">
24 <%= link_to "频道#{params[:schan] == 'desc' ? '△' : '▽'}", posts_path(schan: params[:schan] == 'desc' ? 'asc' : 'desc') %>
25 </th>
26 <th width="10%">
27 <%= link_to "日期#{params[:screa] == 'desc' ? '▽' : '△'}", posts_path(screa: params[:screa] == 'desc' ? 'asc' : 'desc') %>
28 </th>
29 <th width="10%">别名</th>
30 <th width="20%">操作</th>
31 </tr>
32
33 <% @posts.each do |post| %>
34 <tr>
35 <td><%= post.id %></td>
36 <td><%= post.title %></td>
37 <td><%= Post::CATE[post.chan][:cate][post.cate] %></td>
38 <td><%= Post::CATE[post.chan][:name] %></td>
39 <td><%= post.created_at.to_date %></td>
40 <td><%= post.flag %></td>
41 <td>
42 <%= link_to '详细', post_path(post, schan: params[:schan], scate: params[:scate], screa: params[:screa], page: params[:page]) %>
43 /
44 <%= link_to '编辑', edit_post_path(post, schan: params[:schan], scate: params[:scate], screa: params[:screa], page: params[:page]) %>
45 /
46 <%= link_to '删除', post, method: :delete, data: { confirm: '确定删除?' } %>
47 </tr>
48 <% end %>
49 </table>
50 <%= paginate @posts %>
1 <h3 class="title">
2 发布文章
3 <small>
4 <%= link_to '返回文章列表', posts_path(schan: params[:schan], scate: params[:scate], screa: params[:screa], page: params[:page]) %>
5 /
6 <% if params[:source] == 'edit' %>
7 <%= link_to '正常编辑', new_post_path(schan: params[:schan], scate: params[:scate], screa: params[:screa], page: params[:page]) %>
8 <% else %>
9 <%= link_to '源码编辑', new_post_path(schan: params[:schan], scate: params[:scate], screa: params[:screa], page: params[:page], source: 'edit') %>
10 <% end %>
11 </small>
12 </h3>
13
14 <%= render 'form' %>
15
16
1 <div style="border-bottom: 3px solid #ccc;">
2 <h3 class="title">
3 <%= @post.title %>
4 <small>
5 <%= link_to '文章列表', posts_path(schan: params[:schan], scate: params[:scate], screa: params[:screa], page: params[:page]) %>
6 /
7 <%= link_to '编辑文章', edit_post_path(@post, schan: params[:schan], scate: params[:scate], screa: params[:screa], page: params[:page]) %>
8 /
9 <%= link_to '发布文章', new_post_path(schan: params[:schan], scate: params[:scate], screa: params[:screa], page: params[:page]) %>
10 /
11 首页 - <%= Post::CATE[@post.chan][:name] %> - <%= Post::CATE[@post.chan][:cate][@post.cate] %>
12 </small>
13 </h3>
14 </div>
15 <div class="postdetail">
16 <%= @post.detail.html_safe %>
17 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <p>
2 <%= flash[:notice] %>
3 </p>
4 <form action="/sign_in" method="post">
5 <input name="utf8" type="hidden" value="✓">
6 <input name="authenticity_token" type="hidden" value="<%= form_authenticity_token %>">
7 账号 <input type="text" name="username">
8 密码 <input type="password" name="password">
9 <input type="submit" value="登陆">
10 </form>
...\ No newline at end of file ...\ No newline at end of file
1 <div class="footer">
2 <ul class="ftservice wrapper">
3 <% if controller_name.eql?('home') and action_name.eql?('index') %>
4 <li class="item wow fadeInUpBig" data-wow-delay="0.0s">
5 <img src="/images/bottom/1.jpg" alt="公正独立">
6 <h5>公正独立</h5>
7 <p>不受任何一方制约的第三方机构</p>
8 </li>
9 <li class="item wow fadeInUpBig" data-wow-delay="0.3s">
10 <img src="/images/bottom/2.jpg" alt="3天速检">
11 <h5>3天速检</h5>
12 <p>高效快速的检测效果</p>
13 </li>
14 <li class="item wow fadeInUpBig" data-wow-delay="0.6s">
15 <img src="/images/bottom/3.jpg" alt="国家级认证">
16 <h5>国家级认证</h5>
17 <p>国家级认定权威检测机构</p>
18 </li>
19 <li class="item wow fadeInUpBig" data-wow-delay="0.9s">
20 <img src="/images/bottom/4.jpg" alt="全程记录">
21 <h5>全程记录</h5>
22 <p>检验过程全程记录存档</p>
23 </li>
24 <li class="item wow fadeInUpBig" data-wow-delay="1.2s">
25 <img src="/images/bottom/5.jpg" alt="先进软硬件设施">
26 <h5>先进软硬件设施</h5>
27 <p>采用国外先进检测设备</p>
28 </li>
29 <% else %>
30 <li class="item">
31 <img src="/images/bottom/1.jpg" alt="公正独立">
32 <h5>公正独立</h5>
33 <p>不受任何一方制约的第三方机构</p>
34 </li>
35 <li class="item">
36 <img src="/images/bottom/2.jpg" alt="3天速检">
37 <h5>3天速检</h5>
38 <p>高效快速的检测效果</p>
39 </li>
40 <li class="item">
41 <img src="/images/bottom/3.jpg" alt="国家级认证">
42 <h5>国家级认证</h5>
43 <p>国家级认定权威检测机构</p>
44 </li>
45 <li class="item">
46 <img src="/images/bottom/4.jpg" alt="全程记录">
47 <h5>全程记录</h5>
48 <p>检验过程全程记录存档</p>
49 </li>
50 <li class="item">
51 <img src="/images/bottom/5.jpg" alt="先进软硬件设施">
52 <h5>先进软硬件设施</h5>
53 <p>采用国外先进检测设备</p>
54 </li>
55 <% end %>
56 </ul>
57 <div class="line"></div>
58 <ul class="ftlinks wrapper">
59 <li class="ftlink">
60 <a class="linktitle" href="javascript:void(0);">关于我们</a>
61 <ul>
62 <li>
63 <a href="/abouts/gsjj/jianjie">
64 公司简介
65 </a>
66 </li>
67 <li>
68 <a href="/cultures">
69 企业文化
70 </a>
71 </li>
72 <li>
73 <a href="/abouts/fwcn">
74 服务宗旨
75 </a>
76 </li>
77 <li>
78 <a href="/abouts/yjss/devices">
79 实验室仪器
80 </a>
81 </li>
82 <li>
83 <a href="/abouts/gsjj/BrYJrm">
84 企业宣传片
85 </a>
86 </li>
87 </ul>
88 </li>
89 <li class="ftlink">
90 <a class="linktitle" href="javascript:void(0);">业务领域</a>
91 <ul>
92 <li>
93 <a href="/ranges/hjjc">
94 环境检测
95 </a>
96 </li>
97 <li>
98 <a href="/ranges/xfjc">
99 消防检测
100 </a>
101 </li>
102 <li>
103 <a href="/ranges/ncpjc">
104 农产品检测
105 </a>
106 </li>
107 <li>
108 <a href="/ranges/rzpjc">
109 肉制品检测
110 </a>
111 </li>
112 <li>
113 <a href="javascript:void(0);">
114 添加剂检测
115 </a>
116 </li>
117 </ul>
118 </li>
119 <li class="ftlink">
120 <a class="linktitle" href="javascript:void(0);">检测范围</a>
121 <ul>
122 <li>
123 <a href="javascript:void(0);">
124 农药残留
125 </a>
126 </li>
127 <li>
128 <a href="javascript:void(0);">
129 食品添加剂
130 </a>
131 </li>
132 <li>
133 <a href="javascript:void(0);">
134 重金属含量
135 </a>
136 </li>
137 <li>
138 <a href="javascript:void(0);">
139 微生物检测
140 </a>
141 </li>
142 <li>
143 <a href="javascript:void(0);">
144 塑化剂检测
145 </a>
146 </li>
147 </ul>
148 </li>
149 <li class="ftlink">
150 <a class="linktitle" href="javascript:void(0);">合作单位</a>
151 <ul>
152 <li>
153 <a href="http://www.iae.cas.cn/" target="_blank">
154 中科院沈阳应用生态研究所
155 </a>
156 </li>
157 <!-- <li>
158 <a href="javascript:void(0);">
159 中国水科院
160 </a>
161 </li>
162 <li>
163 <a href="javascript:void(0);">
164 青岛啤酒
165 </a>
166 </li>
167 <li>
168 <a href="javascript:void(0);">
169 北京沙河水库
170 </a>
171 </li>
172 <li>
173 <a href="javascript:void(0);">
174 菏泽牡丹园
175 </a>
176 </li> -->
177 </ul>
178 </li>
179 <li class="ftlink">
180 <a class="linktitle" href="javascript:void(0);">联系我们</a>
181 <div class="ftcontact wrapper">
182 <div class="ftphoneicon">
183 <span></span>
184 </div>
185 <div class="ftphoneinfo">
186 <h4>0536-5607056</h4>
187 <p>7*24小时客服电话</p>
188 </div>
189 </div>
190 <!-- <div class="ftcontact wrapper wechat">
191 <div class="ftphoneicon">
192 <span></span>
193 </div>
194 <div class="ftphoneinfo">
195 <h4>微信客服</h4>
196 <p>扫码关注</p>
197 </div>
198 </div> -->
199 <!-- <ul>
200 <li>
201 <a href="javascript:void(0);">
202 微信
203 </a>
204 <a href="javascript:void(0);">
205 微博
206 </a>
207 <a href="javascript:void(0);">
208 邮箱
209 </a>
210 <a href="javascript:void(0);">
211 电话
212 </a>
213 <a href="javascript:void(0);">
214 地址
215 </a>
216 </li>
217 </ul> -->
218 </li>
219 </ul>
220 <div class="line"></div>
221 <div class="ftwarp wrapper">
222 <div class="copyright">
223 Copyright © 2015-2016 山东诺正检测有限公司
224 <br><br>
225 版权所有 鲁ICP备15045188号
226 </div>
227 <ul class="copyul">
228 <li>
229 <a href="javascript:void(0);" title="诺正版权, 翻版必究">版权说明</a>
230 </li>
231 <li>
232 <a href="javascript:void(0);">使用协议</a>
233 </li>
234 <li>
235 <a href="javascript:void(0);" title="山东懒虫科技有限公司">技术支持</a>
236 </li>
237 <li>
238 <a href="/sign_in">后台管理</a>
239 </li>
240 </ul>
241 </div>
242 </div>
...\ No newline at end of file ...\ No newline at end of file
1 <div class="header">
2 <div class="wrapper">
3 <div class="logo">
4 <a href="/" title="山东诺正检测有限公司">
5 <img src="/images/logo.png" alt="诺正Logo">
6 </a>
7 <span style="font-size: 25px;">山东诺正检测有限公司</span>
8 </div>
9 <div class="nav">
10 <ul class="menu">
11 <li>
12 <%= link_to '诺正首页', root_path, class: "#{'active' if request.path == '/'}" %>
13 </li>
14 <% Post::CATE.each do |key, val| %>
15 <li>
16 <%= link_to val[:name], {controller: :home, action: :show, chan: key}, class: "#{'active' if params[:chan].eql?(key)}" %>
17 </li>
18 <% end %>
19 </ul>
20 </div>
21 </div>
22 </div>
1 # This file is used by Rack-based servers to start the application.
2
3 require ::File.expand_path('../config/environment', __FILE__)
4 run Nuozheng::Application
1 require File.expand_path('../boot', __FILE__)
2
3 require 'rails/all'
4
5 if defined?(Bundler)
6 # If you precompile assets before deploying to production, use this line
7 Bundler.require(*Rails.groups(:assets => %w(development test)))
8 # If you want your assets lazily compiled in production, use this line
9 # Bundler.require(:default, :assets, Rails.env)
10 end
11
12 module Nuozheng
13 class Application < Rails::Application
14 # Settings in config/environments/* take precedence over those specified here.
15 # Application configuration should go into files in config/initializers
16 # -- all .rb files in that directory are automatically loaded.
17
18 # Custom directories with classes and modules you want to be autoloadable.
19 # config.autoload_paths += %W(#{config.root}/extras)
20
21 # Only load the plugins named here, in the order given (default is alphabetical).
22 # :all can be used as a placeholder for all plugins not explicitly named.
23 # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
24
25 # Activate observers that should always be running.
26 # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
27
28 # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
29 # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
30 # config.time_zone = 'Central Time (US & Canada)'
31
32 # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
33 # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
34 # config.i18n.default_locale = :de
35
36 # Configure the default encoding used in templates for Ruby 1.9.
37 config.encoding = "utf-8"
38
39 # Configure sensitive parameters which will be filtered from the log file.
40 config.filter_parameters += [:password]
41
42 # Enable escaping HTML in JSON.
43 config.active_support.escape_html_entities_in_json = true
44
45 # Use SQL instead of Active Record's schema dumper when creating the database.
46 # This is necessary if your schema can't be completely dumped by the schema dumper,
47 # like if you have constraints or database-specific column types
48 # config.active_record.schema_format = :sql
49
50 # Enforce whitelist mode for mass assignment.
51 # This will create an empty whitelist of attributes available for mass-assignment for all models
52 # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
53 # parameters by using an attr_accessible or attr_protected declaration.
54 config.active_record.whitelist_attributes = true
55
56 # Enable the asset pipeline
57 config.assets.enabled = true
58
59 # Version of your assets, change this if you want to expire all your assets
60 config.assets.version = '1.0'
61 end
62 end
1 require 'rubygems'
2
3 # Set up gems listed in the Gemfile.
4 ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
5
6 require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
1 # MySQL. Versions 4.1 and 5.0 are recommended.
2 #
3 # Install the MYSQL driver
4 # gem install mysql2
5 #
6 # Ensure the MySQL gem is defined in your Gemfile
7 # gem 'mysql2'
8 #
9 # And be sure to use new-style password hashing:
10 # http://dev.mysql.com/doc/refman/5.0/en/old-client.html
11 development:
12 adapter: mysql2
13 encoding: utf8
14 reconnect: false
15 database: nuozheng
16 pool: 5
17 username: tmp
18 password: tmp
19
20 # Warning: The database defined as "test" will be erased and
21 # re-generated from your development database when you run "rake".
22 # Do not set this db to the same as development or production.
23 test:
24 adapter: mysql2
25 encoding: utf8
26 reconnect: false
27 database: nuozheng
28 pool: 5
29 username: tmp
30 password: tmp
31
32 production:
33 adapter: mysql2
34 encoding: utf8
35 reconnect: false
36 database: nuozheng
37 pool: 5
38 username: tmp
39 password: tmp
1 require "awesome_print"
2 # config valid only for current version of Capistrano
3 lock '3.4.0'
4
5 set :application, 'nuozheng'
6 set :repo_url, 'git@bitbucket.org:bopro/nuozheng.git'
7 set :branch, "master"
8 set :deploy_to, '/home/web/nuozheng'
9 set :scm, :git
10 set :pty, false
11
12 set :keep_releases, 3
13 set :unicorn_config, "#{current_path}/config/unicorn.rb"
14 set :unicorn_pid, "#{shared_path}/tmp/pids/unicorn_nuozheng.pid"
15
16 namespace :deploy do
17
18 task :start do
19 on roles(:web) do
20 within current_path do
21 with rails_env: 'production' do
22 execute :bundle, "exec unicorn_rails -c #{fetch(:unicorn_config)} -D"
23 end
24 end
25 end
26 end
27
28 task :stop do
29 on roles(:web) do
30 execute "if [ -f #{fetch(:unicorn_pid)} ]; then kill -QUIT `cat #{fetch(:unicorn_pid)}`; fi"
31 end
32 end
33
34 task :restart do
35 on roles(:web) do
36 # within current_path do
37 # 用USR2信号来实现无缝部署重启
38 execute "if [ -f #{fetch(:unicorn_pid)} ]; then kill -s USR2 `cat #{fetch(:unicorn_pid)}`; fi"
39 # end
40 end
41 end
42
43 task :mkdir_shared do
44 on roles(:web) do
45 execute "mkdir -p #{shared_path}/log"
46 execute "mkdir -p #{shared_path}/assets"
47 execute "mkdir -p #{shared_path}/tmp/pids"
48 execute "mkdir -p #{shared_path}/tmp/cache"
49 end
50 end
51
52 task :link_shared do
53 on roles(:web) do
54 execute "ln -sf #{shared_path}/log #{current_path}/log"
55 execute "ln -sf #{shared_path}/assets #{current_path}/public/assets"
56 execute "ln -sf #{shared_path}/tmp #{current_path}/tmp"
57 end
58 end
59
60 task :db_migrate do
61 on roles(:web) do
62 within current_path do
63 with rails_env: 'production' do
64 execute :bundle, :exec, :rake, 'db:migrate'
65 end
66 end
67 end
68 end
69
70 task :bundle_install do
71 on roles(:web) do
72 within current_path do
73 with rails_env: 'production' do
74 execute :bundle, 'install'
75 end
76 end
77 end
78 end
79
80 before :starting, :mkdir_shared
81 after :publishing, :link_shared
82 after :publishing, :bundle_install
83 after :publishing, :db_migrate
84 after :publishing, :restart # 第一次部署会有找不到unicron.pid的bug
85
86 end
1 # server-based syntax
2 # ======================
3 # Defines a single server with a list of roles and multiple properties.
4 # You can define all roles on a single server, or split them:
5
6 # server 'example.com', user: 'deploy', roles: %w{app db web}, my_property: :my_value
7 # server 'example.com', user: 'deploy', roles: %w{app web}, other_property: :other_value
8 server '115.28.86.237', user: 'web', roles: %w{app db web}
9
10
11
12 # role-based syntax
13 # ==================
14
15 # Defines a role with one or multiple servers. The primary server in each
16 # group is considered to be the first unless any hosts have the primary
17 # property set. Specify the username and a domain or IP for the server.
18 # Don't use `:all`, it's a meta role.
19
20 role :app, "115.28.86.237"
21 # role :web, %w{user1@primary.com user2@additional.com}, other_property: :other_value
22 # role :db, %w{deploy@example.com}
23
24
25
26 # Configuration
27 # =============
28 # You can set any configuration variable like in config/deploy.rb
29 # These variables are then only loaded and set in this stage.
30 # For available Capistrano configuration variables see the documentation page.
31 # http://capistranorb.com/documentation/getting-started/configuration/
32 # Feel free to add new variables to customise your setup.
33
34
35
36 # Custom SSH Options
37 # ==================
38 # You may pass any option but keep in mind that net/ssh understands a
39 # limited set of options, consult the Net::SSH documentation.
40 # http://net-ssh.github.io/net-ssh/classes/Net/SSH.html#method-c-start
41 #
42 # Global options
43 # --------------
44 # set :ssh_options, {
45 # keys: %w(/home/rlisowski/.ssh/id_rsa),
46 # forward_agent: false,
47 # auth_methods: %w(password)
48 # }
49 #
50 # The server-based syntax can be used to override options:
51 # ------------------------------------
52 # server 'example.com',
53 # user: 'user_name',
54 # roles: %w{web app},
55 # ssh_options: {
56 # user: 'user_name', # overrides user setting above
57 # keys: %w(/home/user_name/.ssh/id_rsa),
58 # forward_agent: false,
59 # auth_methods: %w(publickey password)
60 # # password: 'please use keys'
61 # }
1 # server-based syntax
2 # ======================
3 # Defines a single server with a list of roles and multiple properties.
4 # You can define all roles on a single server, or split them:
5
6 # server 'example.com', user: 'deploy', roles: %w{app db web}, my_property: :my_value
7 # server 'example.com', user: 'deploy', roles: %w{app web}, other_property: :other_value
8 # server 'db.example.com', user: 'deploy', roles: %w{db}
9
10
11
12 # role-based syntax
13 # ==================
14
15 # Defines a role with one or multiple servers. The primary server in each
16 # group is considered to be the first unless any hosts have the primary
17 # property set. Specify the username and a domain or IP for the server.
18 # Don't use `:all`, it's a meta role.
19
20 # role :app, %w{deploy@example.com}, my_property: :my_value
21 # role :web, %w{user1@primary.com user2@additional.com}, other_property: :other_value
22 # role :db, %w{deploy@example.com}
23
24
25
26 # Configuration
27 # =============
28 # You can set any configuration variable like in config/deploy.rb
29 # These variables are then only loaded and set in this stage.
30 # For available Capistrano configuration variables see the documentation page.
31 # http://capistranorb.com/documentation/getting-started/configuration/
32 # Feel free to add new variables to customise your setup.
33
34
35
36 # Custom SSH Options
37 # ==================
38 # You may pass any option but keep in mind that net/ssh understands a
39 # limited set of options, consult the Net::SSH documentation.
40 # http://net-ssh.github.io/net-ssh/classes/Net/SSH.html#method-c-start
41 #
42 # Global options
43 # --------------
44 # set :ssh_options, {
45 # keys: %w(/home/rlisowski/.ssh/id_rsa),
46 # forward_agent: false,
47 # auth_methods: %w(password)
48 # }
49 #
50 # The server-based syntax can be used to override options:
51 # ------------------------------------
52 # server 'example.com',
53 # user: 'user_name',
54 # roles: %w{web app},
55 # ssh_options: {
56 # user: 'user_name', # overrides user setting above
57 # keys: %w(/home/user_name/.ssh/id_rsa),
58 # forward_agent: false,
59 # auth_methods: %w(publickey password)
60 # # password: 'please use keys'
61 # }
1 # Load the rails application
2 require File.expand_path('../application', __FILE__)
3
4 # Initialize the rails application
5 Nuozheng::Application.initialize!
1 Nuozheng::Application.configure do
2 # Settings specified here will take precedence over those in config/application.rb
3
4 # In the development environment your application's code is reloaded on
5 # every request. This slows down response time but is perfect for development
6 # since you don't have to restart the web server when you make code changes.
7 config.cache_classes = false
8
9 # Log error messages when you accidentally call methods on nil.
10 config.whiny_nils = true
11
12 # Show full error reports and disable caching
13 config.consider_all_requests_local = true
14 config.action_controller.perform_caching = false
15
16 # Don't care if the mailer can't send
17 config.action_mailer.raise_delivery_errors = false
18
19 # Print deprecation notices to the Rails logger
20 config.active_support.deprecation = :log
21
22 # Only use best-standards-support built into browsers
23 config.action_dispatch.best_standards_support = :builtin
24
25 # Raise exception on mass assignment protection for Active Record models
26 config.active_record.mass_assignment_sanitizer = :strict
27
28 # Log the query plan for queries taking more than this (works
29 # with SQLite, MySQL, and PostgreSQL)
30 config.active_record.auto_explain_threshold_in_seconds = 0.5
31
32 # Do not compress assets
33 config.assets.compress = false
34
35 # Expands the lines which load the assets
36 config.assets.debug = true
37 end
1 Nuozheng::Application.configure do
2 # Settings specified here will take precedence over those in config/application.rb
3
4 # Code is not reloaded between requests
5 config.cache_classes = true
6
7 # Full error reports are disabled and caching is turned on
8 config.consider_all_requests_local = false
9 config.action_controller.perform_caching = true
10
11 # Disable Rails's static asset server (Apache or nginx will already do this)
12 config.serve_static_assets = true
13
14 # Compress JavaScripts and CSS
15 config.assets.compress = true
16
17 # Don't fallback to assets pipeline if a precompiled asset is missed
18 config.assets.compile = true
19
20 # Generate digests for assets URLs
21 config.assets.digest = true
22 config.assets.js_compressor = :uglifier
23
24 # Defaults to nil and saved in location specified by config.assets.prefix
25 # config.assets.manifest = YOUR_PATH
26
27 # Specifies the header that your server uses for sending files
28 # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
29 config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
30
31 # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
32 # config.force_ssl = true
33
34 # See everything in the log (default is :info)
35 # config.log_level = :debug
36
37 # Prepend all log lines with the following tags
38 # config.log_tags = [ :subdomain, :uuid ]
39
40 # Use a different logger for distributed setups
41 # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
42
43 # Use a different cache store in production
44 # config.cache_store = :mem_cache_store
45
46 # Enable serving of images, stylesheets, and JavaScripts from an asset server
47 # config.action_controller.asset_host = "http://assets.example.com"
48
49 # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
50 # config.assets.precompile += %w( search.js )
51
52 # Disable delivery errors, bad email addresses will be ignored
53 # config.action_mailer.raise_delivery_errors = false
54
55 # Enable threaded mode
56 # config.threadsafe!
57
58 # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
59 # the I18n.default_locale when a translation can not be found)
60 config.i18n.fallbacks = true
61
62 # Send deprecation notices to registered listeners
63 config.active_support.deprecation = :notify
64
65 # Log the query plan for queries taking more than this (works
66 # with SQLite, MySQL, and PostgreSQL)
67 # config.active_record.auto_explain_threshold_in_seconds = 0.5
68 # config.action_mailer.default_url_options = {:host => 'www.normz.cn'}
69 end
1 Nuozheng::Application.configure do
2 # Settings specified here will take precedence over those in config/application.rb
3
4 # The test environment is used exclusively to run your application's
5 # test suite. You never need to work with it otherwise. Remember that
6 # your test database is "scratch space" for the test suite and is wiped
7 # and recreated between test runs. Don't rely on the data there!
8 config.cache_classes = true
9
10 # Configure static asset server for tests with Cache-Control for performance
11 config.serve_static_assets = true
12 config.static_cache_control = "public, max-age=3600"
13
14 # Log error messages when you accidentally call methods on nil
15 config.whiny_nils = true
16
17 # Show full error reports and disable caching
18 config.consider_all_requests_local = true
19 config.action_controller.perform_caching = false
20
21 # Raise exceptions instead of rendering exception templates
22 config.action_dispatch.show_exceptions = false
23
24 # Disable request forgery protection in test environment
25 config.action_controller.allow_forgery_protection = false
26
27 # Tell Action Mailer not to deliver emails to the real world.
28 # The :test delivery method accumulates sent emails in the
29 # ActionMailer::Base.deliveries array.
30 config.action_mailer.delivery_method = :test
31
32 # Raise exception on mass assignment protection for Active Record models
33 config.active_record.mass_assignment_sanitizer = :strict
34
35 # Print deprecation notices to the stderr
36 config.active_support.deprecation = :stderr
37 end
1 # Be sure to restart your server when you modify this file.
2
3 # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4 # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5
6 # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7 # Rails.backtrace_cleaner.remove_silencers!
1 # Be sure to restart your server when you modify this file.
2
3 # Add new inflection rules using the following format
4 # (all these examples are active by default):
5 # ActiveSupport::Inflector.inflections do |inflect|
6 # inflect.plural /^(ox)$/i, '\1en'
7 # inflect.singular /^(ox)en/i, '\1'
8 # inflect.irregular 'person', 'people'
9 # inflect.uncountable %w( fish sheep )
10 # end
11 #
12 # These inflection rules are supported but not enabled by default:
13 # ActiveSupport::Inflector.inflections do |inflect|
14 # inflect.acronym 'RESTful'
15 # end
1 Kaminari.configure do |config|
2 # config.default_per_page = 25
3 # config.max_per_page = nil
4 # config.window = 4
5 # config.outer_window = 0
6 # config.left = 0
7 # config.right = 0
8 # config.page_method_name = :page
9 # config.param_name = :page
10 end
1 # Be sure to restart your server when you modify this file.
2
3 # Add new mime types for use in respond_to blocks:
4 # Mime::Type.register "text/richtext", :rtf
5 # Mime::Type.register_alias "text/html", :iphone
1 # Be sure to restart your server when you modify this file.
2
3 # Your secret key for verifying the integrity of signed cookies.
4 # If you change this key, all old signed cookies will become invalid!
5 # Make sure the secret is at least 30 characters and all random,
6 # no regular words or you'll be exposed to dictionary attacks.
7 Nuozheng::Application.config.secret_token = '8b17a9f8327eae4357722ea078c5905462235872cb3cb0c89680fe21a6a0e74cacc995202b6e998221ecf8f7e5625b22388c9cfef51b2a08111a54e127f27d64'
1 # Be sure to restart your server when you modify this file.
2
3 Nuozheng::Application.config.session_store :cookie_store, key: '_nuozheng_session'
4
5 # Use the database for sessions instead of the cookie-based default,
6 # which shouldn't be used to store highly confidential information
7 # (create the session table with "rails generate session_migration")
8 # Nuozheng::Application.config.session_store :active_record_store
1 # Be sure to restart your server when you modify this file.
2 #
3 # This file contains settings for ActionController::ParamsWrapper which
4 # is enabled by default.
5
6 # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7 ActiveSupport.on_load(:action_controller) do
8 wrap_parameters format: [:json]
9 end
10
11 # Disable root element in JSON by default.
12 ActiveSupport.on_load(:active_record) do
13 self.include_root_in_json = false
14 end
1 # Sample localization file for English. Add more files in this directory for other locales.
2 # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
4 en:
5 hello: "Hello world"
1 en:
2 views:
3 pagination:
4 first: "首页"
5 last: "尾页"
6 previous: "上一页"
7 next: "下一页"
8 truncate: "..."
...\ No newline at end of file ...\ No newline at end of file
1 zh-CN:
2 views:
3 pagination:
4 first: "首页"
5 last: "尾页"
6 previous: "上一页"
7 next: "下一页"
8 truncate: "..."
...\ No newline at end of file ...\ No newline at end of file
1 Nuozheng::Application.routes.draw do
2 post '/upload' => 'posts#upload'
3 get '/sign_in' => 'posts#sign_in'
4 post '/sign_in' => 'posts#sign_in'
5 get '/sign_out' => 'posts#sign_out'
6 resources :posts
7
8 constraints subdomain: 'h5' do
9 root :to => 'mobile#index'
10 end
11 get ':chan(/:cate(/:flag))(.:format)' => 'home#show'
12 # cultures
13
14
15 # resources :ranges, only: [:index, :show]
16 # resources :dynamics, only: [:index, :show]
17 # resources :cultures, only: [:index, :show]
18 # resources :abouts, only: [:index, :show]
19 # resources :jobs, only: [:index, :show]
20
21 # The priority is based upon order of creation:
22 # first created -> highest priority.
23
24 # Sample of regular route:
25 # match 'products/:id' => 'catalog#view'
26 # Keep in mind you can assign values other than :controller and :action
27
28 # Sample of named route:
29 # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
30 # This route can be invoked with purchase_url(:id => product.id)
31
32 # Sample resource route (maps HTTP verbs to controller actions automatically):
33 # resources :products
34
35 # Sample resource route with options:
36 # resources :products do
37 # member do
38 # get 'short'
39 # post 'toggle'
40 # end
41 #
42 # collection do
43 # get 'sold'
44 # end
45 # end
46
47 # Sample resource route with sub-resources:
48 # resources :products do
49 # resources :comments, :sales
50 # resource :seller
51 # end
52
53 # Sample resource route with more complex sub-resources
54 # resources :products do
55 # resources :comments
56 # resources :sales do
57 # get 'recent', :on => :collection
58 # end
59 # end
60
61 # Sample resource route within a namespace:
62 # namespace :admin do
63 # # Directs /admin/products/* to Admin::ProductsController
64 # # (app/controllers/admin/products_controller.rb)
65 # resources :products
66 # end
67
68 # You can have the root of your site routed with "root"
69 # just remember to delete public/index.html.
70 root :to => 'home#index'
71
72 # See how all your routes lay out with "rake routes"
73
74 # This is a legacy wild controller route that's not recommended for RESTful applications.
75 # Note: This route will make all actions in every controller accessible via GET requests.
76 # match ':controller(/:action(/:id))(.:format)'
77 end
1 worker_processes 1
2
3 app_root = File.expand_path("../..", __FILE__)
4 working_directory app_root
5
6 # Listen on fs socket for better performance
7 listen "/tmp/unicorn.nuozheng.sock", :backlog => 64
8 listen 5096, :tcp_nopush => false
9
10 # Nuke workers after 30 seconds instead of 60 seconds (the default)
11 timeout 30
12
13 # App PID
14 pid "#{app_root}/tmp/pids/unicorn_nuozheng.pid"
15
16 # By default, the Unicorn logger will write to stderr.
17 # Additionally, some applications/frameworks log to stderr or stdout,
18 # so prevent them from going to /dev/null when daemonized here:
19 stderr_path "#{app_root}/log/unicorn.stderr.log"
20 stdout_path "#{app_root}/log/unicorn.stdout.log"
21
22 # To save some memory and improve performance
23 preload_app true
24 # GC.respond_to?(:copy_on_write_friendly=) and GC.copy_on_write_friendly = true
25
26 # Force the bundler gemfile environment variable to
27 # reference the Сapistrano "current" symlink
28 before_exec do |_|
29 ENV["BUNDLE_GEMFILE"] = File.join(app_root, 'Gemfile')
30 end
31
32 before_fork do |server, worker|
33 # 参考 http://unicorn.bogomips.org/SIGNALS.html
34 # 使用USR2信号,以及在进程完成后用QUIT信号来实现无缝重启
35 old_pid = app_root + '/tmp/pids/unicorn_nuozheng.pid.oldbin'
36 if File.exists?(old_pid) && server.pid != old_pid
37 begin
38 Process.kill("QUIT", File.read(old_pid).to_i)
39 rescue Errno::ENOENT, Errno::ESRCH
40 # someone else did our job for us
41 end
42 end
43
44 # the following is highly recomended for Rails + "preload_app true"
45 # as there's no need for the master process to hold a connection
46 defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect!
47 end
48
49 after_fork do |server, worker|
50 # # 禁止GC,配合后续的OOB,来减少请求的执行时间
51 # GC.disable
52 # the following is *required* for Rails + "preload_app true",
53 defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection
54 end
1 class CreatePosts < ActiveRecord::Migration
2 def change
3 create_table :posts do |t|
4 t.string :title
5 t.string :flag
6 t.string :words
7 t.text :detail
8 t.integer :parent_id
9 t.string :chan
10 t.string :cate
11 t.boolean :isdel, default: false
12
13 t.timestamps
14 end
15 end
16 end
1 class CreatePictures < ActiveRecord::Migration
2 def change
3 create_table :pictures do |t|
4 t.string :filename
5
6 t.timestamps
7 end
8 end
9 end
1 # encoding: UTF-8
2 # This file is auto-generated from the current state of the database. Instead
3 # of editing this file, please use the migrations feature of Active Record to
4 # incrementally modify your database, and then regenerate this schema definition.
5 #
6 # Note that this schema.rb definition is the authoritative source for your
7 # database schema. If you need to create the application database on another
8 # system, you should be using db:schema:load, not running all the migrations
9 # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10 # you'll amass, the slower it'll run and the greater likelihood for issues).
11 #
12 # It's strongly recommended to check this file into your version control system.
13
14 ActiveRecord::Schema.define(:version => 20160109100011) do
15
16 create_table "pictures", :force => true do |t|
17 t.string "filename"
18 t.datetime "created_at", :null => false
19 t.datetime "updated_at", :null => false
20 end
21
22 create_table "posts", :force => true do |t|
23 t.string "title"
24 t.string "flag"
25 t.text "detail"
26 t.integer "parent_id"
27 t.string "chan"
28 t.string "cate"
29 t.boolean "isdel", :default => false
30 t.datetime "created_at", :null => false
31 t.datetime "updated_at", :null => false
32 end
33
34 end
1 # This file should contain all the record creation needed to seed the database with its default values.
2 # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
3 #
4 # Examples:
5 #
6 # cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
7 # Mayor.create(name: 'Emanuel', city: cities.first)
1 Use this README file to introduce your application and point to useful places in the API for learning more.
2 Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries.
File mode changed
File mode changed
No preview for this file type
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>The page you were looking for doesn't exist (404)</title>
5 <style type="text/css">
6 body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7 div.dialog {
8 width: 25em;
9 padding: 0 4em;
10 margin: 4em auto 0 auto;
11 border: 1px solid #ccc;
12 border-right-color: #999;
13 border-bottom-color: #999;
14 }
15 h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16 </style>
17 </head>
18
19 <body>
20 <!-- This file lives in public/404.html -->
21 <div class="dialog">
22 <h1>The page you were looking for doesn't exist.</h1>
23 <p>You may have mistyped the address or the page may have moved.</p>
24 </div>
25 </body>
26 </html>
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>The change you wanted was rejected (422)</title>
5 <style type="text/css">
6 body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7 div.dialog {
8 width: 25em;
9 padding: 0 4em;
10 margin: 4em auto 0 auto;
11 border: 1px solid #ccc;
12 border-right-color: #999;
13 border-bottom-color: #999;
14 }
15 h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16 </style>
17 </head>
18
19 <body>
20 <!-- This file lives in public/422.html -->
21 <div class="dialog">
22 <h1>The change you wanted was rejected.</h1>
23 <p>Maybe you tried to change something you didn't have access to.</p>
24 </div>
25 </body>
26 </html>
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>We're sorry, but something went wrong (500)</title>
5 <style type="text/css">
6 body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7 div.dialog {
8 width: 25em;
9 padding: 0 4em;
10 margin: 4em auto 0 auto;
11 border: 1px solid #ccc;
12 border-right-color: #999;
13 border-bottom-color: #999;
14 }
15 h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16 </style>
17 </head>
18
19 <body>
20 <!-- This file lives in public/500.html -->
21 <div class="dialog">
22 <h1>We're sorry, but something went wrong.</h1>
23 </div>
24 </body>
25 </html>
File mode changed
No preview for this file type
This diff could not be displayed because it is too large.
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
1 //去除手机浏览器的touch active 的效果/////
2 if (!(/msie [6|7|8|9]/i.test(navigator.userAgent))){
3 new WOW().init();
4 };
5 $(function(){
6 // $(window).scroll(function () {
7 // if($(window).scrollTop()=="0") {
8 // $("#to-top").fadeOut();
9 // }else {
10 // $("#to-top").fadeIn();
11 // }
12 // });
13 $("#to-top").on("click", function(){
14 $("html,body").animate({scrollTop:0},300);
15 return false;
16 });
17 })
...\ No newline at end of file ...\ No newline at end of file
1 $(function () {
2 var chart = new Highcharts.Chart({
3 credits: {
4 enabled: false
5 },
6 chart: {
7 renderTo: 'innerchart',
8 events: {
9 load: function () {
10
11 // Draw the flow chart
12 var ren = this.renderer,
13 colors = Highcharts.getOptions().colors,
14 topArrow = ['M', 0, 50, 'L', 0, 0, 'L', -3, 3, 'M', 0, 0, 'L', 3, 3],
15 bottomArrow = ['M', 0, 0, 'L', 0, 50, 'L', -3, 47, 'M', 0, 50, 'L', 3, 47],
16 rightArrow = ['M', 0, 0, 'L', 50, 0, 'L', 47, 3, 'M', 50, 0, 'L', 47, -3],
17 leftArrow = ['M', 50, 0, 'L', 0, 0, 'L', 3, 3, 'M', 0, 0, 'L', 3, -3];
18
19 // 开始, 委托
20 ren.label('委<br>托<br>单<br>位<br>、<br>被<br>抽<br>检<br>单<br>位', 5, 150)
21 .attr({
22 fill: colors[0],
23 stroke: 'white',
24 'stroke-width': 2,
25 padding: 5,
26 r: 5,
27 height: 200
28 })
29 .css({
30 color: 'white'
31 })
32 .add()
33 .shadow(true);
34 // 诉讼处理意见
35 ren.label('诉讼处理意见', 100, 150)
36 .attr({
37 r: 5,
38 width: 75,
39 fill: colors[3]
40 })
41 .css({
42 color: 'white'
43 })
44 .add();
45 // 提出诉讼
46 ren.label('提出诉讼', 100, 220)
47 .attr({
48 r: 5,
49 width: 75,
50 fill: colors[5]
51 })
52 .css({
53 color: 'white',
54 textAlign: 'center'
55 })
56 .add();
57 // 发送报告
58 ren.label('发送报告', 100, 280)
59 .attr({
60 r: 5,
61 width: 75,
62 fill: colors[6]
63 })
64 .css({
65 color: 'white',
66 textAlign: 'center'
67 })
68 .add();
69 // 图纸
70 ren.label('图纸', 100, 340)
71 .attr({
72 r: 5,
73 width: 75,
74 fill: colors[7]
75 })
76 .css({
77 color: 'white',
78 textAlign: 'center'
79 })
80 .add();
81 ren.label('综<br>合<br>部', 250, 150)
82 .attr({
83 fill: colors[8],
84 stroke: 'white',
85 'stroke-width': 2,
86 padding: 5,
87 r: 5,
88 height: 200
89 })
90 .css({
91 color: 'white'
92 })
93 .add()
94 .shadow(true);
95 ren.label('报告副本及<br>原记录归档', 230, 60)
96 .attr({
97 fill: colors[9],
98 stroke: 'white',
99 'stroke-width': 2,
100 padding: 5,
101 r: 5,
102 height: 30
103 })
104 .css({
105 color: 'white',
106 textAlign: 'center'
107 })
108 .add()
109 .shadow(true);
110 ren.label('归档', 340, 100)
111 .attr({
112 fill: colors[0],
113 stroke: 'white',
114 'stroke-width': 2,
115 padding: 5,
116 r: 5,
117 width: 50,
118 height: 30
119 })
120 .css({
121 color: 'white',
122 textAlign: 'center'
123 })
124 .add()
125 .shadow(true);
126 ren.label('受理投诉', 340, 150)
127 .attr({
128 fill: colors[1],
129 r: 5,
130 width: 60
131 })
132 .css({
133 color: 'white',
134 textAlign: 'center'
135 })
136 .add()
137 .shadow(true);
138 ren.label('质量负责人', 440, 150)
139 .attr({
140 fill: colors[2],
141 r: 5,
142 width: 60
143 })
144 .css({
145 color: 'white',
146 textAlign: 'center'
147 })
148 .add()
149 .shadow(true);
150 ren.label('调查原因', 540, 150)
151 .attr({
152 fill: colors[3],
153 r: 5,
154 width: 60
155 })
156 .css({
157 color: 'white',
158 textAlign: 'center'
159 })
160 .add()
161 .shadow(true);
162 ren.label('反馈意见', 640, 150)
163 .attr({
164 fill: colors[4],
165 r: 5,
166 width: 60
167 })
168 .css({
169 color: 'white',
170 textAlign: 'center'
171 })
172 .add()
173 .shadow(true);
174 ren.label('编写报告', 340, 200)
175 .attr({
176 fill: colors[5],
177 r: 5,
178 width: 60
179 })
180 .css({
181 color: 'white',
182 textAlign: 'center'
183 })
184 .add()
185 .shadow(true);
186 ren.label('技术负责人审批', 440, 200)
187 .attr({
188 fill: colors[6],
189 r: 5
190 })
191 .css({
192 color: 'white',
193 textAlign: 'center'
194 })
195 .add()
196 .shadow(true);
197 ren.label('合同审批', 340, 250)
198 .attr({
199 fill: colors[7],
200 r: 5,
201 width: 60
202 })
203 .css({
204 color: 'white',
205 textAlign: 'center'
206 })
207 .add()
208 .shadow(true);
209 ren.label('下<br>达<br>任<br>务<br>单', 445, 240)
210 .attr({
211 fill: colors[4],
212 r: 5,
213 height: 90
214 })
215 .css({
216 color: 'white',
217 textAlign: 'center'
218 })
219 .add()
220 .shadow(true);
221 ren.label('检<br>测<br>部', 505, 240)
222 .attr({
223 fill: colors[5],
224 r: 5,
225 height: 90
226 })
227 .css({
228 color: 'white',
229 textAlign: 'center'
230 })
231 .add()
232 .shadow(true);
233 ren.label('现<br>场<br>检<br>测', 565, 240)
234 .attr({
235 fill: colors[6],
236 r: 5,
237 height: 90
238 })
239 .css({
240 color: 'white',
241 textAlign: 'center'
242 })
243 .add()
244 .shadow(true);
245 ren.label('填<br>写<br>原<br>始<br>记<br>录', 625, 240)
246 .attr({
247 fill: colors[7],
248 r: 5,
249 height: 90
250 })
251 .css({
252 color: 'white',
253 textAlign: 'center'
254 })
255 .add()
256 .shadow(true);
257 ren.label('部<br>内<br>审<br>核', 685, 240)
258 .attr({
259 fill: colors[8],
260 r: 5,
261 height: 90
262 })
263 .css({
264 color: 'white',
265 textAlign: 'center'
266 })
267 .add()
268 .shadow(true);
269 ren.label('提<br>交<br>检<br>测<br>结<br>果', 745, 240)
270 .attr({
271 fill: colors[9],
272 r: 5,
273 height: 90
274 })
275 .css({
276 color: 'white',
277 textAlign: 'center'
278 })
279 .add()
280 .shadow(true);
281 ren.label('记录', 340, 360)
282 .attr({
283 fill: colors[0],
284 stroke: 'white',
285 'stroke-width': 2,
286 padding: 5,
287 r: 5,
288 width: 60
289 })
290 .css({
291 color: 'white',
292 textAlign: 'center'
293 })
294 .add()
295 .shadow(true);
296 ren.label('修改', 480, 360)
297 .attr({
298 fill: colors[1],
299 stroke: 'white',
300 'stroke-width': 2,
301 padding: 5,
302 r: 5,
303 width: 60
304 })
305 .css({
306 color: 'white',
307 textAlign: 'center'
308 })
309 .add()
310 .shadow(true);
311
312
313
314 // 画线
315 ren.path(leftArrow)
316 .attr({
317 'stroke-width': 0,
318 stroke: colors[0]
319 })
320 .animate({'stroke-width': 2}, 3000)
321 .translate(40, 160)
322 .add();
323 ren.path(rightArrow)
324 .attr({
325 'stroke-width': 0,
326 stroke: colors[1]
327 })
328 .animate({'stroke-width': 2}, 3000)
329 .translate(40, 230)
330 .add();
331 ren.path(leftArrow)
332 .attr({
333 'stroke-width': 0,
334 stroke: colors[2]
335 })
336 .animate({'stroke-width': 2}, 3000)
337 .translate(40, 290)
338 .add();
339 ren.path(rightArrow)
340 .attr({
341 'stroke-width': 0,
342 stroke: colors[3]
343 })
344 .animate({'stroke-width': 2}, 3000)
345 .translate(40, 350)
346 .add();
347 ren.path(rightArrow)
348 .attr({
349 'stroke-width': 0,
350 stroke: colors[4]
351 })
352 .animate({'stroke-width': 2}, 3000)
353 .translate(190, 160)
354 .add();
355 ren.path(leftArrow)
356 .attr({
357 'stroke-width': 0,
358 stroke: colors[5]
359 })
360 .animate({'stroke-width': 2}, 3000)
361 .translate(190, 230)
362 .add();
363 ren.path(rightArrow)
364 .attr({
365 'stroke-width': 0,
366 stroke: colors[6]
367 })
368 .animate({'stroke-width': 2}, 3000)
369 .translate(190, 290)
370 .add();
371 ren.path(leftArrow)
372 .attr({
373 'stroke-width': 0,
374 stroke: colors[7]
375 })
376 .animate({'stroke-width': 2}, 3000)
377 .translate(190, 350)
378 .add();
379 ren.path(['M', 0, 40, 'L', 0, 0, 'L', -3, 3, 'M', 0, 0, 'L', 3, 3])
380 .attr({
381 'stroke-width': 0,
382 stroke: colors[8]
383 })
384 .animate({'stroke-width': 2}, 3000)
385 .translate(255, 105)
386 .add();
387 ren.path(rightArrow)
388 .attr({
389 'stroke-width': 0,
390 stroke: colors[9]
391 })
392 .animate({'stroke-width': 2}, 3000)
393 .translate(280, 160)
394 .add();
395 ren.path(['M', 150, 145, 'L', 150, 125, 'C', 150, 115, 150, 115, 160, 115, 'L', 335, 115, 'L', 332, 118, 'M', 335, 115, 'L', 332, 112])
396 .attr({
397 'stroke-width': 0,
398 stroke: colors[0]
399 })
400 .animate({'stroke-width': 2}, 3000)
401 .add();
402 ren.path(['M', 310, 70, 'L', 360, 70, 'C', 370, 70, 370, 80, 370, 80, 'L', 370, 95, 'L', 367, 92, 'M', 370, 95, 'L', 373, 92])
403 .attr({
404 'stroke-width': 0,
405 stroke: colors[1]
406 })
407 .animate({'stroke-width': 2}, 3000)
408 .add();
409 ren.path(['M', 260, 145, 'L', 260, 135, 'C', 260, 125, 260, 125, 270, 125, 'L', 335, 125, 'L', 332, 122, 'M', 335, 125, 'L', 332, 128])
410 .attr({
411 'stroke-width': 0,
412 stroke: colors[2]
413 })
414 .animate({'stroke-width': 2}, 3000)
415 .add();
416 ren.path(['M', 0, 0, 'L', 25, 0, 'L', 22, 3, 'M', 25, 0, 'L', 22, -3])
417 .attr({
418 'stroke-width': 0,
419 stroke: colors[3]
420 })
421 .animate({'stroke-width': 2}, 3000)
422 .translate(410, 160)
423 .add();
424 ren.path(['M', 0, 0, 'L', 25, 0, 'L', 22, 3, 'M', 25, 0, 'L', 22, -3])
425 .attr({
426 'stroke-width': 0,
427 stroke: colors[4]
428 })
429 .animate({'stroke-width': 2}, 3000)
430 .translate(510, 160)
431 .add();
432 ren.path(['M', 0, 0, 'L', 25, 0, 'L', 22, 3, 'M', 25, 0, 'L', 22, -3])
433 .attr({
434 'stroke-width': 0,
435 stroke: colors[5]
436 })
437 .animate({'stroke-width': 2}, 3000)
438 .translate(610, 160)
439 .add();
440 ren.path(rightArrow)
441 .attr({
442 'stroke-width': 0,
443 stroke: colors[6]
444 })
445 .animate({'stroke-width': 2}, 3000)
446 .translate(280, 210)
447 .add();
448 ren.path(['M', 0, 0, 'L', 25, 0, 'L', 22, 3, 'M', 25, 0, 'L', 22, -3])
449 .attr({
450 'stroke-width': 0,
451 stroke: colors[7]
452 })
453 .animate({'stroke-width': 2}, 3000)
454 .translate(410, 210)
455 .add();
456 ren.path(rightArrow)
457 .attr({
458 'stroke-width': 0,
459 stroke: colors[8]
460 })
461 .animate({'stroke-width': 2}, 3000)
462 .translate(280, 260)
463 .add();
464 ren.path(['M', 0, 0, 'L', 30, 0, 'L', 27, 3, 'M', 30, 0, 'L', 27, -3])
465 .attr({
466 'stroke-width': 0,
467 stroke: colors[9]
468 })
469 .animate({'stroke-width': 2}, 3000)
470 .translate(410, 260)
471 .add();
472 ren.path(['M', 0, 0, 'L', 30, 0, 'L', 27, 3, 'M', 30, 0, 'L', 27, -3])
473 .attr({
474 'stroke-width': 0,
475 stroke: colors[0]
476 })
477 .animate({'stroke-width': 2}, 3000)
478 .translate(470, 260)
479 .add();
480 ren.path(['M', 0, 0, 'L', 30, 0, 'L', 27, 3, 'M', 30, 0, 'L', 27, -3])
481 .attr({
482 'stroke-width': 0,
483 stroke: colors[1]
484 })
485 .animate({'stroke-width': 2}, 3000)
486 .translate(530, 260)
487 .add();
488 ren.path(['M', 0, 0, 'L', 30, 0, 'L', 27, 3, 'M', 30, 0, 'L', 27, -3])
489 .attr({
490 'stroke-width': 0,
491 stroke: colors[2]
492 })
493 .animate({'stroke-width': 2}, 3000)
494 .translate(590, 260)
495 .add();
496 ren.path(['M', 0, 0, 'L', 30, 0, 'L', 27, 3, 'M', 30, 0, 'L', 27, -3])
497 .attr({
498 'stroke-width': 0,
499 stroke: colors[3]
500 })
501 .animate({'stroke-width': 2}, 3000)
502 .translate(650, 260)
503 .add();
504 ren.path(['M', 0, 0, 'L', 30, 0, 'L', 27, 3, 'M', 30, 0, 'L', 27, -3])
505 .attr({
506 'stroke-width': 0,
507 stroke: colors[4]
508 })
509 .animate({'stroke-width': 2}, 3000)
510 .translate(710, 260)
511 .add();
512 ren.path(['M', 0, 0, 'L', 0, 15, 'L', -3, 12, 'M', 0, 15, 'L', 3, 12])
513 .attr({
514 'stroke-width': 0,
515 stroke: colors[5]
516 })
517 .animate({'stroke-width': 2}, 3000)
518 .translate(515, 340)
519 .add();
520 ren.path(['M', 0, 0, 'L', -50, 0, 'L', -47, -3, 'M', -50, 0, 'L', -47, 3])
521 .attr({
522 'stroke-width': 0,
523 stroke: colors[6]
524 })
525 .animate({'stroke-width': 2}, 3000)
526 .translate(475, 372)
527 .add();
528 ren.path(['M', 0, 0, 'L', 0, 75, 'L', -3, 72, 'M', 0, 75, 'L', 3, 72])
529 .attr({
530 'stroke-width': 0,
531 stroke: colors[7]
532 })
533 .animate({'stroke-width': 2}, 3000)
534 .translate(370, 280)
535 .add();
536 ren.path(['M', 710, 160, 'L', 720, 160, 'C', 720, 160, 725, 160, 725, 165, 'L', 725, 170, 'C', 725, 175, 720, 175, 720, 175, 'L', 280, 175, 'L', 283, 178, 'M', 280, 175, 'L', 283, 172])
537 .attr({
538 'stroke-width': 0,
539 stroke: colors[8]
540 })
541 .animate({'stroke-width': 2}, 3000)
542 .add();
543 ren.path(['M', 535, 210, 'L', 550, 210, 'C', 550, 210, 555, 210, 555, 205, 'L', 555, 195, 'C', 555, 190, 550, 190, 550, 190, 'L', 280, 190, 'L', 283, 193, 'M', 280, 190, 'L', 283, 187])
544 .attr({
545 'stroke-width': 0,
546 stroke: colors[9]
547 })
548 .animate({'stroke-width': 2}, 3000)
549 .add();
550 ren.path(['M', 770, 280, 'L', 780, 280, 'L', 780, 230, 'L', 280, 230, 'L', 283, 233, 'M', 280, 230, 'L', 283, 227])
551 .attr({
552 'stroke-width': 0,
553 stroke: colors[0]
554 })
555 .animate({'stroke-width': 2}, 3000)
556 .add();
557
558 }
559 }
560 },
561 title: {
562 text: '诺正检验工作流程图'
563 }
564
565 });
566 });
...\ No newline at end of file ...\ No newline at end of file
1 // Ionic Starter App
2
3 // angular.module is a global place for creating, registering and retrieving Angular modules
4 // 'starter' is the name of this angular module example (also set in a <body> attribute in index.html)
5 // the 2nd parameter is an array of 'requires'
6 // 'starter.controllers' is found in controllers.js
7 angular.module('starter', ['ionic', 'ion-gallery', 'starter.controllers'])
8
9 .run(function($ionicPlatform) {
10 // $ionicPlatform.ready(function() {
11 // // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
12 // // for form inputs)
13 // if (window.cordova && window.cordova.plugins.Keyboard) {
14 // cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
15 // cordova.plugins.Keyboard.disableScroll(true);
16
17 // }
18 // if (window.StatusBar) {
19 // // org.apache.cordova.statusbar required
20 // StatusBar.styleDefault();
21 // }
22 var ua = navigator.userAgent || navigator.vendor || window.opera;
23 var ismobile = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(ua) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(ua.substr(0,4))
24 if(!ismobile){
25 var addr = 'http://normz.cn' + window.location.hash.replace(/#\/app/, '');
26 window.location.href = addr;
27 }
28 })
29
30 .config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) {
31 $ionicConfigProvider.platform.ios.navBar.alignTitle('center');
32 $ionicConfigProvider.platform.android.navBar.alignTitle('center');
33 $ionicConfigProvider.backButton.text('返回');
34
35 $stateProvider
36 .state('app', {
37 url: '/app',
38 abstract: true,
39 templateUrl: '/templates/menu.html',
40 controller: 'AppCtrl'
41 })
42 .state('app.home', {
43 url: '/home',
44 views: {
45 'menuContent': {
46 templateUrl: '/templates/home.html',
47 controller: 'HomeCtrl'
48 }
49 }
50 })
51 .state('app.devices', {
52 url: '/abouts/yjss/devices',
53 views: {
54 'menuContent': {
55 templateUrl: '/templates/devices.html',
56 controller: 'DevicesCtrl'
57 }
58 }
59 })
60 .state('app.wssj', {
61 url: '/sources/wssj',
62 views: {
63 'menuContent': {
64 templateUrl: '/templates/wssj.html',
65 controller: 'WssjCtrl'
66 }
67 }
68 })
69 .state('app.bgcx', {
70 url: '/sources/bgcx',
71 views: {
72 'menuContent': {
73 templateUrl: '/templates/bgcx.html',
74 controller: 'BgcxCtrl'
75 }
76 }
77 })
78 .state('app.gsjj', {
79 url: '/abouts/gsjj',
80 views: {
81 'menuContent': {
82 templateUrl: '/templates/gsjj.html',
83 controller: 'GsjjCtrl'
84 }
85 }
86 })
87
88 // .state('app.ranges', {
89 // url: '/ranges',
90 // views: {
91 // 'menuContent': {
92 // templateUrl: '/templates/ranges.html',
93 // controller: 'RangesCtrl'
94 // }
95 // }
96 // })
97 // .state('app.sources', {
98 // url: '/sources',
99 // views: {
100 // 'menuContent': {
101 // templateUrl: '/templates/sources.html',
102 // controller: 'SourcesCtrl'
103 // }
104 // }
105 // })
106 // .state('app.dynamics', {
107 // url: '/dynamics',
108 // views: {
109 // 'menuContent': {
110 // templateUrl: '/templates/dynamics.html',
111 // controller: 'DynamicsCtrl'
112 // }
113 // }
114 // })
115 // .state('app.cultures', {
116 // url: '/cultures',
117 // views: {
118 // 'menuContent': {
119 // templateUrl: '/templates/cultures.html',
120 // controller: 'CulturesCtrl'
121 // }
122 // }
123 // })
124 // .state('app.abouts', {
125 // url: '/abouts',
126 // views: {
127 // 'menuContent': {
128 // templateUrl: '/templates/abouts.html',
129 // controller: 'AboutsCtrl'
130 // }
131 // }
132 // })
133 // .state('app.jobs', {
134 // url: '/jobs',
135 // views: {
136 // 'menuContent': {
137 // templateUrl: '/templates/jobs.html',
138 // controller: 'JobsCtrl'
139 // }
140 // }
141 // })
142 .state('app.channel', {
143 url: '/:channel',
144 views: {
145 'menuContent': {
146 templateUrl: '/templates/channel.html',
147 controller: 'ChannelCtrl'
148 }
149 }
150 })
151 .state('app.category', {
152 url: '/:channel/:category',
153 views: {
154 'menuContent': {
155 templateUrl: '/templates/category.html',
156 controller: 'CategoryCtrl'
157 }
158 },
159 resolve: {
160 posts: function($http, $q, $stateParams){
161 return $q(function(resolve, reject){
162 $http({
163 url: '/' + $stateParams.channel + '/' + $stateParams.category + '?type=api',
164 method: 'GET'
165 }).success(function(resp, code){
166 resolve(resp.posts);
167 });
168 });
169 }
170 }
171 })
172 .state('app.post', {
173 url: '/:channel/:category/:flag',
174 views: {
175 'menuContent': {
176 templateUrl: '/templates/post.html',
177 controller: 'PostCtrl'
178 }
179 },
180 resolve: {
181 post: function($http, $q, $stateParams){
182 return $q(function(resolve, reject){
183 $http({
184 url: '/' + $stateParams.channel + '/' + $stateParams.category + '/' + $stateParams.flag + '?type=api',
185 method: 'GET'
186 }).success(function(resp, code){
187 resolve(resp.post);
188 });
189 });
190 }
191 }
192 });
193 // .state('app.search', {
194 // url: '/search',
195 // views: {
196 // 'menuContent': {
197 // templateUrl: '/templates/search.html'
198 // }
199 // }
200 // })
201
202 // .state('app.browse', {
203 // url: '/browse',
204 // views: {
205 // 'menuContent': {
206 // templateUrl: '/templates/browse.html'
207 // }
208 // }
209 // })
210 // .state('app.playlists', {
211 // url: '/playlists',
212 // views: {
213 // 'menuContent': {
214 // templateUrl: '/templates/playlists.html',
215 // controller: 'PlaylistsCtrl'
216 // }
217 // }
218 // })
219 // .state('app.single', {
220 // url: '/playlists/:playlistId',
221 // views: {
222 // 'menuContent': {
223 // templateUrl: '/templates/playlist.html',
224 // controller: 'PlaylistCtrl'
225 // }
226 // }
227 // });
228 // if none of the above states are matched, use this as the fallback
229 $urlRouterProvider.otherwise('/app/home');
230 });
1 angular.module('starter.controllers', [])
2 .controller('AppCtrl', function($scope, $timeout) {
3 $scope.channels = CHANNELS;
4 })
5 .controller('HomeCtrl', function($scope) {
6
7 })
8 .controller('ChannelCtrl', function($scope, $stateParams) {
9 $scope.channel = $stateParams.channel;
10 $scope.category_object = CHANNELS[$stateParams.channel];
11 })
12 .controller('CategoryCtrl', function($scope, $stateParams, posts) {
13 $scope.channel = $stateParams.channel;
14 $scope.category = $stateParams.category;
15 $scope.category_name = CHANNELS[$stateParams.channel].cate[$stateParams.category];
16 $scope.posts = posts;
17 if(posts.length == 1){
18 $scope.post = posts[0];
19 }
20 })
21 .controller('PostCtrl', function($scope, $stateParams, post) {
22 $scope.channel = $stateParams.channel;
23 $scope.category = $stateParams.category;
24 $scope.flag = $stateParams.flag;
25 $scope.post = post;
26 })
27 .controller('DevicesCtrl', function($scope) {
28 $scope.items = [
29 {src: '/images/devices/01.jpg', thumb: '/images/devices/thumb-01.jpg', sub: ''},
30 {src: '/images/devices/02.jpg', thumb: '/images/devices/thumb-02.jpg', sub: ''},
31 {src: '/images/devices/03.jpg', thumb: '/images/devices/thumb-03.jpg', sub: ''},
32 {src: '/images/devices/04.jpg', thumb: '/images/devices/thumb-04.jpg', sub: ''},
33 {src: '/images/devices/05.jpg', thumb: '/images/devices/thumb-05.jpg', sub: ''},
34 {src: '/images/devices/06.jpg', thumb: '/images/devices/thumb-06.jpg', sub: ''},
35 {src: '/images/devices/07.jpg', thumb: '/images/devices/thumb-07.jpg', sub: ''},
36 {src: '/images/devices/08.jpg', thumb: '/images/devices/thumb-08.jpg', sub: ''},
37 {src: '/images/devices/09.jpg', thumb: '/images/devices/thumb-09.jpg', sub: ''},
38 {src: '/images/devices/10.jpg', thumb: '/images/devices/thumb-10.jpg', sub: ''},
39 {src: '/images/devices/11.jpg', thumb: '/images/devices/thumb-11.jpg', sub: ''},
40 {src: '/images/devices/12.jpg', thumb: '/images/devices/thumb-12.jpg', sub: ''},
41 {src: '/images/devices/13.jpg', thumb: '/images/devices/thumb-13.jpg', sub: ''},
42 {src: '/images/devices/14.jpg', thumb: '/images/devices/thumb-14.jpg', sub: ''}
43 ];
44 })
45 .controller('WssjCtrl', function($scope) {
46
47 })
48 .controller('BgcxCtrl', function($scope) {
49
50 })
51 .controller('GsjjCtrl', function($scope) {
52 var video = document.getElementsByTagName('video')[0];
53 var width = video.parentElement.clientWidth - 20;
54 video.width = width;
55 video.height = width / (300 / 170.0);
56 // $scope.play = function(){
57 // }
58 });
1 (function () {
2 'use strict';
3
4 angular
5 .module('ion-gallery', ['templates'])
6 .directive('ionGallery', ionGallery);
7
8 ionGallery.$inject = ['$ionicPlatform', 'ionGalleryHelper', 'ionGalleryConfig'];
9
10 function ionGallery($ionicPlatform, ionGalleryHelper, ionGalleryConfig) {
11 controller.$inject = ["$scope"];
12 return {
13 restrict: 'AE',
14 scope: {
15 ionGalleryItems: '=ionGalleryItems',
16 ionGalleryRowSize: '=?ionGalleryRow',
17 ionItemCallback: '&?ionItemCallback'
18 },
19 controller: controller,
20 link: link,
21 replace: true,
22 templateUrl: 'gallery.html'
23 };
24
25 function controller($scope) {
26 var _rowSize = parseInt($scope.ionGalleryRowSize);
27
28 var _drawGallery = function () {
29 $scope.ionGalleryRowSize = ionGalleryHelper.getRowSize(_rowSize || ionGalleryConfig.row_size, $scope.ionGalleryItems.length);
30 $scope.actionLabel = ionGalleryConfig.action_label;
31 $scope.items = ionGalleryHelper.buildGallery($scope.ionGalleryItems, $scope.ionGalleryRowSize);
32 $scope.responsiveGrid = parseInt((1 / $scope.ionGalleryRowSize) * 100);
33 };
34
35 _drawGallery();
36
37 (function () {
38 $scope.$watch(function () {
39 return $scope.ionGalleryItems.length;
40 }, function (newVal, oldVal) {
41 if (newVal !== oldVal) {
42 _drawGallery();
43 }
44 });
45 }());
46
47 }
48
49 function link(scope, element, attrs) {
50
51 scope.customCallback = angular.isFunction(scope.ionItemCallback) && attrs.hasOwnProperty('ionItemCallback')
52
53 scope.ionSliderToggle = attrs.ionGalleryToggle === 'false' ? false : ionGalleryConfig.toggle;
54 }
55 }
56 })();
57
58 (function(){
59 'use strict';
60
61 angular
62 .module('ion-gallery')
63 .provider('ionGalleryConfig',ionGalleryConfig);
64
65 ionGalleryConfig.$inject = [];
66
67 function ionGalleryConfig(){
68 this.config = {
69 action_label: 'Done',
70 toggle: true,
71 row_size: 3,
72 fixed_row_size: true
73 };
74
75 this.$get = function() {
76 return this.config;
77 };
78
79 this.setGalleryConfig = function(config) {
80 angular.extend(this.config, this.config, config);
81 };
82 }
83
84 })();
85 (function(){
86 'use strict';
87
88 angular
89 .module('ion-gallery')
90 .service('ionGalleryHelper',ionGalleryHelper);
91
92 ionGalleryHelper.$inject = ['ionGalleryConfig'];
93
94 function ionGalleryHelper(ionGalleryConfig) {
95
96 this.getRowSize = function(size,length){
97 var rowSize;
98
99 if(isNaN(size) === true || size <= 0){
100 rowSize = ionGalleryConfig.row_size;
101 }
102 else if(size > length && !ionGalleryConfig.fixed_row_size){
103 rowSize = length;
104 }
105 else{
106 rowSize = size;
107 }
108
109 return rowSize;
110
111 };
112
113 this.buildGallery = function(items,rowSize){
114 var _gallery = [];
115 var row = -1;
116 var col = 0;
117
118 for(var i=0;i<items.length;i++){
119
120 if(i % rowSize === 0){
121 row++;
122 _gallery[row] = [];
123 col = 0;
124 }
125
126 if(!items[i].hasOwnProperty('sub')){
127 items[i].sub = '';
128 }
129
130 if(!items[i].hasOwnProperty('thumb')){
131 items[i].thumb = items[i].src;
132 }
133
134 if(!items[i].hasOwnProperty('desc')){
135 items[i].desc = items[i].desc;
136 }
137
138 items[i].position = i;
139
140 _gallery[row][col] = items[i];
141 col++;
142 }
143
144 return _gallery;
145 };
146 }
147 })();
148
149 (function(){
150 'use strict';
151
152 angular
153 .module('ion-gallery')
154 .directive('ionImageScale',ionImageScale);
155
156 ionImageScale.$inject = [];
157
158 function ionImageScale(){
159
160 return {
161 restrict: 'A',
162 link : link
163 };
164
165 function link(scope, element, attrs) {
166
167 var scaleImage = function(context,value) {
168 if(value>0){
169 if(context.naturalHeight >= context.naturalWidth){
170 element.attr('width','100%');
171 }
172 else{
173 element.attr('height',element.parent()[0].offsetHeight+'px');
174 }
175 }
176 };
177
178 element.bind("load" , function(e){
179 var _this = this;
180 if(element.parent()[0].offsetHeight > 0){
181 scaleImage(this,element.parent()[0].offsetHeight);
182 }
183
184 scope.$watch(function(){
185 return element.parent()[0].offsetHeight;
186 },function(newValue){
187 scaleImage(_this,newValue);
188 });
189 });
190 }
191 }
192 })();
193 (function(){
194 'use strict';
195
196 angular
197 .module('ion-gallery')
198 .directive('ionRowHeight',ionRowHeight);
199
200 ionRowHeight.$inject = ['ionGalleryConfig'];
201
202 function ionRowHeight(ionGalleryConfig){
203
204 return {
205 restrict: 'A',
206 link : link
207 };
208
209 function link(scope, element, attrs) {
210 scope.$watch(
211 function(){
212 return scope.ionGalleryRowSize;
213 },
214 function(newValue,oldValue){
215 if(newValue > 0){
216 element.css('height',element[0].offsetWidth * parseInt(scope.responsiveGrid)/100 + 'px');
217 }
218 });
219 }
220 }
221 })();
222 (function(){
223 'use strict';
224
225 angular
226 .module('ion-gallery')
227 .directive('ionSlideAction',ionSlideAction);
228
229 ionSlideAction.$inject = ['$ionicGesture','$timeout'];
230
231 function ionSlideAction($ionicGesture, $timeout){
232
233 return {
234 restrict: 'A',
235 link : link
236 };
237
238 function link(scope, element, attrs) {
239
240 var isDoubleTapAction = false;
241
242 var pinchZoom = function pinchZoom(){
243 scope.$emit('ZoomStarted');
244 };
245
246 var imageDoubleTapGesture = function imageDoubleTapGesture(event) {
247
248 isDoubleTapAction = true;
249
250 $timeout(function(){
251 isDoubleTapAction = false;
252 scope.$emit('DoubleTapEvent',{ 'x': event.gesture.touches[0].pageX, 'y': event.gesture.touches[0].pageY});
253 },200);
254 };
255
256 var imageTapGesture = function imageTapGesture(event) {
257
258 if(isDoubleTapAction === true){
259 return;
260 }
261 else{
262 $timeout(function(){
263 if(isDoubleTapAction === true){
264 return;
265 }
266 else{
267 scope.$emit('TapEvent');
268 }
269 },200);
270 }
271 };
272
273 var pinchEvent = $ionicGesture.on('pinch',pinchZoom,element);
274 var doubleTapEvent = $ionicGesture.on('doubletap', function(e){imageDoubleTapGesture(e);}, element);
275 var tapEvent = $ionicGesture.on('tap', imageTapGesture, element);
276
277 scope.$on('$destroy', function() {
278 $ionicGesture.off(doubleTapEvent, 'doubletap', imageDoubleTapGesture);
279 $ionicGesture.off(tapEvent, 'tap', imageTapGesture);
280 $ionicGesture.off(pinchEvent, 'pinch', pinchZoom);
281 });
282 }
283 }
284 })();
285 (function(){
286 'use strict';
287
288 angular
289 .module('ion-gallery')
290 .directive('ionSlider',ionSlider);
291
292 ionSlider.$inject = ['$ionicModal','ionGalleryHelper','$ionicPlatform','$timeout','$ionicScrollDelegate'];
293
294 function ionSlider($ionicModal,ionGalleryHelper,$ionicPlatform,$timeout,$ionicScrollDelegate){
295
296 controller.$inject = ["$scope"];
297 return {
298 restrict: 'A',
299 controller: controller,
300 link : link
301 };
302
303 function controller($scope){
304 var lastSlideIndex;
305 var currentImage;
306
307 var rowSize = $scope.ionGalleryRowSize;
308 var zoomStart = false;
309
310 $scope.selectedSlide = 1;
311 $scope.hideAll = false;
312
313 $scope.showImage = function(index) {
314 $scope.slides = [];
315 currentImage = index;
316
317 var galleryLength = $scope.ionGalleryItems.length;
318 var previndex = index - 1 < 0 ? galleryLength - 1 : index - 1;
319 var nextindex = index + 1 >= galleryLength ? 0 : index + 1;
320
321 $scope.slides[0] = $scope.ionGalleryItems[previndex];
322 $scope.slides[1] = $scope.ionGalleryItems[index];
323 $scope.slides[2] = $scope.ionGalleryItems[nextindex];
324
325 lastSlideIndex = 1;
326 $scope.loadModal();
327 };
328
329 $scope.slideChanged = function(currentSlideIndex) {
330
331 if(currentSlideIndex === lastSlideIndex){
332 return;
333 }
334
335 var slideToLoad = $scope.slides.length - lastSlideIndex - currentSlideIndex;
336 var galleryLength = $scope.ionGalleryItems.length;
337 var imageToLoad;
338 var slidePosition = lastSlideIndex + '>' + currentSlideIndex;
339
340 if(slidePosition === '0>1' || slidePosition === '1>2' || slidePosition === '2>0'){
341 currentImage++;
342
343 if(currentImage >= galleryLength){
344 currentImage = 0;
345 }
346
347 imageToLoad = currentImage + 1;
348
349 if( imageToLoad >= galleryLength){
350 imageToLoad = 0;
351 }
352 }
353 else if(slidePosition === '0>2' || slidePosition === '1>0' || slidePosition === '2>1'){
354 currentImage--;
355
356 if(currentImage < 0){
357 currentImage = galleryLength - 1 ;
358 }
359
360 imageToLoad = currentImage - 1;
361
362 if(imageToLoad < 0){
363 imageToLoad = galleryLength - 1;
364 }
365 }
366
367 //Clear zoom
368 $ionicScrollDelegate.$getByHandle('slide-' + slideToLoad).zoomTo(1);
369
370 $scope.slides[slideToLoad] = $scope.ionGalleryItems[imageToLoad];
371
372 lastSlideIndex = currentSlideIndex;
373 };
374
375 $scope.$on('ZoomStarted', function(e){
376 $timeout(function () {
377 zoomStart = true;
378 $scope.hideAll = true;
379 });
380
381 });
382
383 $scope.$on('TapEvent', function(e){
384 $timeout(function () {
385 _onTap();
386 });
387
388 });
389
390 $scope.$on('DoubleTapEvent', function(event,position){
391 $timeout(function () {
392 _onDoubleTap(position);
393 });
394
395 });
396
397 var _onTap = function _onTap(){
398
399 if(zoomStart === true){
400 $ionicScrollDelegate.$getByHandle('slide-'+lastSlideIndex).zoomTo(1,true);
401
402 $timeout(function () {
403 _isOriginalSize();
404 },300);
405
406 return;
407 }
408
409 if(($scope.hasOwnProperty('ionSliderToggle') && $scope.ionSliderToggle === false && $scope.hideAll === false) || zoomStart === true){
410 return;
411 }
412
413 $scope.hideAll = !$scope.hideAll;
414 };
415
416 var _onDoubleTap = function _onDoubleTap(position){
417 if(zoomStart === false){
418 $ionicScrollDelegate.$getByHandle('slide-'+lastSlideIndex).zoomTo(3,true,position.x,position.y);
419 zoomStart = true;
420 $scope.hideAll = true;
421 }
422 else{
423 _onTap();
424 }
425 };
426
427 function _isOriginalSize(){
428 zoomStart = false;
429 _onTap();
430 }
431
432 }
433
434 function link(scope, element, attrs) {
435 var _modal;
436
437 scope.loadModal = function(){
438 $ionicModal.fromTemplateUrl('slider.html', {
439 scope: scope,
440 animation: 'fade-in'
441 }).then(function(modal) {
442 _modal = modal;
443 scope.openModal();
444 });
445 };
446
447 scope.openModal = function() {
448 _modal.show();
449 };
450
451 scope.closeModal = function() {
452 _modal.hide();
453 };
454
455 scope.$on('$destroy', function() {
456 try{
457 _modal.remove();
458 } catch(err) {
459 console.log(err.message);
460 }
461 });
462 }
463 }
464 })();
465
466 angular.module("templates", []).run(["$templateCache", function($templateCache) {$templateCache.put("gallery.html","<div class=\"gallery-view\">\n <div class=\"row\" ng-repeat=\"item in items track by $index\" ion-row-height>\n <div ng-repeat=\"photo in item track by $index\"\n class=\"col col-{{responsiveGrid}} image-container\">\n\n <img ion-image-scale\n ng-src=\"{{photo.thumb}}\"\n ng-click=\"customCallback ? ionItemCallback({item:photo}) : showImage(photo.position)\">\n\n </div>\n </div>\n <div ion-slider></div>\n</div>\n");
467 $templateCache.put("slider.html","<ion-modal-view class=\"imageView\">\n <ion-header-bar class=\"headerView\" ng-show=\"!hideAll\">\n <button class=\"button button-outline button-light close-btn\" ng-click=\"closeModal()\">{{::actionLabel}}</button>\n </ion-header-bar>\n \n <ion-content class=\"has-no-header\" scroll=\"false\">\n <ion-slide-box does-continue=\"true\" active-slide=\"selectedSlide\" show-pager=\"false\" class=\"listContainer\" on-slide-changed=\"slideChanged($index)\">\n <ion-slide ng-repeat=\"single in slides track by $index\">\n <ion-scroll direction=\"xy\"\n locking=\"false\" \n zooming=\"true\"\n min-zoom=\"1\"\n scrollbar-x=\"false\"\n scrollbar-y=\"false\"\n ion-slide-action\n delegate-handle=\"slide-{{$index}}\"\n overflow-scroll=\"false\"\n >\n <div class=\"item item-image gallery-slide-view\">\n <img ng-src=\"{{single.src}}\">\n </div>\n <div ng-if=\"single.sub.length > 0\" class=\"image-subtitle\" ng-show=\"!hideAll\">\n <span ng-bind-html=\'single.sub\'></span>\n </div>\n </ion-scroll>\n </ion-slide>\n </ion-slide-box>\n </ion-content>\n</ion-modal-view>");}]);
...\ No newline at end of file ...\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
1 (function (root, factory) {
2 if (typeof define === 'function' && define.amd) {
3 // AMD. Register as an anonymous module unless amdModuleId is set
4 define('simple-hotkeys', ["jquery","simple-module"], function ($, SimpleModule) {
5 return (root['hotkeys'] = factory($, SimpleModule));
6 });
7 } else if (typeof exports === 'object') {
8 // Node. Does not work with strict CommonJS, but
9 // only CommonJS-like environments that support module.exports,
10 // like Node.
11 module.exports = factory(require("jquery"),require("simple-module"));
12 } else {
13 root.simple = root.simple || {};
14 root.simple['hotkeys'] = factory(jQuery,SimpleModule);
15 }
16 }(this, function ($, SimpleModule) {
17
18 var Hotkeys, hotkeys,
19 extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
20 hasProp = {}.hasOwnProperty;
21
22 Hotkeys = (function(superClass) {
23 extend(Hotkeys, superClass);
24
25 function Hotkeys() {
26 return Hotkeys.__super__.constructor.apply(this, arguments);
27 }
28
29 Hotkeys.count = 0;
30
31 Hotkeys.keyNameMap = {
32 8: "Backspace",
33 9: "Tab",
34 13: "Enter",
35 16: "Shift",
36 17: "Control",
37 18: "Alt",
38 19: "Pause",
39 20: "CapsLock",
40 27: "Esc",
41 32: "Spacebar",
42 33: "PageUp",
43 34: "PageDown",
44 35: "End",
45 36: "Home",
46 37: "Left",
47 38: "Up",
48 39: "Right",
49 40: "Down",
50 45: "Insert",
51 46: "Del",
52 91: "Meta",
53 93: "Meta",
54 48: "0",
55 49: "1",
56 50: "2",
57 51: "3",
58 52: "4",
59 53: "5",
60 54: "6",
61 55: "7",
62 56: "8",
63 57: "9",
64 65: "A",
65 66: "B",
66 67: "C",
67 68: "D",
68 69: "E",
69 70: "F",
70 71: "G",
71 72: "H",
72 73: "I",
73 74: "J",
74 75: "K",
75 76: "L",
76 77: "M",
77 78: "N",
78 79: "O",
79 80: "P",
80 81: "Q",
81 82: "R",
82 83: "S",
83 84: "T",
84 85: "U",
85 86: "V",
86 87: "W",
87 88: "X",
88 89: "Y",
89 90: "Z",
90 96: "0",
91 97: "1",
92 98: "2",
93 99: "3",
94 100: "4",
95 101: "5",
96 102: "6",
97 103: "7",
98 104: "8",
99 105: "9",
100 106: "Multiply",
101 107: "Add",
102 109: "Subtract",
103 110: "Decimal",
104 111: "Divide",
105 112: "F1",
106 113: "F2",
107 114: "F3",
108 115: "F4",
109 116: "F5",
110 117: "F6",
111 118: "F7",
112 119: "F8",
113 120: "F9",
114 121: "F10",
115 122: "F11",
116 123: "F12",
117 124: "F13",
118 125: "F14",
119 126: "F15",
120 127: "F16",
121 128: "F17",
122 129: "F18",
123 130: "F19",
124 131: "F20",
125 132: "F21",
126 133: "F22",
127 134: "F23",
128 135: "F24",
129 59: ";",
130 61: "=",
131 186: ";",
132 187: "=",
133 188: ",",
134 190: ".",
135 191: "/",
136 192: "`",
137 219: "[",
138 220: "\\",
139 221: "]",
140 222: "'"
141 };
142
143 Hotkeys.aliases = {
144 "escape": "esc",
145 "delete": "del",
146 "return": "enter",
147 "ctrl": "control",
148 "space": "spacebar",
149 "ins": "insert",
150 "cmd": "meta",
151 "command": "meta",
152 "wins": "meta",
153 "windows": "meta"
154 };
155
156 Hotkeys.normalize = function(shortcut) {
157 var i, j, key, keyname, keys, len;
158 keys = shortcut.toLowerCase().replace(/\s+/gi, "").split("+");
159 for (i = j = 0, len = keys.length; j < len; i = ++j) {
160 key = keys[i];
161 keys[i] = this.aliases[key] || key;
162 }
163 keyname = keys.pop();
164 keys.sort().push(keyname);
165 return keys.join("_");
166 };
167
168 Hotkeys.prototype.opts = {
169 el: document
170 };
171
172 Hotkeys.prototype._init = function() {
173 this.id = ++this.constructor.count;
174 this._map = {};
175 this._delegate = typeof this.opts.el === "string" ? document : this.opts.el;
176 return $(this._delegate).on("keydown.simple-hotkeys-" + this.id, this.opts.el, (function(_this) {
177 return function(e) {
178 var ref;
179 return (ref = _this._getHander(e)) != null ? ref.call(_this, e) : void 0;
180 };
181 })(this));
182 };
183
184 Hotkeys.prototype._getHander = function(e) {
185 var keyname, shortcut;
186 if (!(keyname = this.constructor.keyNameMap[e.which])) {
187 return;
188 }
189 shortcut = "";
190 if (e.altKey) {
191 shortcut += "alt_";
192 }
193 if (e.ctrlKey) {
194 shortcut += "control_";
195 }
196 if (e.metaKey) {
197 shortcut += "meta_";
198 }
199 if (e.shiftKey) {
200 shortcut += "shift_";
201 }
202 shortcut += keyname.toLowerCase();
203 return this._map[shortcut];
204 };
205
206 Hotkeys.prototype.respondTo = function(subject) {
207 if (typeof subject === 'string') {
208 return this._map[this.constructor.normalize(subject)] != null;
209 } else {
210 return this._getHander(subject) != null;
211 }
212 };
213
214 Hotkeys.prototype.add = function(shortcut, handler) {
215 this._map[this.constructor.normalize(shortcut)] = handler;
216 return this;
217 };
218
219 Hotkeys.prototype.remove = function(shortcut) {
220 delete this._map[this.constructor.normalize(shortcut)];
221 return this;
222 };
223
224 Hotkeys.prototype.destroy = function() {
225 $(this._delegate).off(".simple-hotkeys-" + this.id);
226 this._map = {};
227 return this;
228 };
229
230 return Hotkeys;
231
232 })(SimpleModule);
233
234 hotkeys = function(opts) {
235 return new Hotkeys(opts);
236 };
237
238 return hotkeys;
239
240 }));
241
1 /*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */
2 !function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b="length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){
3 return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ia={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(oa(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qa[0].contentDocument,b.write(),b.close(),c=sa(a,b),qa.detach()),ra[a]=c),c}var ua=/^margin/,va=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wa=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};function xa(a,b,c){var d,e,f,g,h=a.style;return c=c||wa(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),va.test(g)&&ua.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function ya(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),f.removeChild(c),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var za=/^(none|table(?!-c[ea]).+)/,Aa=new RegExp("^("+Q+")(.*)$","i"),Ba=new RegExp("^([+-])=("+Q+")","i"),Ca={position:"absolute",visibility:"hidden",display:"block"},Da={letterSpacing:"0",fontWeight:"400"},Ea=["Webkit","O","Moz","ms"];function Fa(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Ea.length;while(e--)if(b=Ea[e]+c,b in a)return b;return d}function Ga(a,b,c){var d=Aa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Ha(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ia(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wa(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xa(a,b,f),(0>e||null==e)&&(e=a.style[b]),va.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Ha(a,b,c||(g?"border":"content"),d,f)+"px"}function Ja(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",ta(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xa(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fa(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ba.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fa(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xa(a,b,d)),"normal"===e&&b in Da&&(e=Da[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?za.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Ca,function(){return Ia(a,b,d)}):Ia(a,b,d):void 0},set:function(a,c,d){var e=d&&wa(a);return Ga(a,c,d?Ha(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=ya(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xa,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ua.test(a)||(n.cssHooks[a+b].set=Ga)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wa(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Ja(this,!0)},hide:function(){return Ja(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Ka(a,b,c,d,e){return new Ka.prototype.init(a,b,c,d,e)}n.Tween=Ka,Ka.prototype={constructor:Ka,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Ka.propHooks[this.prop];return a&&a.get?a.get(this):Ka.propHooks._default.get(this)},run:function(a){var b,c=Ka.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ka.propHooks._default.set(this),this}},Ka.prototype.init.prototype=Ka.prototype,Ka.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Ka.propHooks.scrollTop=Ka.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Ka.prototype.init,n.fx.step={};var La,Ma,Na=/^(?:toggle|show|hide)$/,Oa=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pa=/queueHooks$/,Qa=[Va],Ra={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Oa.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Oa.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function Sa(){return setTimeout(function(){La=void 0}),La=n.now()}function Ta(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ua(a,b,c){for(var d,e=(Ra[b]||[]).concat(Ra["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Va(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||ta(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Na.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?ta(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ua(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wa(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xa(a,b,c){var d,e,f=0,g=Qa.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=La||Sa(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:La||Sa(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wa(k,j.opts.specialEasing);g>f;f++)if(d=Qa[f].call(j,a,k,j.opts))return d;return n.map(k,Ua,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xa,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Ra[c]=Ra[c]||[],Ra[c].unshift(b)},prefilter:function(a,b){b?Qa.unshift(a):Qa.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xa(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pa.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Ta(b,!0),a,d,e)}}),n.each({slideDown:Ta("show"),slideUp:Ta("hide"),slideToggle:Ta("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(La=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),La=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Ma||(Ma=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Ma),Ma=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Ya,Za,$a=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Za:Ya)),
4 void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Za={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$a[b]||n.find.attr;$a[b]=function(a,b,d){var e,f;return d||(f=$a[b],$a[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$a[b]=f),e}});var _a=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||_a.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ab=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ab," ").indexOf(b)>=0)return!0;return!1}});var bb=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.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 contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var cb=n.now(),db=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var eb=/#.*$/,fb=/([?&])_=[^&]*/,gb=/^(.*?):[ \t]*([^\r\n]*)$/gm,hb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ib=/^(?:GET|HEAD)$/,jb=/^\/\//,kb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,lb={},mb={},nb="*/".concat("*"),ob=a.location.href,pb=kb.exec(ob.toLowerCase())||[];function qb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function rb(a,b,c,d){var e={},f=a===mb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function sb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function tb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function ub(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ob,type:"GET",isLocal:hb.test(pb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":nb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?sb(sb(a,n.ajaxSettings),b):sb(n.ajaxSettings,a)},ajaxPrefilter:qb(lb),ajaxTransport:qb(mb),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=gb.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||ob)+"").replace(eb,"").replace(jb,pb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=kb.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===pb[1]&&h[2]===pb[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(pb[3]||("http:"===pb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),rb(lb,k,b,v),2===t)return v;i=n.event&&k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!ib.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(db.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=fb.test(d)?d.replace(fb,"$1_="+cb++):d+(db.test(d)?"&":"?")+"_="+cb++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+nb+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=rb(mb,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=tb(k,v,f)),u=ub(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var vb=/%20/g,wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&").replace(vb,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Bb=0,Cb={},Db={0:200,1223:204},Eb=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Cb)Cb[a]()}),k.cors=!!Eb&&"withCredentials"in Eb,k.ajax=Eb=!!Eb,n.ajaxTransport(function(a){var b;return k.cors||Eb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Bb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Cb[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Db[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Cb[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Fb=[],Gb=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Fb.pop()||n.expando+"_"+cb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Gb.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Gb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Gb,"$1"+e):b.jsonp!==!1&&(b.url+=(db.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Fb.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Hb=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Hb)return Hb.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Ib=a.document.documentElement;function Jb(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Jb(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Ib;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ib})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Jb(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=ya(k.pixelPosition,function(a,c){return c?(c=xa(a,b),va.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Kb=a.jQuery,Lb=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Lb),b&&a.jQuery===n&&(a.jQuery=Kb),n},typeof b===U&&(a.jQuery=a.$=n),n});
5 //# sourceMappingURL=jquery.min.map
...\ No newline at end of file ...\ No newline at end of file
1 window.mobilecheck = function() {
2 var check = false;
3 (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true})(navigator.userAgent||navigator.vendor||window.opera);
4 return check; }
...\ No newline at end of file ...\ No newline at end of file
1 (function (root, factory) {
2 if (typeof define === 'function' && define.amd) {
3 // AMD. Register as an anonymous module unless amdModuleId is set
4 define('simple-module', ["jquery"], function (a0) {
5 return (root['Module'] = factory(a0));
6 });
7 } else if (typeof exports === 'object') {
8 // Node. Does not work with strict CommonJS, but
9 // only CommonJS-like environments that support module.exports,
10 // like Node.
11 module.exports = factory(require("jquery"));
12 } else {
13 root['SimpleModule'] = factory(jQuery);
14 }
15 }(this, function ($) {
16
17 var Module,
18 slice = [].slice;
19
20 Module = (function() {
21 Module.extend = function(obj) {
22 var key, ref, val;
23 if (!((obj != null) && typeof obj === 'object')) {
24 return;
25 }
26 for (key in obj) {
27 val = obj[key];
28 if (key !== 'included' && key !== 'extended') {
29 this[key] = val;
30 }
31 }
32 return (ref = obj.extended) != null ? ref.call(this) : void 0;
33 };
34
35 Module.include = function(obj) {
36 var key, ref, val;
37 if (!((obj != null) && typeof obj === 'object')) {
38 return;
39 }
40 for (key in obj) {
41 val = obj[key];
42 if (key !== 'included' && key !== 'extended') {
43 this.prototype[key] = val;
44 }
45 }
46 return (ref = obj.included) != null ? ref.call(this) : void 0;
47 };
48
49 Module.connect = function(cls) {
50 if (typeof cls !== 'function') {
51 return;
52 }
53 if (!cls.pluginName) {
54 throw new Error('Module.connect: cannot connect plugin without pluginName');
55 return;
56 }
57 cls.prototype._connected = true;
58 if (!this._connectedClasses) {
59 this._connectedClasses = [];
60 }
61 this._connectedClasses.push(cls);
62 if (cls.pluginName) {
63 return this[cls.pluginName] = cls;
64 }
65 };
66
67 Module.prototype.opts = {};
68
69 function Module(opts) {
70 var base, cls, i, instance, instances, len, name;
71 this.opts = $.extend({}, this.opts, opts);
72 (base = this.constructor)._connectedClasses || (base._connectedClasses = []);
73 instances = (function() {
74 var i, len, ref, results;
75 ref = this.constructor._connectedClasses;
76 results = [];
77 for (i = 0, len = ref.length; i < len; i++) {
78 cls = ref[i];
79 name = cls.pluginName.charAt(0).toLowerCase() + cls.pluginName.slice(1);
80 if (cls.prototype._connected) {
81 cls.prototype._module = this;
82 }
83 results.push(this[name] = new cls());
84 }
85 return results;
86 }).call(this);
87 if (this._connected) {
88 this.opts = $.extend({}, this.opts, this._module.opts);
89 } else {
90 this._init();
91 for (i = 0, len = instances.length; i < len; i++) {
92 instance = instances[i];
93 if (typeof instance._init === "function") {
94 instance._init();
95 }
96 }
97 }
98 this.trigger('initialized');
99 }
100
101 Module.prototype._init = function() {};
102
103 Module.prototype.on = function() {
104 var args, ref;
105 args = 1 <= arguments.length ? slice.call(arguments, 0) : [];
106 (ref = $(this)).on.apply(ref, args);
107 return this;
108 };
109
110 Module.prototype.one = function() {
111 var args, ref;
112 args = 1 <= arguments.length ? slice.call(arguments, 0) : [];
113 (ref = $(this)).one.apply(ref, args);
114 return this;
115 };
116
117 Module.prototype.off = function() {
118 var args, ref;
119 args = 1 <= arguments.length ? slice.call(arguments, 0) : [];
120 (ref = $(this)).off.apply(ref, args);
121 return this;
122 };
123
124 Module.prototype.trigger = function() {
125 var args, ref;
126 args = 1 <= arguments.length ? slice.call(arguments, 0) : [];
127 (ref = $(this)).trigger.apply(ref, args);
128 return this;
129 };
130
131 Module.prototype.triggerHandler = function() {
132 var args, ref;
133 args = 1 <= arguments.length ? slice.call(arguments, 0) : [];
134 return (ref = $(this)).triggerHandler.apply(ref, args);
135 };
136
137 Module.prototype._t = function() {
138 var args, ref;
139 args = 1 <= arguments.length ? slice.call(arguments, 0) : [];
140 return (ref = this.constructor)._t.apply(ref, args);
141 };
142
143 Module._t = function() {
144 var args, key, ref, result;
145 key = arguments[0], args = 2 <= arguments.length ? slice.call(arguments, 1) : [];
146 result = ((ref = this.i18n[this.locale]) != null ? ref[key] : void 0) || '';
147 if (!(args.length > 0)) {
148 return result;
149 }
150 result = result.replace(/([^%]|^)%(?:(\d+)\$)?s/g, function(p0, p, position) {
151 if (position) {
152 return p + args[parseInt(position) - 1];
153 } else {
154 return p + args.shift();
155 }
156 });
157 return result.replace(/%%s/g, '%s');
158 };
159
160 Module.i18n = {
161 'zh-CN': {}
162 };
163
164 Module.locale = 'zh-CN';
165
166 return Module;
167
168 })();
169
170 return Module;
171
172 }));
This diff could not be displayed because it is too large.
1 (function (root, factory) {
2 if (typeof define === 'function' && define.amd) {
3 // AMD. Register as an anonymous module unless amdModuleId is set
4 define('simple-uploader', ["jquery","simple-module"], function ($, SimpleModule) {
5 return (root['uploader'] = factory($, SimpleModule));
6 });
7 } else if (typeof exports === 'object') {
8 // Node. Does not work with strict CommonJS, but
9 // only CommonJS-like environments that support module.exports,
10 // like Node.
11 module.exports = factory(require("jquery"),require("simple-module"));
12 } else {
13 root.simple = root.simple || {};
14 root.simple['uploader'] = factory(jQuery,SimpleModule);
15 }
16 }(this, function ($, SimpleModule) {
17
18 var Uploader, uploader,
19 extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
20 hasProp = {}.hasOwnProperty;
21
22 Uploader = (function(superClass) {
23 extend(Uploader, superClass);
24
25 function Uploader() {
26 return Uploader.__super__.constructor.apply(this, arguments);
27 }
28
29 Uploader.count = 0;
30
31 Uploader.prototype.opts = {
32 url: '',
33 params: null,
34 fileKey: 'upload_file',
35 connectionCount: 3
36 };
37
38 Uploader.prototype._init = function() {
39 this.files = [];
40 this.queue = [];
41 this.id = ++Uploader.count;
42 this.on('uploadcomplete', (function(_this) {
43 return function(e, file) {
44 _this.files.splice($.inArray(file, _this.files), 1);
45 if (_this.queue.length > 0 && _this.files.length < _this.opts.connectionCount) {
46 return _this.upload(_this.queue.shift());
47 } else {
48 return _this.uploading = false;
49 }
50 };
51 })(this));
52 return $(window).on('beforeunload.uploader-' + this.id, (function(_this) {
53 return function(e) {
54 if (!_this.uploading) {
55 return;
56 }
57 e.originalEvent.returnValue = _this._t('leaveConfirm');
58 return _this._t('leaveConfirm');
59 };
60 })(this));
61 };
62
63 Uploader.prototype.generateId = (function() {
64 var id;
65 id = 0;
66 return function() {
67 return id += 1;
68 };
69 })();
70
71 Uploader.prototype.upload = function(file, opts) {
72 var f, i, key, len;
73 if (opts == null) {
74 opts = {};
75 }
76 if (file == null) {
77 return;
78 }
79 if ($.isArray(file) || file instanceof FileList) {
80 for (i = 0, len = file.length; i < len; i++) {
81 f = file[i];
82 this.upload(f, opts);
83 }
84 } else if ($(file).is('input:file')) {
85 key = $(file).attr('name');
86 if (key) {
87 opts.fileKey = key;
88 }
89 this.upload($.makeArray($(file)[0].files), opts);
90 } else if (!file.id || !file.obj) {
91 file = this.getFile(file);
92 }
93 if (!(file && file.obj)) {
94 return;
95 }
96 $.extend(file, opts);
97 if (this.files.length >= this.opts.connectionCount) {
98 this.queue.push(file);
99 return;
100 }
101 if (this.triggerHandler('beforeupload', [file]) === false) {
102 return;
103 }
104 this.files.push(file);
105 this._xhrUpload(file);
106 return this.uploading = true;
107 };
108
109 Uploader.prototype.getFile = function(fileObj) {
110 var name, ref, ref1;
111 if (fileObj instanceof window.File || fileObj instanceof window.Blob) {
112 name = (ref = fileObj.fileName) != null ? ref : fileObj.name;
113 } else {
114 return null;
115 }
116 return {
117 id: this.generateId(),
118 url: this.opts.url,
119 params: this.opts.params,
120 fileKey: this.opts.fileKey,
121 name: name,
122 size: (ref1 = fileObj.fileSize) != null ? ref1 : fileObj.size,
123 ext: name ? name.split('.').pop().toLowerCase() : '',
124 obj: fileObj
125 };
126 };
127
128 Uploader.prototype._xhrUpload = function(file) {
129 var formData, k, ref, v;
130 formData = new FormData();
131 formData.append(file.fileKey, file.obj);
132 formData.append("original_filename", file.name);
133 if (file.params) {
134 ref = file.params;
135 for (k in ref) {
136 v = ref[k];
137 formData.append(k, v);
138 }
139 }
140 return file.xhr = $.ajax({
141 url: file.url,
142 data: formData,
143 processData: false,
144 contentType: false,
145 type: 'POST',
146 headers: {
147 'X-File-Name': encodeURIComponent(file.name)
148 },
149 xhr: function() {
150 var req;
151 req = $.ajaxSettings.xhr();
152 if (req) {
153 req.upload.onprogress = (function(_this) {
154 return function(e) {
155 return _this.progress(e);
156 };
157 })(this);
158 }
159 return req;
160 },
161 progress: (function(_this) {
162 return function(e) {
163 if (!e.lengthComputable) {
164 return;
165 }
166 return _this.trigger('uploadprogress', [file, e.loaded, e.total]);
167 };
168 })(this),
169 error: (function(_this) {
170 return function(xhr, status, err) {
171 return _this.trigger('uploaderror', [file, xhr, status]);
172 };
173 })(this),
174 success: (function(_this) {
175 return function(result) {
176 _this.trigger('uploadprogress', [file, file.size, file.size]);
177 _this.trigger('uploadsuccess', [file, result]);
178 return $(document).trigger('uploadsuccess', [file, result, _this]);
179 };
180 })(this),
181 complete: (function(_this) {
182 return function(xhr, status) {
183 return _this.trigger('uploadcomplete', [file, xhr.responseText]);
184 };
185 })(this)
186 });
187 };
188
189 Uploader.prototype.cancel = function(file) {
190 var f, i, len, ref;
191 if (!file.id) {
192 ref = this.files;
193 for (i = 0, len = ref.length; i < len; i++) {
194 f = ref[i];
195 if (f.id === file * 1) {
196 file = f;
197 break;
198 }
199 }
200 }
201 this.trigger('uploadcancel', [file]);
202 if (file.xhr) {
203 file.xhr.abort();
204 }
205 return file.xhr = null;
206 };
207
208 Uploader.prototype.readImageFile = function(fileObj, callback) {
209 var fileReader, img;
210 if (!$.isFunction(callback)) {
211 return;
212 }
213 img = new Image();
214 img.onload = function() {
215 return callback(img);
216 };
217 img.onerror = function() {
218 return callback();
219 };
220 if (window.FileReader && FileReader.prototype.readAsDataURL && /^image/.test(fileObj.type)) {
221 fileReader = new FileReader();
222 fileReader.onload = function(e) {
223 return img.src = e.target.result;
224 };
225 return fileReader.readAsDataURL(fileObj);
226 } else {
227 return callback();
228 }
229 };
230
231 Uploader.prototype.destroy = function() {
232 var file, i, len, ref;
233 this.queue.length = 0;
234 ref = this.files;
235 for (i = 0, len = ref.length; i < len; i++) {
236 file = ref[i];
237 this.cancel(file);
238 }
239 $(window).off('.uploader-' + this.id);
240 return $(document).off('.uploader-' + this.id);
241 };
242
243 Uploader.i18n = {
244 'zh-CN': {
245 leaveConfirm: '正在上传文件,如果离开上传会自动取消'
246 }
247 };
248
249 Uploader.locale = 'zh-CN';
250
251 return Uploader;
252
253 })(SimpleModule);
254
255 uploader = function(opts) {
256 return new Uploader(opts);
257 };
258
259 return uploader;
260
261 }));
1 # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2 #
3 # To ban all spiders from the entire site uncomment the next two lines:
4 # User-Agent: *
5 # Disallow: /
1 /**
2 * Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/)
3 * http://cssreset.com
4 */
5 html, body, div, span, applet, object, iframe,
6 h1, h2, h3, h4, h5, h6, p, blockquote, pre,
7 a, abbr, acronym, address, big, cite, code,
8 del, dfn, em, img, ins, kbd, q, s, samp,
9 small, strike, strong, sub, sup, tt, var,
10 b, u, i, center,
11 dl, dt, dd, ol, ul, li,
12 fieldset, form, label, legend,
13 table, caption, tbody, tfoot, thead, tr, th, td,
14 article, aside, canvas, details, embed,
15 figure, figcaption, footer, header, hgroup,
16 menu, nav, output, ruby, section, summary,
17 time, mark, audio, video {
18 margin: 0;
19 padding: 0;
20 border: 0;
21 font-size: 100%;
22 font: inherit;
23 vertical-align: baseline;
24 }
25
26 /* HTML5 display-role reset for older browsers */
27 article, aside, details, figcaption, figure,
28 footer, header, hgroup, menu, nav, section {
29 display: block;
30 }
31
32 body {
33 line-height: 1;
34 }
35
36 ol, ul {
37 list-style: none;
38 }
39
40 blockquote, q {
41 quotes: none;
42 }
43
44 blockquote:before, blockquote:after,
45 q:before, q:after {
46 content: '';
47 content: none;
48 }
49
50 table {
51 border-collapse: collapse;
52 border-spacing: 0;
53 }
54
55 .highlight .hll {
56 background-color: #ffffcc;
57 }
58
59 .highlight .c {
60 color: #999988;
61 font-style: italic;
62 }
63
64 /* Comment */
65 .highlight .err {
66 color: #a61717;
67 background-color: #e3d2d2;
68 }
69
70 /* Error */
71 .highlight .k {
72 font-weight: bold;
73 }
74
75 /* Keyword */
76 .highlight .o {
77 font-weight: bold;
78 }
79
80 /* Operator */
81 .highlight .cm {
82 color: #999988;
83 font-style: italic;
84 }
85
86 /* Comment.Multiline */
87 .highlight .cp {
88 color: #999999;
89 font-weight: bold;
90 }
91
92 /* Comment.Preproc */
93 .highlight .c1 {
94 color: #999988;
95 font-style: italic;
96 }
97
98 /* Comment.Single */
99 .highlight .cs {
100 color: #999999;
101 font-weight: bold;
102 font-style: italic;
103 }
104
105 /* Comment.Special */
106 .highlight .gd {
107 color: #000000;
108 background-color: #ffdddd;
109 }
110
111 /* Generic.Deleted */
112 .highlight .ge {
113 font-style: italic;
114 }
115
116 /* Generic.Emph */
117 .highlight .gr {
118 color: #aa0000;
119 }
120
121 /* Generic.Error */
122 .highlight .gh {
123 color: #999999;
124 }
125
126 /* Generic.Heading */
127 .highlight .gi {
128 color: #000000;
129 background-color: #ddffdd;
130 }
131
132 /* Generic.Inserted */
133 .highlight .go {
134 color: #888888;
135 }
136
137 /* Generic.Output */
138 .highlight .gp {
139 color: #555555;
140 }
141
142 /* Generic.Prompt */
143 .highlight .gs {
144 font-weight: bold;
145 }
146
147 /* Generic.Strong */
148 .highlight .gu {
149 color: #aaaaaa;
150 }
151
152 /* Generic.Subheading */
153 .highlight .gt {
154 color: #aa0000;
155 }
156
157 /* Generic.Traceback */
158 .highlight .kc {
159 font-weight: bold;
160 }
161
162 /* Keyword.Constant */
163 .highlight .kd {
164 font-weight: bold;
165 }
166
167 /* Keyword.Declaration */
168 .highlight .kn {
169 font-weight: bold;
170 }
171
172 /* Keyword.Namespace */
173 .highlight .kp {
174 font-weight: bold;
175 }
176
177 /* Keyword.Pseudo */
178 .highlight .kr {
179 font-weight: bold;
180 }
181
182 /* Keyword.Reserved */
183 .highlight .kt {
184 color: #445588;
185 font-weight: bold;
186 }
187
188 /* Keyword.Type */
189 .highlight .m {
190 color: #009999;
191 }
192
193 /* Literal.Number */
194 .highlight .s {
195 color: #bb8844;
196 }
197
198 /* Literal.String */
199 .highlight .na {
200 color: #008080;
201 }
202
203 /* Name.Attribute */
204 .highlight .nb {
205 color: #999999;
206 }
207
208 /* Name.Builtin */
209 .highlight .nc {
210 color: #445588;
211 font-weight: bold;
212 }
213
214 /* Name.Class */
215 .highlight .no {
216 color: #008080;
217 }
218
219 /* Name.Constant */
220 .highlight .ni {
221 color: #800080;
222 }
223
224 /* Name.Entity */
225 .highlight .ne {
226 color: #990000;
227 font-weight: bold;
228 }
229
230 /* Name.Exception */
231 .highlight .nf {
232 color: #990000;
233 font-weight: bold;
234 }
235
236 /* Name.Function */
237 .highlight .nn {
238 color: #555555;
239 }
240
241 /* Name.Namespace */
242 .highlight .nt {
243 color: #000080;
244 }
245
246 /* Name.Tag */
247 .highlight .nv {
248 color: #008080;
249 }
250
251 /* Name.Variable */
252 .highlight .ow {
253 font-weight: bold;
254 }
255
256 /* Operator.Word */
257 .highlight .w {
258 color: #bbbbbb;
259 }
260
261 /* Text.Whitespace */
262 .highlight .mf {
263 color: #009999;
264 }
265
266 /* Literal.Number.Float */
267 .highlight .mh {
268 color: #009999;
269 }
270
271 /* Literal.Number.Hex */
272 .highlight .mi {
273 color: #009999;
274 }
275
276 /* Literal.Number.Integer */
277 .highlight .mo {
278 color: #009999;
279 }
280
281 /* Literal.Number.Oct */
282 .highlight .sb {
283 color: #bb8844;
284 }
285
286 /* Literal.String.Backtick */
287 .highlight .sc {
288 color: #bb8844;
289 }
290
291 /* Literal.String.Char */
292 .highlight .sd {
293 color: #bb8844;
294 }
295
296 /* Literal.String.Doc */
297 .highlight .s2 {
298 color: #bb8844;
299 }
300
301 /* Literal.String.Double */
302 .highlight .se {
303 color: #bb8844;
304 }
305
306 /* Literal.String.Escape */
307 .highlight .sh {
308 color: #bb8844;
309 }
310
311 /* Literal.String.Heredoc */
312 .highlight .si {
313 color: #bb8844;
314 }
315
316 /* Literal.String.Interpol */
317 .highlight .sx {
318 color: #bb8844;
319 }
320
321 /* Literal.String.Other */
322 .highlight .sr {
323 color: #808000;
324 }
325
326 /* Literal.String.Regex */
327 .highlight .s1 {
328 color: #bb8844;
329 }
330
331 /* Literal.String.Single */
332 .highlight .ss {
333 color: #bb8844;
334 }
335
336 /* Literal.String.Symbol */
337 .highlight .bp {
338 color: #999999;
339 }
340
341 /* Name.Builtin.Pseudo */
342 .highlight .vc {
343 color: #008080;
344 }
345
346 /* Name.Variable.Class */
347 .highlight .vg {
348 color: #008080;
349 }
350
351 /* Name.Variable.Global */
352 .highlight .vi {
353 color: #008080;
354 }
355
356 /* Name.Variable.Instance */
357 .highlight .il {
358 color: #009999;
359 }
360
361 /* Literal.Number.Integer.Long */
362 /* General Style */
363 body {
364 font-size: 16px;
365 font-family: Helvetica, Arial, sans-serif;
366 color: #52514c;
367 background: #ffffff;
368 }
369
370 a {
371 text-decoration: none;
372 color: #4298BA;
373 }
374 a:visited {
375 color: #4298BA;
376 }
377 a:hover {
378 color: #0F769F;
379 }
380 a:active {
381 color: #9E792E;
382 }
383 a:hover, a:active {
384 outline: 0;
385 }
386
387 /* Layout */
388 .wrapper {
389 width: 960px;
390 margin: 0 auto;
391 }
392 .wrapper header {
393 padding: 50px 0 15px;
394 }
395 .wrapper header h1 {
396 width: 300px;
397 margin: 0 auto;
398 padding: 130px 0 0 0;
399 background-position: 4px 0;
400 background-image: url("../images/logo.png");
401 background-repeat: no-repeat;
402 background-size: 264px 107px;
403 }
404 @media all and (-webkit-min-device-pixel-ratio: 1.5), all and (-o-min-device-pixel-ratio: 3 / 2), all and (min--moz-device-pixel-ratio: 1.5), all and (min-device-pixel-ratio: 1.5) {
405 .wrapper header h1 {
406 background-image: url("../images/logo@2x.png");
407 background-size: 264px 107px;
408 }
409 }
410 .wrapper header h1 a {
411 display: block;
412 width: 180px;
413 height: 50px;
414 margin: 0 auto;
415 font-size: 50px;
416 font-family: 'Myriad', 'Helvetica Neue', Helvetica;
417 color: #3b5f6d;
418 text-align: center;
419 text-indent: -9999px;
420 overflow: hidden;
421 background-position: center 0;
422 background-image: url("../images/title.png");
423 background-repeat: no-repeat;
424 background-size: 171px 39px;
425 }
426 @media all and (-webkit-min-device-pixel-ratio: 1.5), all and (-o-min-device-pixel-ratio: 3 / 2), all and (min--moz-device-pixel-ratio: 1.5), all and (min-device-pixel-ratio: 1.5) {
427 .wrapper header h1 a {
428 background-image: url("../images/title@2x.png");
429 background-size: 171px 39px;
430 }
431 }
432 .wrapper header .desc {
433 font-size: 19px;
434 color: #9ba5a9;
435 text-align: center;
436 }
437 .wrapper nav {
438 text-align: center;
439 padding: 26px 0;
440 }
441 .wrapper nav a {
442 padding: 0 25px;
443 font-size: 16px;
444 color: #4f838f;
445 line-height: 20px;
446 }
447 .wrapper nav a:hover {
448 color: #666666;
449 }
450 .wrapper nav a.active {
451 color: #000000;
452 }
453 .wrapper section {
454 border-top: 2px solid #dee7ec;
455 }
456 .wrapper footer {
457 font-size: 14px;
458 margin: 40px 0;
459 color: #999999;
460 text-align: center;
461 }
462 .wrapper footer a {
463 color: #999999;
464 }
465 .wrapper footer a:hover {
466 text-decoration: underline;
467 }
468 .wrapper #link-fork {
469 display: block;
470 width: 133px;
471 height: 133px;
472 position: absolute;
473 top: 0;
474 right: 0;
475 }
476
477 /* Demo Page */
478 section#page-demo {
479 border-top: none;
480 }
481 section#page-demo .simditor {
482 box-shadow: 0 8px 40px rgba(0, 0, 0, 0.15);
483 }
484 section#page-demo #preview {
485 min-height: 100px;
486 padding: 15px;
487 margin: 60px 0 0 0;
488 border: 1px solid #dfdfdf;
489 }
490
491 /* Sidebar Page */
492 section.page-sidebar {
493 position: relative;
494 margin: 0 0 30px 0;
495 }
496 section.page-sidebar aside {
497 width: 180px;
498 padding: 50px 0 0 0;
499 position: absolute;
500 top: 0;
501 left: 0;
502 }
503 section.page-sidebar aside ul {
504 padding: 0 10px 0 60px;
505 }
506 section.page-sidebar aside ul li {
507 margin: 0 0 30px 0;
508 position: relative;
509 }
510 section.page-sidebar aside ul li .icon {
511 display: none;
512 width: 10px;
513 line-height: 20px;
514 font-size: 14px;
515 color: #000000;
516 position: absolute;
517 top: 0;
518 left: -18px;
519 }
520 section.page-sidebar aside ul li a {
521 line-height: 20px;
522 font-size: 18px;
523 color: #a3afb2;
524 }
525 section.page-sidebar aside ul li a:hover {
526 color: #666666;
527 }
528 section.page-sidebar aside ul li.active .icon {
529 display: block;
530 }
531 section.page-sidebar aside ul li.active a {
532 color: #000000;
533 }
534 section.page-sidebar article {
535 padding: 40px 20px 10px 60px;
536 margin: 0 0 0 180px;
537 min-height: 500px;
538 }
539
540 /* Download Page */
541 section#page-download {
542 min-height: 400px;
543 }
544 section#page-download .version {
545 border-bottom: 1px solid #dfdfdf;
546 }
547 section#page-download .version .title {
548 padding: 15px 15px;
549 cursor: pointer;
550 }
551 section#page-download .version .title .icon {
552 display: inline-block;
553 width: 12px;
554 line-height: 30px;
555 font-size: 20px;
556 }
557 section#page-download .version .title .name {
558 font-size: 20px;
559 line-height: 30px;
560 font-weight: bold;
561 margin: 0 20px;
562 }
563 section#page-download .version .title .date {
564 font-size: 16px;
565 line-height: 30px;
566 color: #aaaaaa;
567 }
568 section#page-download .version .title .btn-download {
569 display: inline-block;
570 float: right;
571 line-height: 30px;
572 padding: 0 15px;
573 font-size: 14px;
574 color: #ffffff;
575 background: #aaaaaa;
576 border-radius: 3px;
577 }
578 section#page-download .version .title .btn-download:hover {
579 background: #bbbbbb;
580 }
581 section#page-download .version .release-notes {
582 display: none;
583 margin: 10px 0 25px 0;
584 padding: 0 50px;
585 list-style: disc outside none;
586 }
587 section#page-download .version .release-notes li {
588 margin: 0 0 10px 0;
589 }
590 section#page-download .version.expand .release-notes {
591 display: block;
592 }
593
594 /* Document Page */
595 section.page-doc dt {
596 border-top: 1px solid #ddd;
597 margin-top: 30px;
598 margin-bottom: 10px;
599 padding-top: 20px;
600 }
601 section.page-doc dt:first-child {
602 border-top: none;
603 margin-top: 0;
604 padding-top: 0;
605 }
606 section.page-doc dt > a, section.page-doc dt > span {
607 margin-left: 10px;
608 }
609 section.page-doc dt > a:first-child, section.page-doc dt > span:first-child {
610 margin-left: 0;
611 }
612 section.page-doc dt .name {
613 font-size: 1.2em;
614 font-weight: bold;
615 }
616 section.page-doc dt .param-type,
617 section.page-doc dt .type {
618 background-color: #efefef;
619 border-radius: 3px;
620 padding: 2px 6px;
621 font-size: 0.8em;
622 vertical-align: text-top;
623 }
624 section.page-doc dt .default {
625 color: #aaa;
626 font-size: 0.8em;
627 }
628 section.page-doc dt .params:before {
629 content: "(";
630 }
631 section.page-doc dt .params:after {
632 content: ")";
633 }
634 section.page-doc dt .params .param:after {
635 content: ",";
636 margin: 0 6px 0 3px;
637 }
638 section.page-doc dt .params .param:last-child:after {
639 content: "";
640 margin: 0;
641 }
642 section.page-doc dt .return {
643 font-size: 0.8em;
644 color: green;
645 }
646 section.page-doc dd {
647 display: none;
648 }
649 section.page-doc dd.expand {
650 display: block;
651 }
652
653 /* Extension Page */
654 section#page-extension article {
655 padding: 40px 130px 10px;
656 }
657 section#page-extension article #btn-submit-extension {
658 margin: 20px 0 0 0;
659 display: inline-block;
660 padding: 6px 12px;
661 color: #333333;
662 border: 1px solid #cccccc;
663 border-radius: 4px;
664 }
665 section#page-extension article #btn-submit-extension:hover {
666 border-color: #aaaaaa;
667 background: #f3f3f3;
668 }
1 @media screen and (max-device-width: 240px) and (min-device-width: 220px) {
2 body {
3 width: 240px;
4 margin: 0 auto;
5 }
6 body .wrapper {
7 width: 100%;
8 }
9 body .wrapper header {
10 padding: 30px 0 20px;
11 }
12 body .wrapper header h1 {
13 background-size: 200px auto;
14 background-position: 50px 0;
15 padding-top: 90px;
16 height: 45px;
17 }
18 body .wrapper header h1 a {
19 background-size: 160px auto;
20 background-position: 10px 0;
21 }
22 body .wrapper header p.desc {
23 font-size: 16px;
24 }
25 body .wrapper footer {
26 margin: 20px 0;
27 }
28 body .wrapper #page-demo {
29 width: 96%;
30 margin: 0 2%;
31 }
32 body .wrapper #link-fork {
33 z-index: -1;
34 width: 80px;
35 height: auto;
36 }
37 body .wrapper #link-fork img {
38 max-width: 80px;
39 height: auto;
40 }
41
42 nav {
43 display: none;
44 }
45 }
46 @media screen and (max-device-width: 320px) and (min-device-width: 300px) {
47 body {
48 width: 320px;
49 margin: 0 auto;
50 }
51 body .wrapper {
52 width: 100%;
53 }
54 body .wrapper header {
55 padding: 30px 0 20px;
56 }
57 body .wrapper header h1 {
58 background-size: 200px auto;
59 background-position: 50px 0;
60 padding-top: 90px;
61 height: 45px;
62 }
63 body .wrapper header h1 a {
64 background-size: 160px auto;
65 background-position: 10px 0;
66 }
67 body .wrapper header p.desc {
68 font-size: 16px;
69 }
70 body .wrapper footer {
71 margin: 20px 0;
72 }
73 body .wrapper #page-demo {
74 width: 96%;
75 margin: 0 2%;
76 }
77 body .wrapper #link-fork {
78 z-index: -1;
79 width: 80px;
80 height: auto;
81 }
82 body .wrapper #link-fork img {
83 max-width: 80px;
84 height: auto;
85 }
86
87 nav {
88 display: none;
89 }
90 }
91 @media screen and (max-device-width: 360px) and (min-device-width: 340px) {
92 body {
93 width: 360px;
94 margin: 0 auto;
95 }
96 body .wrapper {
97 width: 100%;
98 }
99 body .wrapper header {
100 padding: 30px 0 20px;
101 }
102 body .wrapper header h1 {
103 background-size: 200px auto;
104 background-position: 50px 0;
105 padding-top: 90px;
106 height: 45px;
107 }
108 body .wrapper header h1 a {
109 background-size: 160px auto;
110 background-position: 10px 0;
111 }
112 body .wrapper header p.desc {
113 font-size: 16px;
114 }
115 body .wrapper footer {
116 margin: 20px 0;
117 }
118 body .wrapper #page-demo {
119 width: 96%;
120 margin: 0 2%;
121 }
122 body .wrapper #link-fork {
123 z-index: -1;
124 width: 80px;
125 height: auto;
126 }
127 body .wrapper #link-fork img {
128 max-width: 80px;
129 height: auto;
130 }
131
132 nav {
133 display: none;
134 }
135 }
136 @media screen and (max-device-width: 480px) and (min-device-width: 460px) {
137 body {
138 width: 480px;
139 margin: 0 auto;
140 }
141 body .wrapper {
142 width: 100%;
143 }
144 body .wrapper header {
145 padding: 30px 0 20px;
146 }
147 body .wrapper header h1 {
148 background-size: 200px auto;
149 background-position: 50px 0;
150 padding-top: 90px;
151 height: 45px;
152 }
153 body .wrapper header h1 a {
154 background-size: 160px auto;
155 background-position: 10px 0;
156 }
157 body .wrapper header p.desc {
158 font-size: 16px;
159 }
160 body .wrapper footer {
161 margin: 20px 0;
162 }
163 body .wrapper #page-demo {
164 width: 96%;
165 margin: 0 2%;
166 }
167 body .wrapper #link-fork {
168 z-index: -1;
169 width: 80px;
170 height: auto;
171 }
172 body .wrapper #link-fork img {
173 max-width: 80px;
174 height: auto;
175 }
176
177 nav {
178 display: none;
179 }
180 }
181 @media screen and (max-device-width: 640px) and (min-device-width: 620px) {
182 body {
183 width: 320px;
184 margin: 0 auto;
185 }
186 body .wrapper {
187 width: 100%;
188 }
189 body .wrapper header {
190 padding: 30px 0 20px;
191 }
192 body .wrapper header h1 {
193 background-size: 200px auto;
194 background-position: 50px 0;
195 padding-top: 90px;
196 height: 45px;
197 }
198 body .wrapper header h1 a {
199 background-size: 160px auto;
200 background-position: 10px 0;
201 }
202 body .wrapper header p.desc {
203 font-size: 16px;
204 }
205 body .wrapper footer {
206 margin: 20px 0;
207 }
208 body .wrapper #page-demo {
209 width: 96%;
210 margin: 0 2%;
211 }
212 body .wrapper #link-fork {
213 z-index: -1;
214 width: 80px;
215 height: auto;
216 }
217 body .wrapper #link-fork img {
218 max-width: 80px;
219 height: auto;
220 }
221
222 nav {
223 display: none;
224 }
225 }
226 @media screen and (max-device-width: 720px) and (min-device-width: 700px) {
227 body {
228 width: 360px;
229 margin: 0 auto;
230 }
231 body .wrapper {
232 width: 100%;
233 }
234 body .wrapper header {
235 padding: 30px 0 20px;
236 }
237 body .wrapper header h1 {
238 background-size: 200px auto;
239 background-position: 50px 0;
240 padding-top: 90px;
241 height: 45px;
242 }
243 body .wrapper header h1 a {
244 background-size: 160px auto;
245 background-position: 10px 0;
246 }
247 body .wrapper header p.desc {
248 font-size: 16px;
249 }
250 body .wrapper footer {
251 margin: 20px 0;
252 }
253 body .wrapper #page-demo {
254 width: 96%;
255 margin: 0 2%;
256 }
257 body .wrapper #link-fork {
258 z-index: -1;
259 width: 80px;
260 height: auto;
261 }
262 body .wrapper #link-fork img {
263 max-width: 80px;
264 height: auto;
265 }
266
267 nav {
268 display: none;
269 }
270 }
271 @media screen and (max-device-width: 800px) and (min-device-width: 780px) {
272 body {
273 width: 400px;
274 margin: 0 auto;
275 }
276 body .wrapper {
277 width: 100%;
278 }
279 body .wrapper header {
280 padding: 30px 0 20px;
281 }
282 body .wrapper header h1 {
283 background-size: 200px auto;
284 background-position: 50px 0;
285 padding-top: 90px;
286 height: 45px;
287 }
288 body .wrapper header h1 a {
289 background-size: 160px auto;
290 background-position: 10px 0;
291 }
292 body .wrapper header p.desc {
293 font-size: 16px;
294 }
295 body .wrapper footer {
296 margin: 20px 0;
297 }
298 body .wrapper #page-demo {
299 width: 96%;
300 margin: 0 2%;
301 }
302 body .wrapper #link-fork {
303 z-index: -1;
304 width: 88.88889px;
305 height: auto;
306 }
307 body .wrapper #link-fork img {
308 max-width: 88.88889px;
309 height: auto;
310 }
311
312 nav {
313 display: none;
314 }
315 }
316 @media screen and (max-device-width: 960px) and (min-device-width: 940px) {
317 body {
318 width: 480px;
319 margin: 0 auto;
320 }
321 body .wrapper {
322 width: 100%;
323 }
324 body .wrapper header {
325 padding: 30px 0 20px;
326 }
327 body .wrapper header h1 {
328 background-size: 200px auto;
329 background-position: 50px 0;
330 padding-top: 90px;
331 height: 45px;
332 }
333 body .wrapper header h1 a {
334 background-size: 160px auto;
335 background-position: 10px 0;
336 }
337 body .wrapper header p.desc {
338 font-size: 16px;
339 }
340 body .wrapper footer {
341 margin: 20px 0;
342 }
343 body .wrapper #page-demo {
344 width: 96%;
345 margin: 0 2%;
346 }
347 body .wrapper #link-fork {
348 z-index: -1;
349 width: 100px;
350 height: auto;
351 }
352 body .wrapper #link-fork img {
353 max-width: 100px;
354 height: auto;
355 }
356
357 nav {
358 display: none;
359 }
360 }
361 @media screen and (max-device-width: 1024px) and (min-device-width: 1004px) {
362 body {
363 width: 512px;
364 margin: 0 auto;
365 }
366 body .wrapper {
367 width: 100%;
368 }
369 body .wrapper header {
370 padding: 30px 0 20px;
371 }
372 body .wrapper header h1 {
373 background-size: 200px auto;
374 background-position: 50px 0;
375 padding-top: 90px;
376 height: 45px;
377 }
378 body .wrapper header h1 a {
379 background-size: 160px auto;
380 background-position: 10px 0;
381 }
382 body .wrapper header p.desc {
383 font-size: 16px;
384 }
385 body .wrapper footer {
386 margin: 20px 0;
387 }
388 body .wrapper #page-demo {
389 width: 96%;
390 margin: 0 2%;
391 }
392 body .wrapper #link-fork {
393 z-index: -1;
394 width: 100px;
395 height: auto;
396 }
397 body .wrapper #link-fork img {
398 max-width: 100px;
399 height: auto;
400 }
401
402 nav {
403 display: none;
404 }
405 }
406 @media screen and (max-device-width: 1280px) and (min-device-width: 1260px) {
407 body {
408 width: 640px;
409 margin: 0 auto;
410 }
411 body .wrapper {
412 width: 100%;
413 }
414 body .wrapper header {
415 padding: 30px 0 20px;
416 }
417 body .wrapper header h1 {
418 background-size: 200px auto;
419 background-position: 50px 0;
420 padding-top: 90px;
421 height: 45px;
422 }
423 body .wrapper header h1 a {
424 background-size: 160px auto;
425 background-position: 10px 0;
426 }
427 body .wrapper header p.desc {
428 font-size: 16px;
429 }
430 body .wrapper footer {
431 margin: 20px 0;
432 }
433 body .wrapper #page-demo {
434 width: 96%;
435 margin: 0 2%;
436 }
437 body .wrapper #link-fork {
438 z-index: -1;
439 width: 100px;
440 height: auto;
441 }
442 body .wrapper #link-fork img {
443 max-width: 100px;
444 height: auto;
445 }
446
447 nav {
448 display: none;
449 }
450 }
451 @media screen and (device-aspect-ratio: 40 / 71) and (orientation: landscape) {
452 body {
453 width: 568px;
454 }
455 }
456 @media screen and (device-aspect-ratio: 2 / 3) and (orientation: landscape) {
457 body {
458 width: 480px;
459 }
460 }
1 @font-face {
2 font-family: 'Simditor';
3 src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABp8AA4AAAAAKmwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAaYAAAABoAAAAcdO8GE09TLzIAAAG0AAAARQAAAGAQ+ZFXY21hcAAAAkgAAABRAAABWuA2Gx9jdnQgAAAEgAAAAAoAAAAKAwQAxGZwZ20AAAKcAAABsQAAAmUPtC+nZ2x5ZgAABNgAABPeAAAgZG/p6QxoZWFkAAABRAAAADAAAAA2BvuCgGhoZWEAAAF0AAAAHgAAACQH9QTlaG10eAAAAfwAAABKAAAAlHv7AItsb2NhAAAEjAAAAEwAAABMi4qTXm1heHAAAAGUAAAAIAAAACABRwHNbmFtZQAAGLgAAAEFAAAB12vS/ulwb3N0AAAZwAAAAJ4AAAFsyCrvunByZXAAAARQAAAALgAAAC6w8isUeNpjYGRgYADiKAkPy3h+m68M8swfgCIMF0/IVyDo/84sFswJQC4HAxNIFAAZwAnyeNpjYGRgYE5gmMAQzWLBwPD/O5AEiqAAVQBa6wPkAAAAAQAAACUAoAAKAAAAAAACAAEAAgAWAAABAAEpAAAAAHjaY2BhnsA4gYGVgYGpn+kgAwNDL4RmfMxgxMgCFGVgZWaAAUYBBjTQwMDwQY454X8BQzRzAsMEIJcRSVaBgREAQ9oK6QAAAHjaY8xhUGQAAsYABgbmDwjMYsEgxCzBwMDkAOQnALEEgx1UjhNMr4BjTqBakDxC/wqIPsYMqJoEKIbpk0C1C4zXM3DA5AEzchbtAAB42mNgYGBmgGAZBkYGEAgB8hjBfBYGCyDNxcDBwASEDAy8DAof5P7/B6sCsRmAbOb/3/8/FWCD6oUCRjaIkWA2SCcLAyoAqmZlGN4AALmUC0kAAAB42l1Ru05bQRDdDQ8DgcTYIDnaFLOZkALvhTZIIK4uwsh2YzlC2o1c5GJcwAdQIFGD9msGaChTpE2DkAskPoFPiJSZNYmiNDs7s3POmTNLypGqd2m956lzFkjhboNmm34npNpFgAfS9Y1GRtrBIy02M3rlun2/j8FmNOVOGkB5z1vKQ0bTTqAW7bl/Mj+D4T7/yzwHg5Zmmp5aZyE9hMB8M25p8DWjWXf9QV+xOlwNBoYU01Tc9cdUyv+W5lxtGbY2M5p3cCEiP5gGaGqtjUDTnzqkej6OYgly+WysDSamrD/JRHBhMl3VVC0zvnZwn+wsOtikSnPgAQ6wVZ6Ch+OjCYX0LYkyS0OEg9gqMULEJIdCTjl3sj8pUD6ShDFvktLOuGGtgXHkNTCozdMcvsxmU9tbhzB+EUfw3S/Gkg4+sqE2RoTYjlgKYAKRkFFVvqHGcy+LAbnU/jMQJWB5+u1fJwKtOzYRL2VtnWOMFYKe3zbf+WXF3apc50Whu3dVNVTplOZDL2ff4xFPj4XhoLHgzed9f6NA7Q2LGw2aA8GQ3o3e/9FadcRV3gsf2W81s7EWAAAAuAH/hbABjQBLsAhQWLEBAY5ZsUYGK1ghsBBZS7AUUlghsIBZHbAGK1xYWbAUKwAAAAAAowCFACECfwAAAAAAKgAqACoAKgAqACoAfgEkAcAChAK+A2oElgU2BbQGxgeYCBgIPgjGCU4KZgqKCq4LQAuYDDoMcAzuDXINoA4MDngO4g86D6QQMnjazVl5cBvXeX9vF4tdXHsBuwBBEvdBAgQXxOIgRPGQSEkULcoJJds6Yku2Na6TKJXHsnx0XNptHcvNpLaSJpkczthV68Zu0ulbQE58qXXaHK3j7ThjD6PmmnQmaTydSaqkmdbxkFC/tyApinXiuP2jlcC37/vegX3f8fu+7wExKIkQLjCPIxbxaNjCyNja4l3sTyqWm/vu1hbLQBdZLGVzlN3i3a7lrS1M+aaSVPKmkk5iz+tf/zrz+MrRJHMDgp3US3/tyjEvIQn1oiJCWd6dx7kGrsexLuGwjlm3AXSQ0h5M+5M4D3/1MNbx4b5AoPNmIIDdgQB0v/e9AJ78JqemVLfT4uN0sDtAHzBtvvvYsIK5aqWgcF6XyizRR+f+K9cAhRB9T3TpGTbCRlAARdAEehiRCYNwNulNLCmkzyZ+g6g2GTSIaJKCTUo2JpMGSS0RZBOp0kohb7E9lerzFMlghSDZ4nGRbLGJRpdXbGsKFy2UUlRL7Gk2iaacYzlfeCITbhJeJY0msvycorZj8eYWylMV4JFBtaXlKs1mszyS5UNh3azUqvlhnOLZsAZEvZpLp9gU35jAjfo4lvM5GEzn6xkzXAnrWogXMR/DITfvTuMy9hSyr0XSx+6VXa6+1NFbTrwrPvD+v8OevSHFLzT9cYbZgqXZ+U9cVahEC7nrTo6ZN33w2fdsCykvTOaaCTc+/vn7XbOf27X840CNEYXYRJYp6gEOswb24YPlHbsHtIgSvO1Tt/aNgglRWTJTIMsB9FeIDIAcTZKzidsmIYNoNumpEE0mvSDCQcMqgKDq0ecmDv/sY0grekXil4n0opXCvyTxF4Foi34pWCQpuZ1IxYPFdpK2LWAmPpT4UNotKmqzBTx4kEQTPe0X44lkatj5h6+gyFQUI8s9AErADCghpxChSUIq6W9aWq+iEh0EzeVzKTffqK/+V2sg03wjXKk33FSeImbcYKhhN4/fd9OemVtlr18f6ZF5rjKH9R0+33cKp0KsIC1o7ti2EsbaPoaf9TE+XHZxvoCWEf8N39gvBlhmi0fAkSinC+Kfdr71j6KX8/f3IsaxwaMgt13oOvSHqDWPUJHst4lgUJPbYrSVYGw6EzbJmG2FpioVMiaTCDWwcZMkbLKjgskBgwSWSMZuZQLUIDMxT7EVyNBuIAi2mZGtEbDEg/A3kgGDi/RuGQODQ1aiABSWA3WgrMgWkMa2JhlTyCTIBLxUhbO706lhZhxXc/mUgetmuFGpm3xYc6d4dz+mQgGbBJFN4OowNjCYIp9vmGG9EdZDsFbEwRoYbDIFk0O6mazUmTcx5w8nC4c/c/3p7WF9p8ozvPRZIiZYjLPTXh4L3N6Rxs1jUZ8Wcgksy/T3NAXGODmw0+tiotqg/xavsPwVwesV2K2Cl/ly0tv5m+Nbkjur+2+/7oX3J1hmBPMc5rMcJ/LTyd/77O8O9A6F5NSO04195WQ+hpmymxFwMCDybv/ymxm6EW2o/U5c+g/m28xHURrwSg9J2A0n5mmTq1J0gqZeiYPXQUOHmZdkeY9cVJ94Qi1CR37iiU30Y7+Cv0av4c9F0L2EBtEcWkTENMiMo3vJJmmD6OAuVwEILZGs3Z7IqkKRTNokK1uz4EAl29oDOp2cAMXJTZJVqPpm1afj+kChYlJIKSnnIv3R4qCjbWEGtF0ojU5SbaclIGQ12k+n6QqJUJVXdFCTG9SVA43XzUauVm3UzUoYAEUC7eaom4RA5WHeBPWKbIpqnBoHIFEjhqktgCHkc+z3qVyXq7TtjF6156NX3+4OMLwh9MVGPrhn7u6bzQd+7Ar7hq87cLq0N+lnmKasspMnM/trJQXf2tUIbTKzV98yuyunv6/pYVhmf9zcfnhPKp4+ox3a2j88qgd0r9fDjw8N4giTLrtu7Js5MCBRXHcjz6XbQK6HURiV0RSaR9ejD+BB1KpT3xq3iatCxmXC2hTHAeNlm0QNMmyTsk32GeSQTVIGydvkZoNsN8n7bKqSbZXWzM3UpWau8hQx+W2DsEtkrkIYmzCytQPUMW8TvtLaMU8n7Zj2FNvq/A7QV8IkXruleilbpaFiXrYMX5FE6J7WCVAgwyoqgJYWy+ym2tihtEOl4V1OSFCfllE4lb+KEvOK5RsCCPOqbTc3WHB0KvsB2LwB4NaVtkcMhuhEVrV4DVhIIUCNq8TdtIajYCS9TbIP4lqTlFVSapJDyrlYojCUoWtSKsk2SV4hg2AIDV5L10zNCSSpfMOJQXy+Pom1dK4KCFmrplNAmxWdBhrerHHaBrNJVnRM19fSbgoG2uZBZRP9QH3r87X+5Ph7s4m+SHlMqgT2v8wOhKfi0WA5tnNwNBceZ3ax+73Cyn5qF8wXBO/y6+fHsSsyMD/GXrORv7F/iOm/ZmQbPzhXzVaiiSwX3+a/cFAyG2IuEksmx40Zw5+KJNvH6Xza4J81Gmc8WnHXD//pMi+y3u3aFbr0XfYi8wvIlCQUR3nUANQ+gVoatSvIF1iKyzwkCgap2sRHKfDjccen05TKgz/PQmhcsvwZgHJsW0KiUrF24yKy+jSKxi4OUf+sloDw+AMCJWbGgUhmsgkgyiN1UAqoobL2xJvkiX4Ff7PcL0wemlz7sNddKd63YG7sn3KW/bPTdv5iXUaMsZlzpQAZJ+l6EvAujibRAmpxVG4Zk4puK6QHIDWT+G0yBDFtyiDCEgiI9NitHoE6T48CzoNlawB8LWmTpt1qDlB+c8RTtLaBBAHB4IhFnMrVlGp9bBXOgHaiD6W5txmH9K50oTT51F0ZSdOkzNg1CX2xNInfeEvuDPAmS/jDdz2lSbOSds2Yqiecif+NSY/tXT87tRwDzn81OgK2cx96BD2GHkStj1NZ+G1r6D1gGJxhZfabVDDWnnsrVDTWzB1Ab7Wt4x8GumZYxx4A+lGwp8cN8skl4rGtyCiMeGQLAabIZegP2tbsrfQpWwngTR2F/kHbuvsh+pStdwHvtvuh/xHb+hNHflmI1hvkUafYvpHmNo3j2q8ff6fzN39fQ+maLNWXgysJr3COGtQVzUZu5wdvzf9N5lxuZmvZFX+2Vssyv8hVD62b8A/We69ctvBn3oL5NsOX93lh5VHna46B5Gk+4Ln0ZfYx9jqomhqQDT7u1CNRm+x0ckE3RZBrneC013ayvrklmmLnZCsGPrFgk+10hm6TBdlinFLESfq25yC+JPtmds7vpWiixyBmTO+DALGgWKH98GTUds/4xLVORNkJgeJphm9u2TZNJxfcMHmGTrpWsYp0UUpt53bPvduBomy9CmlBio8xkO+5U8Ns3h2C7KgClZ4zAElUlx5m8hSSYiy3llnlqo38WnLVTan4cL0SZtOyfEoaVlnFzXkTMUnkZVaV7pBLUuer3ec+mCCXNk7A3zfK+4wHyyeNSqV8euTUFdTDsOQUpBcyz/sHEi6fW2FVAzaS8He6zwV5SL5ywr+PPDi8YJTvGDkNTmScuoJCLpqzuUbBj3kkohgaRu9FrbCDY4D/BkV/2SBF0I8BOcQSCUH9I1scaMNL8b6FOYpZ2NPFsl7gJ2yrDFrCUAsSf5P0KiQAemDDgPkCRACnXFSICOK+jOzJWiOMs5BXa0o3rwYPyYU3e8utDowz9y2/fu4QTuDE8r1O4vwAtAu17PK91N3ZB3JVZncXt19YPk4nnt0I9erKfsdCv5CrVimEQZ2HE2wEvwE4piEAKgrYfjiubFjKOghvjDNsJKGv7NcTCZ35gp7Af3ucdmmDOAcTLzr1dz8qoXHI1OqoFaTSjDr5r8upuyEphqoa5DcNJg9ftdewrqYR0yzQsg7RWll1zMo5OhjT5leovUP6a9xZXvR6Rf4sa6wlsuzLTgx81BHMsc39y3PwR/38Wc4r4BnBy53t/OjXwsMrV+QXby8PdoM8fG8tD4Gn8giCLax7l/6/lccFKgrOEQobeacCYYY7L1BR8I5cOrO/uUAEpz56kj2KPGBrSdRE74ZM/r3oJPo2apWpVAbsFiQVxTY7UIZUe4DCH2TycZtca5DDNkVPipR3OEi5HfBRtmTwOB8IT7aOQe+ITY7IVhVT77VOUaycAxEyHOCcrHzRo4fHZ3bMUw/0qWRvkxxT2kMlp3gmR1Qy0CRV5UtGvt44cPD4CcrMqOQk+G60rKhfFELBzFCpStlxhaQBQNV2vTGzgzIOK2R3k0yoX9oytn3uxpuOf4Ay9yrkdif5hpyb3oXpYY36O9VBRc91ExcnbVmvTnN5qLMrkw7YNvRwns+vQS6f24Csrg1r8YY9w+vf9J9nQDmBwJlAdMEre+GzuB4LmbMAp6WHys97xdOfkoYp/H7aKyknLhOqeH5tCr59fV3nQnenH61v/fEzHOd0MuuxdtGZ0tNF2Be8uvfTFI9L0mdOe6Tfukz4/efXpow7K3BifYvr13btYhM6x0wBNgWQiojbcIBJNCzJASZ0OfaAVTNFzbfsSXiWfZqE38BvaHHoAieuOfvM4hnmIdgniJwdeKjYIFtf3ehKsJlxVtH1+O61/STYvBsrwH63OvVCHnK+21CLp3Yrmt3AQG9wIGh4TRo9+rppr7lEhiAHli0MZhmwSUC2PNBT7JZHobHDE+nmu9aQCbY6thVsFSuWKwPPgEomwf4yCRgwyhQHMlWnZqf3hs6zscGzx3AMO1kWFHIsmMhqcjyO012zoLbDvKLFNC32hNNen9CXv0LR+6JvNH0mPeq7qCe+JPSc0aQzknYGsnR12dfnW1adyaufs+foAtoMDCQS+Fp9mSbRy3pYptKWu/eGzv1XDlURFYbk3BjmQHN55+YDxD5A0S0kKeo5jLzRXuotOcVKZegJkexOp3KrHhPDzhVpig/r/Ophqo16HNcT7NFO68a/nPD5592Ka/Cu6bueeur1ffOqV+iBF4K32X0fvp6Jdh7tLMwFfPNuhquNPfXTp+b3ymEdXpeebfauVYxefd8gZGlpVEQm+ghqFalWDUeZoLKwQWIm6YVUrUIPYcJZqgYZWYKMnCbjPaBOzSaabCWh12+TftnKdi90aqBXrQdSMJ87XzAq9KRJpc0yAT/t9qtPS8Fccdh0UrVwAOYJSmawVKaDvUo7OzA04iRmWMRUJhOYiqRC7+dieC17cK0+VTmXcMt6AgSYyMn1BLOo3f7w7Ron9vW5xD037BFdfX1i50eFrYXCVjznPJ57tbP06qu4gHtXOp9eWcG3YHZm374ZsdcjiqXR0ZIoenoxR2eufjp/jAuv0kVMb3fBytq9+zTEORP8wgtZVA61/FR+gMuQT3hAWpJBgRpZnF9RW4ybd+7DsYnT+SSfxmwS15Ia/sZRvGtxrvOZubvwyT/C0ZV76ZYr/mefZe7s/NnKv54/j7o1p+ODEajeG2gvIl6jFUs2TCiefHarN12tQAEEzlc0wNAwGTWsJv1inxdciI+DT2WUViBqwguQotrWI8MGlTVWiOZcklbqZi5Pr0kbE2wDm0HIhGNMHIf4fIoH/KXgXAN0FnEoxgKe83j0SU7jyo3OT3rLW7BY6U8KOD17j7qQjhSjewUWL2l/z8xh3tu7sCI35EQk78J4gMGPnFh5zCWUXALfozE/7/xL4Rt7x09oMpv0cB5BjEkMK8jaeZz7RFT1cC6c9HKrZ/+Y8/uGgnT0eUQ8Br30gvxUMgFPCKoQBo5t0h85ggA+YcOKdC/mXxx/c5FezBN1WCT6i5zFML8UiffF5ya/8eYFOsARDCMijATpSOhFjohyG4k4WCSMDAbrDRbbHtpSvkT5LGp7xZDu3NFP+RFmWI9XlNRgl7X2j0xFaQ7ZSAaT9M4xHcdmrRFM5nGS5bLMvUJHjuID/hMn+Jv8LzMv9XU+4bmE2Mhs5/nOeUa+ufPq/bHY1Y828SgeuQULy986fHhVDmBvzEtgeSEaGVBX2VBV6w6ga2BOWUANiKCN/AQex9gMa+zFlWeDmd7snj/4UEIKM8K7m+cPHnwt0BPfw39wiNVEE3+nuYdi/GrOtlbX51bvNSAv1gx6tZE1KKDXDKjeKcCv3lVkN+VY+U10423G2YuASwcomLJPStoFTeoIlKChBwB5+XVnJNId+aQzcqukHZ+lPdr8w6/tof9H51opU4J5pXuux52Ro92Ru52Rh/5PzvVOc+grz7XxWBtP9T86FIuESyfZZ5ivQkSKoRTUDEQwWu6gTlHOY7c4NUxRLmBArMFQRlgZCnEegUJciKYNCmG6+KrHsZbna3VwPBGHIQPNSbg2gScxZs0gVJ34z3fjqbypLn3zHtfCG2bIJd3w+B2l2jjLYu3I157BLuary52g12X4vcNy9OWTh4WouyT6XEWfznGM2rmEv3XgAMV/qgPmTuf34RQ6hloC1YAO2OTcdSlxeHHJeVfiW6J8XabVJb33S3ZvO1ibnsJKKlA1p5ok5txrs/R3PWTpcDJKasq5YKQ/meqGxIqubSyQsZLm82nFrIUbGtdI19Jamv1cvFCIL5+lLf7p4g1HFheP3IC3PHZk8QbmzkK80+cM/DBe6Aj4dxYXOw+ev+ee8/HvOoHm8t1mEU2hQ6s2lbBbCVrwo0QBCv4ep1im59rm3G52Iz8cg+Y42+E0mX4o+pXhStOJ7z2QxrWH6036gw2RFCfVu1xer1b5EN8hGS1i51e2tdsAsDkIPGYliDdesazes7CRI9OdoekjR6bxa8mk4OL7XB7OJ3aGoMLP4ddyVS7j5kK/36mLGfHnojgBj4/h49BOiPiadnfd9BGRDfJ9nKua6657hIdVGMMiWEOnOmvoYoT+C93/Vj8AAHjafY+/asMwEIc/JU6aQhsyltJBQ6eCg20IgdCt1GTwlNJsHUJijCCxwHaeqVufpM/Qta/Ri31ZOkTipO9Ov/sjYMwXhm7d8qBsGPGs3OOKd+U+j3wqB6L5UR5wY4zykJGxojTBtXj3bdaJDROelHvS91W5z5IP5UA038oD7vhVHjIxY1I8JQ2ObUs1lkz2C6S+bNzWl7XNMnHfRHNgJ2cjykoC7rBzjRdakVNwZM/m9LDKi+N+I3AunrYJhagsCVMiuRdi/0t20Vg0IXOxRJQxs26U1FdFbpNpZBf23FowTsJ5mETx7OKEa+ldyedcO9GpRzcF67yqnS9tLHUvVfgDz/ZF8gAAAHjabc25DgFhGIXh/53B2Pd9J9HPN/bSWolC4iI0OjfgxhFO6SQnT/k6z333errI/dvkc5yHh+98YsRJEJAkRZoMWXLkKVCkRJkKVWrUadCkRZsOXXr0GTBkxDh2vp5O3u4SPO63YxiG0mQkp3Im53Ihl3Il13Ijt3In9/Igjz9NfVPf1Df1TX1T39Q39U19U9/UN/VNfVPfDm8tR0peAAB42mNgYGBkAIKLcceVwfQJ+XIoXQEARe8GegAA) format("woff");
4 font-weight: normal;
5 font-style: normal;
6 }
7 .simditor-icon {
8 display: inline-block;
9 font: normal normal normal 14px/1 'Simditor';
10 font-size: inherit;
11 text-rendering: auto;
12 -webkit-font-smoothing: antialiased;
13 -moz-osx-font-smoothing: grayscale;
14 transform: translate(0, 0);
15 }
16
17 .simditor-icon-code:before {
18 content: '\f000';
19 }
20
21 .simditor-icon-bold:before {
22 content: '\f001';
23 }
24
25 .simditor-icon-italic:before {
26 content: '\f002';
27 }
28
29 .simditor-icon-underline:before {
30 content: '\f003';
31 }
32
33 .simditor-icon-times:before {
34 content: '\f004';
35 }
36
37 .simditor-icon-strikethrough:before {
38 content: '\f005';
39 }
40
41 .simditor-icon-list-ol:before {
42 content: '\f006';
43 }
44
45 .simditor-icon-list-ul:before {
46 content: '\f007';
47 }
48
49 .simditor-icon-quote-left:before {
50 content: '\f008';
51 }
52
53 .simditor-icon-table:before {
54 content: '\f009';
55 }
56
57 .simditor-icon-link:before {
58 content: '\f00a';
59 }
60
61 .simditor-icon-picture-o:before {
62 content: '\f00b';
63 }
64
65 .simditor-icon-minus:before {
66 content: '\f00c';
67 }
68
69 .simditor-icon-indent:before {
70 content: '\f00d';
71 }
72
73 .simditor-icon-outdent:before {
74 content: '\f00e';
75 }
76
77 .simditor-icon-unlink:before {
78 content: '\f00f';
79 }
80
81 .simditor-icon-caret-down:before {
82 content: '\f010';
83 }
84
85 .simditor-icon-caret-right:before {
86 content: '\f011';
87 }
88
89 .simditor-icon-upload:before {
90 content: '\f012';
91 }
92
93 .simditor-icon-undo:before {
94 content: '\f013';
95 }
96
97 .simditor-icon-smile-o:before {
98 content: '\f014';
99 }
100
101 .simditor-icon-tint:before {
102 content: '\f015';
103 }
104
105 .simditor-icon-font:before {
106 content: '\f016';
107 }
108
109 .simditor-icon-html5:before {
110 content: '\f017';
111 }
112
113 .simditor-icon-mark:before {
114 content: '\f018';
115 }
116
117 .simditor-icon-align-center:before {
118 content: '\f019';
119 }
120
121 .simditor-icon-align-left:before {
122 content: '\f01a';
123 }
124
125 .simditor-icon-align-right:before {
126 content: '\f01b';
127 }
128
129 .simditor-icon-font-minus:before {
130 content: '\f01c';
131 }
132
133 .simditor-icon-markdown:before {
134 content: '\f01d';
135 }
136
137 .simditor-icon-checklist:before {
138 content: '\f01e';
139 }
140
141 .simditor {
142 position: relative;
143 border: 1px solid #c9d8db;
144 }
145 .simditor .simditor-wrapper {
146 position: relative;
147 background: #ffffff;
148 }
149 .simditor .simditor-wrapper > textarea {
150 display: none !important;
151 width: 100%;
152 box-sizing: border-box;
153 font-family: monaco;
154 font-size: 16px;
155 line-height: 1.6;
156 border: none;
157 padding: 22px 15px 40px;
158 min-height: 300px;
159 outline: none;
160 background: transparent;
161 resize: none;
162 }
163 .simditor .simditor-wrapper .simditor-placeholder {
164 display: none;
165 position: absolute;
166 left: 0;
167 z-index: 0;
168 padding: 22px 15px;
169 font-size: 16px;
170 font-family: arial, sans-serif;
171 line-height: 1.5;
172 color: #999999;
173 background: transparent;
174 }
175 .simditor .simditor-wrapper.toolbar-floating .simditor-toolbar {
176 position: fixed;
177 top: 0;
178 z-index: 10;
179 box-shadow: 0 0 6px rgba(0, 0, 0, 0.1);
180 }
181 .simditor .simditor-wrapper .simditor-image-loading {
182 width: 100%;
183 height: 100%;
184 position: absolute;
185 top: 0;
186 left: 0;
187 z-index: 2;
188 }
189 .simditor .simditor-wrapper .simditor-image-loading .progress {
190 width: 100%;
191 height: 100%;
192 background: rgba(0, 0, 0, 0.4);
193 position: absolute;
194 bottom: 0;
195 left: 0;
196 }
197 .simditor .simditor-body {
198 padding: 22px 15px 40px;
199 min-height: 300px;
200 outline: none;
201 cursor: text;
202 position: relative;
203 z-index: 1;
204 background: transparent;
205 }
206 .simditor .simditor-body a.selected {
207 background: #b3d4fd;
208 }
209 .simditor .simditor-body a.simditor-mention {
210 cursor: pointer;
211 }
212 .simditor .simditor-body .simditor-table {
213 position: relative;
214 }
215 .simditor .simditor-body .simditor-table.resizing {
216 cursor: col-resize;
217 }
218 .simditor .simditor-body .simditor-table .simditor-resize-handle {
219 position: absolute;
220 left: 0;
221 top: 0;
222 width: 10px;
223 height: 100%;
224 cursor: col-resize;
225 }
226 .simditor .simditor-body pre {
227 /*min-height: 28px;*/
228 box-sizing: border-box;
229 -moz-box-sizing: border-box;
230 word-wrap: break-word !important;
231 white-space: pre-wrap !important;
232 }
233 .simditor .simditor-body img {
234 cursor: pointer;
235 }
236 .simditor .simditor-body img.selected {
237 box-shadow: 0 0 0 4px #cccccc;
238 }
239 .simditor .simditor-paste-bin {
240 position: fixed;
241 bottom: 10px;
242 right: 10px;
243 width: 1px;
244 height: 20px;
245 font-size: 1px;
246 line-height: 1px;
247 overflow: hidden;
248 padding: 0;
249 margin: 0;
250 opacity: 0;
251 -webkit-user-select: text;
252 }
253 .simditor .simditor-toolbar {
254 border-bottom: 1px solid #eeeeee;
255 background: #ffffff;
256 width: 100%;
257 }
258 .simditor .simditor-toolbar > ul {
259 margin: 0;
260 padding: 0 0 0 6px;
261 list-style: none;
262 }
263 .simditor .simditor-toolbar > ul > li {
264 position: relative;
265 display: inline-block;
266 font-size: 0;
267 }
268 .simditor .simditor-toolbar > ul > li > span.separator {
269 display: inline-block;
270 background: #cfcfcf;
271 width: 1px;
272 height: 18px;
273 margin: 11px 15px;
274 vertical-align: middle;
275 }
276 .simditor .simditor-toolbar > ul > li > .toolbar-item {
277 display: inline-block;
278 width: 46px;
279 height: 40px;
280 outline: none;
281 color: #333333;
282 font-size: 15px;
283 line-height: 40px;
284 vertical-align: middle;
285 text-align: center;
286 text-decoration: none;
287 }
288 .simditor .simditor-toolbar > ul > li > .toolbar-item span {
289 opacity: 0.6;
290 }
291 .simditor .simditor-toolbar > ul > li > .toolbar-item span.simditor-icon {
292 display: inline;
293 line-height: normal;
294 }
295 .simditor .simditor-toolbar > ul > li > .toolbar-item:hover span {
296 opacity: 1;
297 }
298 .simditor .simditor-toolbar > ul > li > .toolbar-item.active {
299 background: #eeeeee;
300 }
301 .simditor .simditor-toolbar > ul > li > .toolbar-item.active span {
302 opacity: 1;
303 }
304 .simditor .simditor-toolbar > ul > li > .toolbar-item.disabled {
305 cursor: default;
306 }
307 .simditor .simditor-toolbar > ul > li > .toolbar-item.disabled span {
308 opacity: 0.3;
309 }
310 .simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-title span:before {
311 content: "H";
312 font-size: 19px;
313 font-weight: bold;
314 font-family: 'Times New Roman';
315 }
316 .simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-title.active-h1 span:before {
317 content: 'H1';
318 font-size: 18px;
319 }
320 .simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-title.active-h2 span:before {
321 content: 'H2';
322 font-size: 18px;
323 }
324 .simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-title.active-h3 span:before {
325 content: 'H3';
326 font-size: 18px;
327 }
328 .simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-image {
329 position: relative;
330 overflow: hidden;
331 }
332 .simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-image > input[type=file] {
333 position: absolute;
334 right: 0px;
335 top: 0px;
336 opacity: 0;
337 font-size: 100px;
338 cursor: pointer;
339 }
340 .simditor .simditor-toolbar > ul > li.menu-on .toolbar-item {
341 position: relative;
342 z-index: 20;
343 background: #ffffff;
344 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
345 }
346 .simditor .simditor-toolbar > ul > li.menu-on .toolbar-item span {
347 opacity: 1;
348 }
349 .simditor .simditor-toolbar > ul > li.menu-on .toolbar-menu {
350 display: block;
351 }
352 .simditor .simditor-toolbar .toolbar-menu {
353 display: none;
354 position: absolute;
355 top: 40px;
356 left: 0;
357 z-index: 21;
358 background: #ffffff;
359 text-align: left;
360 box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
361 }
362 .simditor .simditor-toolbar .toolbar-menu:before {
363 content: '';
364 display: block;
365 width: 46px;
366 height: 4px;
367 background: #ffffff;
368 position: absolute;
369 top: -3px;
370 left: 0;
371 }
372 .simditor .simditor-toolbar .toolbar-menu ul {
373 min-width: 160px;
374 list-style: none;
375 margin: 0;
376 padding: 10px 1px;
377 }
378 .simditor .simditor-toolbar .toolbar-menu ul > li .menu-item {
379 display: block;
380 font-size: 16px;
381 line-height: 2em;
382 padding: 0 10px;
383 text-decoration: none;
384 color: #666666;
385 }
386 .simditor .simditor-toolbar .toolbar-menu ul > li .menu-item:hover {
387 background: #f6f6f6;
388 }
389 .simditor .simditor-toolbar .toolbar-menu ul > li .menu-item.menu-item-h1 {
390 font-size: 24px;
391 color: #333333;
392 }
393 .simditor .simditor-toolbar .toolbar-menu ul > li .menu-item.menu-item-h2 {
394 font-size: 22px;
395 color: #333333;
396 }
397 .simditor .simditor-toolbar .toolbar-menu ul > li .menu-item.menu-item-h3 {
398 font-size: 20px;
399 color: #333333;
400 }
401 .simditor .simditor-toolbar .toolbar-menu ul > li .menu-item.menu-item-h4 {
402 font-size: 18px;
403 color: #333333;
404 }
405 .simditor .simditor-toolbar .toolbar-menu ul > li .menu-item.menu-item-h5 {
406 font-size: 16px;
407 color: #333333;
408 }
409 .simditor .simditor-toolbar .toolbar-menu ul > li .separator {
410 display: block;
411 border-top: 1px solid #cccccc;
412 height: 0;
413 line-height: 0;
414 font-size: 0;
415 margin: 6px 0;
416 }
417 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color {
418 width: 96px;
419 }
420 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list {
421 height: 40px;
422 margin: 10px 6px 6px 10px;
423 padding: 0;
424 min-width: 0;
425 }
426 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li {
427 float: left;
428 margin: 0 4px 4px 0;
429 }
430 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color {
431 display: block;
432 width: 16px;
433 height: 16px;
434 background: #dfdfdf;
435 border-radius: 2px;
436 }
437 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color:hover {
438 opacity: 0.8;
439 }
440 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color.font-color-default {
441 background: #333333;
442 }
443 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-1 {
444 background: #E33737;
445 }
446 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-2 {
447 background: #e28b41;
448 }
449 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-3 {
450 background: #c8a732;
451 }
452 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-4 {
453 background: #209361;
454 }
455 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-5 {
456 background: #418caf;
457 }
458 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-6 {
459 background: #aa8773;
460 }
461 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-7 {
462 background: #999999;
463 }
464 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-create-table {
465 background: #ffffff;
466 padding: 1px;
467 }
468 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-create-table table {
469 border: none;
470 border-collapse: collapse;
471 border-spacing: 0;
472 table-layout: fixed;
473 }
474 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-create-table table td {
475 padding: 0;
476 cursor: pointer;
477 }
478 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-create-table table td:before {
479 width: 16px;
480 height: 16px;
481 border: 1px solid #ffffff;
482 background: #f3f3f3;
483 display: block;
484 content: "";
485 }
486 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-create-table table td.selected:before {
487 background: #cfcfcf;
488 }
489 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-edit-table {
490 display: none;
491 }
492 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-edit-table ul li {
493 white-space: nowrap;
494 }
495 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-image .menu-item-upload-image {
496 position: relative;
497 overflow: hidden;
498 }
499 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-image .menu-item-upload-image input[type=file] {
500 position: absolute;
501 right: 0px;
502 top: 0px;
503 opacity: 0;
504 font-size: 100px;
505 cursor: pointer;
506 }
507 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-alignment {
508 width: 100%;
509 }
510 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-alignment ul {
511 min-width: 100%;
512 }
513 .simditor .simditor-toolbar .toolbar-menu.toolbar-menu-alignment .menu-item {
514 text-align: center;
515 }
516 .simditor .simditor-popover {
517 display: none;
518 padding: 5px 8px 0;
519 background: #ffffff;
520 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
521 border-radius: 2px;
522 position: absolute;
523 z-index: 2;
524 }
525 .simditor .simditor-popover .settings-field {
526 margin: 0 0 5px 0;
527 font-size: 12px;
528 height: 25px;
529 line-height: 25px;
530 }
531 .simditor .simditor-popover .settings-field label {
532 display: inline-block;
533 margin: 0 5px 0 0;
534 }
535 .simditor .simditor-popover .settings-field input[type=text] {
536 display: inline-block;
537 width: 200px;
538 box-sizing: border-box;
539 font-size: 12px;
540 }
541 .simditor .simditor-popover .settings-field input[type=text].image-size {
542 width: 83px;
543 }
544 .simditor .simditor-popover .settings-field .times {
545 display: inline-block;
546 width: 26px;
547 font-size: 12px;
548 text-align: center;
549 }
550 .simditor .simditor-popover.link-popover .btn-unlink, .simditor .simditor-popover.image-popover .btn-upload, .simditor .simditor-popover.image-popover .btn-restore {
551 display: inline-block;
552 margin: 0 0 0 5px;
553 color: #333333;
554 font-size: 14px;
555 outline: 0;
556 }
557 .simditor .simditor-popover.link-popover .btn-unlink span, .simditor .simditor-popover.image-popover .btn-upload span, .simditor .simditor-popover.image-popover .btn-restore span {
558 opacity: 0.6;
559 }
560 .simditor .simditor-popover.link-popover .btn-unlink:hover span, .simditor .simditor-popover.image-popover .btn-upload:hover span, .simditor .simditor-popover.image-popover .btn-restore:hover span {
561 opacity: 1;
562 }
563 .simditor .simditor-popover.image-popover .btn-upload {
564 position: relative;
565 display: inline-block;
566 overflow: hidden;
567 vertical-align: middle;
568 }
569 .simditor .simditor-popover.image-popover .btn-upload input[type=file] {
570 position: absolute;
571 right: 0px;
572 top: 0px;
573 opacity: 0;
574 height: 100%;
575 width: 28px;
576 }
577 .simditor.simditor-mobile .simditor-wrapper.toolbar-floating .simditor-toolbar {
578 position: absolute;
579 top: 0;
580 z-index: 10;
581 box-shadow: 0 0 6px rgba(0, 0, 0, 0.1);
582 }
583
584 .simditor .simditor-body, .editor-style {
585 font-size: 16px;
586 font-family: arial, sans-serif;
587 line-height: 1.6;
588 color: #333;
589 outline: none;
590 word-wrap: break-word;
591 }
592 .simditor .simditor-body > :first-child, .editor-style > :first-child {
593 margin-top: 0 !important;
594 }
595 .simditor .simditor-body a, .editor-style a {
596 color: #4298BA;
597 text-decoration: none;
598 word-break: break-all;
599 }
600 .simditor .simditor-body a:visited, .editor-style a:visited {
601 color: #4298BA;
602 }
603 .simditor .simditor-body a:hover, .editor-style a:hover {
604 color: #0F769F;
605 }
606 .simditor .simditor-body a:active, .editor-style a:active {
607 color: #9E792E;
608 }
609 .simditor .simditor-body a:hover, .simditor .simditor-body a:active, .editor-style a:hover, .editor-style a:active {
610 outline: 0;
611 }
612 .simditor .simditor-body h1, .simditor .simditor-body h2, .simditor .simditor-body h3, .simditor .simditor-body h4, .simditor .simditor-body h5, .simditor .simditor-body h6, .editor-style h1, .editor-style h2, .editor-style h3, .editor-style h4, .editor-style h5, .editor-style h6 {
613 font-weight: normal;
614 margin: 40px 0 20px;
615 color: #000000;
616 }
617 .simditor .simditor-body h1, .editor-style h1 {
618 font-size: 24px;
619 }
620 .simditor .simditor-body h2, .editor-style h2 {
621 font-size: 22px;
622 }
623 .simditor .simditor-body h3, .editor-style h3 {
624 font-size: 20px;
625 }
626 .simditor .simditor-body h4, .editor-style h4 {
627 font-size: 18px;
628 }
629 .simditor .simditor-body h5, .editor-style h5 {
630 font-size: 16px;
631 }
632 .simditor .simditor-body h6, .editor-style h6 {
633 font-size: 16px;
634 }
635 .simditor .simditor-body p, .simditor .simditor-body div, .editor-style p, .editor-style div {
636 word-wrap: break-word;
637 margin: 0 0 15px 0;
638 color: #333;
639 word-wrap: break-word;
640 }
641 .simditor .simditor-body b, .simditor .simditor-body strong, .editor-style b, .editor-style strong {
642 font-weight: bold;
643 }
644 .simditor .simditor-body i, .simditor .simditor-body em, .editor-style i, .editor-style em {
645 font-style: italic;
646 }
647 .simditor .simditor-body u, .editor-style u {
648 text-decoration: underline;
649 }
650 .simditor .simditor-body strike, .simditor .simditor-body del, .editor-style strike, .editor-style del {
651 text-decoration: line-through;
652 }
653 .simditor .simditor-body ul, .simditor .simditor-body ol, .editor-style ul, .editor-style ol {
654 list-style: disc outside none;
655 margin: 15px 0;
656 padding: 0 0 0 40px;
657 line-height: 1.6;
658 }
659 .simditor .simditor-body ul ul, .simditor .simditor-body ul ol, .simditor .simditor-body ol ul, .simditor .simditor-body ol ol, .editor-style ul ul, .editor-style ul ol, .editor-style ol ul, .editor-style ol ol {
660 padding-left: 30px;
661 }
662 .simditor .simditor-body ul ul, .simditor .simditor-body ol ul, .editor-style ul ul, .editor-style ol ul {
663 list-style: circle outside none;
664 }
665 .simditor .simditor-body ul ul ul, .simditor .simditor-body ol ul ul, .editor-style ul ul ul, .editor-style ol ul ul {
666 list-style: square outside none;
667 }
668 .simditor .simditor-body ol, .editor-style ol {
669 list-style: decimal;
670 }
671 .simditor .simditor-body blockquote, .editor-style blockquote {
672 border-left: 6px solid #ddd;
673 padding: 5px 0 5px 10px;
674 margin: 15px 0 15px 15px;
675 }
676 .simditor .simditor-body blockquote > :first-child, .editor-style blockquote > :first-child {
677 margin-top: 0;
678 }
679 .simditor .simditor-body code, .editor-style code {
680 display: inline-block;
681 padding: 0 4px;
682 margin: 0 5px;
683 background: #eeeeee;
684 border-radius: 3px;
685 font-size: 13px;
686 font-family: 'monaco', 'Consolas', "Liberation Mono", Courier, monospace;
687 }
688 .simditor .simditor-body pre, .editor-style pre {
689 padding: 10px 5px 10px 10px;
690 margin: 15px 0;
691 display: block;
692 line-height: 18px;
693 background: #F0F0F0;
694 border-radius: 3px;
695 font-size: 13px;
696 font-family: 'monaco', 'Consolas', "Liberation Mono", Courier, monospace;
697 white-space: pre;
698 word-wrap: normal;
699 overflow-x: auto;
700 }
701 .simditor .simditor-body pre code, .editor-style pre code {
702 display: block;
703 padding: 0;
704 margin: 0;
705 background: none;
706 border-radius: 0;
707 }
708 .simditor .simditor-body hr, .editor-style hr {
709 display: block;
710 height: 0px;
711 border: 0;
712 border-top: 1px solid #ccc;
713 margin: 15px 0;
714 padding: 0;
715 }
716 .simditor .simditor-body table, .editor-style table {
717 width: 100%;
718 table-layout: fixed;
719 border-collapse: collapse;
720 border-spacing: 0;
721 margin: 15px 0;
722 }
723 .simditor .simditor-body table thead, .editor-style table thead {
724 background-color: #f9f9f9;
725 }
726 .simditor .simditor-body table td, .simditor .simditor-body table th, .editor-style table td, .editor-style table th {
727 min-width: 40px;
728 height: 30px;
729 border: 1px solid #ccc;
730 vertical-align: top;
731 padding: 2px 4px;
732 text-align: left;
733 box-sizing: border-box;
734 }
735 .simditor .simditor-body table td.active, .simditor .simditor-body table th.active, .editor-style table td.active, .editor-style table th.active {
736 background-color: #ffffee;
737 }
738 .simditor .simditor-body img, .editor-style img {
739 /*margin: 0 5px;*/
740 max-width: 100%;
741 vertical-align: middle;
742 }
1 <ion-view view-title="报告查询">
2 <ion-content scroll="false">
3 <div class="list">
4 <label class="item item-input item-stacked-label">
5 <span class="input-label">样品编号</span>
6 <input type="text" placeholder="11长度编号">
7 </label>
8 <label class="item item-input item-stacked-label">
9 <span class="input-label">企业授权码</span>
10 <input type="text" placeholder="企业独有">
11 </label>
12 </div>
13 <div class="padding">
14 <button class="button button-block button-positive">查询</button>
15 </div>
16 </ion-content>
17 </ion-view>
18
1 <ion-view view-title="{{category_name}}">
2 <ion-content>
3 <!-- <div class="list">
4 <label class="item item-input item-stacked-label">
5 <span class="input-label">企业名称</span>
6 <input type="text" placeholder="企业名称全拼">
7 </label>
8 <label class="item item-input item-stacked-label">
9 <span class="input-label">联系电话</span>
10 <input type="text" placeholder="手机号/座机号">
11 </label>
12 <label class="item item-input item-stacked-label">
13 <span class="input-label">检测内容</span>
14 <textarea name="" placeholder="描述一下需要检测的产品和检测的项目" rows="10"></textarea>
15 </label>
16 </div>
17 <div class="padding">
18 <button class="button button-block button-positive">提交</button>
19 </div> -->
20 <div class="post-detail padding" ng-bind-html="post.detail" ng-if="posts.length == 1"></div>
21 <ion-list ng-if="posts.length > 1">
22 <a class="item item-thumbnail-left" ng-repeat="post in posts" href="#/app/{{channel}}/{{category}}/{{post.flag}}">
23 <img ng-src="{{post.img}}">
24 <h2>{{post.title}}</h2>
25 <p>{{post.sub_detail}}</p>
26 </a>
27 </ion-list>
28 </ion-content>
29 </ion-view>
30
1 <ion-view view-title="{{category_object.name}}">
2 <ion-content>
3 <ion-list>
4 <ion-item ng-repeat="(k,v) in category_object.cate" href="#/app/{{channel}}/{{k}}">
5 {{v}}
6 </ion-item>
7 </ion-list>
8 </ion-content>
9 </ion-view>
1 <ion-view view-title="检测设备">
2 <ion-content>
3 <ion-gallery ion-gallery-items="items" ion-gallery-toggle="false"></ion-gallery>
4 </ion-content>
5 </ion-view>
1 <ion-view view-title="企业宣传片">
2 <ion-content>
3 <div class="mp4 padding">
4 <video width="1" height="1" webkit-playsinline x-webkit-airplay controls src="http://static.mpwang.cn/nuozheng/normz.mp4"></video>
5 <p>
6 山东诺正检测有限公司,成立于2014年11月,是潍坊市科技局重点招商引资项目。
7 </p>
8 <p>
9 诺正检测是在中国科学院沈阳应用生态研究所技术支持下成立的综合性检测公司,是通过山东省级资质认定及农业行业机构认证的第三方检验机构,主要从事食品、农产品、环境、饲料、肥料及水产养殖、畜牧产品、消防设施等领域的检验检测,以及相关技术咨询、培训、研发。
10 </p>
11 <p>
12 2015年12月19日,诺正检测与中国科学院沈阳应用生态研究所深入合作、强强联手,正式挂牌成立了中国科学院沈阳应用生态研究所农产品安全山东中心。中国科学院沈阳应用生态研究所是国家农产品安全与环境质量检测中心的核心成员单位;是国家绿色食品、有机食品、无公害农产品定点监测机构;是国家现代农业技术中心、绿色农业研究中心、食品安全风险评估技术研究平台。诺正检测布局食品检测行业,精耕潍坊,立足山东,面向全国,获得社会各界的一致认可和信赖。
13 </p>
14 <p>
15 中科院沈阳生态研究所是中国科学院的直属单位,是中科院国家知识创新工程试点单位,是我国重要的基础性科研机构。沈阳生态研究所农产品安全山东中心落户潍坊、“安家”奎文,既搭建了科技成果转化的平台,也架起了奎文与高等级科研院所合作沟通的桥梁,必将对潍坊市加强食品安全、做好人才工作、推进科技创新起到重要的引领和推动作用。中科院沈阳生态研究所农产品安全山东中心立足潍坊、辐射全省、面向全国,充分开发利用国内外资源,积极扩大业务范围,迅速发展壮大。同时,广泛引进中科院的科技人才和科研成果来潍坊创业发展,为潍坊市和奎文区的科技进步和经济社会发展作出更大贡献。
16 </p>
17 <p>
18 诺正检测旨在搭建全面、完善、系统的产品检测与认证技术服务平台,建立完善的检测质量保证体系,实现农产品及其加工产品从起点到终端的全程质量控制与检测。诺正检测所有产业模块和发展规划都将围绕为社会铸造安全保障、固化安全壁垒、营造健康通道。
19 </p>
20 <p>
21 诺正检测公司精心培养专业技术团队,长期派遣技术人才到中国科学院沈阳应用生态研究所实地交流和学习。诺正检测公司目前拥有各类人才30余人,其中高级职称6人,中级职称10人,初级职称10人。配备有专业实验室面积2000余平方米,引进美国、德国、日本等国家的高尖端进口检测仪器设备60余台,其中包括三重四级杆串联液质联用仪、气相色谱质谱联用仪、日立全自动氨基酸分析仪、极具中国特色的原子荧光光谱仪等代表了国际尖端水平的专业仪器,可以广泛应用于农林牧渔业、及食品、饲料、环保、电子、纺织品、石油化工、香精香料、医药等诸多行业和领域,提供农药残留测试、兽药残留测试、微生物测试、贵金属及微量元素测试等精细化检测服务。
22 </p>
23 <p>
24 独立公正,是诺正恪守的准则;国际认可,是诺正能力的保证;客户需求,是诺正关注的焦点;高质高效,是诺正不变的承诺。本着科学严谨、服务至上的理念,诺正检测不负众望,打造出高水平检测实验室。今后,诺正检测将始终遵循诚信、公正、科学、高效的八字方针,继续承担社会委托和政府委托检测任务,服务企业,全过程质量监控,努力把公司建成集检测技术服务、技术咨询、技术培训及技术开发为一体的国内和国际认可的综合检测服务平台。
25 </p>
26 <p>
27 “君以民为本,民以食为天,食以安为先”。食品安全是事关每个家庭、每个人的重大基本民生问题,它不仅直接关系到人类的健康生存,而且还严重影响着经济和社会的发展。食品安全工作是一个系统工程,从源头到终端,无论哪个环节失控都会对食品安全构成严重威胁。加强监管,提升食品、饲料、肥料、环境及消防设施等行业素质是实现食品安全形势持续稳定好转的根本基础,食品检测是实现食品安全的重要保障。
28 </p>
29 <p>
30 安全与健康,是人类社会共同倡导的理念,没有时代的隔阂,没有空间的局限。诺正检测心系民生,有担当、有能力为保障区域生态安全和可持续发展,实现人与自然的和谐提供科学基础、决策依据和关键技术,承载起促进社会和谐发展的历史使命。
31 </p>
32 </div>
33 </ion-content>
34 </ion-view>
35
1 <ion-view view-title="诺正检测">
2 <ion-content>
3 <ion-list>
4 <ion-item class="item-divider">检测项目</ion-item>
5 <ion-item class="item-body">
6 <img class="full-image" ng-src="/images/jcrange/nongchanpin.jpg">
7 <p>
8 农产品检测
9 </p>
10 </ion-item>
11 <ion-item class="item-body">
12 <img class="full-image" ng-src="/images/jcrange/xiaofangjiance.jpg">
13 <p>
14 消防检测
15 </p>
16 </ion-item>
17 <ion-item class="item-body">
18 <img class="full-image" ng-src="/images/jcrange/huanjing.jpg">
19 <p>
20 环境检测
21 </p>
22 </ion-item>
23 <ion-item class="item-divider">服务宗旨</ion-item>
24 <ion-item class="item-body">
25 <img class="full-image" ng-src="/images/jcrange/mubiao.jpg">
26 <div style="font-size:13px;">
27 <h5>质量方针</h5>
28 诚信、公正、科学、高效地保证质量第一。<br>
29 坚持秉公检验,保证良好的职业规范和职业道德。<br>
30 坚持信誉至上,保守秘密,确保客户权益。<br>
31 坚持科学管理,保证资源,切实执行规范程序。<br>
32 坚持高效服务,保证准确及时出具检验报告。<br>
33 坚持服务质量第一、体系运行质量第一。
34 <h5>质量目标</h5>
35 全年测试项目错误率不大于1‰。<br>
36 报告及时率不低于99%。<br>
37 客户投诉率不大于1%、投诉处理率100%。
38 </div>
39 </ion-item>
40 <ion-item class="item-divider">科学速检</ion-item>
41 <ion-item class="item-body">
42 <img class="full-image" ng-src="/images/jcrange/shangyang.jpg">
43 <div style="font-size:13px;">
44 中科院沈阳生态应用研究所是中国农产品检测标准的制定者, 也是国内农产品检测技术最前沿的团队。<br>
45 诺正检测与中科院沈阳生态应用研究所深入合作, 强强联手, 培养了大批国内顶尖的检测人员服务于诺正检测。并且公司购入大量进口的先进检测设备, 保证检测的权威, 公正, 科学性。
46 </div>
47 </ion-item>
48 <ion-item class="item-divider">服务承诺</ion-item>
49 <ion-item class="item-body">
50 <img class="full-image" ng-src="/images/jcrange/kexuegongzheng.jpg">
51 <div style="font-size:13px;">
52 本公司具有第三方实验室的地位,检测工作不受任何来自内、外部的不正当的行政干预、商业利润和其它方面压力的影响。不生产、不经营所检验的产品,不和被检测单位发生利益冲突。<br>
53 本公司严格遵守保密原则,保证不泄漏用户技术资料和检测结果。保证完善质量体系,提高检测水平和管理水平,在确保检验报告的真实和准确的前提下,使客户满意率达到100%。
54 </div>
55 </ion-item>
56 </ion-list>
57 </ion-content>
58 </ion-view>
1 <ion-modal-view>
2 <ion-header-bar>
3 <h1 class="title">Login</h1>
4 <div class="buttons">
5 <button class="button button-clear" ng-click="closeLogin()">Close</button>
6 </div>
7 </ion-header-bar>
8 <ion-content>
9 <form ng-submit="doLogin()">
10 <div class="list">
11 <label class="item item-input">
12 <span class="input-label">Username</span>
13 <input type="text" ng-model="loginData.username">
14 </label>
15 <label class="item item-input">
16 <span class="input-label">Password</span>
17 <input type="password" ng-model="loginData.password">
18 </label>
19 <label class="item">
20 <button class="button button-block button-positive" type="submit">Log in</button>
21 </label>
22 </div>
23 </form>
24 </ion-content>
25 </ion-modal-view>
1 <ion-side-menus enable-menu-with-back-views="false">
2 <ion-side-menu-content>
3 <ion-nav-bar class="bar-balanced">
4 <ion-nav-back-button></ion-nav-back-button>
5 <ion-nav-buttons side="left">
6 <button class="button button-icon button-clear ion-navicon" menu-toggle="left"></button>
7 </ion-nav-buttons>
8 </ion-nav-bar>
9 <ion-nav-view name="menuContent"></ion-nav-view>
10 </ion-side-menu-content>
11
12 <ion-side-menu side="left">
13 <ion-header-bar class="bar-balanced">
14 <h1 class="title">诺正检测</h1>
15 </ion-header-bar>
16 <ion-content scroll="false">
17 <ion-list>
18 <ion-item menu-close href="#/app/home">
19 诺正首页
20 </ion-item>
21 <ion-item menu-close href="#/app/{{key}}" ng-repeat="(key,val) in channels">
22 {{val.name}}
23 </ion-item>
24 <!-- <ion-item menu-close href="#/browse">
25 资源中心
26 </ion-item>
27 <ion-item menu-close href="#/playlists">
28 诺正动态
29 </ion-item>
30 <ion-item menu-close href="#/playlists">
31 诺正文化
32 </ion-item>
33 <ion-item menu-close href="#/playlists">
34 关于诺正
35 </ion-item>
36 <ion-item menu-close href="#/playlists">
37 招贤纳士
38 </ion-item> -->
39 </ion-list>
40 <div class="descption padding" style="position: absolute; bottom: 0; left: 0; right: 0;">
41 <p>Copyright © 2015-2016</p>
42 <p>山东诺正检测有限公司</p>
43 <p>版权所有 鲁ICP备15045188号</p>
44 </div>
45 </ion-content>
46 </ion-side-menu>
47 </ion-side-menus>
1 <ion-view view-title="{{post.title}}">
2 <ion-content>
3 <div class="post-detail padding" ng-bind-html="post.detail"></div>
4 </ion-content>
5 </ion-view>
1 <ion-view view-title="网上送检">
2 <ion-content scroll="false">
3 <div class="list">
4 <label class="item item-input item-stacked-label">
5 <span class="input-label">企业名称</span>
6 <input type="text" placeholder="企业名称全拼">
7 </label>
8 <label class="item item-input item-stacked-label">
9 <span class="input-label">联系电话</span>
10 <input type="text" placeholder="手机号/座机号">
11 </label>
12 <label class="item item-input item-stacked-label">
13 <span class="input-label">检测内容</span>
14 <textarea name="" placeholder="描述一下需要检测的产品和检测的项目" rows="10"></textarea>
15 </label>
16 </div>
17 <div class="padding">
18 <button class="button button-block button-positive">提交</button>
19 </div>
20 </ion-content>
21 </ion-view>
22
No preview for this file type
1 #!/usr/bin/env ruby
2 # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
4 APP_PATH = File.expand_path('../../config/application', __FILE__)
5 require File.expand_path('../../config/boot', __FILE__)
6 require 'rails/commands'
File mode changed
File mode changed
File mode changed
1 require 'test_helper'
2 require 'rails/performance_test_help'
3
4 class BrowsingTest < ActionDispatch::PerformanceTest
5 # Refer to the documentation for all available options
6 # self.profile_options = { :runs => 5, :metrics => [:wall_time, :memory]
7 # :output => 'tmp/performance', :formats => [:flat] }
8
9 def test_homepage
10 get '/'
11 end
12 end
1 ENV["RAILS_ENV"] = "test"
2 require File.expand_path('../../config/environment', __FILE__)
3 require 'rails/test_help'
4
5 class ActiveSupport::TestCase
6 # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
7 #
8 # Note: You'll currently still have to declare fixtures explicitly in integration tests
9 # -- they do not yet inherit this setting
10 fixtures :all
11
12 # Add more helper methods to be used by all tests here...
13 end
File mode changed
File mode changed