aboutsummaryrefslogtreecommitdiff
path: root/.themes
diff options
context:
space:
mode:
Diffstat (limited to '.themes')
-rw-r--r--.themes/classic/sass/base/_theme.scss1
-rw-r--r--.themes/classic/sass/base/_typography.scss5
-rw-r--r--.themes/classic/sass/partials/_sidebar.scss1
-rw-r--r--.themes/classic/sass/partials/sidebar/_twitter.scss34
-rw-r--r--.themes/classic/source/_includes/asides/github.html2
-rw-r--r--.themes/classic/source/_includes/asides/twitter.html19
-rw-r--r--.themes/classic/source/_includes/head.html7
-rw-r--r--.themes/classic/source/javascripts/ender.js45
-rw-r--r--.themes/classic/source/javascripts/libs/ender.js3256
-rw-r--r--.themes/classic/source/javascripts/libs/jquery.min.js5
-rw-r--r--.themes/classic/source/javascripts/modernizr-2.0.js8
-rw-r--r--.themes/classic/source/javascripts/octopress.js7
12 files changed, 21 insertions, 3369 deletions
diff --git a/.themes/classic/sass/base/_theme.scss b/.themes/classic/sass/base/_theme.scss
index 9a50a8b4..1a43a03d 100644
--- a/.themes/classic/sass/base/_theme.scss
+++ b/.themes/classic/sass/base/_theme.scss
@@ -44,7 +44,6 @@ $sidebar-border: desaturate(darken($sidebar-bg, 7), 10) !default;
$sidebar-border-hover: darken($sidebar-bg, 7) !default;
$sidebar-link-color-subdued: lighten($sidebar-color, 20) !default;
$sidebar-link-color-subdued-hover: $sidebar-link-color-hover !default;
-$twitter-status-link: lighten($sidebar-link-color-subdued, 15) !default;
$footer-color: #888 !default;
$footer-bg: #ccc !default;
diff --git a/.themes/classic/sass/base/_typography.scss b/.themes/classic/sass/base/_typography.scss
index e9b6b19a..85256f0b 100644
--- a/.themes/classic/sass/base/_typography.scss
+++ b/.themes/classic/sass/base/_typography.scss
@@ -62,7 +62,8 @@ h5, section h4, section section h3 {
h6, section h5, section section h4, section section section h3 {
font-size: .8em;
}
-p, blockquote, ul, ol { margin-bottom: 1.5em; }
+
+p, article blockquote, ul, ol { margin-bottom: 1.5em; }
ul { list-style-type: disc;
ul { list-style-type: circle; margin-bottom: 0px;
@@ -106,7 +107,7 @@ small { font-size: .8em; }
big { font-size: 1.2em; }
-blockquote {
+article blockquote {
$bq-margin: 1.2em;
font-style: italic;
position: relative;
diff --git a/.themes/classic/sass/partials/_sidebar.scss b/.themes/classic/sass/partials/_sidebar.scss
index eec540ba..cd8c1ca2 100644
--- a/.themes/classic/sass/partials/_sidebar.scss
+++ b/.themes/classic/sass/partials/_sidebar.scss
@@ -1,5 +1,4 @@
@import "sidebar/base";
-@import "sidebar/twitter";
@import "sidebar/googleplus";
@import "sidebar/pinboard";
@import "sidebar/delicious";
diff --git a/.themes/classic/sass/partials/sidebar/_twitter.scss b/.themes/classic/sass/partials/sidebar/_twitter.scss
deleted file mode 100644
index dfd49b55..00000000
--- a/.themes/classic/sass/partials/sidebar/_twitter.scss
+++ /dev/null
@@ -1,34 +0,0 @@
-#tweets {
- .loading {
- background: inline-image('bird_32_gray.png') no-repeat center .5em;
- color: darken($sidebar-bg, 18);
- text-shadow: $main-bg 0 1px;
- text-align: center;
- padding: 2.5em 0 .5em;
- &.error {
- background: inline-image('bird_32_gray_fail.png') no-repeat center .5em;
- }
- }
- p {
- position: relative;
- padding-right: 1em;
- }
- a[href*=status]:first-child {
- color: $twitter-status-link;
- float: right;
- padding: 0 0 .1em 1em;
- position: relative; right: -1.3em;
- text-shadow: #fff 0 1px;
- font-size: .7em;
- span { font-size: 1.5em; }
- text-decoration: none;
- &:hover {
- color: $sidebar-link-color-subdued-hover;
- text-decoration: none;
- }
- }
- a[href*='twitter.com/search']{
- @extend .aside-alt-link;
- @include hover-link;
- }
-}
diff --git a/.themes/classic/source/_includes/asides/github.html b/.themes/classic/source/_includes/asides/github.html
index cb267f09..b0bf9596 100644
--- a/.themes/classic/source/_includes/asides/github.html
+++ b/.themes/classic/source/_includes/asides/github.html
@@ -8,7 +8,7 @@
<a href="https://github.com/{{site.github_user}}">@{{site.github_user}}</a> on GitHub
{% endif %}
<script type="text/javascript">
- $.domReady(function(){
+ $(document).ready(function(){
if (!window.jXHR){
var jxhr = document.createElement('script');
jxhr.type = 'text/javascript';
diff --git a/.themes/classic/source/_includes/asides/twitter.html b/.themes/classic/source/_includes/asides/twitter.html
deleted file mode 100644
index bab5de47..00000000
--- a/.themes/classic/source/_includes/asides/twitter.html
+++ /dev/null
@@ -1,19 +0,0 @@
-{% if site.twitter_user %}
-<section>
- <h1>Latest Tweets</h1>
- <ul id="tweets">
- <li class="loading">Status updating...</li>
- </ul>
- <script type="text/javascript">
- $.domReady(function(){
- getTwitterFeed("{{site.twitter_user}}", {{site.twitter_tweet_count}}, {{site.twitter_show_replies}});
- });
- </script>
- <script src="{{ root_url }}/javascripts/twitter.js" type="text/javascript"> </script>
- {% if site.twitter_follow_button %}
- <a href="http://twitter.com/{{ site.twitter_user }}" class="twitter-follow-button" data-show-count="{{ site.twitter_show_follower_count }}">Follow @{{ site.twitter_user }}</a>
- {% else %}
- <p>Follow <a href="http://twitter.com/{{site.twitter_user}}">@{{ site.twitter_user }}</a></p>
- {% endif %}
-</section>
-{% endif %}
diff --git a/.themes/classic/source/_includes/head.html b/.themes/classic/source/_includes/head.html
index 8de6679f..7a727b27 100644
--- a/.themes/classic/source/_includes/head.html
+++ b/.themes/classic/source/_includes/head.html
@@ -16,14 +16,15 @@
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1">
- {% capture canonical %}{{ site.url }}{% if site.permalink contains '.html' %}{{ page.url }}{% else %}{% if page.url contains site.category_dir %}/{% endif %}{{ page.url | remove:'index.html' }}{% endif %}{% endcapture %}
+ {% capture canonical %}{{ site.url }}{% if site.permalink contains '.html' %}{{ page.url }}{% else %}{{ page.url | remove:'index.html' | strip_slash }}{% endif %}{% endcapture %}
<link rel="canonical" href="{{ canonical }}">
<link href="{{ root_url }}/favicon.png" rel="icon">
<link href="{{ root_url }}/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css">
<link href="{{ site.subscribe_rss }}" rel="alternate" title="{{site.title}}" type="application/atom+xml">
- {% include custom/head.html %}
<script src="{{ root_url }}/javascripts/modernizr-2.0.js"></script>
- <script src="{{ root_url }}/javascripts/ender.js"></script>
+ <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
+ <script>!window.jQuery && document.write(unescape('%3Cscript src="./javascripts/lib/jquery.min.js"%3E%3C/script%3E'))</script>
<script src="{{ root_url }}/javascripts/octopress.js" type="text/javascript"></script>
+ {% include custom/head.html %}
{% include google_analytics.html %}
</head>
diff --git a/.themes/classic/source/javascripts/ender.js b/.themes/classic/source/javascripts/ender.js
deleted file mode 100644
index 6d9c66ec..00000000
--- a/.themes/classic/source/javascripts/ender.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/*!
- * =============================================================
- * Ender: open module JavaScript framework (https://ender.no.de)
- * Build: ender build jeesh reqwest
- * =============================================================
- */
-
-
-/*!
- * Ender: open module JavaScript framework (client-lib)
- * copyright Dustin Diaz & Jacob Thornton 2011-2012 (@ded @fat)
- * http://ender.jit.su
- * License MIT
- */
-(function(context){function require(identifier){var module=modules["$"+identifier]||window[identifier];if(!module)throw new Error("Ender Error: Requested module '"+identifier+"' has not been defined.");return module}function provide(name,what){return modules["$"+name]=what}function aug(o,o2){for(var k in o2)k!="noConflict"&&k!="_VERSION"&&(o[k]=o2[k]);return o}function Ender(s,r){var elements,i;this.selector=s;if(typeof s=="undefined"){elements=[];this.selector=""}else typeof s=="string"||s.nodeName||s.length&&"item"in s||s==window?elements=ender._select(s,r):elements=isFinite(s.length)?s:[s];this.length=elements.length;for(i=this.length;i--;)this[i]=elements[i]}function ender(s,r){return new Ender(s,r)}context.global=context;var modules={},old=context.$,oldEnder=context.ender,oldRequire=context.require,oldProvide=context.provide;context.provide=provide;context.require=require;Ender.prototype.forEach=function(fn,opt_scope){var i,l;for(i=0,l=this.length;i<l;++i)i in this&&fn.call(opt_scope||this[i],this[i],i,this);return this};Ender.prototype.$=ender;ender._VERSION="0.4.3-dev";ender.fn=Ender.prototype;ender.ender=function(o,chain){aug(chain?Ender.prototype:ender,o)};ender._select=function(s,r){return typeof s=="string"?(r||document).querySelectorAll(s):s.nodeName?[s]:s};ender.noConflict=function(callback){context.$=old;if(callback){context.provide=oldProvide;context.require=oldRequire;context.ender=oldEnder;typeof callback=="function"&&callback(require,provide,this)}return this};typeof module!="undefined"&&module.exports&&(module.exports=ender);context.ender=context.$=ender}(this));(function(){var module={exports:{}},exports=module.exports;
-/*!
- * Reqwest! A general purpose XHR connection manager
- * (c) Dustin Diaz 2012
- * https://github.com/ded/reqwest
- * license MIT
- */
-;!function(name,definition){typeof module!="undefined"?module.exports=definition():typeof define=="function"&&define.amd?define(definition):this[name]=definition()}("reqwest",function(){function handleReadyState(o,success,error){return function(){o&&o[readyState]==4&&(twoHundo.test(o.status)?success(o):error(o))}}function setHeaders(http,o){var headers=o.headers||{},h;headers.Accept=headers.Accept||defaultHeaders.accept[o.type]||defaultHeaders.accept["*"];!o.crossOrigin&&!headers[requestedWith]&&(headers[requestedWith]=defaultHeaders.requestedWith);headers[contentType]||(headers[contentType]=o.contentType||defaultHeaders.contentType);for(h in headers)headers.hasOwnProperty(h)&&http.setRequestHeader(h,headers[h])}function setCredentials(http,o){typeof o.withCredentials!="undefined"&&typeof http.withCredentials!="undefined"&&(http.withCredentials=!!o.withCredentials)}function generalCallback(data){lastValue=data}function urlappend(url,s){return url+(/\?/.test(url)?"&":"?")+s}function handleJsonp(o,fn,err,url){var reqId=uniqid++,cbkey=o.jsonpCallback||"callback",cbval=o.jsonpCallbackName||reqwest.getcallbackPrefix(reqId),cbreg=new RegExp("((^|\\?|&)"+cbkey+")=([^&]+)"),match=url.match(cbreg),script=doc.createElement("script"),loaded=0;match?match[3]==="?"?url=url.replace(cbreg,"$1="+cbval):cbval=match[3]:url=urlappend(url,cbkey+"="+cbval);win[cbval]=generalCallback;script.type="text/javascript";script.src=url;script.async=!0;if(typeof script.onreadystatechange!="undefined"){script.event="onclick";script.htmlFor=script.id="_reqwest_"+reqId}script.onload=script.onreadystatechange=function(){if(script[readyState]&&script[readyState]!=="complete"&&script[readyState]!=="loaded"||loaded)return!1;script.onload=script.onreadystatechange=null;script.onclick&&script.onclick();o.success&&o.success(lastValue);lastValue=undefined;head.removeChild(script);loaded=1};head.appendChild(script)}function getRequest(o,fn,err){var method=(o.method||"GET").toUpperCase(),url=typeof o=="string"?o:o.url,data=o.processData!==!1&&o.data&&typeof o.data!="string"?reqwest.toQueryString(o.data):o.data||null,http;if((o.type=="jsonp"||method=="GET")&&data){url=urlappend(url,data);data=null}if(o.type=="jsonp")return handleJsonp(o,fn,err,url);http=xhr();http.open(method,url,!0);setHeaders(http,o);setCredentials(http,o);http.onreadystatechange=handleReadyState(http,fn,err);o.before&&o.before(http);http.send(data);return http}function Reqwest(o,fn){this.o=o;this.fn=fn;init.apply(this,arguments)}function setType(url){var m=url.match(/\.(json|jsonp|html|xml)(\?|$)/);return m?m[1]:"js"}function init(o,fn){function complete(resp){o.timeout&&clearTimeout(self.timeout);self.timeout=null;while(self._completeHandlers.length>0)self._completeHandlers.shift()(resp)}function success(resp){var r=resp.responseText;if(r)switch(type){case"json":try{resp=win.JSON?win.JSON.parse(r):eval("("+r+")")}catch(err){return error(resp,"Could not parse JSON in response",err)}break;case"js":resp=eval(r);break;case"html":resp=r;break;case"xml":resp=resp.responseXML}self._responseArgs.resp=resp;self._fulfilled=!0;fn(resp);while(self._fulfillmentHandlers.length>0)self._fulfillmentHandlers.shift()(resp);complete(resp)}function error(resp,msg,t){self._responseArgs.resp=resp;self._responseArgs.msg=msg;self._responseArgs.t=t;self._erred=!0;while(self._errorHandlers.length>0)self._errorHandlers.shift()(resp,msg,t);complete(resp)}this.url=typeof o=="string"?o:o.url;this.timeout=null;this._fulfilled=!1;this._fulfillmentHandlers=[];this._errorHandlers=[];this._completeHandlers=[];this._erred=!1;this._responseArgs={};var self=this,type=o.type||setType(this.url);fn=fn||function(){};o.timeout&&(this.timeout=setTimeout(function(){self.abort()},o.timeout));o.success&&this._fulfillmentHandlers.push(function(){o.success.apply(o,arguments)});o.error&&this._errorHandlers.push(function(){o.error.apply(o,arguments)});o.complete&&this._completeHandlers.push(function(){o.complete.apply(o,arguments)});this.request=getRequest(o,success,error)}function reqwest(o,fn){return new Reqwest(o,fn)}function normalize(s){return s?s.replace(/\r?\n/g,"\r\n"):""}function serial(el,cb){var n=el.name,t=el.tagName.toLowerCase(),optCb=function(o){o&&!o.disabled&&cb(n,normalize(o.attributes.value&&o.attributes.value.specified?o.value:o.text))};if(el.disabled||!n)return;switch(t){case"input":if(!/reset|button|image|file/i.test(el.type)){var ch=/checkbox/i.test(el.type),ra=/radio/i.test(el.type),val=el.value;(!ch&&!ra||el.checked)&&cb(n,normalize(ch&&val===""?"on":val))}break;case"textarea":cb(n,normalize(el.value));break;case"select":if(el.type.toLowerCase()==="select-one")optCb(el.selectedIndex>=0?el.options[el.selectedIndex]:null);else for(var i=0;el.length&&i<el.length;i++)el.options[i].selected&&optCb(el.options[i])}}function eachFormElement(){var cb=this,e,i,j,serializeSubtags=function(e,tags){for(var i=0;i<tags.length;i++){var fa=e[byTag](tags[i]);for(j=0;j<fa.length;j++)serial(fa[j],cb)}};for(i=0;i<arguments.length;i++){e=arguments[i];/input|select|textarea/i.test(e.tagName)&&serial(e,cb);serializeSubtags(e,["input","select","textarea"])}}function serializeQueryString(){return reqwest.toQueryString(reqwest.serializeArray.apply(null,arguments))}function serializeHash(){var hash={};eachFormElement.apply(function(name,value){if(name in hash){hash[name]&&!isArray(hash[name])&&(hash[name]=[hash[name]]);hash[name].push(value)}else hash[name]=value},arguments);return hash}var win=window,doc=document,twoHundo=/^20\d$/,byTag="getElementsByTagName",readyState="readyState",contentType="Content-Type",requestedWith="X-Requested-With",head=doc[byTag]("head")[0],uniqid=0,callbackPrefix="reqwest_"+ +(new Date),lastValue,xmlHttpRequest="XMLHttpRequest",isArray=typeof Array.isArray=="function"?Array.isArray:function(a){return a instanceof Array},defaultHeaders={contentType:"application/x-www-form-urlencoded",requestedWith:xmlHttpRequest,accept:{"*":"text/javascript, text/html, application/xml, text/xml, */*",xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript",js:"application/javascript, text/javascript"}},xhr=win[xmlHttpRequest]?function(){return new XMLHttpRequest}:function(){return new ActiveXObject("Microsoft.XMLHTTP")};Reqwest.prototype={abort:function(){this.request.abort()},retry:function(){init.call(this,this.o,this.fn)},then:function(success,fail){if(this._fulfilled)success(this._responseArgs.resp);else if(this._erred)fail(this._responseArgs.resp,this._responseArgs.msg,this._responseArgs.t);else{this._fulfillmentHandlers.push(success);this._errorHandlers.push(fail)}return this},always:function(fn){this._fulfilled||this._erred?fn(this._responseArgs.resp):this._completeHandlers.push(fn);return this},fail:function(fn){this._erred?fn(this._responseArgs.resp,this._responseArgs.msg,this._responseArgs.t):this._errorHandlers.push(fn);return this}};reqwest.serializeArray=function(){var arr=[];eachFormElement.apply(function(name,value){arr.push({name:name,value:value})},arguments);return arr};reqwest.serialize=function(){if(arguments.length===0)return"";var opt,fn,args=Array.prototype.slice.call(arguments,0);opt=args.pop();opt&&opt.nodeType&&args.push(opt)&&(opt=null);opt&&(opt=opt.type);opt=="map"?fn=serializeHash:opt=="array"?fn=reqwest.serializeArray:fn=serializeQueryString;return fn.apply(null,args)};reqwest.toQueryString=function(o){var qs="",i,enc=encodeURIComponent,push=function(k,v){qs+=enc(k)+"="+enc(v)+"&"};if(isArray(o))for(i=0;o&&i<o.length;i++)push(o[i].name,o[i].value);else for(var k in o){if(!Object.hasOwnProperty.call(o,k))continue;var v=o[k];if(isArray(v))for(i=0;i<v.length;i++)push(k,v[i]);else push(k,o[k])}return qs.replace(/&$/,"").replace(/%20/g,"+")};reqwest.getcallbackPrefix=function(reqId){return callbackPrefix};reqwest.compat=function(o,fn){if(o){o.type&&(o.method=o.type)&&delete o.type;o.dataType&&(o.type=o.dataType);o.jsonpCallback&&(o.jsonpCallbackName=o.jsonpCallback)&&delete o.jsonpCallback;o.jsonp&&(o.jsonpCallback=o.jsonp)}return new Reqwest(o,fn)};return reqwest});provide("reqwest",module.exports);!function($){var r=require("reqwest"),integrate=function(method){return function(){var args=Array.prototype.slice.call(arguments,0),i=this&&this.length||0;while(i--)args.unshift(this[i]);return r[method].apply(null,args)}},s=integrate("serialize"),sa=integrate("serializeArray");$.ender({ajax:r,serialize:r.serialize,serializeArray:r.serializeArray,toQueryString:r.toQueryString});$.ender({serialize:s,serializeArray:sa},!0)}(ender)})();(function(){var module={exports:{}},exports=module.exports;
-/*!
- * Bean - copyright (c) Jacob Thornton 2011-2012
- * https://github.com/fat/bean
- * MIT license
- */
-;!function(name,context,definition){typeof module!="undefined"&&module.exports?module.exports=definition(name,context):typeof define=="function"&&typeof define.amd=="object"?define(definition):context[name]=definition(name,context)}("bean",this,function(name,context){var win=window,old=context[name],namespaceRegex=/[^\.]*(?=\..*)\.|.*/,nameRegex=/\..*/,addEvent="addEventListener",removeEvent="removeEventListener",doc=document||{},root=doc.documentElement||{},W3C_MODEL=root[addEvent],eventSupport=W3C_MODEL?addEvent:"attachEvent",ONE={},slice=Array.prototype.slice,str2arr=function(s,d){return s.split(d||" ")},isString=function(o){return typeof o=="string"},isFunction=function(o){return typeof o=="function"},standardNativeEvents="click dblclick mouseup mousedown contextmenu mousewheel mousemultiwheel DOMMouseScroll mouseover mouseout mousemove selectstart selectend keydown keypress keyup orientationchange focus blur change reset select submit load unload beforeunload resize move DOMContentLoaded readystatechange message error abort scroll ",w3cNativeEvents="show input invalid touchstart touchmove touchend touchcancel gesturestart gesturechange gestureend textinputreadystatechange pageshow pagehide popstate hashchange offline online afterprint beforeprint dragstart dragenter dragover dragleave drag drop dragend loadstart progress suspend emptied stalled loadmetadata loadeddata canplay canplaythrough playing waiting seeking seeked ended durationchange timeupdate play pause ratechange volumechange cuechange checking noupdate downloading cached updateready obsolete ",nativeEvents=function(hash,events,i){for(i=0;i<events.length;i++)events[i]&&(hash[events[i]]=1);return hash}({},str2arr(standardNativeEvents+(W3C_MODEL?w3cNativeEvents:""))),customEvents=function(){var isAncestor="compareDocumentPosition"in root?function(element,container){return container.compareDocumentPosition&&(container.compareDocumentPosition(element)&16)===16}:"contains"in root?function(element,container){container=container.nodeType===9||container===window?root:container;return container!==element&&container.contains(element)}:function(element,container){while(element=element.parentNode)if(element===container)return 1;return 0},check=function(event){var related=event.relatedTarget;return related?related!==this&&related.prefix!=="xul"&&!/document/.test(this.toString())&&!isAncestor(related,this):related==null};return{mouseenter:{base:"mouseover",condition:check},mouseleave:{base:"mouseout",condition:check},mousewheel:{base:/Firefox/.test(navigator.userAgent)?"DOMMouseScroll":"mousewheel"}}}(),Event=function(){var commonProps=str2arr("altKey attrChange attrName bubbles cancelable ctrlKey currentTarget detail eventPhase getModifierState isTrusted metaKey relatedNode relatedTarget shiftKey srcElement target timeStamp type view which propertyName"),mouseProps=commonProps.concat(str2arr("button buttons clientX clientY dataTransfer fromElement offsetX offsetY pageX pageY screenX screenY toElement")),mouseWheelProps=mouseProps.concat(str2arr("wheelDelta wheelDeltaX wheelDeltaY wheelDeltaZ axis")),keyProps=commonProps.concat(str2arr("char charCode key keyCode keyIdentifier keyLocation location")),textProps=commonProps.concat(str2arr("data")),touchProps=commonProps.concat(str2arr("touches targetTouches changedTouches scale rotation")),messageProps=commonProps.concat(str2arr("data origin source")),stateProps=commonProps.concat(str2arr("state")),overOutRegex=/over|out/,typeFixers=[{reg:/key/i,fix:function(event,newEvent){newEvent.keyCode=event.keyCode||event.which;return keyProps}},{reg:/click|mouse(?!(.*wheel|scroll))|menu|drag|drop/i,fix:function(event,newEvent,type){newEvent.rightClick=event.which===3||event.button===2;newEvent.pos={x:0,y:0};if(event.pageX||event.pageY){newEvent.clientX=event.pageX;newEvent.clientY=event.pageY}else if(event.clientX||event.clientY){newEvent.clientX=event.clientX+doc.body.scrollLeft+root.scrollLeft;newEvent.clientY=event.clientY+doc.body.scrollTop+root.scrollTop}overOutRegex.test(type)&&(newEvent.relatedTarget=event.relatedTarget||event[(type=="mouseover"?"from":"to")+"Element"]);return mouseProps}},{reg:/mouse.*(wheel|scroll)/i,fix:function(){return mouseWheelProps}},{reg:/^text/i,fix:function(){return textProps}},{reg:/^touch|^gesture/i,fix:function(){return touchProps}},{reg:/^message$/i,fix:function(){return messageProps}},{reg:/^popstate$/i,fix:function(){return stateProps}},{reg:/.*/,fix:function(){return commonProps}}],typeFixerMap={},Event=function(event,element,isNative){if(!arguments.length)return;event=event||((element.ownerDocument||element.document||element).parentWindow||win).event;this.originalEvent=event;this.isNative=isNative;this.isBean=!0;if(!event)return;var type=event.type,target=event.target||event.srcElement,i,l,p,props,fixer;this.target=target&&target.nodeType===3?target.parentNode:target;if(isNative){fixer=typeFixerMap[type];if(!fixer)for(i=0,l=typeFixers.length;i<l;i++)if(typeFixers[i].reg.test(type)){typeFixerMap[type]=fixer=typeFixers[i].fix;break}props=fixer(event,this,type);for(i=props.length;i--;)!((p=props[i])in this)&&p in event&&(this[p]=event[p])}};Event.prototype.preventDefault=function(){this.originalEvent.preventDefault?this.originalEvent.preventDefault():this.originalEvent.returnValue=!1};Event.prototype.stopPropagation=function(){this.originalEvent.stopPropagation?this.originalEvent.stopPropagation():this.originalEvent.cancelBubble=!0};Event.prototype.stop=function(){this.preventDefault();this.stopPropagation();this.stopped=!0};Event.prototype.stopImmediatePropagation=function(){this.originalEvent.stopImmediatePropagation&&this.originalEvent.stopImmediatePropagation();this.isImmediatePropagationStopped=function(){return!0}};Event.prototype.isImmediatePropagationStopped=function(){return this.originalEvent.isImmediatePropagationStopped&&this.originalEvent.isImmediatePropagationStopped()};Event.prototype.clone=function(currentTarget){var ne=new Event(this,this.element,this.isNative);ne.currentTarget=currentTarget;return ne};return Event}(),targetElement=function(element,isNative){return!W3C_MODEL&&!isNative&&(element===doc||element===win)?root:element},RegEntry=function(){var wrappedHandler=function(element,fn,condition,args){var call=function(event,eargs){return fn.apply(element,args?slice.call(eargs,event?0:1).concat(args):eargs)},findTarget=function(event,eventElement){return fn.__beanDel?fn.__beanDel.ft(event.target,element):eventElement},handler=condition?function(event){var target=findTarget(event,this);if(condition.apply(target,arguments)){event&&(event.currentTarget=target);return call(event,arguments)}}:function(event){fn.__beanDel&&(event=event.clone(findTarget(event)));return call(event,arguments)};handler.__beanDel=fn.__beanDel;return handler},RegEntry=function(element,type,handler,original,namespaces,args,root){var customType=customEvents[type],isNative;type=="unload"&&(handler=once(removeListener,element,type,handler,original));if(customType){customType.condition&&(handler=wrappedHandler(element,handler,customType.condition,args));type=customType.base||type}this.isNative=isNative=nativeEvents[type]&&!!element[eventSupport];this.customType=!W3C_MODEL&&!isNative&&type;this.element=element;this.type=type;this.original=original;this.namespaces=namespaces;this.eventType=W3C_MODEL||isNative?type:"propertychange";this.target=targetElement(element,isNative);this[eventSupport]=!!this.target[eventSupport];this.root=root;this.handler=wrappedHandler(element,handler,null,args)};RegEntry.prototype.inNamespaces=function(checkNamespaces){var i,j,c=0;if(!checkNamespaces)return!0;if(!this.namespaces)return!1;for(i=checkNamespaces.length;i--;)for(j=this.namespaces.length;j--;)checkNamespaces[i]==this.namespaces[j]&&c++;return checkNamespaces.length===c};RegEntry.prototype.matches=function(checkElement,checkOriginal,checkHandler){return this.element===checkElement&&(!checkOriginal||this.original===checkOriginal)&&(!checkHandler||this.handler===checkHandler)};return RegEntry}(),registry=function(){var map={},forAll=function(element,type,original,handler,root,fn){var pfx=root?"r":"$";if(!type||type=="*")for(var t in map)t.charAt(0)==pfx&&forAll(element,t.substr(1),original,handler,root,fn);else{var i=0,l,list=map[pfx+type],all=element=="*";if(!list)return;for(l=list.length;i<l;i++)if((all||list[i].matches(element,original,handler))&&!fn(list[i],list,i,type))return}},has=function(element,type,original,root){var i,list=map[(root?"r":"$")+type];if(list)for(i=list.length;i--;)if(!list[i].root&&list[i].matches(element,original,null))return!0;return!1},get=function(element,type,original,root){var entries=[];forAll(element,type,original,null,root,function(entry){return entries.push(entry)});return entries},put=function(entry){var has=!entry.root&&!this.has(entry.element,entry.type,null,!1),key=(entry.root?"r":"$")+entry.type;(map[key]||(map[key]=[])).push(entry);return has},del=function(entry){forAll(entry.element,entry.type,null,entry.handler,entry.root,function(entry,list,i){list.splice(i,1);entry.removed=!0;list.length===0&&delete map[(entry.root?"r":"$")+entry.type];return!1})},entries=function(){var t,entries=[];for(t in map)t.charAt(0)=="$"&&(entries=entries.concat(map[t]));return entries};return{has:has,get:get,put:put,del:del,entries:entries}}(),selectorEngine,setSelectorEngine=function(e){arguments.length?selectorEngine=e:selectorEngine=doc.querySelectorAll?function(s,r){return r.querySelectorAll(s)}:function(){throw new Error("Bean: No selector engine installed")}},rootListener=function(event,type){if(!W3C_MODEL&&type&&event&&event.propertyName!="_on"+type)return;var listeners=registry.get(this,type||event.type,null,!1),l=listeners.length,i=0;event=new Event(event,this,!0);type&&(event.type=type);for(;i<l&&!event.isImmediatePropagationStopped();i++)listeners[i].removed||listeners[i].handler.call(this,event)},listener=W3C_MODEL?function(element,type,add){element[add?addEvent:removeEvent](type,rootListener,!1)}:function(element,type,add,custom){var entry;if(add){registry.put(entry=new RegEntry(element,custom||type,function(event){rootListener.call(element,event,custom)},rootListener,null,null,!0));custom&&element["_on"+custom]==null&&(element["_on"+custom]=0);entry.target.attachEvent("on"+entry.eventType,entry.handler)}else{entry=registry.get(element,custom||type,rootListener,!0)[0];if(entry){entry.target.detachEvent("on"+entry.eventType,entry.handler);registry.del(entry)}}},once=function(rm,element,type,fn,originalFn){return function(){fn.apply(this,arguments);rm(element,type,originalFn)}},removeListener=function(element,orgType,handler,namespaces){var type=orgType&&orgType.replace(nameRegex,""),handlers=registry.get(element,type,null,!1),removed={},i,l;for(i=0,l=handlers.length;i<l;i++)if((!handler||handlers[i].original===handler)&&handlers[i].inNamespaces(namespaces)){registry.del(handlers[i]);!removed[handlers[i].eventType]&&handlers[i][eventSupport]&&(removed[handlers[i].eventType]={t:handlers[i].eventType,c:handlers[i].type})}for(i in removed)registry.has(element,removed[i].t,null,!1)||listener(element,removed[i].t,!1,removed[i].c)},delegate=function(selector,fn){var findTarget=function(target,root){var i,array=isString(selector)?selectorEngine(selector,root):selector;for(;target&&target!==root;target=target.parentNode)for(i=array.length;i--;)if(array[i]===target)return target},handler=function(e){var match=findTarget(e.target,this);match&&fn.apply(match,arguments)};handler.__beanDel={ft:findTarget,selector:selector};return handler},fireListener=W3C_MODEL?function(isNative,type,element){var evt=doc.createEvent(isNative?"HTMLEvents":"UIEvents");evt[isNative?"initEvent":"initUIEvent"](type,!0,!0,win,1);element.dispatchEvent(evt)}:function(isNative,type,element){element=targetElement(element,isNative);isNative?element.fireEvent("on"+type,doc.createEventObject()):element["_on"+type]++},off=function(element,typeSpec,fn){var isTypeStr=isString(typeSpec),k,type,namespaces,i;if(isTypeStr&&typeSpec.indexOf(" ")>0){typeSpec=str2arr(typeSpec);for(i=typeSpec.length;i--;)off(element,typeSpec[i],fn);return element}type=isTypeStr&&typeSpec.replace(nameRegex,"");type&&customEvents[type]&&(type=customEvents[type].base);if(!typeSpec||isTypeStr){if(namespaces=isTypeStr&&typeSpec.replace(namespaceRegex,""))namespaces=str2arr(namespaces,".");removeListener(element,type,fn,namespaces)}else if(isFunction(typeSpec))removeListener(element,null,typeSpec);else for(k in typeSpec)typeSpec.hasOwnProperty(k)&&off(element,k,typeSpec[k]);return element},on=function(element,events,selector,fn){var originalFn,type,types,i,args,entry,first;if(selector===undefined&&typeof events=="object"){for(type in events)events.hasOwnProperty(type)&&on.call(this,element,type,events[type]);return}if(!isFunction(selector)){originalFn=fn;args=slice.call(arguments,4);fn=delegate(selector,originalFn,selectorEngine)}else{args=slice.call(arguments,3);fn=originalFn=selector}types=str2arr(events);this===ONE&&(fn=once(off,element,events,fn,originalFn));for(i=types.length;i--;){first=registry.put(entry=new RegEntry(element,types[i].replace(nameRegex,""),fn,originalFn,str2arr(types[i].replace(namespaceRegex,""),"."),args,!1));entry[eventSupport]&&first&&listener(element,entry.eventType,!0,entry.customType)}return element},add=function(element,events,fn,delfn){return on.apply(null,isString(fn)?[element,fn,events,delfn].concat(arguments.length>3?slice.call(arguments,5):[]):slice.call(arguments))},one=function(){return on.apply(ONE,arguments)},fire=function(element,type,args){var types=str2arr(type),i,j,l,names,handlers;for(i=types.length;i--;){type=types[i].replace(nameRegex,"");if(names=types[i].replace(namespaceRegex,""))names=str2arr(names,".");if(!names&&!args&&element[eventSupport])fireListener(nativeEvents[type],type,element);else{handlers=registry.get(element,type,null,!1);args=[!1].concat(args);for(j=0,l=handlers.length;j<l;j++)handlers[j].inNamespaces(names)&&handlers[j].handler.apply(element,args)}}return element},clone=function(element,from,type){var handlers=registry.get(from,type,null,!1),l=handlers.length,i=0,args,beanDel;for(;i<l;i++)if(handlers[i].original){args=[element,handlers[i].type];(beanDel=handlers[i].handler.__beanDel)&&args.push(beanDel.selector);args.push(handlers[i].original);on.apply(null,args)}return element},bean={on:on,add:add,one:one,off:off,remove:off,clone:clone,fire:fire,setSelectorEngine:setSelectorEngine,noConflict:function(){context[name]=old;return this}};if(win.attachEvent){var cleanup=function(){var i,entries=registry.entries();for(i in entries)entries[i].type&&entries[i].type!=="unload"&&off(entries[i].element,entries[i].type);win.detachEvent("onunload",cleanup);win.CollectGarbage&&win.CollectGarbage()};win.attachEvent("onunload",cleanup)}setSelectorEngine();return bean});provide("bean",module.exports);!function($){var b=require("bean"),integrate=function(method,type,method2){var _args=type?[type]:[];return function(){for(var i=0,l=this.length;i<l;i++){!arguments.length&&method=="on"&&type&&(method="fire");b[method].apply(this,[this[i]].concat(_args,Array.prototype.slice.call(arguments,0)))}return this}},add=integrate("add"),on=integrate("on"),one=integrate("one"),off=integrate("off"),fire=integrate("fire"),clone=integrate("clone"),hover=function(enter,leave,i){for(i=this.length;i--;){b.on.call(this,this[i],"mouseenter",enter);b.on.call(this,this[i],"mouseleave",leave)}return this},methods={on:on,addListener:on,bind:on,listen:on,delegate:add,one:one,off:off,unbind:off,unlisten:off,removeListener:off,undelegate:off,emit:fire,trigger:fire,cloneEvents:clone,hover:hover},shortcuts="blur change click dblclick error focus focusin focusout keydown keypress keyup load mousedown mouseenter mouseleave mouseout mouseover mouseup mousemove resize scroll select submit unload".split(" ");for(var i=shortcuts.length;i--;)methods[shortcuts[i]]=integrate("on",shortcuts[i]);b.setSelectorEngine($);$.ender(methods,!0)}(ender)})();(function(){var module={exports:{}},exports=module.exports;
-/*!
- * Bonzo: DOM Utility (c) Dustin Diaz 2012
- * https://github.com/ded/bonzo
- * License MIT
- */
-(function(name,context,definition){typeof module!="undefined"&&module.exports?module.exports=definition():typeof context["define"]=="function"&&context.define.amd?define(definition):context[name]=definition()})("bonzo",this,function(){function isNode(node){return node&&node.nodeName&&(node.nodeType==1||node.nodeType==11)}function normalize(node,host,clone){var i,l,ret;if(typeof node=="string")return bonzo.create(node);isNode(node)&&(node=[node]);if(clone){ret=[];for(i=0,l=node.length;i<l;i++)ret[i]=cloneNode(host,node[i]);return ret}return node}function classReg(c){return new RegExp("(^|\\s+)"+c+"(\\s+|$)")}function each(ar,fn,opt_scope,opt_rev){var ind,i=0,l=ar.length;for(;i<l;i++){ind=opt_rev?ar.length-i-1:i;fn.call(opt_scope||ar[ind],ar[ind],ind,ar)}return ar}function deepEach(ar,fn,opt_scope){for(var i=0,l=ar.length;i<l;i++)if(isNode(ar[i])){deepEach(ar[i].childNodes,fn,opt_scope);fn.call(opt_scope||ar[i],ar[i],i,ar)}return ar}function camelize(s){return s.replace(/-(.)/g,function(m,m1){return m1.toUpperCase()})}function decamelize(s){return s?s.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase():s}function data(el){el[getAttribute]("data-node-uid")||el[setAttribute]("data-node-uid",++uuids);var uid=el[getAttribute]("data-node-uid");return uidMap[uid]||(uidMap[uid]={})}function clearData(el){var uid=el[getAttribute]("data-node-uid");uid&&delete uidMap[uid]}function dataValue(d){var f;try{return d===null||d===undefined?undefined:d==="true"?!0:d==="false"?!1:d==="null"?null:(f=parseFloat(d))==d?f:d}catch(e){}return undefined}function some(ar,fn,opt_scope){for(var i=0,j=ar.length;i<j;++i)if(fn.call(opt_scope||null,ar[i],i,ar))return!0;return!1}function styleProperty(p){p=="transform"&&(p=features.transform)||/^transform-?[Oo]rigin$/.test(p)&&(p=features.transform+"Origin")||p=="float"&&(p=features.cssFloat);return p?camelize(p):null}function insert(target,host,fn,rev){var i=0,self=host||this,r=[],nodes=query&&typeof target=="string"&&target.charAt(0)!="<"?query(target):target;each(normalize(nodes),function(t,j){each(self,function(el){fn(t,r[i++]=j>0?cloneNode(self,el):el)},null,rev)},this,rev);self.length=i;each(r,function(e){self[--i]=e},null,!rev);return self}function xy(el,x,y){var $el=bonzo(el),style=$el.css("position"),offset=$el.offset(),rel="relative",isRel=style==rel,delta=[parseInt($el.css("left"),10),parseInt($el.css("top"),10)];if(style=="static"){$el.css("position",rel);style=rel}isNaN(delta[0])&&(delta[0]=isRel?0:el.offsetLeft);isNaN(delta[1])&&(delta[1]=isRel?0:el.offsetTop);x!=null&&(el.style.left=x-offset.left+delta[0]+px);y!=null&&(el.style.top=y-offset.top+delta[1]+px)}function setter(el,v){return typeof v=="function"?v(el):v}function Bonzo(elements){this.length=0;if(elements){elements=typeof elements!="string"&&!elements.nodeType&&typeof elements.length!="undefined"?elements:[elements];this.length=elements.length;for(var i=0;i<elements.length;i++)this[i]=elements[i]}}function cloneNode(host,el){var c=el.cloneNode(!0),cloneElems,elElems;if(host.$&&typeof host.cloneEvents=="function"){host.$(c).cloneEvents(el);cloneElems=host.$(c).find("*");elElems=host.$(el).find("*");for(var i=0;i<elElems.length;i++)host.$(cloneElems[i]).cloneEvents(elElems[i])}return c}function scroll(x,y,type){var el=this[0];if(!el)return this;if(x==null&&y==null)return(isBody(el)?getWindowScroll():{x:el.scrollLeft,y:el.scrollTop})[type];if(isBody(el))win.scrollTo(x,y);else{x!=null&&(el.scrollLeft=x);y!=null&&(el.scrollTop=y)}return this}function isBody(element){return element===win||/^(?:body|html)$/i.test(element.tagName)}function getWindowScroll(){return{x:win.pageXOffset||html.scrollLeft,y:win.pageYOffset||html.scrollTop}}function createScriptFromHtml(html){var scriptEl=document.createElement("script"),matches=html.match(simpleScriptTagRe);scriptEl.src=matches[1];return scriptEl}function bonzo(els){return new Bonzo(els)}var win=window,doc=win.document,html=doc.documentElement,parentNode="parentNode",specialAttributes=/^(checked|value|selected|disabled)$/i,specialTags=/^(select|fieldset|table|tbody|tfoot|td|tr|colgroup)$/i,simpleScriptTagRe=/\s*<script +src=['"]([^'"]+)['"]>/,table=["<table>","</table>",1],td=["<table><tbody><tr>","</tr></tbody></table>",3],option=["<select>","</select>",1],noscope=["_","",0,1],tagMap={thead:table,tbody:table,tfoot:table,colgroup:table,caption:table,tr:["<table><tbody>","</tbody></table>",2],th:td,td:td,col:["<table><colgroup>","</colgroup></table>",2],fieldset:["<form>","</form>",1],legend:["<form><fieldset>","</fieldset></form>",2],option:option,optgroup:option,script:noscope,style:noscope,link:noscope,param:noscope,base:noscope},stateAttributes=/^(checked|selected|disabled)$/,ie=/msie/i.test(navigator.userAgent),hasClass,addClass,removeClass,uidMap={},uuids=0,digit=/^-?[\d\.]+$/,dattr=/^data-(.+)$/,px="px",setAttribute="setAttribute",getAttribute="getAttribute",byTag="getElementsByTagName",features=function(){var e=doc.createElement("p");e.innerHTML='<a href="#x">x</a><table style="float:left;"></table>';return{hrefExtended:e[byTag]("a")[0][getAttribute]("href")!="#x",autoTbody:e[byTag]("tbody").length!==0,computedStyle:doc.defaultView&&doc.defaultView.getComputedStyle,cssFloat:e[byTag]("table")[0].style.styleFloat?"styleFloat":"cssFloat",transform:function(){var props=["transform","webkitTransform","MozTransform","OTransform","msTransform"],i;for(i=0;i<props.length;i++)if(props[i]in e.style)return props[i]}(),classList:"classList"in e,opasity:function(){return typeof doc.createElement("a").style.opacity!="undefined"}()}}(),trimReplace=/(^\s*|\s*$)/g,whitespaceRegex=/\s+/,toString=String.prototype.toString,unitless={lineHeight:1,zoom:1,zIndex:1,opacity:1,boxFlex:1,WebkitBoxFlex:1,MozBoxFlex:1},query=doc.querySelectorAll&&function(selector){return doc.querySelectorAll(selector)},trim=String.prototype.trim?function(s){return s.trim()}:function(s){return s.replace(trimReplace,"")},getStyle=features.computedStyle?function(el,property){var value=null,computed=doc.defaultView.getComputedStyle(el,"");computed&&(value=computed[property]);return el.style[property]||value}:ie&&html.currentStyle?function(el,property){if(property=="opacity"&&!features.opasity){var val=100;try{val=el.filters["DXImageTransform.Microsoft.Alpha"].opacity}catch(e1){try{val=el.filters("alpha").opacity}catch(e2){}}return val/100}var value=el.currentStyle?el.currentStyle[property]:null;return el.style[property]||value}:function(el,property){return el.style[property]};if(features.classList){hasClass=function(el,c){return el.classList.contains(c)};addClass=function(el,c){el.classList.add(c)};removeClass=function(el,c){el.classList.remove(c)}}else{hasClass=function(el,c){return classReg(c).test(el.className)};addClass=function(el,c){el.className=trim(el.className+" "+c)};removeClass=function(el,c){el.className=trim(el.className.replace(classReg(c)," "))}}Bonzo.prototype={get:function(index){return this[index]||null},each:function(fn,opt_scope){return each(this,fn,opt_scope)},deepEach:function(fn,opt_scope){return deepEach(this,fn,opt_scope)},map:function(fn,opt_reject){var m=[],n,i;for(i=0;i<this.length;i++){n=fn.call(this,this[i],i);opt_reject?opt_reject(n)&&m.push(n):m.push(n)}return m},html:function(h,opt_text){var method=opt_text?html.textContent===undefined?"innerText":"textContent":"innerHTML",that=this,append=function(el,i){each(normalize(h,that,i),function(node){el.appendChild(node)})},updateElement=function(el,i){try{if(opt_text||typeof h=="string"&&!specialTags.test(el.tagName))return el[method]=h}catch(e){}append(el,i)};return typeof h!="undefined"?this.empty().each(updateElement):this[0]?this[0][method]:""},text:function(opt_text){return this.html(opt_text,!0)},append:function(node){var that=this;return this.each(function(el,i){each(normalize(node,that,i),function(i){el.appendChild(i)})})},prepend:function(node){var that=this;return this.each(function(el,i){var first=el.firstChild;each(normalize(node,that,i),function(i){el.insertBefore(i,first)})})},appendTo:function(target,opt_host){return insert.call(this,target,opt_host,function(t,el){t.appendChild(el)})},prependTo:function(target,opt_host){return insert.call(this,target,opt_host,function(t,el){t.insertBefore(el,t.firstChild)},1)},before:function(node){var that=this;return this.each(function(el,i){each(normalize(node,that,i),function(i){el[parentNode].insertBefore(i,el)})})},after:function(node){var that=this;return this.each(function(el,i){each(normalize(node,that,i),function(i){el[parentNode].insertBefore(i,el.nextSibling)},null,1)})},insertBefore:function(target,opt_host){return insert.call(this,target,opt_host,function(t,el){t[parentNode].insertBefore(el,t)})},insertAfter:function(target,opt_host){return insert.call(this,target,opt_host,function(t,el){var sibling=t.nextSibling;sibling?t[parentNode].insertBefore(el,sibling):t[parentNode].appendChild(el)},1)},replaceWith:function(node){bonzo(normalize(node)).insertAfter(this);return this.remove()},addClass:function(c){c=toString.call(c).split(whitespaceRegex);return this.each(function(el){each(c,function(c){c&&!hasClass(el,setter(el,c))&&addClass(el,setter(el,c))})})},removeClass:function(c){c=toString.call(c).split(whitespaceRegex);return this.each(function(el){each(c,function(c){c&&hasClass(el,setter(el,c))&&removeClass(el,setter(el,c))})})},hasClass:function(c){c=toString.call(c).split(whitespaceRegex);return some(this,function(el){return some(c,function(c){return c&&hasClass(el,c)})})},toggleClass:function(c,opt_condition){c=toString.call(c).split(whitespaceRegex);return this.each(function(el){each(c,function(c){c&&(typeof opt_condition!="undefined"?opt_condition?addClass(el,c):removeClass(el,c):hasClass(el,c)?removeClass(el,c):addClass(el,c))})})},show:function(opt_type){opt_type=typeof opt_type=="string"?opt_type:"";return this.each(function(el){el.style.display=opt_type})},hide:function(){return this.each(function(el){el.style.display="none"})},toggle:function(opt_callback,opt_type){opt_type=typeof opt_type=="string"?opt_type:"";typeof opt_callback!="function"&&(opt_callback=null);return this.each(function(el){el.style.display=el.offsetWidth||el.offsetHeight?"none":opt_type;opt_callback&&opt_callback.call(el)})},first:function(){return bonzo(this.length?this[0]:[])},last:function(){return bonzo(this.length?this[this.length-1]:[])},next:function(){return this.related("nextSibling")},previous:function(){return this.related("previousSibling")},parent:function(){return this.related(parentNode)},related:function(method){return this.map(function(el){el=el[method];while(el&&el.nodeType!==1)el=el[method];return el||0},function(el){return el})},focus:function(){this.length&&this[0].focus();return this},blur:function(){this.length&&this[0].blur();return this},css:function(o,opt_v){function fn(el,p,v){for(var k in iter)if(iter.hasOwnProperty(k)){v=iter[k];(p=styleProperty(k))&&digit.test(v)&&!(p in unitless)&&(v+=px);try{el.style[p]=setter(el,v)}catch(e){}}}var p,iter=o;if(opt_v===undefined&&typeof o=="string"){opt_v=this[0];if(!opt_v)return null;if(opt_v===doc||opt_v===win){p=opt_v===doc?bonzo.doc():bonzo.viewport();return o=="width"?p.width:o=="height"?p.height:""}return(o=styleProperty(o))?getStyle(opt_v,o):null}if(typeof o=="string"){iter={};iter[o]=opt_v}if(ie&&iter.opacity){iter.filter="alpha(opacity="+iter.opacity*100+")";iter.zoom=o.zoom||1;delete iter.opacity}return this.each(fn)},offset:function(opt_x,opt_y){if(!opt_x||typeof opt_x!="object"||typeof opt_x.top!="number"&&typeof opt_x.left!="number"){if(typeof opt_x=="number"||typeof opt_y=="number")return this.each(function(el){xy(el,opt_x,opt_y)});if(!this[0])return{top:0,left:0,height:0,width:0};var el=this[0],de=el.ownerDocument.documentElement,bcr=el.getBoundingClientRect(),scroll=getWindowScroll(),width=el.offsetWidth,height=el.offsetHeight,top=bcr.top+scroll.y-Math.max(0,de&&de.clientTop,doc.body.clientTop),left=bcr.left+scroll.x-Math.max(0,de&&de.clientLeft,doc.body.clientLeft);return{top:top,left:left,height:height,width:width}}return this.each(function(el){xy(el,opt_x.left,opt_x.top)})},dim:function(){if(!this.length)return{height:0,width:0};var el=this[0],de=el.nodeType==9&&el.documentElement,orig=!de&&!!el.style&&!el.offsetWidth&&!el.offsetHeight?function(t){var s={position:el.style.position||"",visibility:el.style.visibility||"",display:el.style.display||""};t.first().css({position:"absolute",visibility:"hidden",display:"block"});return s}(this):null,width=de?Math.max(el.body.scrollWidth,el.body.offsetWidth,de.scrollWidth,de.offsetWidth,de.clientWidth):el.offsetWidth,height=de?Math.max(el.body.scrollHeight,el.body.offsetHeight,de.scrollWidth,de.offsetWidth,de.clientHeight):el.offsetHeight;orig&&this.first().css(orig);return{height:height,width:width}},attr:function(k,opt_v){var el=this[0];if(typeof k=="string"||k instanceof String)return typeof opt_v=="undefined"?el?specialAttributes.test(k)?stateAttributes.test(k)&&typeof el[k]=="string"?!0:el[k]:k!="href"&&k!="src"||!features.hrefExtended?el[getAttribute](k):el[getAttribute](k,2):null:this.each(function(el){specialAttributes.test(k)?el[k]=setter(el,opt_v):el[setAttribute](k,setter(el,opt_v))});for(var n in k)k.hasOwnProperty(n)&&this.attr(n,k[n]);return this},removeAttr:function(k){return this.each(function(el){stateAttributes.test(k)?el[k]=!1:el.removeAttribute(k)})},val:function(s){return typeof s=="string"?this.attr("value",s):this.length?this[0].value:null},data:function(opt_k,opt_v){var el=this[0],o,m;if(typeof opt_v=="undefined"){if(!el)return null;o=data(el);if(typeof opt_k=="undefined"){each(el.attributes,function(a){(m=(""+a.name).match(dattr))&&(o[camelize(m[1])]=dataValue(a.value))});return o}typeof o[opt_k]=="undefined"&&(o[opt_k]=dataValue(this.attr("data-"+decamelize(opt_k))));return o[opt_k]}return this.each(function(el){data(el)[opt_k]=opt_v})},remove:function(){this.deepEach(clearData);return this.detach()},empty:function(){return this.each(function(el){deepEach(el.childNodes,clearData);while(el.firstChild)el.removeChild(el.firstChild)})},detach:function(){return this.each(function(el){el[parentNode]&&el[parentNode].removeChild(el)})},scrollTop:function(y){return scroll.call(this,null,y,"y")},scrollLeft:function(x){return scroll.call(this,x,null,"x")}};bonzo.setQueryEngine=function(q){query=q;delete bonzo.setQueryEngine};bonzo.aug=function(o,target){for(var k in o)o.hasOwnProperty(k)&&((target||Bonzo.prototype)[k]=o[k])};bonzo.create=function(node){return typeof node=="string"&&node!==""?function(){if(simpleScriptTagRe.test(node))return[createScriptFromHtml(node)];var tag=node.match(/^\s*<([^\s>]+)/),el=doc.createElement("div"),els=[],p=tag?tagMap[tag[1].toLowerCase()]:null,dep=p?p[2]+1:1,ns=p&&p[3],pn=parentNode,tb=features.autoTbody&&p&&p[0]=="<table>"&&!/<tbody/i.test(node);el.innerHTML=p?p[0]+node+p[1]:node;while(dep--)el=el.firstChild;ns&&el&&el.nodeType!==1&&(el=el.nextSibling);do(!tag||el.nodeType==1)&&(!tb||el.tagName.toLowerCase()!="tbody")&&els.push(el);while(el=el.nextSibling);each(els,function(el){el[pn]&&el[pn].removeChild(el)});return els}():isNode(node)?[node.cloneNode(!0)]:[]};bonzo.doc=function(){var vp=bonzo.viewport();return{width:Math.max(doc.body.scrollWidth,html.scrollWidth,vp.width),height:Math.max(doc.body.scrollHeight,html.scrollHeight,vp.height)}};bonzo.firstChild=function(el){for(var c=el.childNodes,i=0,j=c&&c.length||0,e;i<j;i++)c[i].nodeType===1&&(e=c[j=i]);return e};bonzo.viewport=function(){return{width:ie?html.clientWidth:self.innerWidth,height:ie?html.clientHeight:self.innerHeight}};bonzo.isAncestor="compareDocumentPosition"in html?function(container,element){return(container.compareDocumentPosition(element)&16)==16}:"contains"in html?function(container,element){return container!==element&&container.contains(element)}:function(container,element){while(element=element[parentNode])if(element===container)return!0;return!1};return bonzo});provide("bonzo",module.exports);(function($){function indexOf(ar,val){for(var i=0;i<ar.length;i++)if(ar[i]===val)return i;return-1}function uniq(ar){var r=[],i=0,j=0,k,item,inIt;for(;item=ar[i];++i){inIt=!1;for(k=0;k<r.length;++k)if(r[k]===item){inIt=!0;break}inIt||(r[j++]=item)}return r}function dimension(type,opt_v){return typeof opt_v=="undefined"?b(this).dim()[type]:this.css(type,opt_v)}var b=require("bonzo");b.setQueryEngine($);$.ender(b);$.ender(b(),!0);$.ender({create:function(node){return $(b.create(node))}});$.id=function(id){return $([document.getElementById(id)])};$.ender({parents:function(selector,closest){if(!this.length)return this;selector||(selector="*");var collection=$(selector),j,k,p,r=[];for(j=0,k=this.length;j<k;j++){p=this[j];while(p=p.parentNode)if(~indexOf(collection,p)){r.push(p);if(closest)break}}return $(uniq(r))},parent:function(){return $(uniq(b(this).parent()))},closest:function(selector){return this.parents(selector,!0)},first:function(){return $(this.length?this[0]:this)},last:function(){return $(this.length?this[this.length-1]:[])},next:function(){return $(b(this).next())},previous:function(){return $(b(this).previous())},appendTo:function(t){return b(this.selector).appendTo(t,this)},prependTo:function(t){return b(this.selector).prependTo(t,this)},insertAfter:function(t){return b(this.selector).insertAfter(t,this)},insertBefore:function(t){return b(this.selector).insertBefore(t,this)},siblings:function(){var i,l,p,r=[];for(i=0,l=this.length;i<l;i++){p=this[i];while(p=p.previousSibling)p.nodeType==1&&r.push(p);p=this[i];while(p=p.nextSibling)p.nodeType==1&&r.push(p)}return $(r)},children:function(){var i,l,el,r=[];for(i=0,l=this.length;i<l;i++){if(!(el=b.firstChild(this[i])))continue;r.push(el);while(el=el.nextSibling)el.nodeType==1&&r.push(el)}return $(uniq(r))},height:function(v){return dimension.call(this,"height",v)},width:function(v){return dimension.call(this,"width",v)}},!0)})(ender)})();(function(){var module={exports:{}},exports=module.exports;
-/*!
- * domready (c) Dustin Diaz 2012 - License MIT
- */
-;!function(name,definition){typeof module!="undefined"?module.exports=definition():typeof define=="function"&&typeof define.amd=="object"?define(definition):this[name]=definition()}("domready",function(ready){function flush(f){loaded=1;while(f=fns.shift())f()}var fns=[],fn,f=!1,doc=document,testEl=doc.documentElement,hack=testEl.doScroll,domContentLoaded="DOMContentLoaded",addEventListener="addEventListener",onreadystatechange="onreadystatechange",readyState="readyState",loaded=/^loade|c/.test(doc[readyState]);doc[addEventListener]&&doc[addEventListener](domContentLoaded,fn=function(){doc.removeEventListener(domContentLoaded,fn,f);flush()},f);hack&&doc.attachEvent(onreadystatechange,fn=function(){if(/^c/.test(doc[readyState])){doc.detachEvent(onreadystatechange,fn);flush()}});return ready=hack?function(fn){self!=top?loaded?fn():fns.push(fn):function(){try{testEl.doScroll("left")}catch(e){return setTimeout(function(){ready(fn)},50)}fn()}()}:function(fn){loaded?fn():fns.push(fn)}});provide("domready",module.exports);!function($){var ready=require("domready");$.ender({domReady:ready});$.ender({ready:function(f){ready(f);return this}},!0)}(ender)})();(function(){var module={exports:{}},exports=module.exports;
-/*!
- * @preserve Qwery - A Blazing Fast query selector engine
- * https://github.com/ded/qwery
- * copyright Dustin Diaz 2012
- * MIT License
- */
-(function(name,context,definition){typeof module!="undefined"&&module.exports?module.exports=definition():typeof context["define"]=="function"&&context.define.amd?define(definition):context[name]=definition()})("qwery",this,function(){function cache(){this.c={}}function classRegex(c){return classCache.g(c)||classCache.s(c,"(^|\\s+)"+c+"(\\s+|$)",1)}function each(a,fn){var i=0,l=a.length;for(;i<l;i++)fn(a[i])}function flatten(ar){for(var r=[],i=0,l=ar.length;i<l;++i)arrayLike(ar[i])?r=r.concat(ar[i]):r[r.length]=ar[i];return r}function arrayify(ar){var i=0,l=ar.length,r=[];for(;i<l;i++)r[i]=ar[i];return r}function previous(n){while(n=n.previousSibling)if(n[nodeType]==1)break;return n}function q(query){return query.match(chunker)}function interpret(whole,tag,idsAndClasses,wholeAttribute,attribute,qualifier,value,wholePseudo,pseudo,wholePseudoVal,pseudoVal){var i,m,k,o,classes;if(this[nodeType]!==1)return!1;if(tag&&tag!=="*"&&this[tagName]&&this[tagName].toLowerCase()!==tag)return!1;if(idsAndClasses&&(m=idsAndClasses.match(id))&&m[1]!==this.id)return!1;if(idsAndClasses&&(classes=idsAndClasses.match(clas)))for(i=classes.length;i--;)if(!classRegex(classes[i].slice(1)).test(this.className))return!1;if(pseudo&&qwery.pseudos[pseudo]&&!qwery.pseudos[pseudo](this,pseudoVal))return!1;if(wholeAttribute&&!value){o=this.attributes;for(k in o)if(Object.prototype.hasOwnProperty.call(o,k)&&(o[k].name||k)==attribute)return this}return wholeAttribute&&!checkAttr(qualifier,getAttr(this,attribute)||"",value)?!1:this}function clean(s){return cleanCache.g(s)||cleanCache.s(s,s.replace(specialChars,"\\$1"))}function checkAttr(qualify,actual,val){switch(qualify){case"=":return actual==val;case"^=":return actual.match(attrCache.g("^="+val)||attrCache.s("^="+val,"^"+clean(val),1));case"$=":return actual.match(attrCache.g("$="+val)||attrCache.s("$="+val,clean(val)+"$",1));case"*=":return actual.match(attrCache.g(val)||attrCache.s(val,clean(val),1));case"~=":return actual.match(attrCache.g("~="+val)||attrCache.s("~="+val,"(?:^|\\s+)"+clean(val)+"(?:\\s+|$)",1));case"|=":return actual.match(attrCache.g("|="+val)||attrCache.s("|="+val,"^"+clean(val)+"(-|$)",1))}return 0}function _qwery(selector,_root){var r=[],ret=[],i,l,m,token,tag,els,intr,item,root=_root,tokens=tokenCache.g(selector)||tokenCache.s(selector,selector.split(tokenizr)),dividedTokens=selector.match(dividers);if(!tokens.length)return r;token=(tokens=tokens.slice(0)).pop();tokens.length&&(m=tokens[tokens.length-1].match(idOnly))&&(root=byId(_root,m[1]));if(!root)return r;intr=q(token);els=root!==_root&&root[nodeType]!==9&&dividedTokens&&/^[+~]$/.test(dividedTokens[dividedTokens.length-1])?function(r){while(root=root.nextSibling)root[nodeType]==1&&(intr[1]?intr[1]==root[tagName].toLowerCase():1)&&(r[r.length]=root);return r}([]):root[byTag](intr[1]||"*");for(i=0,l=els.length;i<l;i++)if(item=interpret.apply(els[i],intr))r[r.length]=item;if(!tokens.length)return r;each(r,function(e){ancestorMatch(e,tokens,dividedTokens)&&(ret[ret.length]=e)});return ret}function is(el,selector,root){if(isNode(selector))return el==selector;if(arrayLike(selector))return!!~flatten(selector).indexOf(el);var selectors=selector.split(","),tokens,dividedTokens;while(selector=selectors.pop()){tokens=tokenCache.g(selector)||tokenCache.s(selector,selector.split(tokenizr));dividedTokens=selector.match(dividers);tokens=tokens.slice(0);if(interpret.apply(el,q(tokens.pop()))&&(!tokens.length||ancestorMatch(el,tokens,dividedTokens,root)))return!0}return!1}function ancestorMatch(el,tokens,dividedTokens,root){function crawl(e,i,p){while(p=walker[dividedTokens[i]](p,e))if(isNode(p)&&interpret.apply(p,q(tokens[i]))){if(!i)return p;if(cand=crawl(p,i-1,p))return cand}}var cand;return(cand=crawl(el,tokens.length-1,el))&&(!root||isAncestor(cand,root))}function isNode(el,t){return el&&typeof el=="object"&&(t=el[nodeType])&&(t==1||t==9)}function uniq(ar){var a=[],i,j;e:for(i=0;i<ar.length;++i){for(j=0;j<a.length;++j)if(a[j]==ar[i])continue e;a[a.length]=ar[i]}return a}function arrayLike(o){return typeof o=="object"&&isFinite(o.length)}function normalizeRoot(root){return root?typeof root=="string"?qwery(root)[0]:!root[nodeType]&&arrayLike(root)?root[0]:root:doc}function byId(root,id,el){return root[nodeType]===9?root.getElementById(id):root.ownerDocument&&((el=root.ownerDocument.getElementById(id))&&isAncestor(el,root)&&el||!isAncestor(root,root.ownerDocument)&&select('[id="'+id+'"]',root)[0])}function qwery(selector,_root){var m,el,root=normalizeRoot(_root);if(!root||!selector)return[];if(selector===window||isNode(selector))return!_root||selector!==window&&isNode(root)&&isAncestor(selector,root)?[selector]:[];if(selector&&arrayLike(selector))return flatten(selector);if(m=selector.match(easy)){if(m[1])return(el=byId(root,m[1]))?[el]:[];if(m[2])return arrayify(root[byTag](m[2]));if(hasByClass&&m[3])return arrayify(root[byClass](m[3]))}return select(selector,root)}function collectSelector(root,collector){return function(s){var oid,nid;if(splittable.test(s)){if(root[nodeType]!==9){(nid=oid=root.getAttribute("id"))||root.setAttribute("id",nid="__qwerymeupscotty");s='[id="'+nid+'"]'+s;collector(root.parentNode||root,s,!0);oid||root.removeAttribute("id")}return}s.length&&collector(root,s,!1)}}var doc=document,html=doc.documentElement,byClass="getElementsByClassName",byTag="getElementsByTagName",qSA="querySelectorAll",useNativeQSA="useNativeQSA",tagName="tagName",nodeType="nodeType",select,id=/#([\w\-]+)/,clas=/\.[\w\-]+/g,idOnly=/^#([\w\-]+)$/,classOnly=/^\.([\w\-]+)$/,tagOnly=/^([\w\-]+)$/,tagAndOrClass=/^([\w]+)?\.([\w\-]+)$/,splittable=/(^|,)\s*[>~+]/,normalizr=/^\s+|\s*([,\s\+\~>]|$)\s*/g,splitters=/[\s\>\+\~]/,splittersMore=/(?![\s\w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^'"]*\]|[\s\w\+\-]*\))/,specialChars=/([.*+?\^=!:${}()|\[\]\/\\])/g,simple=/^(\*|[a-z0-9]+)?(?:([\.\#]+[\w\-\.#]+)?)/,attr=/\[([\w\-]+)(?:([\|\^\$\*\~]?\=)['"]?([ \w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^]+)["']?)?\]/,pseudo=/:([\w\-]+)(\(['"]?([^()]+)['"]?\))?/,easy=new RegExp(idOnly.source+"|"+tagOnly.source+"|"+classOnly.source),dividers=new RegExp("("+splitters.source+")"+splittersMore.source,"g"),tokenizr=new RegExp(splitters.source+splittersMore.source),chunker=new RegExp(simple.source+"("+attr.source+")?"+"("+pseudo.source+")?"),walker={" ":function(node){return node&&node!==html&&node.parentNode},">":function(node,contestant){return node&&node.parentNode==contestant.parentNode&&node.parentNode},"~":function(node){return node&&node.previousSibling},"+":function(node,contestant,p1,p2){return node?(p1=previous(node))&&(p2=previous(contestant))&&p1==p2&&p1:!1}};cache.prototype={g:function(k){return this.c[k]||undefined},s:function(k,v,r){v=r?new RegExp(v):v;return this.c[k]=v}};var classCache=new cache,cleanCache=new cache,attrCache=new cache,tokenCache=new cache,isAncestor="compareDocumentPosition"in html?function(element,container){return(container.compareDocumentPosition(element)&16)==16}:"contains"in html?function(element,container){container=container[nodeType]===9||container==window?html:container;return container!==element&&container.contains(element)}:function(element,container){while(element=element.parentNode)if(element===container)return 1;return 0},getAttr=function(){var e=doc.createElement("p");return(e.innerHTML='<a href="#x">x</a>')&&e.firstChild.getAttribute("href")!="#x"?function(e,a){return a==="class"?e.className:a==="href"||a==="src"?e.getAttribute(a,2):e.getAttribute(a)}:function(e,a){return e.getAttribute(a)}}(),hasByClass=!!doc[byClass],hasQSA=doc.querySelector&&doc[qSA],selectQSA=function(selector,root){var result=[],ss,e;try{if(root[nodeType]===9||!splittable.test(selector))return arrayify(root[qSA](selector));each(ss=selector.split(","),collectSelector(root,function(ctx,s){e=ctx[qSA](s);e.length==1?result[result.length]=e.item(0):e.length&&(result=result.concat(arrayify(e)))}));return ss.length>1&&result.length>1?uniq(result):result}catch(ex){}return selectNonNative(selector,root)},selectNonNative=function(selector,root){var result=[],items,m,i,l,r,ss;selector=selector.replace(normalizr,"$1");if(m=selector.match(tagAndOrClass)){r=classRegex(m[2]);items=root[byTag](m[1]||"*");for(i=0,l=items.length;i<l;i++)r.test(items[i].className)&&(result[result.length]=items[i]);return result}each(ss=selector.split(","),collectSelector(root,function(ctx,s,rewrite){r=_qwery(s,ctx);for(i=0,l=r.length;i<l;i++)if(ctx[nodeType]===9||rewrite||isAncestor(r[i],root))result[result.length]=r[i]}));return ss.length>1&&result.length>1?uniq(result):result},configure=function(options){typeof options[useNativeQSA]!="undefined"&&(select=options[useNativeQSA]?hasQSA?selectQSA:selectNonNative:selectNonNative)};configure({useNativeQSA:!0});qwery.configure=configure;qwery.uniq=uniq;qwery.is=is;qwery.pseudos={};return qwery});provide("qwery",module.exports);(function($){var q=function(){var r;try{r=require("qwery")}catch(ex){r=require("qwery-mobile")}finally{return r}}();$.pseudos=q.pseudos;$._select=function(s,r){return($._select=function(){var b;if(typeof $.create=="function")return function(s,r){return/^\s*</.test(s)?$.create(s,r):q(s,r)};try{b=require("bonzo");return function(s,r){return/^\s*</.test(s)?b.create(s,r):q(s,r)}}catch(e){}return q}())(s,r)};$.ender({find:function(s){var r=[],i,l,j,k,els;for(i=0,l=this.length;i<l;i++){els=q(s,this[i]);for(j=0,k=els.length;j<k;j++)r.push(els[j])}return $(q.uniq(r))},and:function(s){var plus=$(s);for(var i=this.length,j=0,l=this.length+plus.length;i<l;i++,j++)this[i]=plus[j];this.length+=plus.length;return this},is:function(s,r){var i,l;for(i=0,l=this.length;i<l;i++)if(q.is(this[i],s,r))return!0;return!1}},!0)})(ender)})() \ No newline at end of file
diff --git a/.themes/classic/source/javascripts/libs/ender.js b/.themes/classic/source/javascripts/libs/ender.js
deleted file mode 100644
index 66c4e223..00000000
--- a/.themes/classic/source/javascripts/libs/ender.js
+++ /dev/null
@@ -1,3256 +0,0 @@
-/*!
- * =============================================================
- * Ender: open module JavaScript framework (https://ender.no.de)
- * Build: ender build jeesh reqwest
- * =============================================================
- */
-
-/*!
- * Ender: open module JavaScript framework (client-lib)
- * copyright Dustin Diaz & Jacob Thornton 2011-2012 (@ded @fat)
- * http://ender.jit.su
- * License MIT
- */
-(function (context) {
-
- // a global object for node.js module compatiblity
- // ============================================
-
- context['global'] = context
-
- // Implements simple module system
- // losely based on CommonJS Modules spec v1.1.1
- // ============================================
-
- var modules = {}
- , old = context['$']
- , oldEnder = context['ender']
- , oldRequire = context['require']
- , oldProvide = context['provide']
-
- function require (identifier) {
- // modules can be required from ender's build system, or found on the window
- var module = modules['$' + identifier] || window[identifier]
- if (!module) throw new Error("Ender Error: Requested module '" + identifier + "' has not been defined.")
- return module
- }
-
- function provide (name, what) {
- return (modules['$' + name] = what)
- }
-
- context['provide'] = provide
- context['require'] = require
-
- function aug(o, o2) {
- for (var k in o2) k != 'noConflict' && k != '_VERSION' && (o[k] = o2[k])
- return o
- }
-
- /**
- * main Ender return object
- * @constructor
- * @param {Array|Node|string} s a CSS selector or DOM node(s)
- * @param {Array.|Node} r a root node(s)
- */
- function Ender(s, r) {
- var elements
- , i
-
- this.selector = s
- // string || node || nodelist || window
- if (typeof s == 'undefined') {
- elements = []
- this.selector = ''
- } else if (typeof s == 'string' || s.nodeName || (s.length && 'item' in s) || s == window) {
- elements = ender._select(s, r)
- } else {
- elements = isFinite(s.length) ? s : [s]
- }
- this.length = elements.length
- for (i = this.length; i--;) this[i] = elements[i]
- }
-
- /**
- * @param {function(el, i, inst)} fn
- * @param {Object} opt_scope
- * @returns {Ender}
- */
- Ender.prototype['forEach'] = function (fn, opt_scope) {
- var i, l
- // opt out of native forEach so we can intentionally call our own scope
- // defaulting to the current item and be able to return self
- for (i = 0, l = this.length; i < l; ++i) i in this && fn.call(opt_scope || this[i], this[i], i, this)
- // return self for chaining
- return this
- }
-
- Ender.prototype.$ = ender // handy reference to self
-
-
- function ender(s, r) {
- return new Ender(s, r)
- }
-
- ender['_VERSION'] = '0.4.3-dev'
-
- ender.fn = Ender.prototype // for easy compat to jQuery plugins
-
- ender.ender = function (o, chain) {
- aug(chain ? Ender.prototype : ender, o)
- }
-
- ender._select = function (s, r) {
- if (typeof s == 'string') return (r || document).querySelectorAll(s)
- if (s.nodeName) return [s]
- return s
- }
-
-
- // use callback to receive Ender's require & provide and remove them from global
- ender.noConflict = function (callback) {
- context['$'] = old
- if (callback) {
- context['provide'] = oldProvide
- context['require'] = oldRequire
- context['ender'] = oldEnder
- if (typeof callback == 'function') callback(require, provide, this)
- }
- return this
- }
-
- if (typeof module !== 'undefined' && module.exports) module.exports = ender
- // use subscript notation as extern for Closure compilation
- context['ender'] = context['$'] = ender
-
-}(this));
-
-(function () {
-
- var module = { exports: {} }, exports = module.exports;
-
- /*!
- * Reqwest! A general purpose XHR connection manager
- * (c) Dustin Diaz 2012
- * https://github.com/ded/reqwest
- * license MIT
- */
- !function (name, definition) {
- if (typeof module != 'undefined') module.exports = definition()
- else if (typeof define == 'function' && define.amd) define(definition)
- else this[name] = definition()
- }('reqwest', function () {
-
- var win = window
- , doc = document
- , twoHundo = /^20\d$/
- , byTag = 'getElementsByTagName'
- , readyState = 'readyState'
- , contentType = 'Content-Type'
- , requestedWith = 'X-Requested-With'
- , head = doc[byTag]('head')[0]
- , uniqid = 0
- , callbackPrefix = 'reqwest_' + (+new Date())
- , lastValue // data stored by the most recent JSONP callback
- , xmlHttpRequest = 'XMLHttpRequest'
-
- var isArray = typeof Array.isArray == 'function' ? Array.isArray : function (a) {
- return a instanceof Array
- }
- var defaultHeaders = {
- contentType: 'application/x-www-form-urlencoded'
- , requestedWith: xmlHttpRequest
- , accept: {
- '*': 'text/javascript, text/html, application/xml, text/xml, */*'
- , xml: 'application/xml, text/xml'
- , html: 'text/html'
- , text: 'text/plain'
- , json: 'application/json, text/javascript'
- , js: 'application/javascript, text/javascript'
- }
- }
- var xhr = win[xmlHttpRequest] ?
- function () {
- return new XMLHttpRequest()
- } :
- function () {
- return new ActiveXObject('Microsoft.XMLHTTP')
- }
-
- function handleReadyState(o, success, error) {
- return function () {
- if (o && o[readyState] == 4) {
- if (twoHundo.test(o.status)) {
- success(o)
- } else {
- error(o)
- }
- }
- }
- }
-
- function setHeaders(http, o) {
- var headers = o.headers || {}, h
- headers.Accept = headers.Accept || defaultHeaders.accept[o.type] || defaultHeaders.accept['*']
- // breaks cross-origin requests with legacy browsers
- if (!o.crossOrigin && !headers[requestedWith]) headers[requestedWith] = defaultHeaders.requestedWith
- if (!headers[contentType]) headers[contentType] = o.contentType || defaultHeaders.contentType
- for (h in headers) {
- headers.hasOwnProperty(h) && http.setRequestHeader(h, headers[h])
- }
- }
-
- function setCredentials(http, o) {
- if (typeof o.withCredentials !== "undefined" && typeof http.withCredentials !== "undefined") {
- http.withCredentials = !!o.withCredentials
- }
- }
-
- function generalCallback(data) {
- lastValue = data
- }
-
- function urlappend(url, s) {
- return url + (/\?/.test(url) ? '&' : '?') + s
- }
-
- function handleJsonp(o, fn, err, url) {
- var reqId = uniqid++
- , cbkey = o.jsonpCallback || 'callback' // the 'callback' key
- , cbval = o.jsonpCallbackName || reqwest.getcallbackPrefix(reqId)
- // , cbval = o.jsonpCallbackName || ('reqwest_' + reqId) // the 'callback' value
- , cbreg = new RegExp('((^|\\?|&)' + cbkey + ')=([^&]+)')
- , match = url.match(cbreg)
- , script = doc.createElement('script')
- , loaded = 0
-
- if (match) {
- if (match[3] === '?') {
- url = url.replace(cbreg, '$1=' + cbval) // wildcard callback func name
- } else {
- cbval = match[3] // provided callback func name
- }
- } else {
- url = urlappend(url, cbkey + '=' + cbval) // no callback details, add 'em
- }
-
- win[cbval] = generalCallback
-
- script.type = 'text/javascript'
- script.src = url
- script.async = true
- if (typeof script.onreadystatechange !== 'undefined') {
- // need this for IE due to out-of-order onreadystatechange(), binding script
- // execution to an event listener gives us control over when the script
- // is executed. See http://jaubourg.net/2010/07/loading-script-as-onclick-handler-of.html
- script.event = 'onclick'
- script.htmlFor = script.id = '_reqwest_' + reqId
- }
-
- script.onload = script.onreadystatechange = function () {
- if ((script[readyState] && script[readyState] !== 'complete' && script[readyState] !== 'loaded') || loaded) {
- return false
- }
- script.onload = script.onreadystatechange = null
- script.onclick && script.onclick()
- // Call the user callback with the last value stored and clean up values and scripts.
- o.success && o.success(lastValue)
- lastValue = undefined
- head.removeChild(script)
- loaded = 1
- }
-
- // Add the script to the DOM head
- head.appendChild(script)
- }
-
- function getRequest(o, fn, err) {
- var method = (o.method || 'GET').toUpperCase()
- , url = typeof o === 'string' ? o : o.url
- // convert non-string objects to query-string form unless o.processData is false
- , data = (o.processData !== false && o.data && typeof o.data !== 'string')
- ? reqwest.toQueryString(o.data)
- : (o.data || null)
- , http
-
- // if we're working on a GET request and we have data then we should append
- // query string to end of URL and not post data
- if ((o.type == 'jsonp' || method == 'GET') && data) {
- url = urlappend(url, data)
- data = null
- }
-
- if (o.type == 'jsonp') return handleJsonp(o, fn, err, url)
-
- http = xhr()
- http.open(method, url, true)
- setHeaders(http, o)
- setCredentials(http, o)
- http.onreadystatechange = handleReadyState(http, fn, err)
- o.before && o.before(http)
- http.send(data)
- return http
- }
-
- function Reqwest(o, fn) {
- this.o = o
- this.fn = fn
-
- init.apply(this, arguments)
- }
-
- function setType(url) {
- var m = url.match(/\.(json|jsonp|html|xml)(\?|$)/)
- return m ? m[1] : 'js'
- }
-
- function init(o, fn) {
-
- this.url = typeof o == 'string' ? o : o.url
- this.timeout = null
-
- // whether request has been fulfilled for purpose
- // of tracking the Promises
- this._fulfilled = false
- // success handlers
- this._fulfillmentHandlers = []
- // error handlers
- this._errorHandlers = []
- // complete (both success and fail) handlers
- this._completeHandlers = []
- this._erred = false
- this._responseArgs = {}
-
- var self = this
- , type = o.type || setType(this.url)
-
- fn = fn || function () {}
-
- if (o.timeout) {
- this.timeout = setTimeout(function () {
- self.abort()
- }, o.timeout)
- }
-
- if (o.success) {
- this._fulfillmentHandlers.push(function () {
- o.success.apply(o, arguments)
- })
- }
-
- if (o.error) {
- this._errorHandlers.push(function () {
- o.error.apply(o, arguments)
- })
- }
-
- if (o.complete) {
- this._completeHandlers.push(function () {
- o.complete.apply(o, arguments)
- })
- }
-
- function complete(resp) {
- o.timeout && clearTimeout(self.timeout)
- self.timeout = null
- while (self._completeHandlers.length > 0) {
- self._completeHandlers.shift()(resp)
- }
- }
-
- function success(resp) {
- var r = resp.responseText
- if (r) {
- switch (type) {
- case 'json':
- try {
- resp = win.JSON ? win.JSON.parse(r) : eval('(' + r + ')')
- } catch (err) {
- return error(resp, 'Could not parse JSON in response', err)
- }
- break;
- case 'js':
- resp = eval(r)
- break;
- case 'html':
- resp = r
- break;
- case 'xml':
- resp = resp.responseXML;
- break;
- }
- }
-
- self._responseArgs.resp = resp
- self._fulfilled = true
- fn(resp)
- while (self._fulfillmentHandlers.length > 0) {
- self._fulfillmentHandlers.shift()(resp)
- }
-
- complete(resp)
- }
-
- function error(resp, msg, t) {
- self._responseArgs.resp = resp
- self._responseArgs.msg = msg
- self._responseArgs.t = t
- self._erred = true
- while (self._errorHandlers.length > 0) {
- self._errorHandlers.shift()(resp, msg, t)
- }
- complete(resp)
- }
-
- this.request = getRequest(o, success, error)
- }
-
- Reqwest.prototype = {
- abort: function () {
- this.request.abort()
- }
-
- , retry: function () {
- init.call(this, this.o, this.fn)
- }
-
- /**
- * Small deviation from the Promises A CommonJs specification
- * http://wiki.commonjs.org/wiki/Promises/A
- */
-
- /**
- * `then` will execute upon successful requests
- */
- , then: function (success, fail) {
- if (this._fulfilled) {
- success(this._responseArgs.resp)
- } else if (this._erred) {
- fail(this._responseArgs.resp, this._responseArgs.msg, this._responseArgs.t)
- } else {
- this._fulfillmentHandlers.push(success)
- this._errorHandlers.push(fail)
- }
- return this
- }
-
- /**
- * `always` will execute whether the request succeeds or fails
- */
- , always: function (fn) {
- if (this._fulfilled || this._erred) {
- fn(this._responseArgs.resp)
- } else {
- this._completeHandlers.push(fn)
- }
- return this
- }
-
- /**
- * `fail` will execute when the request fails
- */
- , fail: function (fn) {
- if (this._erred) {
- fn(this._responseArgs.resp, this._responseArgs.msg, this._responseArgs.t)
- } else {
- this._errorHandlers.push(fn)
- }
- return this
- }
- }
-
- function reqwest(o, fn) {
- return new Reqwest(o, fn)
- }
-
- // normalize newline variants according to spec -> CRLF
- function normalize(s) {
- return s ? s.replace(/\r?\n/g, '\r\n') : ''
- }
-
- function serial(el, cb) {
- var n = el.name
- , t = el.tagName.toLowerCase()
- , optCb = function (o) {
- // IE gives value="" even where there is no value attribute
- // 'specified' ref: http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-862529273
- if (o && !o.disabled)
- cb(n, normalize(o.attributes.value && o.attributes.value.specified ? o.value : o.text))
- }
-
- // don't serialize elements that are disabled or without a name
- if (el.disabled || !n) return;
-
- switch (t) {
- case 'input':
- if (!/reset|button|image|file/i.test(el.type)) {
- var ch = /checkbox/i.test(el.type)
- , ra = /radio/i.test(el.type)
- , val = el.value;
- // WebKit gives us "" instead of "on" if a checkbox has no value, so correct it here
- (!(ch || ra) || el.checked) && cb(n, normalize(ch && val === '' ? 'on' : val))
- }
- break;
- case 'textarea':
- cb(n, normalize(el.value))
- break;
- case 'select':
- if (el.type.toLowerCase() === 'select-one') {
- optCb(el.selectedIndex >= 0 ? el.options[el.selectedIndex] : null)
- } else {
- for (var i = 0; el.length && i < el.length; i++) {
- el.options[i].selected && optCb(el.options[i])
- }
- }
- break;
- }
- }
-
- // collect up all form elements found from the passed argument elements all
- // the way down to child elements; pass a '<form>' or form fields.
- // called with 'this'=callback to use for serial() on each element
- function eachFormElement() {
- var cb = this
- , e, i, j
- , serializeSubtags = function (e, tags) {
- for (var i = 0; i < tags.length; i++) {
- var fa = e[byTag](tags[i])
- for (j = 0; j < fa.length; j++) serial(fa[j], cb)
- }
- }
-
- for (i = 0; i < arguments.length; i++) {
- e = arguments[i]
- if (/input|select|textarea/i.test(e.tagName)) serial(e, cb)
- serializeSubtags(e, [ 'input', 'select', 'textarea' ])
- }
- }
-
- // standard query string style serialization
- function serializeQueryString() {
- return reqwest.toQueryString(reqwest.serializeArray.apply(null, arguments))
- }
-
- // { 'name': 'value', ... } style serialization
- function serializeHash() {
- var hash = {}
- eachFormElement.apply(function (name, value) {
- if (name in hash) {
- hash[name] && !isArray(hash[name]) && (hash[name] = [hash[name]])
- hash[name].push(value)
- } else hash[name] = value
- }, arguments)
- return hash
- }
-
- // [ { name: 'name', value: 'value' }, ... ] style serialization
- reqwest.serializeArray = function () {
- var arr = []
- eachFormElement.apply(function (name, value) {
- arr.push({name: name, value: value})
- }, arguments)
- return arr
- }
-
- reqwest.serialize = function () {
- if (arguments.length === 0) return ''
- var opt, fn
- , args = Array.prototype.slice.call(arguments, 0)
-
- opt = args.pop()
- opt && opt.nodeType && args.push(opt) && (opt = null)
- opt && (opt = opt.type)
-
- if (opt == 'map') fn = serializeHash
- else if (opt == 'array') fn = reqwest.serializeArray
- else fn = serializeQueryString
-
- return fn.apply(null, args)
- }
-
- reqwest.toQueryString = function (o) {
- var qs = '', i
- , enc = encodeURIComponent
- , push = function (k, v) {
- qs += enc(k) + '=' + enc(v) + '&'
- }
-
- if (isArray(o)) {
- for (i = 0; o && i < o.length; i++) push(o[i].name, o[i].value)
- } else {
- for (var k in o) {
- if (!Object.hasOwnProperty.call(o, k)) continue;
- var v = o[k]
- if (isArray(v)) {
- for (i = 0; i < v.length; i++) push(k, v[i])
- } else push(k, o[k])
- }
- }
-
- // spaces should be + according to spec
- return qs.replace(/&$/, '').replace(/%20/g, '+')
- }
-
- reqwest.getcallbackPrefix = function (reqId) {
- return callbackPrefix
- }
-
- // jQuery and Zepto compatibility, differences can be remapped here so you can call
- // .ajax.compat(options, callback)
- reqwest.compat = function (o, fn) {
- if (o) {
- o.type && (o.method = o.type) && delete o.type
- o.dataType && (o.type = o.dataType)
- o.jsonpCallback && (o.jsonpCallbackName = o.jsonpCallback) && delete o.jsonpCallback
- o.jsonp && (o.jsonpCallback = o.jsonp)
- }
- return new Reqwest(o, fn)
- }
-
- return reqwest
- });
-
-
- provide("reqwest", module.exports);
-
- !function ($) {
- var r = require('reqwest')
- , integrate = function(method) {
- return function() {
- var args = Array.prototype.slice.call(arguments, 0)
- , i = (this && this.length) || 0
- while (i--) args.unshift(this[i])
- return r[method].apply(null, args)
- }
- }
- , s = integrate('serialize')
- , sa = integrate('serializeArray')
-
- $.ender({
- ajax: r
- , serialize: r.serialize
- , serializeArray: r.serializeArray
- , toQueryString: r.toQueryString
- })
-
- $.ender({
- serialize: s
- , serializeArray: sa
- }, true)
- }(ender);
-
-
-}());
-
-(function () {
-
- var module = { exports: {} }, exports = module.exports;
-
- /*!
- * Bean - copyright (c) Jacob Thornton 2011-2012
- * https://github.com/fat/bean
- * MIT license
- */
- !(function (name, context, definition) {
- if (typeof module != 'undefined' && module.exports) module.exports = definition(name, context);
- else if (typeof define == 'function' && typeof define.amd == 'object') define(definition);
- else context[name] = definition(name, context);
- }('bean', this, function (name, context) {
- var win = window
- , old = context[name]
- , namespaceRegex = /[^\.]*(?=\..*)\.|.*/
- , nameRegex = /\..*/
- , addEvent = 'addEventListener'
- , removeEvent = 'removeEventListener'
- , doc = document || {}
- , root = doc.documentElement || {}
- , W3C_MODEL = root[addEvent]
- , eventSupport = W3C_MODEL ? addEvent : 'attachEvent'
- , ONE = {} // singleton for quick matching making add() do one()
-
- , slice = Array.prototype.slice
- , str2arr = function (s, d) { return s.split(d || ' ') }
- , isString = function (o) { return typeof o == 'string' }
- , isFunction = function (o) { return typeof o == 'function' }
-
- // events that we consider to be 'native', anything not in this list will
- // be treated as a custom event
- , standardNativeEvents =
- 'click dblclick mouseup mousedown contextmenu ' + // mouse buttons
- 'mousewheel mousemultiwheel DOMMouseScroll ' + // mouse wheel
- 'mouseover mouseout mousemove selectstart selectend ' + // mouse movement
- 'keydown keypress keyup ' + // keyboard
- 'orientationchange ' + // mobile
- 'focus blur change reset select submit ' + // form elements
- 'load unload beforeunload resize move DOMContentLoaded ' + // window
- 'readystatechange message ' + // window
- 'error abort scroll ' // misc
- // element.fireEvent('onXYZ'... is not forgiving if we try to fire an event
- // that doesn't actually exist, so make sure we only do these on newer browsers
- , w3cNativeEvents =
- 'show ' + // mouse buttons
- 'input invalid ' + // form elements
- 'touchstart touchmove touchend touchcancel ' + // touch
- 'gesturestart gesturechange gestureend ' + // gesture
- 'textinput' + // TextEvent
- 'readystatechange pageshow pagehide popstate ' + // window
- 'hashchange offline online ' + // window
- 'afterprint beforeprint ' + // printing
- 'dragstart dragenter dragover dragleave drag drop dragend ' + // dnd
- 'loadstart progress suspend emptied stalled loadmetadata ' + // media
- 'loadeddata canplay canplaythrough playing waiting seeking ' + // media
- 'seeked ended durationchange timeupdate play pause ratechange ' + // media
- 'volumechange cuechange ' + // media
- 'checking noupdate downloading cached updateready obsolete ' // appcache
-
- // convert to a hash for quick lookups
- , nativeEvents = (function (hash, events, i) {
- for (i = 0; i < events.length; i++) events[i] && (hash[events[i]] = 1)
- return hash
- }({}, str2arr(standardNativeEvents + (W3C_MODEL ? w3cNativeEvents : ''))))
-
- // custom events are events that we *fake*, they are not provided natively but
- // we can use native events to generate them
- , customEvents = (function () {
- var isAncestor = 'compareDocumentPosition' in root
- ? function (element, container) {
- return container.compareDocumentPosition && (container.compareDocumentPosition(element) & 16) === 16
- }
- : 'contains' in root
- ? function (element, container) {
- container = container.nodeType === 9 || container === window ? root : container
- return container !== element && container.contains(element)
- }
- : function (element, container) {
- while (element = element.parentNode) if (element === container) return 1
- return 0
- }
- , check = function (event) {
- var related = event.relatedTarget
- return !related
- ? related == null
- : (related !== this && related.prefix !== 'xul' && !/document/.test(this.toString())
- && !isAncestor(related, this))
- }
-
- return {
- mouseenter: { base: 'mouseover', condition: check }
- , mouseleave: { base: 'mouseout', condition: check }
- , mousewheel: { base: /Firefox/.test(navigator.userAgent) ? 'DOMMouseScroll' : 'mousewheel' }
- }
- }())
-
- // we provide a consistent Event object across browsers by taking the actual DOM
- // event object and generating a new one from its properties.
- , Event = (function () {
- // a whitelist of properties (for different event types) tells us what to check for and copy
- var commonProps = str2arr('altKey attrChange attrName bubbles cancelable ctrlKey currentTarget ' +
- 'detail eventPhase getModifierState isTrusted metaKey relatedNode relatedTarget shiftKey ' +
- 'srcElement target timeStamp type view which propertyName')
- , mouseProps = commonProps.concat(str2arr('button buttons clientX clientY dataTransfer ' +
- 'fromElement offsetX offsetY pageX pageY screenX screenY toElement'))
- , mouseWheelProps = mouseProps.concat(str2arr('wheelDelta wheelDeltaX wheelDeltaY wheelDeltaZ ' +
- 'axis')) // 'axis' is FF specific
- , keyProps = commonProps.concat(str2arr('char charCode key keyCode keyIdentifier ' +
- 'keyLocation location'))
- , textProps = commonProps.concat(str2arr('data'))
- , touchProps = commonProps.concat(str2arr('touches targetTouches changedTouches scale rotation'))
- , messageProps = commonProps.concat(str2arr('data origin source'))
- , stateProps = commonProps.concat(str2arr('state'))
- , overOutRegex = /over|out/
- // some event types need special handling and some need special properties, do that all here
- , typeFixers = [
- { // key events
- reg: /key/i
- , fix: function (event, newEvent) {
- newEvent.keyCode = event.keyCode || event.which
- return keyProps
- }
- }
- , { // mouse events
- reg: /click|mouse(?!(.*wheel|scroll))|menu|drag|drop/i
- , fix: function (event, newEvent, type) {
- newEvent.rightClick = event.which === 3 || event.button === 2
- newEvent.pos = { x: 0, y: 0 }
- if (event.pageX || event.pageY) {
- newEvent.clientX = event.pageX
- newEvent.clientY = event.pageY
- } else if (event.clientX || event.clientY) {
- newEvent.clientX = event.clientX + doc.body.scrollLeft + root.scrollLeft
- newEvent.clientY = event.clientY + doc.body.scrollTop + root.scrollTop
- }
- if (overOutRegex.test(type)) {
- newEvent.relatedTarget = event.relatedTarget
- || event[(type == 'mouseover' ? 'from' : 'to') + 'Element']
- }
- return mouseProps
- }
- }
- , { // mouse wheel events
- reg: /mouse.*(wheel|scroll)/i
- , fix: function () { return mouseWheelProps }
- }
- , { // TextEvent
- reg: /^text/i
- , fix: function () { return textProps }
- }
- , { // touch and gesture events
- reg: /^touch|^gesture/i
- , fix: function () { return touchProps }
- }
- , { // message events
- reg: /^message$/i
- , fix: function () { return messageProps }
- }
- , { // popstate events
- reg: /^popstate$/i
- , fix: function () { return stateProps }
- }
- , { // everything else
- reg: /.*/
- , fix: function () { return commonProps }
- }
- ]
- , typeFixerMap = {} // used to map event types to fixer functions (above), a basic cache mechanism
-
- , Event = function (event, element, isNative) {
- if (!arguments.length) return
- event = event || ((element.ownerDocument || element.document || element).parentWindow || win).event
- this.originalEvent = event
- this.isNative = isNative
- this.isBean = true
-
- if (!event) return
-
- var type = event.type
- , target = event.target || event.srcElement
- , i, l, p, props, fixer
-
- this.target = target && target.nodeType === 3 ? target.parentNode : target
-
- if (isNative) { // we only need basic augmentation on custom events, the rest expensive & pointless
- fixer = typeFixerMap[type]
- if (!fixer) { // haven't encountered this event type before, map a fixer function for it
- for (i = 0, l = typeFixers.length; i < l; i++) {
- if (typeFixers[i].reg.test(type)) { // guaranteed to match at least one, last is .*
- typeFixerMap[type] = fixer = typeFixers[i].fix
- break
- }
- }
- }
-
- props = fixer(event, this, type)
- for (i = props.length; i--;) {
- if (!((p = props[i]) in this) && p in event) this[p] = event[p]
- }
- }
- }
-
- // preventDefault() and stopPropagation() are a consistent interface to those functions
- // on the DOM, stop() is an alias for both of them together
- Event.prototype.preventDefault = function () {
- if (this.originalEvent.preventDefault) this.originalEvent.preventDefault()
- else this.originalEvent.returnValue = false
- }
- Event.prototype.stopPropagation = function () {
- if (this.originalEvent.stopPropagation) this.originalEvent.stopPropagation()
- else this.originalEvent.cancelBubble = true
- }
- Event.prototype.stop = function () {
- this.preventDefault()
- this.stopPropagation()
- this.stopped = true
- }
- // stopImmediatePropagation() has to be handled internally because we manage the event list for
- // each element
- // note that originalElement may be a Bean#Event object in some situations
- Event.prototype.stopImmediatePropagation = function () {
- if (this.originalEvent.stopImmediatePropagation) this.originalEvent.stopImmediatePropagation()
- this.isImmediatePropagationStopped = function () { return true }
- }
- Event.prototype.isImmediatePropagationStopped = function () {
- return this.originalEvent.isImmediatePropagationStopped && this.originalEvent.isImmediatePropagationStopped()
- }
- Event.prototype.clone = function (currentTarget) {
- //TODO: this is ripe for optimisation, new events are *expensive*
- // improving this will speed up delegated events
- var ne = new Event(this, this.element, this.isNative)
- ne.currentTarget = currentTarget
- return ne
- }
-
- return Event
- }())
-
- // if we're in old IE we can't do onpropertychange on doc or win so we use doc.documentElement for both
- , targetElement = function (element, isNative) {
- return !W3C_MODEL && !isNative && (element === doc || element === win) ? root : element
- }
-
- /**
- * Bean maintains an internal registry for event listeners. We don't touch elements, objects
- * or functions to identify them, instead we store everything in the registry.
- * Each event listener has a RegEntry object, we have one 'registry' for the whole instance.
- */
- , RegEntry = (function () {
- // each handler is wrapped so we can handle delegation and custom events
- var wrappedHandler = function (element, fn, condition, args) {
- var call = function (event, eargs) {
- return fn.apply(element, args ? slice.call(eargs, event ? 0 : 1).concat(args) : eargs)
- }
- , findTarget = function (event, eventElement) {
- return fn.__beanDel ? fn.__beanDel.ft(event.target, element) : eventElement
- }
- , handler = condition
- ? function (event) {
- var target = findTarget(event, this) // deleated event
- if (condition.apply(target, arguments)) {
- if (event) event.currentTarget = target
- return call(event, arguments)
- }
- }
- : function (event) {
- if (fn.__beanDel) event = event.clone(findTarget(event)) // delegated event, fix the fix
- return call(event, arguments)
- }
- handler.__beanDel = fn.__beanDel
- return handler
- }
-
- , RegEntry = function (element, type, handler, original, namespaces, args, root) {
- var customType = customEvents[type]
- , isNative
-
- if (type == 'unload') {
- // self clean-up
- handler = once(removeListener, element, type, handler, original)
- }
-
- if (customType) {
- if (customType.condition) {
- handler = wrappedHandler(element, handler, customType.condition, args)
- }
- type = customType.base || type
- }
-
- this.isNative = isNative = nativeEvents[type] && !!element[eventSupport]
- this.customType = !W3C_MODEL && !isNative && type
- this.element = element
- this.type = type
- this.original = original
- this.namespaces = namespaces
- this.eventType = W3C_MODEL || isNative ? type : 'propertychange'
- this.target = targetElement(element, isNative)
- this[eventSupport] = !!this.target[eventSupport]
- this.root = root
- this.handler = wrappedHandler(element, handler, null, args)
- }
-
- // given a list of namespaces, is our entry in any of them?
- RegEntry.prototype.inNamespaces = function (checkNamespaces) {
- var i, j, c = 0
- if (!checkNamespaces) return true
- if (!this.namespaces) return false
- for (i = checkNamespaces.length; i--;) {
- for (j = this.namespaces.length; j--;) {
- if (checkNamespaces[i] == this.namespaces[j]) c++
- }
- }
- return checkNamespaces.length === c
- }
-
- // match by element, original fn (opt), handler fn (opt)
- RegEntry.prototype.matches = function (checkElement, checkOriginal, checkHandler) {
- return this.element === checkElement &&
- (!checkOriginal || this.original === checkOriginal) &&
- (!checkHandler || this.handler === checkHandler)
- }
-
- return RegEntry
- }())
-
- , registry = (function () {
- // our map stores arrays by event type, just because it's better than storing
- // everything in a single array.
- // uses '$' as a prefix for the keys for safety and 'r' as a special prefix for
- // rootListeners so we can look them up fast
- var map = {}
-
- // generic functional search of our registry for matching listeners,
- // `fn` returns false to break out of the loop
- , forAll = function (element, type, original, handler, root, fn) {
- var pfx = root ? 'r' : '$'
- if (!type || type == '*') {
- // search the whole registry
- for (var t in map) {
- if (t.charAt(0) == pfx) {
- forAll(element, t.substr(1), original, handler, root, fn)
- }
- }
- } else {
- var i = 0, l, list = map[pfx + type], all = element == '*'
- if (!list) return
- for (l = list.length; i < l; i++) {
- if ((all || list[i].matches(element, original, handler)) && !fn(list[i], list, i, type)) return
- }
- }
- }
-
- , has = function (element, type, original, root) {
- // we're not using forAll here simply because it's a bit slower and this
- // needs to be fast
- var i, list = map[(root ? 'r' : '$') + type]
- if (list) {
- for (i = list.length; i--;) {
- if (!list[i].root && list[i].matches(element, original, null)) return true
- }
- }
- return false
- }
-
- , get = function (element, type, original, root) {
- var entries = []
- forAll(element, type, original, null, root, function (entry) {
- return entries.push(entry)
- })
- return entries
- }
-
- , put = function (entry) {
- var has = !entry.root && !this.has(entry.element, entry.type, null, false)
- , key = (entry.root ? 'r' : '$') + entry.type
- ;(map[key] || (map[key] = [])).push(entry)
- return has
- }
-
- , del = function (entry) {
- forAll(entry.element, entry.type, null, entry.handler, entry.root, function (entry, list, i) {
- list.splice(i, 1)
- entry.removed = true
- if (list.length === 0) delete map[(entry.root ? 'r' : '$') + entry.type]
- return false
- })
- }
-
- // dump all entries, used for onunload
- , entries = function () {
- var t, entries = []
- for (t in map) {
- if (t.charAt(0) == '$') entries = entries.concat(map[t])
- }
- return entries
- }
-
- return { has: has, get: get, put: put, del: del, entries: entries }
- }())
-
- // we need a selector engine for delegated events, use querySelectorAll if it exists
- // but for older browsers we need Qwery, Sizzle or similar
- , selectorEngine
- , setSelectorEngine = function (e) {
- if (!arguments.length) {
- selectorEngine = doc.querySelectorAll
- ? function (s, r) {
- return r.querySelectorAll(s)
- }
- : function () {
- throw new Error('Bean: No selector engine installed') // eeek
- }
- } else {
- selectorEngine = e
- }
- }
-
- // we attach this listener to each DOM event that we need to listen to, only once
- // per event type per DOM element
- , rootListener = function (event, type) {
- if (!W3C_MODEL && type && event && event.propertyName != '_on' + type) return
-
- var listeners = registry.get(this, type || event.type, null, false)
- , l = listeners.length
- , i = 0
-
- event = new Event(event, this, true)
- if (type) event.type = type
-
- // iterate through all handlers registered for this type, calling them unless they have
- // been removed by a previous handler or stopImmediatePropagation() has been called
- for (; i < l && !event.isImmediatePropagationStopped(); i++) {
- if (!listeners[i].removed) listeners[i].handler.call(this, event)
- }
- }
-
- // add and remove listeners to DOM elements
- , listener = W3C_MODEL
- ? function (element, type, add) {
- // new browsers
- element[add ? addEvent : removeEvent](type, rootListener, false)
- }
- : function (element, type, add, custom) {
- // IE8 and below, use attachEvent/detachEvent and we have to piggy-back propertychange events
- // to simulate event bubbling etc.
- var entry
- if (add) {
- registry.put(entry = new RegEntry(
- element
- , custom || type
- , function (event) { // handler
- rootListener.call(element, event, custom)
- }
- , rootListener
- , null
- , null
- , true // is root
- ))
- if (custom && element['_on' + custom] == null) element['_on' + custom] = 0
- entry.target.attachEvent('on' + entry.eventType, entry.handler)
- } else {
- entry = registry.get(element, custom || type, rootListener, true)[0]
- if (entry) {
- entry.target.detachEvent('on' + entry.eventType, entry.handler)
- registry.del(entry)
- }
- }
- }
-
- , once = function (rm, element, type, fn, originalFn) {
- // wrap the handler in a handler that does a remove as well
- return function () {
- fn.apply(this, arguments)
- rm(element, type, originalFn)
- }
- }
-
- , removeListener = function (element, orgType, handler, namespaces) {
- var type = orgType && orgType.replace(nameRegex, '')
- , handlers = registry.get(element, type, null, false)
- , removed = {}
- , i, l
-
- for (i = 0, l = handlers.length; i < l; i++) {
- if ((!handler || handlers[i].original === handler) && handlers[i].inNamespaces(namespaces)) {
- // TODO: this is problematic, we have a registry.get() and registry.del() that
- // both do registry searches so we waste cycles doing this. Needs to be rolled into
- // a single registry.forAll(fn) that removes while finding, but the catch is that
- // we'll be splicing the arrays that we're iterating over. Needs extra tests to
- // make sure we don't screw it up. @rvagg
- registry.del(handlers[i])
- if (!removed[handlers[i].eventType] && handlers[i][eventSupport])
- removed[handlers[i].eventType] = { t: handlers[i].eventType, c: handlers[i].type }
- }
- }
- // check each type/element for removed listeners and remove the rootListener where it's no longer needed
- for (i in removed) {
- if (!registry.has(element, removed[i].t, null, false)) {
- // last listener of this type, remove the rootListener
- listener(element, removed[i].t, false, removed[i].c)
- }
- }
- }
-
- // set up a delegate helper using the given selector, wrap the handler function
- , delegate = function (selector, fn) {
- //TODO: findTarget (therefore $) is called twice, once for match and once for
- // setting e.currentTarget, fix this so it's only needed once
- var findTarget = function (target, root) {
- var i, array = isString(selector) ? selectorEngine(selector, root) : selector
- for (; target && target !== root; target = target.parentNode) {
- for (i = array.length; i--;) {
- if (array[i] === target) return target
- }
- }
- }
- , handler = function (e) {
- var match = findTarget(e.target, this)
- if (match) fn.apply(match, arguments)
- }
-
- // __beanDel isn't pleasant but it's a private function, not exposed outside of Bean
- handler.__beanDel = {
- ft : findTarget // attach it here for customEvents to use too
- , selector : selector
- }
- return handler
- }
-
- , fireListener = W3C_MODEL ? function (isNative, type, element) {
- // modern browsers, do a proper dispatchEvent()
- var evt = doc.createEvent(isNative ? 'HTMLEvents' : 'UIEvents')
- evt[isNative ? 'initEvent' : 'initUIEvent'](type, true, true, win, 1)
- element.dispatchEvent(evt)
- } : function (isNative, type, element) {
- // old browser use onpropertychange, just increment a custom property to trigger the event
- element = targetElement(element, isNative)
- isNative ? element.fireEvent('on' + type, doc.createEventObject()) : element['_on' + type]++
- }
-
- /**
- * Public API: off(), on(), add(), (remove()), one(), fire(), clone()
- */
-
- /**
- * off(element[, eventType(s)[, handler ]])
- */
- , off = function (element, typeSpec, fn) {
- var isTypeStr = isString(typeSpec)
- , k, type, namespaces, i
-
- if (isTypeStr && typeSpec.indexOf(' ') > 0) {
- // off(el, 't1 t2 t3', fn) or off(el, 't1 t2 t3')
- typeSpec = str2arr(typeSpec)
- for (i = typeSpec.length; i--;)
- off(element, typeSpec[i], fn)
- return element
- }
-
- type = isTypeStr && typeSpec.replace(nameRegex, '')
- if (type && customEvents[type]) type = customEvents[type].base
-
- if (!typeSpec || isTypeStr) {
- // off(el) or off(el, t1.ns) or off(el, .ns) or off(el, .ns1.ns2.ns3)
- if (namespaces = isTypeStr && typeSpec.replace(namespaceRegex, '')) namespaces = str2arr(namespaces, '.')
- removeListener(element, type, fn, namespaces)
- } else if (isFunction(typeSpec)) {
- // off(el, fn)
- removeListener(element, null, typeSpec)
- } else {
- // off(el, { t1: fn1, t2, fn2 })
- for (k in typeSpec) {
- if (typeSpec.hasOwnProperty(k)) off(element, k, typeSpec[k])
- }
- }
-
- return element
- }
-
- /**
- * on(element, eventType(s)[, selector], handler[, args ])
- */
- , on = function(element, events, selector, fn) {
- var originalFn, type, types, i, args, entry, first
-
- //TODO: the undefined check means you can't pass an 'args' argument, fix this perhaps?
- if (selector === undefined && typeof events == 'object') {
- //TODO: this can't handle delegated events
- for (type in events) {
- if (events.hasOwnProperty(type)) {
- on.call(this, element, type, events[type])
- }
- }
- return
- }
-
- if (!isFunction(selector)) {
- // delegated event
- originalFn = fn
- args = slice.call(arguments, 4)
- fn = delegate(selector, originalFn, selectorEngine)
- } else {
- args = slice.call(arguments, 3)
- fn = originalFn = selector
- }
-
- types = str2arr(events)
-
- // special case for one(), wrap in a self-removing handler
- if (this === ONE) {
- fn = once(off, element, events, fn, originalFn)
- }
-
- for (i = types.length; i--;) {
- // add new handler to the registry and check if it's the first for this element/type
- first = registry.put(entry = new RegEntry(
- element
- , types[i].replace(nameRegex, '') // event type
- , fn
- , originalFn
- , str2arr(types[i].replace(namespaceRegex, ''), '.') // namespaces
- , args
- , false // not root
- ))
- if (entry[eventSupport] && first) {
- // first event of this type on this element, add root listener
- listener(element, entry.eventType, true, entry.customType)
- }
- }
-
- return element
- }
-
- /**
- * add(element[, selector], eventType(s), handler[, args ])
- *
- * Deprecated: kept (for now) for backward-compatibility
- */
- , add = function (element, events, fn, delfn) {
- return on.apply(
- null
- , !isString(fn)
- ? slice.call(arguments)
- : [ element, fn, events, delfn ].concat(arguments.length > 3 ? slice.call(arguments, 5) : [])
- )
- }
-
- /**
- * one(element, eventType(s)[, selector], handler[, args ])
- */
- , one = function () {
- return on.apply(ONE, arguments)
- }
-
- /**
- * fire(element, eventType(s)[, args ])
- *
- * The optional 'args' argument must be an array, if no 'args' argument is provided
- * then we can use the browser's DOM event system, otherwise we trigger handlers manually
- */
- , fire = function (element, type, args) {
- var types = str2arr(type)
- , i, j, l, names, handlers
-
- for (i = types.length; i--;) {
- type = types[i].replace(nameRegex, '')
- if (names = types[i].replace(namespaceRegex, '')) names = str2arr(names, '.')
- if (!names && !args && element[eventSupport]) {
- fireListener(nativeEvents[type], type, element)
- } else {
- // non-native event, either because of a namespace, arguments or a non DOM element
- // iterate over all listeners and manually 'fire'
- handlers = registry.get(element, type, null, false)
- args = [false].concat(args)
- for (j = 0, l = handlers.length; j < l; j++) {
- if (handlers[j].inNamespaces(names)) {
- handlers[j].handler.apply(element, args)
- }
- }
- }
- }
- return element
- }
-
- /**
- * clone(dstElement, srcElement[, eventType ])
- *
- * TODO: perhaps for consistency we should allow the same flexibility in type specifiers?
- */
- , clone = function (element, from, type) {
- var handlers = registry.get(from, type, null, false)
- , l = handlers.length
- , i = 0
- , args, beanDel
-
- for (; i < l; i++) {
- if (handlers[i].original) {
- args = [ element, handlers[i].type ]
- if (beanDel = handlers[i].handler.__beanDel) args.push(beanDel.selector)
- args.push(handlers[i].original)
- on.apply(null, args)
- }
- }
- return element
- }
-
- , bean = {
- on : on
- , add : add
- , one : one
- , off : off
- , remove : off
- , clone : clone
- , fire : fire
- , setSelectorEngine : setSelectorEngine
- , noConflict : function () {
- context[name] = old
- return this
- }
- }
-
- // for IE, clean up on unload to avoid leaks
- if (win.attachEvent) {
- var cleanup = function () {
- var i, entries = registry.entries()
- for (i in entries) {
- if (entries[i].type && entries[i].type !== 'unload') off(entries[i].element, entries[i].type)
- }
- win.detachEvent('onunload', cleanup)
- win.CollectGarbage && win.CollectGarbage()
- }
- win.attachEvent('onunload', cleanup)
- }
-
- // initialize selector engine to internal default (qSA or throw Error)
- setSelectorEngine()
-
- return bean
- }));
-
-
- provide("bean", module.exports);
-
- !function ($) {
- var b = require('bean')
-
- , integrate = function (method, type, method2) {
- var _args = type ? [type] : []
- return function () {
- for (var i = 0, l = this.length; i < l; i++) {
- if (!arguments.length && method == 'on' && type) method = 'fire'
- b[method].apply(this, [this[i]].concat(_args, Array.prototype.slice.call(arguments, 0)))
- }
- return this
- }
- }
-
- , add = integrate('add')
- , on = integrate('on')
- , one = integrate('one')
- , off = integrate('off')
- , fire = integrate('fire')
- , clone = integrate('clone')
-
- , hover = function (enter, leave, i) { // i for internal
- for (i = this.length; i--;) {
- b.on.call(this, this[i], 'mouseenter', enter)
- b.on.call(this, this[i], 'mouseleave', leave)
- }
- return this
- }
-
- , methods = {
- on : on
- , addListener : on
- , bind : on
- , listen : on
- , delegate : add // jQuery compat, same arg order as add()
-
- , one : one
-
- , off : off
- , unbind : off
- , unlisten : off
- , removeListener : off
- , undelegate : off
-
- , emit : fire
- , trigger : fire
-
- , cloneEvents : clone
-
- , hover : hover
- }
-
- , shortcuts =
- ('blur change click dblclick error focus focusin focusout keydown keypress '
- + 'keyup load mousedown mouseenter mouseleave mouseout mouseover mouseup '
- + 'mousemove resize scroll select submit unload').split(' ')
-
- for (var i = shortcuts.length; i--;) {
- methods[shortcuts[i]] = integrate('on', shortcuts[i])
- }
-
- b.setSelectorEngine($)
-
- $.ender(methods, true)
- }(ender);
-
-}());
-
-(function () {
-
- var module = { exports: {} }, exports = module.exports;
-
- /*!
- * Bonzo: DOM Utility (c) Dustin Diaz 2012
- * https://github.com/ded/bonzo
- * License MIT
- */
- (function (name, context, definition) {
- if (typeof module != 'undefined' && module.exports) module.exports = definition()
- else if (typeof context['define'] == 'function' && context['define']['amd']) define(definition)
- else context[name] = definition()
- })('bonzo', this, function() {
- var win = window
- , doc = win.document
- , html = doc.documentElement
- , parentNode = 'parentNode'
- , specialAttributes = /^(checked|value|selected|disabled)$/i
- , specialTags = /^(select|fieldset|table|tbody|tfoot|td|tr|colgroup)$/i // tags that we have trouble inserting *into*
- , simpleScriptTagRe = /\s*<script +src=['"]([^'"]+)['"]>/
- , table = ['<table>', '</table>', 1]
- , td = ['<table><tbody><tr>', '</tr></tbody></table>', 3]
- , option = ['<select>', '</select>', 1]
- , noscope = ['_', '', 0, 1]
- , tagMap = { // tags that we have trouble *inserting*
- thead: table, tbody: table, tfoot: table, colgroup: table, caption: table
- , tr: ['<table><tbody>', '</tbody></table>', 2]
- , th: td , td: td
- , col: ['<table><colgroup>', '</colgroup></table>', 2]
- , fieldset: ['<form>', '</form>', 1]
- , legend: ['<form><fieldset>', '</fieldset></form>', 2]
- , option: option, optgroup: option
- , script: noscope, style: noscope, link: noscope, param: noscope, base: noscope
- }
- , stateAttributes = /^(checked|selected|disabled)$/
- , ie = /msie/i.test(navigator.userAgent)
- , hasClass, addClass, removeClass
- , uidMap = {}
- , uuids = 0
- , digit = /^-?[\d\.]+$/
- , dattr = /^data-(.+)$/
- , px = 'px'
- , setAttribute = 'setAttribute'
- , getAttribute = 'getAttribute'
- , byTag = 'getElementsByTagName'
- , features = function() {
- var e = doc.createElement('p')
- e.innerHTML = '<a href="#x">x</a><table style="float:left;"></table>'
- return {
- hrefExtended: e[byTag]('a')[0][getAttribute]('href') != '#x' // IE < 8
- , autoTbody: e[byTag]('tbody').length !== 0 // IE < 8
- , computedStyle: doc.defaultView && doc.defaultView.getComputedStyle
- , cssFloat: e[byTag]('table')[0].style.styleFloat ? 'styleFloat' : 'cssFloat'
- , transform: function () {
- var props = ['transform', 'webkitTransform', 'MozTransform', 'OTransform', 'msTransform'], i
- for (i = 0; i < props.length; i++) {
- if (props[i] in e.style) return props[i]
- }
- }()
- , classList: 'classList' in e
- , opasity: function () {
- return typeof doc.createElement('a').style.opacity !== 'undefined'
- }()
- }
- }()
- , trimReplace = /(^\s*|\s*$)/g
- , whitespaceRegex = /\s+/
- , toString = String.prototype.toString
- , unitless = { lineHeight: 1, zoom: 1, zIndex: 1, opacity: 1, boxFlex: 1, WebkitBoxFlex: 1, MozBoxFlex: 1 }
- , query = doc.querySelectorAll && function (selector) { return doc.querySelectorAll(selector) }
- , trim = String.prototype.trim ?
- function (s) {
- return s.trim()
- } :
- function (s) {
- return s.replace(trimReplace, '')
- }
-
-
- function isNode(node) {
- return node && node.nodeName && (node.nodeType == 1 || node.nodeType == 11)
- }
-
-
- function normalize(node, host, clone) {
- var i, l, ret
- if (typeof node == 'string') return bonzo.create(node)
- if (isNode(node)) node = [ node ]
- if (clone) {
- ret = [] // don't change original array
- for (i = 0, l = node.length; i < l; i++) ret[i] = cloneNode(host, node[i])
- return ret
- }
- return node
- }
-
-
- /**
- * @param {string} c a class name to test
- * @return {boolean}
- */
- function classReg(c) {
- return new RegExp("(^|\\s+)" + c + "(\\s+|$)")
- }
-
-
- /**
- * @param {Bonzo|Array} ar
- * @param {function(Object, number, (Bonzo|Array))} fn
- * @param {Object=} opt_scope
- * @param {boolean=} opt_rev
- * @return {Bonzo|Array}
- */
- function each(ar, fn, opt_scope, opt_rev) {
- var ind, i = 0, l = ar.length
- for (; i < l; i++) {
- ind = opt_rev ? ar.length - i - 1 : i
- fn.call(opt_scope || ar[ind], ar[ind], ind, ar)
- }
- return ar
- }
-
-
- /**
- * @param {Bonzo|Array} ar
- * @param {function(Object, number, (Bonzo|Array))} fn
- * @param {Object=} opt_scope
- * @return {Bonzo|Array}
- */
- function deepEach(ar, fn, opt_scope) {
- for (var i = 0, l = ar.length; i < l; i++) {
- if (isNode(ar[i])) {
- deepEach(ar[i].childNodes, fn, opt_scope)
- fn.call(opt_scope || ar[i], ar[i], i, ar)
- }
- }
- return ar
- }
-
-
- /**
- * @param {string} s
- * @return {string}
- */
- function camelize(s) {
- return s.replace(/-(.)/g, function (m, m1) {
- return m1.toUpperCase()
- })
- }
-
-
- /**
- * @param {string} s
- * @return {string}
- */
- function decamelize(s) {
- return s ? s.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase() : s
- }
-
-
- /**
- * @param {Element} el
- * @return {*}
- */
- function data(el) {
- el[getAttribute]('data-node-uid') || el[setAttribute]('data-node-uid', ++uuids)
- var uid = el[getAttribute]('data-node-uid')
- return uidMap[uid] || (uidMap[uid] = {})
- }
-
-
- /**
- * removes the data associated with an element
- * @param {Element} el
- */
- function clearData(el) {
- var uid = el[getAttribute]('data-node-uid')
- if (uid) delete uidMap[uid]
- }
-
-
- function dataValue(d) {
- var f
- try {
- return (d === null || d === undefined) ? undefined :
- d === 'true' ? true :
- d === 'false' ? false :
- d === 'null' ? null :
- (f = parseFloat(d)) == d ? f : d;
- } catch(e) {}
- return undefined
- }
-
-
- /**
- * @param {Bonzo|Array} ar
- * @param {function(Object, number, (Bonzo|Array))} fn
- * @param {Object=} opt_scope
- * @return {boolean} whether `some`thing was found
- */
- function some(ar, fn, opt_scope) {
- for (var i = 0, j = ar.length; i < j; ++i) if (fn.call(opt_scope || null, ar[i], i, ar)) return true
- return false
- }
-
-
- /**
- * this could be a giant enum of CSS properties
- * but in favor of file size sans-closure deadcode optimizations
- * we're just asking for any ol string
- * then it gets transformed into the appropriate style property for JS access
- * @param {string} p
- * @return {string}
- */
- function styleProperty(p) {
- (p == 'transform' && (p = features.transform)) ||
- (/^transform-?[Oo]rigin$/.test(p) && (p = features.transform + 'Origin')) ||
- (p == 'float' && (p = features.cssFloat))
- return p ? camelize(p) : null
- }
-
- var getStyle = features.computedStyle ?
- function (el, property) {
- var value = null
- , computed = doc.defaultView.getComputedStyle(el, '')
- computed && (value = computed[property])
- return el.style[property] || value
- } :
-
- (ie && html.currentStyle) ?
-
- /**
- * @param {Element} el
- * @param {string} property
- * @return {string|number}
- */
- function (el, property) {
- if (property == 'opacity' && !features.opasity) {
- var val = 100
- try {
- val = el['filters']['DXImageTransform.Microsoft.Alpha'].opacity
- } catch (e1) {
- try {
- val = el['filters']('alpha').opacity
- } catch (e2) {}
- }
- return val / 100
- }
- var value = el.currentStyle ? el.currentStyle[property] : null
- return el.style[property] || value
- } :
-
- function (el, property) {
- return el.style[property]
- }
-
- // this insert method is intense
- function insert(target, host, fn, rev) {
- var i = 0, self = host || this, r = []
- // target nodes could be a css selector if it's a string and a selector engine is present
- // otherwise, just use target
- , nodes = query && typeof target == 'string' && target.charAt(0) != '<' ? query(target) : target
- // normalize each node in case it's still a string and we need to create nodes on the fly
- each(normalize(nodes), function (t, j) {
- each(self, function (el) {
- fn(t, r[i++] = j > 0 ? cloneNode(self, el) : el)
- }, null, rev)
- }, this, rev)
- self.length = i
- each(r, function (e) {
- self[--i] = e
- }, null, !rev)
- return self
- }
-
-
- /**
- * sets an element to an explicit x/y position on the page
- * @param {Element} el
- * @param {?number} x
- * @param {?number} y
- */
- function xy(el, x, y) {
- var $el = bonzo(el)
- , style = $el.css('position')
- , offset = $el.offset()
- , rel = 'relative'
- , isRel = style == rel
- , delta = [parseInt($el.css('left'), 10), parseInt($el.css('top'), 10)]
-
- if (style == 'static') {
- $el.css('position', rel)
- style = rel
- }
-
- isNaN(delta[0]) && (delta[0] = isRel ? 0 : el.offsetLeft)
- isNaN(delta[1]) && (delta[1] = isRel ? 0 : el.offsetTop)
-
- x != null && (el.style.left = x - offset.left + delta[0] + px)
- y != null && (el.style.top = y - offset.top + delta[1] + px)
-
- }
-
- // classList support for class management
- // altho to be fair, the api sucks because it won't accept multiple classes at once
- if (features.classList) {
- hasClass = function (el, c) {
- return el.classList.contains(c)
- }
- addClass = function (el, c) {
- el.classList.add(c)
- }
- removeClass = function (el, c) {
- el.classList.remove(c)
- }
- }
- else {
- hasClass = function (el, c) {
- return classReg(c).test(el.className)
- }
- addClass = function (el, c) {
- el.className = trim(el.className + ' ' + c)
- }
- removeClass = function (el, c) {
- el.className = trim(el.className.replace(classReg(c), ' '))
- }
- }
-
-
- /**
- * this allows method calling for setting values
- *
- * @example
- * bonzo(elements).css('color', function (el) {
- * return el.getAttribute('data-original-color')
- * })
- *
- * @param {Element} el
- * @param {function (Element)|string}
- * @return {string}
- */
- function setter(el, v) {
- return typeof v == 'function' ? v(el) : v
- }
-
- /**
- * @constructor
- * @param {Array.<Element>|Element|Node|string} elements
- */
- function Bonzo(elements) {
- this.length = 0
- if (elements) {
- elements = typeof elements !== 'string' &&
- !elements.nodeType &&
- typeof elements.length !== 'undefined' ?
- elements :
- [elements]
- this.length = elements.length
- for (var i = 0; i < elements.length; i++) this[i] = elements[i]
- }
- }
-
- Bonzo.prototype = {
-
- /**
- * @param {number} index
- * @return {Element|Node}
- */
- get: function (index) {
- return this[index] || null
- }
-
- // itetators
- /**
- * @param {function(Element|Node)} fn
- * @param {Object=} opt_scope
- * @return {Bonzo}
- */
- , each: function (fn, opt_scope) {
- return each(this, fn, opt_scope)
- }
-
- /**
- * @param {Function} fn
- * @param {Object=} opt_scope
- * @return {Bonzo}
- */
- , deepEach: function (fn, opt_scope) {
- return deepEach(this, fn, opt_scope)
- }
-
-
- /**
- * @param {Function} fn
- * @param {Function=} opt_reject
- * @return {Array}
- */
- , map: function (fn, opt_reject) {
- var m = [], n, i
- for (i = 0; i < this.length; i++) {
- n = fn.call(this, this[i], i)
- opt_reject ? (opt_reject(n) && m.push(n)) : m.push(n)
- }
- return m
- }
-
- // text and html inserters!
-
- /**
- * @param {string} h the HTML to insert
- * @param {boolean=} opt_text whether to set or get text content
- * @return {Bonzo|string}
- */
- , html: function (h, opt_text) {
- var method = opt_text
- ? html.textContent === undefined ? 'innerText' : 'textContent'
- : 'innerHTML'
- , that = this
- , append = function (el, i) {
- each(normalize(h, that, i), function (node) {
- el.appendChild(node)
- })
- }
- , updateElement = function (el, i) {
- try {
- if (opt_text || (typeof h == 'string' && !specialTags.test(el.tagName))) {
- return el[method] = h
- }
- } catch (e) {}
- append(el, i)
- }
- return typeof h != 'undefined'
- ? this.empty().each(updateElement)
- : this[0] ? this[0][method] : ''
- }
-
- /**
- * @param {string=} opt_text the text to set, otherwise this is a getter
- * @return {Bonzo|string}
- */
- , text: function (opt_text) {
- return this.html(opt_text, true)
- }
-
- // more related insertion methods
-
- /**
- * @param {Bonzo|string|Element|Array} node
- * @return {Bonzo}
- */
- , append: function (node) {
- var that = this
- return this.each(function (el, i) {
- each(normalize(node, that, i), function (i) {
- el.appendChild(i)
- })
- })
- }
-
-
- /**
- * @param {Bonzo|string|Element|Array} node
- * @return {Bonzo}
- */
- , prepend: function (node) {
- var that = this
- return this.each(function (el, i) {
- var first = el.firstChild
- each(normalize(node, that, i), function (i) {
- el.insertBefore(i, first)
- })
- })
- }
-
-
- /**
- * @param {Bonzo|string|Element|Array} target the location for which you'll insert your new content
- * @param {Object=} opt_host an optional host scope (primarily used when integrated with Ender)
- * @return {Bonzo}
- */
- , appendTo: function (target, opt_host) {
- return insert.call(this, target, opt_host, function (t, el) {
- t.appendChild(el)
- })
- }
-
-
- /**
- * @param {Bonzo|string|Element|Array} target the location for which you'll insert your new content
- * @param {Object=} opt_host an optional host scope (primarily used when integrated with Ender)
- * @return {Bonzo}
- */
- , prependTo: function (target, opt_host) {
- return insert.call(this, target, opt_host, function (t, el) {
- t.insertBefore(el, t.firstChild)
- }, 1)
- }
-
-
- /**
- * @param {Bonzo|string|Element|Array} node
- * @return {Bonzo}
- */
- , before: function (node) {
- var that = this
- return this.each(function (el, i) {
- each(normalize(node, that, i), function (i) {
- el[parentNode].insertBefore(i, el)
- })
- })
- }
-
-
- /**
- * @param {Bonzo|string|Element|Array} node
- * @return {Bonzo}
- */
- , after: function (node) {
- var that = this
- return this.each(function (el, i) {
- each(normalize(node, that, i), function (i) {
- el[parentNode].insertBefore(i, el.nextSibling)
- }, null, 1)
- })
- }
-
-
- /**
- * @param {Bonzo|string|Element|Array} target the location for which you'll insert your new content
- * @param {Object=} opt_host an optional host scope (primarily used when integrated with Ender)
- * @return {Bonzo}
- */
- , insertBefore: function (target, opt_host) {
- return insert.call(this, target, opt_host, function (t, el) {
- t[parentNode].insertBefore(el, t)
- })
- }
-
-
- /**
- * @param {Bonzo|string|Element|Array} target the location for which you'll insert your new content
- * @param {Object=} opt_host an optional host scope (primarily used when integrated with Ender)
- * @return {Bonzo}
- */
- , insertAfter: function (target, opt_host) {
- return insert.call(this, target, opt_host, function (t, el) {
- var sibling = t.nextSibling
- sibling ?
- t[parentNode].insertBefore(el, sibling) :
- t[parentNode].appendChild(el)
- }, 1)
- }
-
-
- /**
- * @param {Bonzo|string|Element|Array} node
- * @return {Bonzo}
- */
- , replaceWith: function (node) {
- bonzo(normalize(node)).insertAfter(this)
- return this.remove()
- }
-
- // class management
-
- /**
- * @param {string} c
- * @return {Bonzo}
- */
- , addClass: function (c) {
- c = toString.call(c).split(whitespaceRegex)
- return this.each(function (el) {
- // we `each` here so you can do $el.addClass('foo bar')
- each(c, function (c) {
- if (c && !hasClass(el, setter(el, c)))
- addClass(el, setter(el, c))
- })
- })
- }
-
-
- /**
- * @param {string} c
- * @return {Bonzo}
- */
- , removeClass: function (c) {
- c = toString.call(c).split(whitespaceRegex)
- return this.each(function (el) {
- each(c, function (c) {
- if (c && hasClass(el, setter(el, c)))
- removeClass(el, setter(el, c))
- })
- })
- }
-
-
- /**
- * @param {string} c
- * @return {boolean}
- */
- , hasClass: function (c) {
- c = toString.call(c).split(whitespaceRegex)
- return some(this, function (el) {
- return some(c, function (c) {
- return c && hasClass(el, c)
- })
- })
- }
-
-
- /**
- * @param {string} c classname to toggle
- * @param {boolean=} opt_condition whether to add or remove the class straight away
- * @return {Bonzo}
- */
- , toggleClass: function (c, opt_condition) {
- c = toString.call(c).split(whitespaceRegex)
- return this.each(function (el) {
- each(c, function (c) {
- if (c) {
- typeof opt_condition !== 'undefined' ?
- opt_condition ? addClass(el, c) : removeClass(el, c) :
- hasClass(el, c) ? removeClass(el, c) : addClass(el, c)
- }
- })
- })
- }
-
- // display togglers
-
- /**
- * @param {string=} opt_type useful to set back to anything other than an empty string
- * @return {Bonzo}
- */
- , show: function (opt_type) {
- opt_type = typeof opt_type == 'string' ? opt_type : ''
- return this.each(function (el) {
- el.style.display = opt_type
- })
- }
-
-
- /**
- * @return {Bonzo}
- */
- , hide: function () {
- return this.each(function (el) {
- el.style.display = 'none'
- })
- }
-
-
- /**
- * @param {Function=} opt_callback
- * @param {string=} opt_type
- * @return {Bonzo}
- */
- , toggle: function (opt_callback, opt_type) {
- opt_type = typeof opt_type == 'string' ? opt_type : '';
- typeof opt_callback != 'function' && (opt_callback = null)
- return this.each(function (el) {
- el.style.display = (el.offsetWidth || el.offsetHeight) ? 'none' : opt_type;
- opt_callback && opt_callback.call(el)
- })
- }
-
-
- // DOM Walkers & getters
-
- /**
- * @return {Element|Node}
- */
- , first: function () {
- return bonzo(this.length ? this[0] : [])
- }
-
-
- /**
- * @return {Element|Node}
- */
- , last: function () {
- return bonzo(this.length ? this[this.length - 1] : [])
- }
-
-
- /**
- * @return {Element|Node}
- */
- , next: function () {
- return this.related('nextSibling')
- }
-
-
- /**
- * @return {Element|Node}
- */
- , previous: function () {
- return this.related('previousSibling')
- }
-
-
- /**
- * @return {Element|Node}
- */
- , parent: function() {
- return this.related(parentNode)
- }
-
-
- /**
- * @private
- * @param {string} method the directional DOM method
- * @return {Element|Node}
- */
- , related: function (method) {
- return this.map(
- function (el) {
- el = el[method]
- while (el && el.nodeType !== 1) {
- el = el[method]
- }
- return el || 0
- },
- function (el) {
- return el
- }
- )
- }
-
-
- /**
- * @return {Bonzo}
- */
- , focus: function () {
- this.length && this[0].focus()
- return this
- }
-
-
- /**
- * @return {Bonzo}
- */
- , blur: function () {
- this.length && this[0].blur()
- return this
- }
-
- // style getter setter & related methods
-
- /**
- * @param {Object|string} o
- * @param {string=} opt_v
- * @return {Bonzo|string}
- */
- , css: function (o, opt_v) {
- var p, iter = o
- // is this a request for just getting a style?
- if (opt_v === undefined && typeof o == 'string') {
- // repurpose 'v'
- opt_v = this[0]
- if (!opt_v) return null
- if (opt_v === doc || opt_v === win) {
- p = (opt_v === doc) ? bonzo.doc() : bonzo.viewport()
- return o == 'width' ? p.width : o == 'height' ? p.height : ''
- }
- return (o = styleProperty(o)) ? getStyle(opt_v, o) : null
- }
-
- if (typeof o == 'string') {
- iter = {}
- iter[o] = opt_v
- }
-
- if (ie && iter.opacity) {
- // oh this 'ol gamut
- iter.filter = 'alpha(opacity=' + (iter.opacity * 100) + ')'
- // give it layout
- iter.zoom = o.zoom || 1;
- delete iter.opacity;
- }
-
- function fn(el, p, v) {
- for (var k in iter) {
- if (iter.hasOwnProperty(k)) {
- v = iter[k];
- // change "5" to "5px" - unless you're line-height, which is allowed
- (p = styleProperty(k)) && digit.test(v) && !(p in unitless) && (v += px)
- try { el.style[p] = setter(el, v) } catch(e) {}
- }
- }
- }
- return this.each(fn)
- }
-
-
- /**
- * @param {number=} opt_x
- * @param {number=} opt_y
- * @return {Bonzo|number}
- */
- , offset: function (opt_x, opt_y) {
- if (opt_x && typeof opt_x == 'object' && (typeof opt_x.top == 'number' || typeof opt_x.left == 'number')) {
- return this.each(function (el) {
- xy(el, opt_x.left, opt_x.top)
- })
- } else if (typeof opt_x == 'number' || typeof opt_y == 'number') {
- return this.each(function (el) {
- xy(el, opt_x, opt_y)
- })
- }
- if (!this[0]) return {
- top: 0
- , left: 0
- , height: 0
- , width: 0
- }
- var el = this[0]
- , de = el.ownerDocument.documentElement
- , bcr = el.getBoundingClientRect()
- , scroll = getWindowScroll()
- , width = el.offsetWidth
- , height = el.offsetHeight
- , top = bcr.top + scroll.y - Math.max(0, de && de.clientTop, doc.body.clientTop)
- , left = bcr.left + scroll.x - Math.max(0, de && de.clientLeft, doc.body.clientLeft)
-
- return {
- top: top
- , left: left
- , height: height
- , width: width
- }
- }
-
-
- /**
- * @return {number}
- */
- , dim: function () {
- if (!this.length) return { height: 0, width: 0 }
- var el = this[0]
- , de = el.nodeType == 9 && el.documentElement // document
- , orig = !de && !!el.style && !el.offsetWidth && !el.offsetHeight ?
- // el isn't visible, can't be measured properly, so fix that
- function (t) {
- var s = {
- position: el.style.position || ''
- , visibility: el.style.visibility || ''
- , display: el.style.display || ''
- }
- t.first().css({
- position: 'absolute'
- , visibility: 'hidden'
- , display: 'block'
- })
- return s
- }(this) : null
- , width = de
- ? Math.max(el.body.scrollWidth, el.body.offsetWidth, de.scrollWidth, de.offsetWidth, de.clientWidth)
- : el.offsetWidth
- , height = de
- ? Math.max(el.body.scrollHeight, el.body.offsetHeight, de.scrollWidth, de.offsetWidth, de.clientHeight)
- : el.offsetHeight
-
- orig && this.first().css(orig)
- return {
- height: height
- , width: width
- }
- }
-
- // attributes are hard. go shopping
-
- /**
- * @param {string} k an attribute to get or set
- * @param {string=} opt_v the value to set
- * @return {Bonzo|string}
- */
- , attr: function (k, opt_v) {
- var el = this[0]
- if (typeof k != 'string' && !(k instanceof String)) {
- for (var n in k) {
- k.hasOwnProperty(n) && this.attr(n, k[n])
- }
- return this
- }
- return typeof opt_v == 'undefined' ?
- !el ? null : specialAttributes.test(k) ?
- stateAttributes.test(k) && typeof el[k] == 'string' ?
- true : el[k] : (k == 'href' || k =='src') && features.hrefExtended ?
- el[getAttribute](k, 2) : el[getAttribute](k) :
- this.each(function (el) {
- specialAttributes.test(k) ? (el[k] = setter(el, opt_v)) : el[setAttribute](k, setter(el, opt_v))
- })
- }
-
-
- /**
- * @param {string} k
- * @return {Bonzo}
- */
- , removeAttr: function (k) {
- return this.each(function (el) {
- stateAttributes.test(k) ? (el[k] = false) : el.removeAttribute(k)
- })
- }
-
-
- /**
- * @param {string=} opt_s
- * @return {Bonzo|string}
- */
- , val: function (s) {
- return (typeof s == 'string') ?
- this.attr('value', s) :
- this.length ? this[0].value : null
- }
-
- // use with care and knowledge. this data() method uses data attributes on the DOM nodes
- // to do this differently costs a lot more code. c'est la vie
- /**
- * @param {string|Object=} opt_k the key for which to get or set data
- * @param {Object=} opt_v
- * @return {Bonzo|Object}
- */
- , data: function (opt_k, opt_v) {
- var el = this[0], o, m
- if (typeof opt_v === 'undefined') {
- if (!el) return null
- o = data(el)
- if (typeof opt_k === 'undefined') {
- each(el.attributes, function (a) {
- (m = ('' + a.name).match(dattr)) && (o[camelize(m[1])] = dataValue(a.value))
- })
- return o
- } else {
- if (typeof o[opt_k] === 'undefined')
- o[opt_k] = dataValue(this.attr('data-' + decamelize(opt_k)))
- return o[opt_k]
- }
- } else {
- return this.each(function (el) { data(el)[opt_k] = opt_v })
- }
- }
-
- // DOM detachment & related
-
- /**
- * @return {Bonzo}
- */
- , remove: function () {
- this.deepEach(clearData)
- return this.detach()
- }
-
-
- /**
- * @return {Bonzo}
- */
- , empty: function () {
- return this.each(function (el) {
- deepEach(el.childNodes, clearData)
-
- while (el.firstChild) {
- el.removeChild(el.firstChild)
- }
- })
- }
-
-
- /**
- * @return {Bonzo}
- */
- , detach: function () {
- return this.each(function (el) {
- el[parentNode] && el[parentNode].removeChild(el)
- })
- }
-
- // who uses a mouse anyway? oh right.
-
- /**
- * @param {number} y
- */
- , scrollTop: function (y) {
- return scroll.call(this, null, y, 'y')
- }
-
-
- /**
- * @param {number} x
- */
- , scrollLeft: function (x) {
- return scroll.call(this, x, null, 'x')
- }
-
- }
-
-
- function cloneNode(host, el) {
- var c = el.cloneNode(true)
- , cloneElems
- , elElems
-
- // check for existence of an event cloner
- // preferably https://github.com/fat/bean
- // otherwise Bonzo won't do this for you
- if (host.$ && typeof host.cloneEvents == 'function') {
- host.$(c).cloneEvents(el)
-
- // clone events from every child node
- cloneElems = host.$(c).find('*')
- elElems = host.$(el).find('*')
-
- for (var i = 0; i < elElems.length; i++)
- host.$(cloneElems[i]).cloneEvents(elElems[i])
- }
- return c
- }
-
- function scroll(x, y, type) {
- var el = this[0]
- if (!el) return this
- if (x == null && y == null) {
- return (isBody(el) ? getWindowScroll() : { x: el.scrollLeft, y: el.scrollTop })[type]
- }
- if (isBody(el)) {
- win.scrollTo(x, y)
- } else {
- x != null && (el.scrollLeft = x)
- y != null && (el.scrollTop = y)
- }
- return this
- }
-
- function isBody(element) {
- return element === win || (/^(?:body|html)$/i).test(element.tagName)
- }
-
- function getWindowScroll() {
- return { x: win.pageXOffset || html.scrollLeft, y: win.pageYOffset || html.scrollTop }
- }
-
- function createScriptFromHtml(html) {
- var scriptEl = document.createElement('script')
- , matches = html.match(simpleScriptTagRe)
- scriptEl.src = matches[1]
- return scriptEl
- }
-
- /**
- * @param {Array.<Element>|Element|Node|string} els
- * @return {Bonzo}
- */
- function bonzo(els) {
- return new Bonzo(els)
- }
-
- bonzo.setQueryEngine = function (q) {
- query = q;
- delete bonzo.setQueryEngine
- }
-
- bonzo.aug = function (o, target) {
- // for those standalone bonzo users. this love is for you.
- for (var k in o) {
- o.hasOwnProperty(k) && ((target || Bonzo.prototype)[k] = o[k])
- }
- }
-
- bonzo.create = function (node) {
- // hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
- return typeof node == 'string' && node !== '' ?
- function () {
- if (simpleScriptTagRe.test(node)) return [createScriptFromHtml(node)]
- var tag = node.match(/^\s*<([^\s>]+)/)
- , el = doc.createElement('div')
- , els = []
- , p = tag ? tagMap[tag[1].toLowerCase()] : null
- , dep = p ? p[2] + 1 : 1
- , ns = p && p[3]
- , pn = parentNode
- , tb = features.autoTbody && p && p[0] == '<table>' && !(/<tbody/i).test(node)
-
- el.innerHTML = p ? (p[0] + node + p[1]) : node
- while (dep--) el = el.firstChild
- // for IE NoScope, we may insert cruft at the begining just to get it to work
- if (ns && el && el.nodeType !== 1) el = el.nextSibling
- do {
- // tbody special case for IE<8, creates tbody on any empty table
- // we don't want it if we're just after a <thead>, <caption>, etc.
- if ((!tag || el.nodeType == 1) && (!tb || el.tagName.toLowerCase() != 'tbody')) {
- els.push(el)
- }
- } while (el = el.nextSibling)
- // IE < 9 gives us a parentNode which messes up insert() check for cloning
- // `dep` > 1 can also cause problems with the insert() check (must do this last)
- each(els, function(el) { el[pn] && el[pn].removeChild(el) })
- return els
- }() : isNode(node) ? [node.cloneNode(true)] : []
- }
-
- bonzo.doc = function () {
- var vp = bonzo.viewport()
- return {
- width: Math.max(doc.body.scrollWidth, html.scrollWidth, vp.width)
- , height: Math.max(doc.body.scrollHeight, html.scrollHeight, vp.height)
- }
- }
-
- bonzo.firstChild = function (el) {
- for (var c = el.childNodes, i = 0, j = (c && c.length) || 0, e; i < j; i++) {
- if (c[i].nodeType === 1) e = c[j = i]
- }
- return e
- }
-
- bonzo.viewport = function () {
- return {
- width: ie ? html.clientWidth : self.innerWidth
- , height: ie ? html.clientHeight : self.innerHeight
- }
- }
-
- bonzo.isAncestor = 'compareDocumentPosition' in html ?
- function (container, element) {
- return (container.compareDocumentPosition(element) & 16) == 16
- } : 'contains' in html ?
- function (container, element) {
- return container !== element && container.contains(element);
- } :
- function (container, element) {
- while (element = element[parentNode]) {
- if (element === container) {
- return true
- }
- }
- return false
- }
-
- return bonzo
- }); // the only line we care about using a semi-colon. placed here for concatenation tools
-
-
- provide("bonzo", module.exports);
-
- (function ($) {
-
- var b = require('bonzo')
- b.setQueryEngine($)
- $.ender(b)
- $.ender(b(), true)
- $.ender({
- create: function (node) {
- return $(b.create(node))
- }
- })
-
- $.id = function (id) {
- return $([document.getElementById(id)])
- }
-
- function indexOf(ar, val) {
- for (var i = 0; i < ar.length; i++) if (ar[i] === val) return i
- return -1
- }
-
- function uniq(ar) {
- var r = [], i = 0, j = 0, k, item, inIt
- for (; item = ar[i]; ++i) {
- inIt = false
- for (k = 0; k < r.length; ++k) {
- if (r[k] === item) {
- inIt = true; break
- }
- }
- if (!inIt) r[j++] = item
- }
- return r
- }
-
- $.ender({
- parents: function (selector, closest) {
- if (!this.length) return this
- if (!selector) selector = '*'
- var collection = $(selector), j, k, p, r = []
- for (j = 0, k = this.length; j < k; j++) {
- p = this[j]
- while (p = p.parentNode) {
- if (~indexOf(collection, p)) {
- r.push(p)
- if (closest) break;
- }
- }
- }
- return $(uniq(r))
- }
-
- , parent: function() {
- return $(uniq(b(this).parent()))
- }
-
- , closest: function (selector) {
- return this.parents(selector, true)
- }
-
- , first: function () {
- return $(this.length ? this[0] : this)
- }
-
- , last: function () {
- return $(this.length ? this[this.length - 1] : [])
- }
-
- , next: function () {
- return $(b(this).next())
- }
-
- , previous: function () {
- return $(b(this).previous())
- }
-
- , appendTo: function (t) {
- return b(this.selector).appendTo(t, this)
- }
-
- , prependTo: function (t) {
- return b(this.selector).prependTo(t, this)
- }
-
- , insertAfter: function (t) {
- return b(this.selector).insertAfter(t, this)
- }
-
- , insertBefore: function (t) {
- return b(this.selector).insertBefore(t, this)
- }
-
- , siblings: function () {
- var i, l, p, r = []
- for (i = 0, l = this.length; i < l; i++) {
- p = this[i]
- while (p = p.previousSibling) p.nodeType == 1 && r.push(p)
- p = this[i]
- while (p = p.nextSibling) p.nodeType == 1 && r.push(p)
- }
- return $(r)
- }
-
- , children: function () {
- var i, l, el, r = []
- for (i = 0, l = this.length; i < l; i++) {
- if (!(el = b.firstChild(this[i]))) continue;
- r.push(el)
- while (el = el.nextSibling) el.nodeType == 1 && r.push(el)
- }
- return $(uniq(r))
- }
-
- , height: function (v) {
- return dimension.call(this, 'height', v)
- }
-
- , width: function (v) {
- return dimension.call(this, 'width', v)
- }
- }, true)
-
- /**
- * @param {string} type either width or height
- * @param {number=} opt_v becomes a setter instead of a getter
- * @return {number}
- */
- function dimension(type, opt_v) {
- return typeof opt_v == 'undefined'
- ? b(this).dim()[type]
- : this.css(type, opt_v)
- }
- }(ender));
-
-}());
-
-(function () {
-
- var module = { exports: {} }, exports = module.exports;
-
- /*!
- * domready (c) Dustin Diaz 2012 - License MIT
- */
- !function (name, definition) {
- if (typeof module != 'undefined') module.exports = definition()
- else if (typeof define == 'function' && typeof define.amd == 'object') define(definition)
- else this[name] = definition()
- }('domready', function (ready) {
-
- var fns = [], fn, f = false
- , doc = document
- , testEl = doc.documentElement
- , hack = testEl.doScroll
- , domContentLoaded = 'DOMContentLoaded'
- , addEventListener = 'addEventListener'
- , onreadystatechange = 'onreadystatechange'
- , readyState = 'readyState'
- , loaded = /^loade|c/.test(doc[readyState])
-
- function flush(f) {
- loaded = 1
- while (f = fns.shift()) f()
- }
-
- doc[addEventListener] && doc[addEventListener](domContentLoaded, fn = function () {
- doc.removeEventListener(domContentLoaded, fn, f)
- flush()
- }, f)
-
-
- hack && doc.attachEvent(onreadystatechange, fn = function () {
- if (/^c/.test(doc[readyState])) {
- doc.detachEvent(onreadystatechange, fn)
- flush()
- }
- })
-
- return (ready = hack ?
- function (fn) {
- self != top ?
- loaded ? fn() : fns.push(fn) :
- function () {
- try {
- testEl.doScroll('left')
- } catch (e) {
- return setTimeout(function() { ready(fn) }, 50)
- }
- fn()
- }()
- } :
- function (fn) {
- loaded ? fn() : fns.push(fn)
- })
- })
-
- provide("domready", module.exports);
-
- !function ($) {
- var ready = require('domready')
- $.ender({domReady: ready})
- $.ender({
- ready: function (f) {
- ready(f)
- return this
- }
- }, true)
- }(ender);
-
-}());
-
-(function () {
-
- var module = { exports: {} }, exports = module.exports;
-
- /*!
- * @preserve Qwery - A Blazing Fast query selector engine
- * https://github.com/ded/qwery
- * copyright Dustin Diaz 2012
- * MIT License
- */
-
- (function (name, context, definition) {
- if (typeof module != 'undefined' && module.exports) module.exports = definition()
- else if (typeof context['define'] == 'function' && context['define']['amd']) define(definition)
- else context[name] = definition()
- })('qwery', this, function () {
- var doc = document
- , html = doc.documentElement
- , byClass = 'getElementsByClassName'
- , byTag = 'getElementsByTagName'
- , qSA = 'querySelectorAll'
- , useNativeQSA = 'useNativeQSA'
- , tagName = 'tagName'
- , nodeType = 'nodeType'
- , select // main select() method, assign later
-
- , id = /#([\w\-]+)/
- , clas = /\.[\w\-]+/g
- , idOnly = /^#([\w\-]+)$/
- , classOnly = /^\.([\w\-]+)$/
- , tagOnly = /^([\w\-]+)$/
- , tagAndOrClass = /^([\w]+)?\.([\w\-]+)$/
- , splittable = /(^|,)\s*[>~+]/
- , normalizr = /^\s+|\s*([,\s\+\~>]|$)\s*/g
- , splitters = /[\s\>\+\~]/
- , splittersMore = /(?![\s\w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^'"]*\]|[\s\w\+\-]*\))/
- , specialChars = /([.*+?\^=!:${}()|\[\]\/\\])/g
- , simple = /^(\*|[a-z0-9]+)?(?:([\.\#]+[\w\-\.#]+)?)/
- , attr = /\[([\w\-]+)(?:([\|\^\$\*\~]?\=)['"]?([ \w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^]+)["']?)?\]/
- , pseudo = /:([\w\-]+)(\(['"]?([^()]+)['"]?\))?/
- , easy = new RegExp(idOnly.source + '|' + tagOnly.source + '|' + classOnly.source)
- , dividers = new RegExp('(' + splitters.source + ')' + splittersMore.source, 'g')
- , tokenizr = new RegExp(splitters.source + splittersMore.source)
- , chunker = new RegExp(simple.source + '(' + attr.source + ')?' + '(' + pseudo.source + ')?')
-
- var walker = {
- ' ': function (node) {
- return node && node !== html && node.parentNode
- }
- , '>': function (node, contestant) {
- return node && node.parentNode == contestant.parentNode && node.parentNode
- }
- , '~': function (node) {
- return node && node.previousSibling
- }
- , '+': function (node, contestant, p1, p2) {
- if (!node) return false
- return (p1 = previous(node)) && (p2 = previous(contestant)) && p1 == p2 && p1
- }
- }
-
- function cache() {
- this.c = {}
- }
- cache.prototype = {
- g: function (k) {
- return this.c[k] || undefined
- }
- , s: function (k, v, r) {
- v = r ? new RegExp(v) : v
- return (this.c[k] = v)
- }
- }
-
- var classCache = new cache()
- , cleanCache = new cache()
- , attrCache = new cache()
- , tokenCache = new cache()
-
- function classRegex(c) {
- return classCache.g(c) || classCache.s(c, '(^|\\s+)' + c + '(\\s+|$)', 1)
- }
-
- // not quite as fast as inline loops in older browsers so don't use liberally
- function each(a, fn) {
- var i = 0, l = a.length
- for (; i < l; i++) fn(a[i])
- }
-
- function flatten(ar) {
- for (var r = [], i = 0, l = ar.length; i < l; ++i) arrayLike(ar[i]) ? (r = r.concat(ar[i])) : (r[r.length] = ar[i])
- return r
- }
-
- function arrayify(ar) {
- var i = 0, l = ar.length, r = []
- for (; i < l; i++) r[i] = ar[i]
- return r
- }
-
- function previous(n) {
- while (n = n.previousSibling) if (n[nodeType] == 1) break;
- return n
- }
-
- function q(query) {
- return query.match(chunker)
- }
-
- // called using `this` as element and arguments from regex group results.
- // given => div.hello[title="world"]:foo('bar')
- // div.hello[title="world"]:foo('bar'), div, .hello, [title="world"], title, =, world, :foo('bar'), foo, ('bar'), bar]
- function interpret(whole, tag, idsAndClasses, wholeAttribute, attribute, qualifier, value, wholePseudo, pseudo, wholePseudoVal, pseudoVal) {
- var i, m, k, o, classes
- if (this[nodeType] !== 1) return false
- if (tag && tag !== '*' && this[tagName] && this[tagName].toLowerCase() !== tag) return false
- if (idsAndClasses && (m = idsAndClasses.match(id)) && m[1] !== this.id) return false
- if (idsAndClasses && (classes = idsAndClasses.match(clas))) {
- for (i = classes.length; i--;) if (!classRegex(classes[i].slice(1)).test(this.className)) return false
- }
- if (pseudo && qwery.pseudos[pseudo] && !qwery.pseudos[pseudo](this, pseudoVal)) return false
- if (wholeAttribute && !value) { // select is just for existance of attrib
- o = this.attributes
- for (k in o) {
- if (Object.prototype.hasOwnProperty.call(o, k) && (o[k].name || k) == attribute) {
- return this
- }
- }
- }
- if (wholeAttribute && !checkAttr(qualifier, getAttr(this, attribute) || '', value)) {
- // select is for attrib equality
- return false
- }
- return this
- }
-
- function clean(s) {
- return cleanCache.g(s) || cleanCache.s(s, s.replace(specialChars, '\\$1'))
- }
-
- function checkAttr(qualify, actual, val) {
- switch (qualify) {
- case '=':
- return actual == val
- case '^=':
- return actual.match(attrCache.g('^=' + val) || attrCache.s('^=' + val, '^' + clean(val), 1))
- case '$=':
- return actual.match(attrCache.g('$=' + val) || attrCache.s('$=' + val, clean(val) + '$', 1))
- case '*=':
- return actual.match(attrCache.g(val) || attrCache.s(val, clean(val), 1))
- case '~=':
- return actual.match(attrCache.g('~=' + val) || attrCache.s('~=' + val, '(?:^|\\s+)' + clean(val) + '(?:\\s+|$)', 1))
- case '|=':
- return actual.match(attrCache.g('|=' + val) || attrCache.s('|=' + val, '^' + clean(val) + '(-|$)', 1))
- }
- return 0
- }
-
- // given a selector, first check for simple cases then collect all base candidate matches and filter
- function _qwery(selector, _root) {
- var r = [], ret = [], i, l, m, token, tag, els, intr, item, root = _root
- , tokens = tokenCache.g(selector) || tokenCache.s(selector, selector.split(tokenizr))
- , dividedTokens = selector.match(dividers)
-
- if (!tokens.length) return r
-
- token = (tokens = tokens.slice(0)).pop() // copy cached tokens, take the last one
- if (tokens.length && (m = tokens[tokens.length - 1].match(idOnly))) root = byId(_root, m[1])
- if (!root) return r
-
- intr = q(token)
- // collect base candidates to filter
- els = root !== _root && root[nodeType] !== 9 && dividedTokens && /^[+~]$/.test(dividedTokens[dividedTokens.length - 1]) ?
- function (r) {
- while (root = root.nextSibling) {
- root[nodeType] == 1 && (intr[1] ? intr[1] == root[tagName].toLowerCase() : 1) && (r[r.length] = root)
- }
- return r
- }([]) :
- root[byTag](intr[1] || '*')
- // filter elements according to the right-most part of the selector
- for (i = 0, l = els.length; i < l; i++) {
- if (item = interpret.apply(els[i], intr)) r[r.length] = item
- }
- if (!tokens.length) return r
-
- // filter further according to the rest of the selector (the left side)
- each(r, function (e) { if (ancestorMatch(e, tokens, dividedTokens)) ret[ret.length] = e })
- return ret
- }
-
- // compare element to a selector
- function is(el, selector, root) {
- if (isNode(selector)) return el == selector
- if (arrayLike(selector)) return !!~flatten(selector).indexOf(el) // if selector is an array, is el a member?
-
- var selectors = selector.split(','), tokens, dividedTokens
- while (selector = selectors.pop()) {
- tokens = tokenCache.g(selector) || tokenCache.s(selector, selector.split(tokenizr))
- dividedTokens = selector.match(dividers)
- tokens = tokens.slice(0) // copy array
- if (interpret.apply(el, q(tokens.pop())) && (!tokens.length || ancestorMatch(el, tokens, dividedTokens, root))) {
- return true
- }
- }
- return false
- }
-
- // given elements matching the right-most part of a selector, filter out any that don't match the rest
- function ancestorMatch(el, tokens, dividedTokens, root) {
- var cand
- // recursively work backwards through the tokens and up the dom, covering all options
- function crawl(e, i, p) {
- while (p = walker[dividedTokens[i]](p, e)) {
- if (isNode(p) && (interpret.apply(p, q(tokens[i])))) {
- if (i) {
- if (cand = crawl(p, i - 1, p)) return cand
- } else return p
- }
- }
- }
- return (cand = crawl(el, tokens.length - 1, el)) && (!root || isAncestor(cand, root))
- }
-
- function isNode(el, t) {
- return el && typeof el === 'object' && (t = el[nodeType]) && (t == 1 || t == 9)
- }
-
- function uniq(ar) {
- var a = [], i, j;
- o:
- for (i = 0; i < ar.length; ++i) {
- for (j = 0; j < a.length; ++j) if (a[j] == ar[i]) continue o
- a[a.length] = ar[i]
- }
- return a
- }
-
- function arrayLike(o) {
- return (typeof o === 'object' && isFinite(o.length))
- }
-
- function normalizeRoot(root) {
- if (!root) return doc
- if (typeof root == 'string') return qwery(root)[0]
- if (!root[nodeType] && arrayLike(root)) return root[0]
- return root
- }
-
- function byId(root, id, el) {
- // if doc, query on it, else query the parent doc or if a detached fragment rewrite the query and run on the fragment
- return root[nodeType] === 9 ? root.getElementById(id) :
- root.ownerDocument &&
- (((el = root.ownerDocument.getElementById(id)) && isAncestor(el, root) && el) ||
- (!isAncestor(root, root.ownerDocument) && select('[id="' + id + '"]', root)[0]))
- }
-
- function qwery(selector, _root) {
- var m, el, root = normalizeRoot(_root)
-
- // easy, fast cases that we can dispatch with simple DOM calls
- if (!root || !selector) return []
- if (selector === window || isNode(selector)) {
- return !_root || (selector !== window && isNode(root) && isAncestor(selector, root)) ? [selector] : []
- }
- if (selector && arrayLike(selector)) return flatten(selector)
- if (m = selector.match(easy)) {
- if (m[1]) return (el = byId(root, m[1])) ? [el] : []
- if (m[2]) return arrayify(root[byTag](m[2]))
- if (hasByClass && m[3]) return arrayify(root[byClass](m[3]))
- }
-
- return select(selector, root)
- }
-
- // where the root is not document and a relationship selector is first we have to
- // do some awkward adjustments to get it to work, even with qSA
- function collectSelector(root, collector) {
- return function (s) {
- var oid, nid
- if (splittable.test(s)) {
- if (root[nodeType] !== 9) {
- // make sure the el has an id, rewrite the query, set root to doc and run it
- if (!(nid = oid = root.getAttribute('id'))) root.setAttribute('id', nid = '__qwerymeupscotty')
- s = '[id="' + nid + '"]' + s // avoid byId and allow us to match context element
- collector(root.parentNode || root, s, true)
- oid || root.removeAttribute('id')
- }
- return;
- }
- s.length && collector(root, s, false)
- }
- }
-
- var isAncestor = 'compareDocumentPosition' in html ?
- function (element, container) {
- return (container.compareDocumentPosition(element) & 16) == 16
- } : 'contains' in html ?
- function (element, container) {
- container = container[nodeType] === 9 || container == window ? html : container
- return container !== element && container.contains(element)
- } :
- function (element, container) {
- while (element = element.parentNode) if (element === container) return 1
- return 0
- }
- , getAttr = function () {
- // detect buggy IE src/href getAttribute() call
- var e = doc.createElement('p')
- return ((e.innerHTML = '<a href="#x">x</a>') && e.firstChild.getAttribute('href') != '#x') ?
- function (e, a) {
- return a === 'class' ? e.className : (a === 'href' || a === 'src') ?
- e.getAttribute(a, 2) : e.getAttribute(a)
- } :
- function (e, a) { return e.getAttribute(a) }
- }()
- , hasByClass = !!doc[byClass]
- // has native qSA support
- , hasQSA = doc.querySelector && doc[qSA]
- // use native qSA
- , selectQSA = function (selector, root) {
- var result = [], ss, e
- try {
- if (root[nodeType] === 9 || !splittable.test(selector)) {
- // most work is done right here, defer to qSA
- return arrayify(root[qSA](selector))
- }
- // special case where we need the services of `collectSelector()`
- each(ss = selector.split(','), collectSelector(root, function (ctx, s) {
- e = ctx[qSA](s)
- if (e.length == 1) result[result.length] = e.item(0)
- else if (e.length) result = result.concat(arrayify(e))
- }))
- return ss.length > 1 && result.length > 1 ? uniq(result) : result
- } catch (ex) { }
- return selectNonNative(selector, root)
- }
- // no native selector support
- , selectNonNative = function (selector, root) {
- var result = [], items, m, i, l, r, ss
- selector = selector.replace(normalizr, '$1')
- if (m = selector.match(tagAndOrClass)) {
- r = classRegex(m[2])
- items = root[byTag](m[1] || '*')
- for (i = 0, l = items.length; i < l; i++) {
- if (r.test(items[i].className)) result[result.length] = items[i]
- }
- return result
- }
- // more complex selector, get `_qwery()` to do the work for us
- each(ss = selector.split(','), collectSelector(root, function (ctx, s, rewrite) {
- r = _qwery(s, ctx)
- for (i = 0, l = r.length; i < l; i++) {
- if (ctx[nodeType] === 9 || rewrite || isAncestor(r[i], root)) result[result.length] = r[i]
- }
- }))
- return ss.length > 1 && result.length > 1 ? uniq(result) : result
- }
- , configure = function (options) {
- // configNativeQSA: use fully-internal selector or native qSA where present
- if (typeof options[useNativeQSA] !== 'undefined')
- select = !options[useNativeQSA] ? selectNonNative : hasQSA ? selectQSA : selectNonNative
- }
-
- configure({ useNativeQSA: true })
-
- qwery.configure = configure
- qwery.uniq = uniq
- qwery.is = is
- qwery.pseudos = {}
-
- return qwery
- });
-
-
- provide("qwery", module.exports);
-
- (function ($) {
- var q = function () {
- var r
- try {
- r = require('qwery')
- } catch (ex) {
- r = require('qwery-mobile')
- } finally {
- return r
- }
- }()
-
- $.pseudos = q.pseudos
-
- $._select = function (s, r) {
- // detect if sibling module 'bonzo' is available at run-time
- // rather than load-time since technically it's not a dependency and
- // can be loaded in any order
- // hence the lazy function re-definition
- return ($._select = (function () {
- var b
- if (typeof $.create == 'function') return function (s, r) {
- return /^\s*</.test(s) ? $.create(s, r) : q(s, r)
- }
- try {
- b = require('bonzo')
- return function (s, r) {
- return /^\s*</.test(s) ? b.create(s, r) : q(s, r)
- }
- } catch (e) { }
- return q
- })())(s, r)
- }
-
- $.ender({
- find: function (s) {
- var r = [], i, l, j, k, els
- for (i = 0, l = this.length; i < l; i++) {
- els = q(s, this[i])
- for (j = 0, k = els.length; j < k; j++) r.push(els[j])
- }
- return $(q.uniq(r))
- }
- , and: function (s) {
- var plus = $(s)
- for (var i = this.length, j = 0, l = this.length + plus.length; i < l; i++, j++) {
- this[i] = plus[j]
- }
- this.length += plus.length
- return this
- }
- , is: function(s, r) {
- var i, l
- for (i = 0, l = this.length; i < l; i++) {
- if (q.is(this[i], s, r)) {
- return true
- }
- }
- return false
- }
- }, true)
- }(ender));
-
-
-}());
-
diff --git a/.themes/classic/source/javascripts/libs/jquery.min.js b/.themes/classic/source/javascripts/libs/jquery.min.js
new file mode 100644
index 00000000..32d50cb0
--- /dev/null
+++ b/.themes/classic/source/javascripts/libs/jquery.min.js
@@ -0,0 +1,5 @@
+/*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license
+//@ sourceMappingURL=jquery.min.map
+*/(function(e,t){var n,r,i=typeof t,o=e.document,a=e.location,s=e.jQuery,u=e.$,l={},c=[],p="1.9.1",f=c.concat,d=c.push,h=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,b=function(e,t){return new b.fn.init(e,t,r)},x=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^[\],:{}\s]*$/,E=/(?:^|:|,)(?:\s*\[)+/g,S=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,j=/^-ms-/,D=/-([\da-z])/gi,L=function(e,t){return t.toUpperCase()},H=function(e){(o.addEventListener||"load"===e.type||"complete"===o.readyState)&&(q(),b.ready())},q=function(){o.addEventListener?(o.removeEventListener("DOMContentLoaded",H,!1),e.removeEventListener("load",H,!1)):(o.detachEvent("onreadystatechange",H),e.detachEvent("onload",H))};b.fn=b.prototype={jquery:p,constructor:b,init:function(e,n,r){var i,a;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof b?n[0]:n,b.merge(this,b.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,!0)),C.test(i[1])&&b.isPlainObject(n))for(i in n)b.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(a=o.getElementById(i[2]),a&&a.parentNode){if(a.id!==i[2])return r.find(e);this.length=1,this[0]=a}return this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):b.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),b.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return h.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return b.each(this,e,t)},ready:function(e){return b.ready.promise().done(e),this},slice:function(){return this.pushStack(h.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(b.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:d,sort:[].sort,splice:[].splice},b.fn.init.prototype=b.fn,b.extend=b.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||b.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(o=arguments[u]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(b.isPlainObject(r)||(n=b.isArray(r)))?(n?(n=!1,a=e&&b.isArray(e)?e:[]):a=e&&b.isPlainObject(e)?e:{},s[i]=b.extend(c,a,r)):r!==t&&(s[i]=r));return s},b.extend({noConflict:function(t){return e.$===b&&(e.$=u),t&&e.jQuery===b&&(e.jQuery=s),b},isReady:!1,readyWait:1,holdReady:function(e){e?b.readyWait++:b.ready(!0)},ready:function(e){if(e===!0?!--b.readyWait:!b.isReady){if(!o.body)return setTimeout(b.ready);b.isReady=!0,e!==!0&&--b.readyWait>0||(n.resolveWith(o,[b]),b.fn.trigger&&b(o).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===b.type(e)},isArray:Array.isArray||function(e){return"array"===b.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==b.type(e)||e.nodeType||b.isWindow(e))return!1;try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||y.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=b.buildFragment([e],t,i),i&&b(i).remove(),b.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&b.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(j,"ms-").replace(D,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:v&&!v.call("\ufeff\u00a0")?function(e){return null==e?"":v.call(e)}:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?b.merge(n,"string"==typeof e?[e]:e):d.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(g)return g.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return f.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),b.isFunction(e)?(r=h.call(arguments,2),i=function(){return e.apply(n||this,r.concat(h.call(arguments)))},i.guid=e.guid=e.guid||b.guid++,i):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===b.type(r)){o=!0;for(u in r)b.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,b.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(b(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),b.ready.promise=function(t){if(!n)if(n=b.Deferred(),"complete"===o.readyState)setTimeout(b.ready);else if(o.addEventListener)o.addEventListener("DOMContentLoaded",H,!1),e.addEventListener("load",H,!1);else{o.attachEvent("onreadystatechange",H),e.attachEvent("onload",H);var r=!1;try{r=null==e.frameElement&&o.documentElement}catch(i){}r&&r.doScroll&&function a(){if(!b.isReady){try{r.doScroll("left")}catch(e){return setTimeout(a,50)}q(),b.ready()}}()}return n.promise(t)},b.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=b.type(e);return b.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=b(o);var _={};function F(e){var t=_[e]={};return b.each(e.match(w)||[],function(e,n){t[n]=!0}),t}b.Callbacks=function(e){e="string"==typeof e?_[e]||F(e):b.extend({},e);var n,r,i,o,a,s,u=[],l=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=u.length,n=!0;u&&o>a;a++)if(u[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,u&&(l?l.length&&c(l.shift()):r?u=[]:p.disable())},p={add:function(){if(u){var t=u.length;(function i(t){b.each(t,function(t,n){var r=b.type(n);"function"===r?e.unique&&p.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=u.length:r&&(s=t,c(r))}return this},remove:function(){return u&&b.each(arguments,function(e,t){var r;while((r=b.inArray(t,u,r))>-1)u.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?b.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],this},disable:function(){return u=l=r=t,this},disabled:function(){return!u},lock:function(){return l=t,r||p.disable(),this},locked:function(){return!l},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u||i&&!l||(n?l.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},b.extend({Deferred:function(e){var t=[["resolve","done",b.Callbacks("once memory"),"resolved"],["reject","fail",b.Callbacks("once memory"),"rejected"],["notify","progress",b.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return b.Deferred(function(n){b.each(t,function(t,o){var a=o[0],s=b.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&b.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?b.extend(e,r):r}},i={};return r.pipe=r.then,b.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=h.call(arguments),r=n.length,i=1!==r||e&&b.isFunction(e.promise)?r:0,o=1===i?e:b.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?h.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,u,l;if(r>1)for(s=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&b.isFunction(n[t].promise)?n[t].promise().done(a(t,l,n)).fail(o.reject).progress(a(t,u,s)):--i;return i||o.resolveWith(l,n),o.promise()}}),b.support=function(){var t,n,r,a,s,u,l,c,p,f,d=o.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{};s=o.createElement("select"),l=s.appendChild(o.createElement("option")),a=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={getSetAttribute:"t"!==d.className,leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:!!a.value,optSelected:l.selected,enctype:!!o.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==o.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===o.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!l.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}a=o.createElement("input"),a.setAttribute("value",""),t.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","t"),a.setAttribute("name","t"),u=o.createDocumentFragment(),u.appendChild(a),t.appendChecked=a.checked,t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;return d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip,b(function(){var n,r,a,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",u=o.getElementsByTagName("body")[0];u&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",u.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",a=d.getElementsByTagName("td"),a[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===a[0].offsetHeight,a[0].style.display="",a[1].style.display="none",t.reliableHiddenOffsets=p&&0===a[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===d.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==u.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(o.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(u.style.zoom=1)),u.removeChild(n),n=d=a=r=null)}),n=s=u=l=r=a=null,t}();var O=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,B=/([A-Z])/g;function P(e,n,r,i){if(b.acceptData(e)){var o,a,s=b.expando,u="string"==typeof n,l=e.nodeType,p=l?b.cache:e,f=l?e[s]:e[s]&&s;if(f&&p[f]&&(i||p[f].data)||!u||r!==t)return f||(l?e[s]=f=c.pop()||b.guid++:f=s),p[f]||(p[f]={},l||(p[f].toJSON=b.noop)),("object"==typeof n||"function"==typeof n)&&(i?p[f]=b.extend(p[f],n):p[f].data=b.extend(p[f].data,n)),o=p[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[b.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[b.camelCase(n)])):a=o,a}}function R(e,t,n){if(b.acceptData(e)){var r,i,o,a=e.nodeType,s=a?b.cache:e,u=a?e[b.expando]:b.expando;if(s[u]){if(t&&(o=n?s[u]:s[u].data)){b.isArray(t)?t=t.concat(b.map(t,b.camelCase)):t in o?t=[t]:(t=b.camelCase(t),t=t in o?[t]:t.split(" "));for(r=0,i=t.length;i>r;r++)delete o[t[r]];if(!(n?$:b.isEmptyObject)(o))return}(n||(delete s[u].data,$(s[u])))&&(a?b.cleanData([e],!0):b.support.deleteExpando||s!=s.window?delete s[u]:s[u]=null)}}}b.extend({cache:{},expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?b.cache[e[b.expando]]:e[b.expando],!!e&&!$(e)},data:function(e,t,n){return P(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return P(e,t,n,!0)},_removeData:function(e,t){return R(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&b.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),b.fn.extend({data:function(e,n){var r,i,o=this[0],a=0,s=null;if(e===t){if(this.length&&(s=b.data(o),1===o.nodeType&&!b._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>a;a++)i=r[a].name,i.indexOf("data-")||(i=b.camelCase(i.slice(5)),W(o,i,s[i]));b._data(o,"parsedAttrs",!0)}return s}return"object"==typeof e?this.each(function(){b.data(this,e)}):b.access(this,function(n){return n===t?o?W(o,e,b.data(o,e)):null:(this.each(function(){b.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function W(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(B,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:O.test(r)?b.parseJSON(r):r}catch(o){}b.data(e,n,r)}else r=t}return r}function $(e){var t;for(t in e)if(("data"!==t||!b.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}b.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=b._data(e,n),r&&(!i||b.isArray(r)?i=b._data(e,n,b.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=b.queue(e,t),r=n.length,i=n.shift(),o=b._queueHooks(e,t),a=function(){b.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return b._data(e,n)||b._data(e,n,{empty:b.Callbacks("once memory").add(function(){b._removeData(e,t+"queue"),b._removeData(e,n)})})}}),b.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?b.queue(this[0],e):n===t?this:this.each(function(){var t=b.queue(this,e,n);b._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&b.dequeue(this,e)})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(e,t){return e=b.fx?b.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=b.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=b._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var I,z,X=/[\t\r\n]/g,U=/\r/g,V=/^(?:input|select|textarea|button|object)$/i,Y=/^(?:a|area)$/i,J=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,G=/^(?:checked|selected)$/i,Q=b.support.getSetAttribute,K=b.support.input;b.fn.extend({attr:function(e,t){return b.access(this,b.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,t){return b.access(this,b.prop,e,t,arguments.length>1)},removeProp:function(e){return e=b.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=b.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?b.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return b.isFunction(e)?this.each(function(n){b(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,a=0,s=b(this),u=t,l=e.match(w)||[];while(o=l[a++])u=r?u:!s.hasClass(o),s[u?"addClass":"removeClass"](o)}else(n===i||"boolean"===n)&&(this.className&&b._data(this,"__className__",this.className),this.className=this.className||e===!1?"":b._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(X," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=b.isFunction(e),this.each(function(n){var o,a=b(this);1===this.nodeType&&(o=i?e.call(this,n,a.val()):e,null==o?o="":"number"==typeof o?o+="":b.isArray(o)&&(o=b.map(o,function(e){return null==e?"":e+""})),r=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=b.valHooks[o.type]||b.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(U,""):null==n?"":n)}}}),b.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;for(;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(b.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&b.nodeName(n.parentNode,"optgroup"))){if(t=b(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=b.makeArray(t);return b(e).find("option").each(function(){this.selected=b.inArray(b(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var o,a,s,u=e.nodeType;if(e&&3!==u&&8!==u&&2!==u)return typeof e.getAttribute===i?b.prop(e,n,r):(a=1!==u||!b.isXMLDoc(e),a&&(n=n.toLowerCase(),o=b.attrHooks[n]||(J.test(n)?z:I)),r===t?o&&a&&"get"in o&&null!==(s=o.get(e,n))?s:(typeof e.getAttribute!==i&&(s=e.getAttribute(n)),null==s?t:s):null!==r?o&&a&&"set"in o&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r):(b.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=b.propFix[n]||n,J.test(n)?!Q&&G.test(n)?e[b.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:b.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!b.support.radioValue&&"radio"===t&&b.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!b.isXMLDoc(e),a&&(n=b.propFix[n]||n,o=b.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):V.test(e.nodeName)||Y.test(e.nodeName)&&e.href?0:t}}}}),z={get:function(e,n){var r=b.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?K&&Q?null!=i:G.test(n)?e[b.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?b.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&b.propFix[n]||n,n):e[b.camelCase("default-"+n)]=e[n]=!0,n}},K&&Q||(b.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return b.nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t},set:function(e,n,r){return b.nodeName(e,"input")?(e.defaultValue=n,t):I&&I.set(e,n,r)}}),Q||(I=b.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},b.attrHooks.contenteditable={get:I.get,set:function(e,t,n){I.set(e,""===t?!1:t,n)}},b.each(["width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),b.support.hrefNormalized||(b.each(["href","src","width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),b.each(["href","src"],function(e,t){b.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),b.support.style||(b.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),b.support.optSelected||(b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),b.support.enctype||(b.propFix.enctype="encoding"),b.support.checkOn||b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,n){return b.isArray(n)?e.checked=b.inArray(b(e).val(),n)>=0:t}})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}b.event={global:{},add:function(e,n,r,o,a){var s,u,l,c,p,f,d,h,g,m,y,v=b._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=b.guid++),(u=v.events)||(u=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof b===i||e&&b.event.triggered===e.type?t:b.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(w)||[""],l=n.length;while(l--)s=rt.exec(n[l])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),p=b.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=b.event.special[g]||{},d=b.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&b.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=u[g])||(h=u[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),b.event.global[g]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,p,f,d,h,g,m=b.hasData(e)&&b._data(e);if(m&&(c=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(s=rt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=b.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||b.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)b.event.remove(e,d+t[l],n,r,!0);b.isEmptyObject(c)&&(delete m.handle,b._removeData(e,"events"))}},trigger:function(n,r,i,a){var s,u,l,c,p,f,d,h=[i||o],g=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];if(l=f=i=i||o,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+b.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),u=0>g.indexOf(":")&&"on"+g,n=n[b.expando]?n:new b.Event(g,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:b.makeArray(r,[n]),p=b.event.special[g]||{},a||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!a&&!p.noBubble&&!b.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(l=l.parentNode);l;l=l.parentNode)h.push(l),f=l;f===(i.ownerDocument||o)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((l=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(b._data(l,"events")||{})[n.type]&&b._data(l,"handle"),s&&s.apply(l,r),s=u&&l[u],s&&b.acceptData(l)&&s.apply&&s.apply(l,r)===!1&&n.preventDefault();if(n.type=g,!(a||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===g&&b.nodeName(i,"a")||!b.acceptData(i)||!u||!i[g]||b.isWindow(i))){f=i[u],f&&(i[u]=null),b.event.triggered=g;try{i[g]()}catch(v){}b.event.triggered=t,f&&(i[u]=f)}return n.result}},dispatch:function(e){e=b.event.fix(e);var n,r,i,o,a,s=[],u=h.call(arguments),l=(b._data(this,"events")||{})[e.type]||[],c=b.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=b.event.handlers.call(this,e,l),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((b.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,u),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(o=[],a=0;u>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?b(r,this).index(l)>=0:b.find(r,this,null,[l]).length),o[r]&&o.push(i);o.length&&s.push({elem:l,handlers:o})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[b.expando])return e;var t,n,r,i=e.type,a=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new b.Event(a),t=r.length;while(t--)n=r[t],e[n]=a[n];return e.target||(e.target=a.srcElement||o),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,a):e},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(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,a,s=n.button,u=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||o,a=i.documentElement,r=i.body,e.pageX=n.clientX+(a&&a.scrollLeft||r&&r.scrollLeft||0)-(a&&a.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(a&&a.scrollTop||r&&r.scrollTop||0)-(a&&a.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&u&&(e.relatedTarget=u===e.target?n.toElement:u),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return b.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==o.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===o.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=b.extend(new b.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?b.event.trigger(i,null,t):b.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},b.removeEvent=o.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},b.Event=function(e,n){return this instanceof b.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&b.extend(this,n),this.timeStamp=e&&e.timeStamp||b.now(),this[b.expando]=!0,t):new b.Event(e,n)},b.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){b.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;
+return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&b.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return b.nodeName(this,"form")?!1:(b.event.remove(this,"._submit"),t)}}),b.support.changeBubbles||(b.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(b.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),b.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),b.event.simulate("change",this,e,!0)})),!1):(b.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!b._data(t,"changeBubbles")&&(b.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||b.event.simulate("change",this.parentNode,e,!0)}),b._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return b.event.remove(this,"._change"),!Z.test(this.nodeName)}}),b.support.focusinBubbles||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){b.event.simulate(t,e.target,b.event.fix(e),!0)};b.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),b.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return b().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=b.guid++)),this.each(function(){b.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,b(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){b.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?b.event.trigger(e,n,r,!0):t}}),function(e,t){var n,r,i,o,a,s,u,l,c,p,f,d,h,g,m,y,v,x="sizzle"+-new Date,w=e.document,T={},N=0,C=0,k=it(),E=it(),S=it(),A=typeof t,j=1<<31,D=[],L=D.pop,H=D.push,q=D.slice,M=D.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},_="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=F.replace("w","w#"),B="([*^$|!~]?=)",P="\\["+_+"*("+F+")"+_+"*(?:"+B+_+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+O+")|)|)"+_+"*\\]",R=":("+F+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+P.replace(3,8)+")*)|.*)\\)|)",W=RegExp("^"+_+"+|((?:^|[^\\\\])(?:\\\\.)*)"+_+"+$","g"),$=RegExp("^"+_+"*,"+_+"*"),I=RegExp("^"+_+"*([\\x20\\t\\r\\n\\f>+~])"+_+"*"),z=RegExp(R),X=RegExp("^"+O+"$"),U={ID:RegExp("^#("+F+")"),CLASS:RegExp("^\\.("+F+")"),NAME:RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:RegExp("^("+F.replace("w","w*")+")"),ATTR:RegExp("^"+P),PSEUDO:RegExp("^"+R),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+_+"*(even|odd|(([+-]|)(\\d*)n|)"+_+"*(?:([+-]|)"+_+"*(\\d+)|))"+_+"*\\)|)","i"),needsContext:RegExp("^"+_+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+_+"*((?:-\\d)?\\d*)"+_+"*\\)|)(?=[^-]|$)","i")},V=/[\x20\t\r\n\f]*[+~]/,Y=/^[^{]+\{\s*\[native code/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/'|\\/g,Z=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,et=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{q.call(w.documentElement.childNodes,0)[0].nodeType}catch(nt){q=function(e){var t,n=[];while(t=this[e++])n.push(t);return n}}function rt(e){return Y.test(e+"")}function it(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>i.cacheLength&&delete e[t.shift()],e[n]=r}}function ot(e){return e[x]=!0,e}function at(e){var t=p.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function st(e,t,n,r){var i,o,a,s,u,l,f,g,m,v;if((t?t.ownerDocument||t:w)!==p&&c(t),t=t||p,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!d&&!r){if(i=J.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&y(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return H.apply(n,q.call(t.getElementsByTagName(e),0)),n;if((a=i[3])&&T.getByClassName&&t.getElementsByClassName)return H.apply(n,q.call(t.getElementsByClassName(a),0)),n}if(T.qsa&&!h.test(e)){if(f=!0,g=x,m=t,v=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){l=ft(e),(f=t.getAttribute("id"))?g=f.replace(K,"\\$&"):t.setAttribute("id",g),g="[id='"+g+"'] ",u=l.length;while(u--)l[u]=g+dt(l[u]);m=V.test(e)&&t.parentNode||t,v=l.join(",")}if(v)try{return H.apply(n,q.call(m.querySelectorAll(v),0)),n}catch(b){}finally{f||t.removeAttribute("id")}}}return wt(e.replace(W,"$1"),t,n,r)}a=st.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},c=st.setDocument=function(e){var n=e?e.ownerDocument||e:w;return n!==p&&9===n.nodeType&&n.documentElement?(p=n,f=n.documentElement,d=a(n),T.tagNameNoComments=at(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),T.attributes=at(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),T.getByClassName=at(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),T.getByName=at(function(e){e.id=x+0,e.innerHTML="<a name='"+x+"'></a><div name='"+x+"'></div>",f.insertBefore(e,f.firstChild);var t=n.getElementsByName&&n.getElementsByName(x).length===2+n.getElementsByName(x+0).length;return T.getIdNotName=!n.getElementById(x),f.removeChild(e),t}),i.attrHandle=at(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==A&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},T.getIdNotName?(i.find.ID=function(e,t){if(typeof t.getElementById!==A&&!d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(i.find.ID=function(e,n){if(typeof n.getElementById!==A&&!d){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==A&&r.getAttributeNode("id").value===e?[r]:t:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!==A&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=T.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==A?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.NAME=T.getByName&&function(e,n){return typeof n.getElementsByName!==A?n.getElementsByName(name):t},i.find.CLASS=T.getByClassName&&function(e,n){return typeof n.getElementsByClassName===A||d?t:n.getElementsByClassName(e)},g=[],h=[":focus"],(T.qsa=rt(n.querySelectorAll))&&(at(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||h.push("\\["+_+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||h.push(":checked")}),at(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&h.push("[*^$]="+_+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(T.matchesSelector=rt(m=f.matchesSelector||f.mozMatchesSelector||f.webkitMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&at(function(e){T.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",R)}),h=RegExp(h.join("|")),g=RegExp(g.join("|")),y=rt(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},v=f.compareDocumentPosition?function(e,t){var r;return e===t?(u=!0,0):(r=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&r||e.parentNode&&11===e.parentNode.nodeType?e===n||y(w,e)?-1:t===n||y(w,t)?1:0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return u=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:0;if(o===a)return ut(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?ut(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},u=!1,[0,0].sort(v),T.detectDuplicates=u,p):p},st.matches=function(e,t){return st(e,null,null,t)},st.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Z,"='$1']"),!(!T.matchesSelector||d||g&&g.test(t)||h.test(t)))try{var n=m.call(e,t);if(n||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return st(t,p,null,[e]).length>0},st.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},st.attr=function(e,t){var n;return(e.ownerDocument||e)!==p&&c(e),d||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):d||T.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},st.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},st.uniqueSort=function(e){var t,n=[],r=1,i=0;if(u=!T.detectDuplicates,e.sort(v),u){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e};function ut(e,t){var n=t&&e,r=n&&(~t.sourceIndex||j)-(~e.sourceIndex||j);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ct(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pt(e){return ot(function(t){return t=+t,ot(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}o=st.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=st.selectors={cacheLength:50,createPseudo:ot,match:U,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||st.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&st.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return U.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&z.test(n)&&(t=ft(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(et,tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[e+" "];return t||(t=RegExp("(^|"+_+")"+e+"("+_+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=st.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[x]||(m[x]={}),l=c[e]||[],d=l[0]===N&&l[1],f=l[0]===N&&l[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[N,d,f];break}}else if(v&&(l=(t[x]||(t[x]={}))[e])&&l[0]===N)f=l[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[x]||(p[x]={}))[e]=[N,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||st.error("unsupported pseudo: "+e);return r[x]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ot(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=M.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ot(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[x]?ot(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ot(function(e){return function(t){return st(e,t).length>0}}),contains:ot(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ot(function(e){return X.test(e||"")||st.error("unsupported lang: "+e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=d?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:pt(function(){return[0]}),last:pt(function(e,t){return[t-1]}),eq:pt(function(e,t,n){return[0>n?n+t:n]}),even:pt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:pt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:pt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:pt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[n]=lt(n);for(n in{submit:!0,reset:!0})i.pseudos[n]=ct(n);function ft(e,t){var n,r,o,a,s,u,l,c=E[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=i.preFilter;while(s){(!n||(r=$.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(o=[])),n=!1,(r=I.exec(s))&&(n=r.shift(),o.push({value:n,type:r[0].replace(W," ")}),s=s.slice(n.length));for(a in i.filter)!(r=U[a].exec(s))||l[a]&&!(r=l[a](r))||(n=r.shift(),o.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?st.error(e):E(e,u).slice(0)}function dt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function ht(e,t,n){var i=t.dir,o=n&&"parentNode"===i,a=C++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,s){var u,l,c,p=N+" "+a;if(s){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[x]||(t[x]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,s)||r,l[1]===!0)return!0}}function gt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function mt(e,t,n,r,i){var o,a=[],s=0,u=e.length,l=null!=t;for(;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function yt(e,t,n,r,i,o){return r&&!r[x]&&(r=yt(r)),i&&!i[x]&&(i=yt(i,o)),ot(function(o,a,s,u){var l,c,p,f=[],d=[],h=a.length,g=o||xt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:mt(g,f,e,s,u),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,u),r){l=mt(y,d),r(l,[],s,u),c=l.length;while(c--)(p=l[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?M.call(o,p):f[c])>-1&&(o[l]=!(a[l]=p))}}else y=mt(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)})}function vt(e){var t,n,r,o=e.length,a=i.relative[e[0].type],s=a||i.relative[" "],u=a?1:0,c=ht(function(e){return e===t},s,!0),p=ht(function(e){return M.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>u;u++)if(n=i.relative[e[u].type])f=[ht(gt(f),n)];else{if(n=i.filter[e[u].type].apply(null,e[u].matches),n[x]){for(r=++u;o>r;r++)if(i.relative[e[r].type])break;return yt(u>1&&gt(f),u>1&&dt(e.slice(0,u-1)).replace(W,"$1"),n,r>u&&vt(e.slice(u,r)),o>r&&vt(e=e.slice(r)),o>r&&dt(e))}f.push(n)}return gt(f)}function bt(e,t){var n=0,o=t.length>0,a=e.length>0,s=function(s,u,c,f,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,T=l,C=s||a&&i.find.TAG("*",d&&u.parentNode||u),k=N+=null==T?1:Math.random()||.1;for(w&&(l=u!==p&&u,r=n);null!=(h=C[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,u,c)){f.push(h);break}w&&(N=k,r=++n)}o&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,o&&b!==v){g=0;while(m=t[g++])m(x,y,u,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=L.call(f));y=mt(y)}H.apply(f,y),w&&!s&&y.length>0&&v+t.length>1&&st.uniqueSort(f)}return w&&(N=k,l=T),x};return o?ot(s):s}s=st.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=ft(e)),n=t.length;while(n--)o=vt(t[n]),o[x]?r.push(o):i.push(o);o=S(e,bt(i,r))}return o};function xt(e,t,n){var r=0,i=t.length;for(;i>r;r++)st(e,t[r],n);return n}function wt(e,t,n,r){var o,a,u,l,c,p=ft(e);if(!r&&1===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(u=a[0]).type&&9===t.nodeType&&!d&&i.relative[a[1].type]){if(t=i.find.ID(u.matches[0].replace(et,tt),t)[0],!t)return n;e=e.slice(a.shift().value.length)}o=U.needsContext.test(e)?0:a.length;while(o--){if(u=a[o],i.relative[l=u.type])break;if((c=i.find[l])&&(r=c(u.matches[0].replace(et,tt),V.test(a[0].type)&&t.parentNode||t))){if(a.splice(o,1),e=r.length&&dt(a),!e)return H.apply(n,q.call(r,0)),n;break}}}return s(e,p)(r,t,d,n,V.test(e)),n}i.pseudos.nth=i.pseudos.eq;function Tt(){}i.filters=Tt.prototype=i.pseudos,i.setFilters=new Tt,c(),st.attr=b.attr,b.find=st,b.expr=st.selectors,b.expr[":"]=b.expr.pseudos,b.unique=st.uniqueSort,b.text=st.getText,b.isXMLDoc=st.isXML,b.contains=st.contains}(e);var at=/Until$/,st=/^(?:parents|prev(?:Until|All))/,ut=/^.[^:#\[\.,]*$/,lt=b.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};b.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return r=this,this.pushStack(b(e).filter(function(){for(t=0;i>t;t++)if(b.contains(r[t],this))return!0}));for(n=[],t=0;i>t;t++)b.find(e,this[t],n);return n=this.pushStack(i>1?b.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=b(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(b.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1))},filter:function(e){return this.pushStack(ft(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?lt.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,o=[],a=lt.test(e)||"string"!=typeof e?b(e,t||this.context):0;for(;i>r;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&11!==n.nodeType){if(a?a.index(n)>-1:b.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}}return this.pushStack(o.length>1?b.unique(o):o)},index:function(e){return e?"string"==typeof e?b.inArray(this[0],b(e)):b.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?b(e,t):b.makeArray(e&&e.nodeType?[e]:e),r=b.merge(this.get(),n);return this.pushStack(b.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),b.fn.andSelf=b.fn.addBack;function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}b.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(e,t,n){return b.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(e,t,n){return b.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return b.dir(e,"previousSibling",n)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.merge([],e.childNodes)}},function(e,t){b.fn[e]=function(n,r){var i=b.map(this,t,n);return at.test(e)||(r=n),r&&"string"==typeof r&&(i=b.filter(r,i)),i=this.length>1&&!ct[e]?b.unique(i):i,this.length>1&&st.test(e)&&(i=i.reverse()),this.pushStack(i)}}),b.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?b.find.matchesSelector(t[0],e)?[t[0]]:[]:b.find.matches(e,t)},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!b(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(t=t||0,b.isFunction(t))return b.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return b.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=b.grep(e,function(e){return 1===e.nodeType});if(ut.test(t))return b.filter(t,r,!n);t=b.filter(t,r)}return b.grep(e,function(e){return b.inArray(e,t)>=0===n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Nt=/^(?:checkbox|radio)$/i,Ct=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:b.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(o),Dt=jt.appendChild(o.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,b.fn.extend({text:function(e){return b.access(this,function(e){return e===t?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e))return this.each(function(t){b(this).wrapAll(e.call(this,t))});if(this[0]){var t=b(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return b.isFunction(e)?this.each(function(t){b(this).wrapInner(e.call(this,t))}):this.each(function(){var t=b(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=b.isFunction(e);return this.each(function(n){b(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){b.nodeName(this,"body")||b(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=0;for(;null!=(n=this[r]);r++)(!e||b.filter(e,[n]).length>0)&&(t||1!==n.nodeType||b.cleanData(Ot(n)),n.parentNode&&(t&&b.contains(n.ownerDocument,n)&&Mt(Ot(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&b.cleanData(Ot(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&b.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return b.clone(this,e,t)})},html:function(e){return b.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!b.support.htmlSerialize&&mt.test(e)||!b.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(b.cleanData(Ot(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=b.isFunction(e);return t||"string"==typeof e||(e=b(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;n&&(b(this).remove(),n.insertBefore(e,t))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=f.apply([],e);var i,o,a,s,u,l,c=0,p=this.length,d=this,h=p-1,g=e[0],m=b.isFunction(g);if(m||!(1>=p||"string"!=typeof g||b.support.checkClone)&&Ct.test(g))return this.each(function(i){var o=d.eq(i);m&&(e[0]=g.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(p&&(l=b.buildFragment(e,this[0].ownerDocument,!1,this),i=l.firstChild,1===l.childNodes.length&&(l=i),i)){for(n=n&&b.nodeName(i,"tr"),s=b.map(Ot(l,"script"),Ht),a=s.length;p>c;c++)o=l,c!==h&&(o=b.clone(o,!0,!0),a&&b.merge(s,Ot(o,"script"))),r.call(n&&b.nodeName(this[c],"table")?Lt(this[c],"tbody"):this[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,b.map(s,qt),c=0;a>c;c++)o=s[c],kt.test(o.type||"")&&!b._data(o,"globalEval")&&b.contains(u,o)&&(o.src?b.ajax({url:o.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):b.globalEval((o.text||o.textContent||o.innerHTML||"").replace(St,"")));l=i=null}return this}});function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function Ht(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Mt(e,t){var n,r=0;for(;null!=(n=e[r]);r++)b._data(n,"globalEval",!t||b._data(t[r],"globalEval"))}function _t(e,t){if(1===t.nodeType&&b.hasData(e)){var n,r,i,o=b._data(e),a=b._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)b.event.add(t,n,s[n][r])}a.data&&(a.data=b.extend({},a.data))}}function Ft(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!b.support.noCloneEvent&&t[b.expando]){i=b._data(t);for(r in i.events)b.removeEvent(t,r,i.handle);t.removeAttribute(b.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),b.support.html5Clone&&e.innerHTML&&!b.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Nt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){b.fn[e]=function(e){var n,r=0,i=[],o=b(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),b(o[r])[t](n),d.apply(i,n.get());return this.pushStack(i)}});function Ot(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||b.nodeName(o,n)?s.push(o):b.merge(s,Ot(o,n));return n===t||n&&b.nodeName(e,n)?b.merge([e],s):s}function Bt(e){Nt.test(e.type)&&(e.defaultChecked=e.checked)}b.extend({clone:function(e,t,n){var r,i,o,a,s,u=b.contains(e.ownerDocument,e);if(b.support.html5Clone||b.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(b.support.noCloneEvent&&b.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||b.isXMLDoc(e)))for(r=Ot(o),s=Ot(e),a=0;null!=(i=s[a]);++a)r[a]&&Ft(i,r[a]);if(t)if(n)for(s=s||Ot(e),r=r||Ot(o),a=0;null!=(i=s[a]);a++)_t(i,r[a]);else _t(e,o);return r=Ot(o,"script"),r.length>0&&Mt(r,!u&&Ot(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,u,l,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===b.type(o))b.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),u=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[u]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!b.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!b.support.tbody){o="table"!==u||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)b.nodeName(l=o.childNodes[i],"tbody")&&!l.childNodes.length&&o.removeChild(l)
+}b.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),"script"),a&&Mt(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;for(;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px"),b.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(Pt||b("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=ln(e,t),Pt.detach()),Gt[e]=n),n}function ln(e,t){var n=b(t.createElement(e)).appendTo(t.body),r=b.css(n[0],"display");return n.remove(),r}b.each(["height","width"],function(e,n){b.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(b.css(e,"display"))?b.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,i),i):0)}}}),b.support.opacity||(b.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=b.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===b.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),b(function(){b.support.reliableMarginRight||(b.cssHooks.marginRight={get:function(e,n){return n?b.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!b.support.pixelPosition&&b.fn.position&&b.each(["top","left"],function(e,n){b.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?b(e).position()[n]+"px":r):t}}})}),b.expr&&b.expr.filters&&(b.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!b.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||b.css(e,"display"))},b.expr.filters.visible=function(e){return!b.expr.filters.hidden(e)}),b.each({margin:"",padding:"",border:"Width"},function(e,t){b.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(b.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;b.fn.extend({serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=b.prop(this,"elements");return e?b.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!b(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Nt.test(e))}).map(function(e,t){var n=b(this).val();return null==n?null:b.isArray(n)?b.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),b.param=function(e,n){var r,i=[],o=function(e,t){t=b.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=b.ajaxSettings&&b.ajaxSettings.traditional),b.isArray(e)||e.jquery&&!b.isPlainObject(e))b.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(b.isArray(t))b.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==b.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}b.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(e,t){b.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),b.fn.hover=function(e,t){return this.mouseenter(e).mouseleave(t||e)};var mn,yn,vn=b.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Nn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Cn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=b.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=a.href}catch(Ln){yn=o.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(w)||[];if(b.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(u){var l;return o[u]=!0,b.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||a||o[c]?a?!(l=c):t:(n.dataTypes.unshift(c),s(c),!1)}),l}return s(n.dataTypes[0])||!o["*"]&&s("*")}function Mn(e,n){var r,i,o=b.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&b.extend(!0,e,r),e}b.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),b.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&b.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?b("<div>").append(b.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},b.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){b.fn[t]=function(e){return this.on(t,e)}}),b.each(["get","post"],function(e,n){b[n]=function(e,r,i,o){return b.isFunction(r)&&(o=o||i,i=r,r=t),b.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),b.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Nn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,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"},converters:{"* text":e.String,"text html":!0,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Mn(Mn(e,b.ajaxSettings),t):Mn(b.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,u,l,c,p=b.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?b(f):b.event,h=b.Deferred(),g=b.Callbacks("once memory"),m=p.statusCode||{},y={},v={},x=0,T="canceled",N={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)m[t]=[m[t],e[t]];else N.always(e[N.status]);return this},abort:function(e){var t=e||T;return l&&l.abort(t),k(0,t),this}};if(h.promise(N).complete=g.add,N.success=N.done,N.error=N.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=b.trim(p.dataType||"*").toLowerCase().match(w)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?80:443))==(mn[3]||("http:"===mn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=b.param(p.data,p.traditional)),qn(An,p,n,N),2===x)return N;u=p.global,u&&0===b.active++&&b.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Cn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(b.lastModified[o]&&N.setRequestHeader("If-Modified-Since",b.lastModified[o]),b.etag[o]&&N.setRequestHeader("If-None-Match",b.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&N.setRequestHeader("Content-Type",p.contentType),N.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)N.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,N,p)===!1||2===x))return N.abort();T="abort";for(i in{success:1,error:1,complete:1})N[i](p[i]);if(l=qn(jn,p,n,N)){N.readyState=1,u&&d.trigger("ajaxSend",[N,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){N.abort("timeout")},p.timeout));try{x=1,l.send(y,k)}catch(C){if(!(2>x))throw C;k(-1,C)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,C=n;2!==x&&(x=2,s&&clearTimeout(s),l=t,a=i||"",N.readyState=e>0?4:0,r&&(w=_n(p,N,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=N.getResponseHeader("Last-Modified"),T&&(b.lastModified[o]=T),T=N.getResponseHeader("etag"),T&&(b.etag[o]=T)),204===e?(c=!0,C="nocontent"):304===e?(c=!0,C="notmodified"):(c=Fn(p,w),C=c.state,y=c.data,v=c.error,c=!v)):(v=C,(e||!C)&&(C="error",0>e&&(e=0))),N.status=e,N.statusText=(n||C)+"",c?h.resolveWith(f,[y,C,N]):h.rejectWith(f,[N,C,v]),N.statusCode(m),m=t,u&&d.trigger(c?"ajaxSuccess":"ajaxError",[N,p,c?y:v]),g.fireWith(f,[N,C]),u&&(d.trigger("ajaxComplete",[N,p]),--b.active||b.event.trigger("ajaxStop")))}return N},getScript:function(e,n){return b.get(e,t,n,"script")},getJSON:function(e,t,n){return b.get(e,t,n,"json")}});function _n(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(s in c)s in r&&(n[c[s]]=r[s]);while("*"===l[0])l.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in u)if(u[s]&&u[s].test(o)){l.unshift(s);break}if(l[0]in r)a=l[0];else{for(s in r){if(!l[0]||e.converters[s+" "+l[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function Fn(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u[1])for(i in e.converters)a[i.toLowerCase()]=e.converters[i];for(;r=u[++s];)if("*"!==r){if("*"!==l&&l!==r){if(i=a[l+" "+r]||a["* "+r],!i)for(n in a)if(o=n.split(" "),o[1]===r&&(i=a[l+" "+o[0]]||a["* "+o[0]])){i===!0?i=a[n]:a[n]!==!0&&(r=o[0],u.splice(s--,0,r));break}if(i!==!0)if(i&&e["throws"])t=i(t);else try{t=i(t)}catch(c){return{state:"parsererror",error:i?c:"No conversion from "+l+" to "+r}}}l=r}return{state:"success",data:t}}b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return b.globalEval(e),e}}}),b.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),b.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=o.head||b("head")[0]||o.documentElement;return{send:function(t,i){n=o.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var On=[],Bn=/(=)\?(?=&|$)|\?\?/;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=On.pop()||b.expando+"_"+vn++;return this[e]=!0,e}}),b.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=b.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||b.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,On.push(o)),s&&b.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}b.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=b.ajaxSettings.xhr(),b.support.cors=!!Rn&&"withCredentials"in Rn,Rn=b.support.ajax=!!Rn,Rn&&b.ajaxTransport(function(n){if(!n.crossDomain||b.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=b.noop,$n&&delete Pn[a]),i)4!==u.readyState&&u.abort();else{p={},s=u.status,l=u.getAllResponseHeaders(),"string"==typeof u.responseText&&(p.text=u.responseText);try{c=u.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,l)},n.async?4===u.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},b(e).unload($n)),Pn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+x+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yn.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(b.cssNumber[e]?"":"px"),"px"!==r&&s){s=b.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,b.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=b.now()}function Zn(e,t){b.each(t,function(t,n){var r=(Qn[t]||[]).concat(Qn["*"]),i=0,o=r.length;for(;o>i;i++)if(r[i].call(e,t,n))return})}function er(e,t,n){var r,i,o=0,a=Gn.length,s=b.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;for(;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:b.extend({},t),opts:b.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=b.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(tr(c,l.opts.specialEasing);a>o;o++)if(r=Gn[o].call(l,e,c,l.opts))return r;return Zn(l,c),b.isFunction(l.opts.start)&&l.opts.start.call(e,l),b.fx.timer(b.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function tr(e,t){var n,r,i,o,a;for(i in e)if(r=b.camelCase(i),o=t[r],n=e[i],b.isArray(n)&&(o=n[1],n=e[i]=n[0]),i!==r&&(e[r]=n,delete e[i]),a=b.cssHooks[r],a&&"expand"in a){n=a.expand(n),delete e[r];for(i in n)i in e||(e[i]=n[i],t[i]=o)}else t[r]=o}b.Animation=b.extend(er,{tweener:function(e,t){b.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,u,l,c,p,f=this,d=e.style,h={},g=[],m=e.nodeType&&nn(e);n.queue||(c=b._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,f.always(function(){f.always(function(){c.unqueued--,b.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===b.css(e,"display")&&"none"===b.css(e,"float")&&(b.support.inlineBlockNeedsLayout&&"inline"!==un(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",b.support.shrinkWrapBlocks||f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(i in t)if(a=t[i],Vn.exec(a)){if(delete t[i],u=u||"toggle"===a,a===(m?"hide":"show"))continue;g.push(i)}if(o=g.length){s=b._data(e,"fxshow")||b._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?b(e).show():f.done(function(){b(e).hide()}),f.done(function(){var t;b._removeData(e,"fxshow");for(t in h)b.style(e,t,h[t])});for(i=0;o>i;i++)r=g[i],l=f.createTween(r,m?s[r]:0),h[r]=s[r]||b.style(e,r),r in s||(s[r]=l.start,m&&(l.end=l.start,l.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}b.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(b.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?b.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=b.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){b.fx.step[e.prop]?b.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[b.cssProps[e.prop]]||b.cssHooks[e.prop])?b.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},b.each(["toggle","show","hide"],function(e,t){var n=b.fn[t];b.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),b.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=b.isEmptyObject(e),o=b.speed(t,n,r),a=function(){var t=er(this,b.extend({},e),o);a.finish=function(){t.stop(!0)},(i||b._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=b.timers,a=b._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&b.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=b._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=b.timers,a=r?r.length:0;for(n.finish=!0,b.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}b.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){b.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),b.speed=function(e,t,n){var r=e&&"object"==typeof e?b.extend({},e):{complete:n||!n&&t||b.isFunction(e)&&e,duration:e,easing:n&&t||t&&!b.isFunction(t)&&t};return r.duration=b.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in b.fx.speeds?b.fx.speeds[r.duration]:b.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){b.isFunction(r.old)&&r.old.call(this),r.queue&&b.dequeue(this,r.queue)},r},b.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},b.timers=[],b.fx=rr.prototype.init,b.fx.tick=function(){var e,n=b.timers,r=0;for(Xn=b.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||b.fx.stop(),Xn=t},b.fx.timer=function(e){e()&&b.timers.push(e)&&b.fx.start()},b.fx.interval=13,b.fx.start=function(){Un||(Un=setInterval(b.fx.tick,b.fx.interval))},b.fx.stop=function(){clearInterval(Un),Un=null},b.fx.speeds={slow:600,fast:200,_default:400},b.fx.step={},b.expr&&b.expr.filters&&(b.expr.filters.animated=function(e){return b.grep(b.timers,function(t){return e===t.elem}).length}),b.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){b.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,b.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},b.offset={setOffset:function(e,t,n){var r=b.css(e,"position");"static"===r&&(e.style.position="relative");var i=b(e),o=i.offset(),a=b.css(e,"top"),s=b.css(e,"left"),u=("absolute"===r||"fixed"===r)&&b.inArray("auto",[a,s])>-1,l={},c={},p,f;u?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),b.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(l.top=t.top-o.top+p),null!=t.left&&(l.left=t.left-o.left+f),"using"in t?t.using.call(e,l):i.css(l)}},b.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===b.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),b.nodeName(e[0],"html")||(n=e.offset()),n.top+=b.css(e[0],"borderTopWidth",!0),n.left+=b.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-b.css(r,"marginTop",!0),left:t.left-n.left-b.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||o.documentElement;while(e&&!b.nodeName(e,"html")&&"static"===b.css(e,"position"))e=e.offsetParent;return e||o.documentElement})}}),b.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);b.fn[e]=function(i){return b.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?b(a).scrollLeft():o,r?o:b(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return b.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}b.each({Height:"height",Width:"width"},function(e,n){b.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){b.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return b.access(this,function(n,r,i){var o;return b.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?b.css(n,r,s):b.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=b,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return b})})(window);
diff --git a/.themes/classic/source/javascripts/modernizr-2.0.js b/.themes/classic/source/javascripts/modernizr-2.0.js
index b9846c4b..9dca7b0e 100644
--- a/.themes/classic/source/javascripts/modernizr-2.0.js
+++ b/.themes/classic/source/javascripts/modernizr-2.0.js
@@ -1,5 +1,5 @@
-/* Modernizr 2.0.4 (Custom Build) | MIT & BSD
- * Contains: video | iepp | respond | mq | cssclasses | teststyles | testprop | testallprops | prefixes | domprefixes | load
- * Build URL: http://j.mp/m1H1Y1
+/* Modernizr 2.6.2 (Custom Build) | MIT & BSD
+ * Build: http://modernizr.com/download/#-video-mq-cssclasses-teststyles-testprop-testallprops-prefixes-domprefixes-load
*/
-;window.Modernizr=function(a,b,c){function D(a,b){var c=a.charAt(0).toUpperCase()+a.substr(1),d=(a+" "+o.join(c+" ")+c).split(" ");return C(d,b)}function C(a,b){for(var d in a)if(k[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function B(a,b){return!!~(""+a).indexOf(b)}function A(a,b){return typeof a===b}function z(a,b){return y(n.join(a+";")+(b||""))}function y(a){k.cssText=a}var d="2.0.4",e={},f=!0,g=b.documentElement,h=b.head||b.getElementsByTagName("head")[0],i="modernizr",j=b.createElement(i),k=j.style,l,m=Object.prototype.toString,n=" -webkit- -moz- -o- -ms- -khtml- ".split(" "),o="Webkit Moz O ms Khtml".split(" "),p={},q={},r={},s=[],t=function(a,c,d,e){var f,h,j,k=b.createElement("div");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:i+(d+1),k.appendChild(j);f=["&shy;","<style>",a,"</style>"].join(""),k.id=i,k.innerHTML+=f,g.appendChild(k),h=c(k,a),k.parentNode.removeChild(k);return!!h},u=function(b){if(a.matchMedia)return matchMedia(b).matches;var c;t("@media "+b+" { #"+i+" { position: absolute; } }",function(b){c=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle).position=="absolute"});return c},v,w={}.hasOwnProperty,x;!A(w,c)&&!A(w.call,c)?x=function(a,b){return w.call(a,b)}:x=function(a,b){return b in a&&A(a.constructor.prototype[b],c)},p.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType){c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"');var d='video/mp4; codecs="avc1.42E01E';c.h264=a.canPlayType(d+'"')||a.canPlayType(d+', mp4a.40.2"'),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}}catch(e){}return c};for(var E in p)x(p,E)&&(v=E.toLowerCase(),e[v]=p[E](),s.push((e[v]?"":"no-")+v));y(""),j=l=null,a.attachEvent&&function(){var a=b.createElement("div");a.innerHTML="<elem></elem>";return a.childNodes.length!==1}()&&function(a,b){function s(a){var b=-1;while(++b<g)a.createElement(f[b])}a.iepp=a.iepp||{};var d=a.iepp,e=d.html5elements||"abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",f=e.split("|"),g=f.length,h=new RegExp("(^|\\s)("+e+")","gi"),i=new RegExp("<(/*)("+e+")","gi"),j=/^\s*[\{\}]\s*$/,k=new RegExp("(^|[^\\n]*?\\s)("+e+")([^\\n]*)({[\\n\\w\\W]*?})","gi"),l=b.createDocumentFragment(),m=b.documentElement,n=m.firstChild,o=b.createElement("body"),p=b.createElement("style"),q=/print|all/,r;d.getCSS=function(a,b){if(a+""===c)return"";var e=-1,f=a.length,g,h=[];while(++e<f){g=a[e];if(g.disabled)continue;b=g.media||b,q.test(b)&&h.push(d.getCSS(g.imports,b),g.cssText),b="all"}return h.join("")},d.parseCSS=function(a){var b=[],c;while((c=k.exec(a))!=null)b.push(((j.exec(c[1])?"\n":c[1])+c[2]+c[3]).replace(h,"$1.iepp_$2")+c[4]);return b.join("\n")},d.writeHTML=function(){var a=-1;r=r||b.body;while(++a<g){var c=b.getElementsByTagName(f[a]),d=c.length,e=-1;while(++e<d)c[e].className.indexOf("iepp_")<0&&(c[e].className+=" iepp_"+f[a])}l.appendChild(r),m.appendChild(o),o.className=r.className,o.id=r.id,o.innerHTML=r.innerHTML.replace(i,"<$1font")},d._beforePrint=function(){p.styleSheet.cssText=d.parseCSS(d.getCSS(b.styleSheets,"all")),d.writeHTML()},d.restoreHTML=function(){o.innerHTML="",m.removeChild(o),m.appendChild(r)},d._afterPrint=function(){d.restoreHTML(),p.styleSheet.cssText=""},s(b),s(l);d.disablePP||(n.insertBefore(p,n.firstChild),p.media="print",p.className="iepp-printshim",a.attachEvent("onbeforeprint",d._beforePrint),a.attachEvent("onafterprint",d._afterPrint))}(a,b),e._version=d,e._prefixes=n,e._domPrefixes=o,e.mq=u,e.testProp=function(a){return C([a])},e.testAllProps=D,e.testStyles=t,g.className=g.className.replace(/\bno-js\b/,"")+(f?" js "+s.join(" "):"");return e}(this,this.document),function(a,b){function u(){r(!0)}a.respond={},respond.update=function(){},respond.mediaQueriesSupported=b;if(!b){var c=a.document,d=c.documentElement,e=[],f=[],g=[],h={},i=30,j=c.getElementsByTagName("head")[0]||d,k=j.getElementsByTagName("link"),l=[],m=function(){var b=k,c=b.length,d=0,e,f,g,i;for(;d<c;d++)e=b[d],f=e.href,g=e.media,i=e.rel&&e.rel.toLowerCase()==="stylesheet",!!f&&i&&!h[f]&&(!/^([a-zA-Z]+?:(\/\/)?(www\.)?)/.test(f)||f.replace(RegExp.$1,"").split("/")[0]===a.location.host?l.push({href:f,media:g}):h[f]=!0);n()},n=function(){if(l.length){var a=l.shift();s(a.href,function(b){o(b,a.href,a.media),h[a.href]=!0,n()})}},o=function(a,b,c){var d=a.match(/@media[^\{]+\{([^\{\}]+\{[^\}\{]+\})+/gi),g=d&&d.length||0,b=b.substring(0,b.lastIndexOf("/")),h=function(a){return a.replace(/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,"$1"+b+"$2$3")},i=!g&&c,j=0,k,l,m,n,o;b.length&&(b+="/"),i&&(g=1);for(;j<g;j++){k=0,i?(l=c,f.push(h(a))):(l=d[j].match(/@media ([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1,f.push(RegExp.$2&&h(RegExp.$2))),n=l.split(","),o=n.length;for(;k<o;k++)m=n[k],e.push({media:m.match(/(only\s+)?([a-zA-Z]+)(\sand)?/)&&RegExp.$2,rules:f.length-1,minw:m.match(/\(min\-width:[\s]*([\s]*[0-9]+)px[\s]*\)/)&&parseFloat(RegExp.$1),maxw:m.match(/\(max\-width:[\s]*([\s]*[0-9]+)px[\s]*\)/)&&parseFloat(RegExp.$1)})}r()},p,q,r=function(a){var b="clientWidth",h=d[b],l=c.compatMode==="CSS1Compat"&&h||c.body[b]||h,m={},n=c.createDocumentFragment(),o=k[k.length-1],s=(new Date).getTime();if(a&&p&&s-p<i)clearTimeout(q),q=setTimeout(r,i);else{p=s;for(var t in e){var u=e[t];if(!u.minw&&!u.maxw||(!u.minw||u.minw&&l>=u.minw)&&(!u.maxw||u.maxw&&l<=u.maxw))m[u.media]||(m[u.media]=[]),m[u.media].push(f[u.rules])}for(var t in g)g[t]&&g[t].parentNode===j&&j.removeChild(g[t]);for(var t in m){var v=c.createElement("style"),w=m[t].join("\n");v.type="text/css",v.media=t,v.styleSheet?v.styleSheet.cssText=w:v.appendChild(c.createTextNode(w)),n.appendChild(v),g.push(v)}j.insertBefore(n,o.nextSibling)}},s=function(a,b){var c=t();if(!!c){c.open("GET",a,!0),c.onreadystatechange=function(){c.readyState==4&&(c.status==200||c.status==304)&&b(c.responseText)};if(c.readyState==4)return;c.send()}},t=function(){var a=!1,b=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new XMLHttpRequest}],c=b.length;while(c--){try{a=b[c]()}catch(d){continue}break}return function(){return a}}();m(),respond.update=m,a.addEventListener?a.addEventListener("resize",u,!1):a.attachEvent&&a.attachEvent("onresize",u)}}(this,Modernizr.mq("only all")),function(a,b,c){function k(a){return!a||a=="loaded"||a=="complete"}function j(){var a=1,b=-1;while(p.length- ++b)if(p[b].s&&!(a=p[b].r))break;a&&g()}function i(a){var c=b.createElement("script"),d;c.src=a.s,c.onreadystatechange=c.onload=function(){!d&&k(c.readyState)&&(d=1,j(),c.onload=c.onreadystatechange=null)},m(function(){d||(d=1,j())},H.errorTimeout),a.e?c.onload():n.parentNode.insertBefore(c,n)}function h(a){var c=b.createElement("link"),d;c.href=a.s,c.rel="stylesheet",c.type="text/css",!a.e&&(w||r)?function a(b){m(function(){if(!d)try{b.sheet.cssRules.length?(d=1,j()):a(b)}catch(c){c.code==1e3||c.message=="security"||c.message=="denied"?(d=1,m(function(){j()},0)):a(b)}},0)}(c):(c.onload=function(){d||(d=1,m(function(){j()},0))},a.e&&c.onload()),m(function(){d||(d=1,j())},H.errorTimeout),!a.e&&n.parentNode.insertBefore(c,n)}function g(){var a=p.shift();q=1,a?a.t?m(function(){a.t=="c"?h(a):i(a)},0):(a(),j()):q=0}function f(a,c,d,e,f,h){function i(){!o&&k(l.readyState)&&(r.r=o=1,!q&&j(),l.onload=l.onreadystatechange=null,m(function(){u.removeChild(l)},0))}var l=b.createElement(a),o=0,r={t:d,s:c,e:h};l.src=l.data=c,!s&&(l.style.display="none"),l.width=l.height="0",a!="object"&&(l.type=d),l.onload=l.onreadystatechange=i,a=="img"?l.onerror=i:a=="script"&&(l.onerror=function(){r.e=r.r=1,g()}),p.splice(e,0,r),u.insertBefore(l,s?null:n),m(function(){o||(u.removeChild(l),r.r=r.e=o=1,j())},H.errorTimeout)}function e(a,b,c){var d=b=="c"?z:y;q=0,b=b||"j",C(a)?f(d,a,b,this.i++,l,c):(p.splice(this.i++,0,a),p.length==1&&g());return this}function d(){var a=H;a.loader={load:e,i:0};return a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=r&&!s,u=s?l:n.parentNode,v=a.opera&&o.call(a.opera)=="[object Opera]",w="webkitAppearance"in l.style,x=w&&"async"in b.createElement("script"),y=r?"object":v||x?"img":"script",z=w?"img":y,A=Array.isArray||function(a){return o.call(a)=="[object Array]"},B=function(a){return typeof a=="object"},C=function(a){return typeof a=="string"},D=function(a){return o.call(a)=="[object Function]"},E=[],F={},G,H;H=function(a){function f(a){var b=a.split("!"),c=E.length,d=b.pop(),e=b.length,f={url:d,origUrl:d,prefixes:b},g,h;for(h=0;h<e;h++)g=F[b[h]],g&&(f=g(f));for(h=0;h<c;h++)f=E[h](f);return f}function e(a,b,e,g,h){var i=f(a),j=i.autoCallback;if(!i.bypass){b&&(b=D(b)?b:b[a]||b[g]||b[a.split("/").pop().split("?")[0]]);if(i.instead)return i.instead(a,b,e,g,h);e.load(i.url,i.forceCSS||!i.forceJS&&/css$/.test(i.url)?"c":c,i.noexec),(D(b)||D(j))&&e.load(function(){d(),b&&b(i.origUrl,h,g),j&&j(i.origUrl,h,g)})}}function b(a,b){function c(a){if(C(a))e(a,h,b,0,d);else if(B(a))for(i in a)a.hasOwnProperty(i)&&e(a[i],h,b,i,d)}var d=!!a.test,f=d?a.yep:a.nope,g=a.load||a.both,h=a.callback,i;c(f),c(g),a.complete&&b.load(a.complete)}var g,h,i=this.yepnope.loader;if(C(a))e(a,0,i,0);else if(A(a))for(g=0;g<a.length;g++)h=a[g],C(h)?e(h,0,i,0):A(h)?H(h):B(h)&&b(h,i);else B(a)&&b(a,i)},H.addPrefix=function(a,b){F[a]=b},H.addFilter=function(a){E.push(a)},H.errorTimeout=1e4,b.readyState==null&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",G=function(){b.removeEventListener("DOMContentLoaded",G,0),b.readyState="complete"},0)),a.yepnope=d()}(this,this.document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};
+;window.Modernizr=function(a,b,c){function A(a){j.cssText=a}function B(a,b){return A(m.join(a+";")+(b||""))}function C(a,b){return typeof a===b}function D(a,b){return!!~(""+a).indexOf(b)}function E(a,b){for(var d in a){var e=a[d];if(!D(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function F(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:C(f,"function")?f.bind(d||b):f}return!1}function G(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+o.join(d+" ")+d).split(" ");return C(b,"string")||C(b,"undefined")?E(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),F(e,b,c))}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={},r={},s={},t=[],u=t.slice,v,w=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["&#173;",'<style id="s',h,'">',a,"</style>"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},x=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return w("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},y={}.hasOwnProperty,z;!C(y,"undefined")&&!C(y.call,"undefined")?z=function(a,b){return y.call(a,b)}:z=function(a,b){return b in a&&C(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=u.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(u.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(u.call(arguments)))};return e}),q.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c};for(var H in q)z(q,H)&&(v=H.toLowerCase(),e[v]=q[H](),t.push((e[v]?"":"no-")+v));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)z(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},A(""),i=k=null,e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.mq=x,e.testProp=function(a){return E([a])},e.testAllProps=G,e.testStyles=w,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+t.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2})))}function h(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var i,j,l=this.yepnope.loader;if(e(a))g(a,0,l,0);else if(w(a))for(i=0;i<a.length;i++)j=a[i],e(j)?g(j,0,l,0):w(j)?B(j):Object(j)===j&&h(j,l);else Object(a)===a&&h(a,l)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,null==b.readyState&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};
+
diff --git a/.themes/classic/source/javascripts/octopress.js b/.themes/classic/source/javascripts/octopress.js
index 775fd335..ebadb8e9 100644
--- a/.themes/classic/source/javascripts/octopress.js
+++ b/.themes/classic/source/javascripts/octopress.js
@@ -41,7 +41,7 @@ function addSidebarToggler() {
function testFeatures() {
var features = ['maskImage'];
- $(features).map(function(feature) {
+ $(features).map(function(i, feature) {
if (Modernizr.testAllProps(feature)) {
$('html').addClass(feature);
} else {
@@ -77,7 +77,7 @@ function flashVideoFallback(){
$('video').each(function(video){
video = $(video);
if (!Modernizr.video.h264 && swfobject.getFlashPlayerVersion() || window.location.hash.indexOf("flash-test") !== -1){
- video.children('source[src$=mp4]').first().map(function(source){
+ video.children('source[src$=mp4]').first().map(function(i, source){
var src = $(source).attr('src'),
id = 'video_'+Math.round(1 + Math.random()*(100000)),
width = video.attr('width'),
@@ -117,7 +117,7 @@ function renderDeliciousLinks(items) {
$('#delicious').html(output);
}
-$.domReady(function() {
+$('document').ready(function() {
testFeatures();
wrapFlashVideos();
flashVideoFallback();
@@ -160,3 +160,4 @@ b=j.userAgent.toLowerCase(),d=j.platform.toLowerCase(),g=d?/win/.test(d):/win/.t
a&&b&&d&&i&&k){d+="";i+="";var p={};if(f&&typeof f===o)for(var m in f)p[m]=f[m];p.data=a;p.width=d;p.height=i;a={};if(c&&typeof c===o)for(var n in c)a[n]=c[n];if(e&&typeof e===o)for(var r in e)typeof a.flashvars!=l?a.flashvars+="&"+r+"="+e[r]:a.flashvars=r+"="+e[r];if(t(k))b=s(p,a,b),j.success=!0,j.ref=b}h&&h(j)},ua:g,getFlashPlayerVersion:function(){return{major:g.pv[0],minor:g.pv[1],release:g.pv[2]}},hasFlashPlayerVersion:t,createSWF:function(a,b,d){if(g.w3)return s(a,b,d)},getQueryParamValue:function(a){var b=
i.location.search||i.location.hash;if(b){/\?/.test(b)&&(b=b.split("?")[1]);if(a==null)return u(b);for(var b=b.split("&"),d=0;d<b.length;d++)if(b[d].substring(0,b[d].indexOf("="))==a)return u(b[d].substring(b[d].indexOf("=")+1))}return""}}}();
+