From 200c3e63e2a9b0321d558f4333e64d6a74aaffd0 Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Thu, 5 May 2011 11:06:38 -0400 Subject: [PATCH 01/69] Empty Github documentation directory --- empty.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 empty.txt diff --git a/empty.txt b/empty.txt deleted file mode 100644 index bd7fab7..0000000 --- a/empty.txt +++ /dev/null @@ -1 +0,0 @@ -Nothing to see here. \ No newline at end of file From f20cff7fb1853ecfd2df500e80adcddbca6330ed Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Thu, 5 May 2011 11:16:16 -0400 Subject: [PATCH 02/69] Adding a base framework for github docs --- docsupport/chosen-docs.js | 0 docsupport/jquery-1.6.min.js | 16 +++++++++++++++ docsupport/style.css | 1 + index.html | 38 ++++++++++++++++++++++++++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 docsupport/chosen-docs.js create mode 100644 docsupport/jquery-1.6.min.js create mode 100644 docsupport/style.css create mode 100644 index.html diff --git a/docsupport/chosen-docs.js b/docsupport/chosen-docs.js new file mode 100644 index 0000000..e69de29 diff --git a/docsupport/jquery-1.6.min.js b/docsupport/jquery-1.6.min.js new file mode 100644 index 0000000..b0d55a9 --- /dev/null +++ b/docsupport/jquery-1.6.min.js @@ -0,0 +1,16 @@ +/*! + * jQuery JavaScript Library v1.6 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon May 2 13:50:00 2011 -0400 + */ +(function(a,b){function cw(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function ct(a){if(!ch[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ci||(ci=c.createElement("iframe"),ci.frameBorder=ci.width=ci.height=0),c.body.appendChild(ci);if(!cj||!ci.createElement)cj=(ci.contentWindow||ci.contentDocument).document,cj.write("");b=cj.createElement(a),cj.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ci)}ch[a]=d}return ch[a]}function cs(a,b){var c={};f.each(cn.concat.apply([],cn.slice(0,b)),function(){c[this]=a});return c}function cr(){co=b}function cq(){setTimeout(cr,0);return co=f.now()}function cg(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function cf(){try{return new a.XMLHttpRequest}catch(b){}}function b_(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(a,b){return(a&&a!=="*"?a+".":"")+b.replace(z,"`").replace(A,"&")}function M(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function K(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function E(){return!0}function D(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){name="data-"+c.replace(j,"$1-$2").toLowerCase(),d=a.getAttribute(name);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(e){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?g=[null,a,null]:g=i.exec(a);if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
a",b=a.getElementsByTagName("*"),d=a.getElementsByTagName("a")[0];if(!b||!b.length||!d)return{};e=c.createElement("select"),f=e.appendChild(c.createElement("option")),g=a.getElementsByTagName("input")[0],i={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.55$/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:g.value==="on",optSelected:f.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},g.checked=!0,i.noCloneChecked=g.cloneNode(!0).checked,e.disabled=!0,i.optDisabled=!f.disabled;try{delete a.test}catch(r){i.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function click(){i.noCloneEvent=!1,a.detachEvent("onclick",click)}),a.cloneNode(!0).fireEvent("onclick")),g=c.createElement("input"),g.value="t",g.setAttribute("type","radio"),i.radioValue=g.value==="t",g.setAttribute("checked","checked"),a.appendChild(g),j=c.createDocumentFragment(),j.appendChild(a.firstChild),i.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",k=c.createElement("body"),l={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(p in l)k.style[p]=l[p];k.appendChild(a),c.documentElement.appendChild(k),i.appendChecked=g.checked,i.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,i.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",i.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
",m=a.getElementsByTagName("td"),q=m[0].offsetHeight===0,m[0].style.display="",m[1].style.display="none",i.reliableHiddenOffsets=q&&m[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(h=c.createElement("div"),h.style.width="0",h.style.marginRight="0",a.appendChild(h),i.reliableMarginRight=(parseInt(c.defaultView.getComputedStyle(h,null).marginRight,10)||0)===0),k.innerHTML="",c.documentElement.removeChild(k);if(a.attachEvent)for(p in{submit:1,change:1,focusin:1})o="on"+p,q=o in a,q||(a.setAttribute(o,"return;"),q=typeof a[o]=="function"),i[p+"Bubbles"]=q;return i}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[c]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||"set"in c&&c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b=a.selectedIndex,c=[],d=a.options,e=a.type==="select-one";if(b<0)return null;for(var g=e?b:0,h=e?b+1:d.length;g=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex",readonly:"readOnly"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c]||(v&&(f.nodeName(a,"form")||u.test(c))?v:b);if(d!==b){if(d===null||d===!1&&!t.test(c)){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;d===!0&&!t.test(c)&&(d=c),a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.getAttribute("value");a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},propFix:{},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),f.support.getSetAttribute||(f.attrFix=f.extend(f.attrFix,{"for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder"}),v=f.attrHooks.name=f.attrHooks.value=f.valHooks.button={get:function(a,c){var d;if(c==="value"&&!f.nodeName(a,"button"))return a.getAttribute(c);d=a.getAttributeNode(c);return d&&d.specified?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=Object.prototype.hasOwnProperty,x=/\.(.*)$/,y=/^(?:textarea|input|select)$/i,z=/\./g,A=/ /g,B=/[^\w\s.|`]/g,C=function(a){return a.replace(B,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=D;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=D);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),C).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},J=function J(a){var c=a.target,d,e;if(!!y.test(c.nodeName)&&!c.readOnly){d=f._data(c,"_change_data"),e=I(c),(a.type!=="focusout"||c.type!=="radio")&&f._data(c,"_change_data",e);if(d===b||e===d)return;if(d!=null||e)a.type="change",a.liveFired=b,f.event.trigger(a,arguments[1],c)}};f.event.special.change={filters:{focusout:J,beforedeactivate:J,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&J.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&J.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",I(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in H)f.event.add(this,c+".specialChange",H[c]);return y.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return y.test(this.nodeName)}},H=f.event.special.change.filters,H.focus=H.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){return a.nodeName.toLowerCase()==="input"&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=T.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var X=/ jQuery\d+="(?:\d+|null)"/g,Y=/^\s+/,Z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,$=/<([\w:]+)/,_=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(X,""):null;if(typeof a=="string"&&!bb.test(a)&&(f.support.leadingWhitespace||!Y.test(a))&&!be[($.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Z,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[];for(var i=0,j;(j=a[i])!=null;i++){typeof j=="number"&&(j+="");if(!j)continue;if(typeof j=="string")if(!ba.test(j))j=b.createTextNode(j);else{j=j.replace(Z,"<$1>");var k=($.exec(j)||["",""])[1].toLowerCase(),l=be[k]||be._default,m=l[0],n=b.createElement("div");n.innerHTML=l[1]+j+l[2];while(m--)n=n.lastChild;if(!f.support.tbody){var o=_.test(j),p=k==="table"&&!o?n.firstChild&&n.firstChild.childNodes:l[1]===""&&!o?n.childNodes:[];for(var q=p.length-1;q>=0;--q)f.nodeName(p[q],"tbody")&&!p[q].childNodes.length&&p[q].parentNode.removeChild(p[q])}!f.support.leadingWhitespace&&Y.test(j)&&n.insertBefore(b.createTextNode(Y.exec(j)[0]),n.firstChild),j=n.childNodes}var r;if(!f.support.appendChecked)if(j[0]&&typeof (r=j.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bx(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(by=function(a,c){var d,e,g;c=c.replace(bp,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bz=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bq.test(d)&&br.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bx=by||bz,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV;try{bU=e.href}catch(bW){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bX(bS),ajaxTransport:bX(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?b$(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=b_(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bY(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bY(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bZ(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var ca=f.now(),cb=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+ca++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cb.test(b.url)||e&&cb.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cb,l),b.url===j&&(e&&(k=k.replace(cb,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cc=a.ActiveXObject?function(){for(var a in ce)ce[a](0,1)}:!1,cd=0,ce;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cf()||cg()}:cf,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cc&&delete ce[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cd,cc&&(ce||(ce={},f(a).unload(cc)),ce[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ch={},ci,cj,ck=/^(?:toggle|show|hide)$/,cl=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cm,cn=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],co,cp=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cs("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a=f.timers,b=a.length;while(b--)a[b]()||a.splice(b,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cm),cm=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cu=/^t(?:able|d|h)$/i,cv=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cw(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cu.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="
";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cv.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cv.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cw(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cw(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/docsupport/style.css b/docsupport/style.css new file mode 100644 index 0000000..f8ac58b --- /dev/null +++ b/docsupport/style.css @@ -0,0 +1 @@ +body { background: black; color: white; } diff --git a/index.html b/index.html new file mode 100644 index 0000000..315fefb --- /dev/null +++ b/index.html @@ -0,0 +1,38 @@ + + + + + + + + Chosen - a javascript select thingy + + + + + + + + + + + + +
+
+ +
+
+ +
+
+ +
+
+ + + + + + + \ No newline at end of file From 68c6d991f114a02917f2ae5bd6d3c1898cec4c3b Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Thu, 5 May 2011 11:43:09 -0400 Subject: [PATCH 03/69] More document page stubs. --- docsupport/header-bg.gif | Bin 0 -> 1380 bytes docsupport/style.css | 31 ++++++++++++++++++++++++++++++- index.html | 11 +++++++---- 3 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 docsupport/header-bg.gif diff --git a/docsupport/header-bg.gif b/docsupport/header-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..722960a2fd3a8069a9b636d7b0722e2c632bc9a0 GIT binary patch literal 1380 zcmZ?wbhEHbWMr^rxXQrrIhXNU1^>@>rEk^3Ukcd1mT-Nm68h03^P^S%Ycc1SB95=+ zd|&ceKIbrguM_`PDfpvR;d{O0&vxZ6h3ud6n18g$eJNo5TFUdSM)YeL@ApRO?+sEv znq_~sDSpml`d%ycIfvnAhYADDfZ~7d2;Tq&m&B692;Tr3`-+0Z`$tPBhkpg_q^!KNrB%__*n4Qf|WN}8=wMoCG5mA-y? zdAVM>v0i>ry1t>Mr6tG=BO~3Slr-Jq%Dj@q3f;V7Wta&rsl~}fnFS@8`FRQ;6BCp2 zOG|8(l%U2|x5SpqG-FVr5`qW@KRGV(H>) zU}0$J;%4DyZ0raUbagRvbaXL>>GjMjE=kNwP6b&C(wm9UYk^mnJ0o7b;izIguZ>66Eg z9zM8#@9v%3w{G6Je(ma&%a<-*IDhW!nbW6Eo;ZH&=#j&R4j$OQZ||PnyLRr_zHRH4 z&6_rESif%Vn$@dTu2{Zo>5|2Z7A}}SZ|F(<6Xm4w6 zX>Mw4sIRN7sjjN5C@(85DK083$j{5o$mNlr>kh>weniH?el2oDPl2@VPj z@b~le@%HlcaCdWcadvWau(z|dv9_|bFgG(bF*Y(Z(AU$|(bm$`P*+n`QC3n^ke8E{ zk(QE_5El~_5f%~@;OFDz;pXDxU}s}xVP;}vU{L(Y0xq?5KqRQNWMET2FrmOh#fwFj mW6>eY3^T#w?8XK*Ox
- +
+ Built by Harvest +

Chosen

+

-
- +
+

Chosen is a Javascript library designed to bring ease of use to long, unwieldy HTML select boxes.

- + Blah blah blah. © 2011
From 3cb8fc1b44b54cb5bd783c11c41276f502ba8c6c Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Wed, 22 Jun 2011 17:47:14 -0400 Subject: [PATCH 04/69] Chosen Docus are better now --- chosen/chosen-arrows.png | Bin 0 -> 258 bytes chosen/chosen-close.png | Bin 0 -> 1384 bytes chosen/chosen.css | 319 ++++++++++++ chosen/chosen.proto.js | 687 +++++++++++++++++++++++++ docsupport/style.css | 38 +- index.html | 1046 +++++++++++++++++++++++++++++++++++++- 6 files changed, 2079 insertions(+), 11 deletions(-) create mode 100644 chosen/chosen-arrows.png create mode 100644 chosen/chosen-close.png create mode 100644 chosen/chosen.css create mode 100644 chosen/chosen.proto.js diff --git a/chosen/chosen-arrows.png b/chosen/chosen-arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..01a6541c129a593dfca4af8c7a61fd9d792bfe06 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0y~yU{GOTU=ZhEW?*0lF_2x!z`!6`;u=vBoS#-wo>-L1 z;Fyx1l&avFo0y&&l$w}QS$HzlhJk@WE5Ikj_51hl)22<^v}x1SsZ(#?zWwv(&(*6} zfBN)kTKPNZ|Nq$4=6cKcCn(PpxzzAf!0t=KCgxR4ZM)=Ho4U-}1bSzdl+KuJ zp*PcX#cLDwCTmk&5wX0+a{^1O;wJp(io3L>Ofx*+&&t;ucLK6Vb C-L1 z;Fyx1l&avFo0y&&l$w}QS$HzlhJk@OEi)vdB*NFnDmgz_FA=0huOhdA0R(L9D+&^m zvr|hHl2X$%^K6yg@7}MZkeOnu6mIHk;9KCFnvv;IRg@ZBp}Cc@k(Ggg0u(6ODcBUHq*(>IxIyhIN=dU- z$|xx*u+rBrFE7_CH`dE9O4m2Ew6p}7VPvFRl#-@fT$xvrSfQI&tPC^3CAB!YD6^m> zGe1uOWMX1cerbuVk`mO|irfNUU%0_}#n6CC&d=4aNG#Ad)HBe}%?0@j?BU{)pj3o2 zu&OQ&sVqp<4@xc0FD*(=4N6T@MzRXOMIeO*zP?ueMVaZDd5JkL`N^fZsd*)yF1AV) zxdnPDnJHF=#%AWOCN6GaCLKo>GjMjE=kNwPKDWC`Zl{3AJgIppwn{}x z_I6LDmUc2QFwXFFaSW-r)e>NveJDVrwsWCjor0*<4omSCr~eIG9{6AQ$0#ae;-~kQ zv5tppW=kJm(}k6*<+p|wtmvLRd)EqY4MPdm$FFx9?l3FZ@qO;(@9%cHYfL|#c(NZ}(k3*?#v~2T~%{E_S#m`752X|NPUY_tebabI+&S%|07)iDgDl z=b|5+pQhy{u~^ISh4}87C*Zhm;)`=8FEi(#cb~`9wa8>fqQv2_)km+t{;L0zQEuDq zwfA0@{HWXi{^I=d1LB+v#e&Rs4HKrEP0O93$TI8fvgAuoMIN}Fcv|%L@=KBSK<>CX z3oh_qXjk=|)$y|??&I&jTV@H191-k1BFfe39dP>Trs(z8ou{Q*DrYQC+L+<8_@Z~f z<(DSCx34cK=M1srG%cFBYSpX;K_0e~!3;6YFL&9k w30qyWF(RfpYHirAWtlbGZ~v9QGM|B&!CO|KUDt4FD5&i7boFyt=akR{0A6+PBme*a literal 0 HcmV?d00001 diff --git a/chosen/chosen.css b/chosen/chosen.css new file mode 100644 index 0000000..75e0f37 --- /dev/null +++ b/chosen/chosen.css @@ -0,0 +1,319 @@ +/* line 3, sass/chosen.scss */ +div.chzn-container { + font-size: 82.5%; + position: relative; +} + +div.chzn-container input { + background: #fff; + background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee)); + background-image: -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%); + border: 1px solid #aaa; + font-family: sans-serif; + font-size: 1em; + margin: 0px; + padding: 4px 5px; + outline: none; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + -khtml-border-radius: 3px; + border-radius: 3px; +} +div.chzn-container textarea:focus { + border-color: #058cf5; + -moz-box-shadow: 0px 0px 5px #999; + -webkit-box-shadow: 0px 0px 5px #999; + box-shadow: 0px 0px 5px #999; +} + +/* line 6, sass/chosen.scss */ +div.chzn-container div.chzn-drop { + background: #FFF; + border: 1px solid #BBB; + border-width: 0 1px 1px; + left: 0; + position: absolute; + top: 29px; + -webkit-box-shadow: 0px 4px 5px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0px 4px 5px rgba(0, 0, 0, 0.15); + box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15); + z-index: 20; +} +/* line 19, sass/chosen.scss */ +div.chzn-container a.chzn-single { + background: #FFF; + background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.5, white)); + background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, white 50%); + border: 1px solid #BBB; + display: block; + overflow: hidden; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + -khtml-border-radius: 3px; + border-radius: 3px; + height: 28px; + color: #666; + line-height: 28px; + padding: 0px 0px 0px 8px; + position: relative; + text-decoration: none; + z-index: 19; + white-space: nowrap; +} +/* line 35, sass/chosen.scss */ +div.chzn-container a.chzn-single span { + display: block; + margin-right: 26px; + overflow: hidden; + text-overflow: ellipsis; +} +/* line 41, sass/chosen.scss */ +div.chzn-container a.chzn-single div { + -moz-border-radius-topright: 2px; + -webkit-border-top-right-radius: 2px; + -o-border-top-right-radius: 2px; + -ms-border-top-right-radius: 2px; + -khtml-border-top-right-radius: 2px; + border-top-right-radius: 2px; + -moz-border-radius-bottomright: 2px; + -webkit-border-bottom-right-radius: 2px; + -o-border-bottom-right-radius: 2px; + -ms-border-bottom-right-radius: 2px; + -khtml-border-bottom-right-radius: 2px; + border-bottom-right-radius: 2px; + background: #EEE; + background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, white), color-stop(0.5, #eeeeee)); + background-image: -moz-linear-gradient(center bottom, white 0%, #eeeeee 50%); + border-left: 1px solid #BBB; + display: block; + height: 100%; + position: absolute; + right: 0; + top: 0; + width: 18px; +} +/* line 53, sass/chosen.scss */ +div.chzn-container a.chzn-single div b { + background: url('chosen-arrows.png') no-repeat left center; + display: block; + width: 100%; + height: 100%; +} +/* line 62, sass/chosen.scss */ +div.chzn-container div.chzn-search { + padding: 4px 3px; + margin: 0px; + white-space: nowrap; +} +/* line 66, sass/chosen.scss */ +div.chzn-container div.chzn-search input { + padding: 0 3px; + -moz-border-radius: 0px; + -webkit-border-radius: 0px; + -o-border-radius: 0px; + -ms-border-radius: 0px; + -khtml-border-radius: 0px; + border-radius: 0px; + color: #666; + background: transparent !important; + padding: 5px; + margin: 1px 0; + outline: 0; +} +/* line 78, sass/chosen.scss */ +div.chzn-container ul.chzn-choices { + background: #fff; + background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee)); + background-image: -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%); + margin: 0; + cursor: text; + border: 1px solid #aaa; + overflow: hidden; + height: auto !important; + height: 1%; + padding: 0; + position: relative; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} +/* line 93, sass/chosen.scss */ +div.chzn-container ul.chzn-choices:focus { + border-color: #058cf5; + -moz-box-shadow: 0px 0px 5px #999; + -webkit-box-shadow: 0px 0px 5px #999; + box-shadow: 0px 0px 5px #999; +} +/* line 99, sass/chosen.scss */ +div.chzn-container ul.chzn-choices li { + float: left; + list-style-type: none; + margin: 0px; +} +/* line 103, sass/chosen.scss */ +div.chzn-container ul.chzn-choices li.search-field { + margin: 0px; + white-space: nowrap; + padding: 0px; +} +/* line 107, sass/chosen.scss */ +div.chzn-container ul.chzn-choices li.search-field input { + color: #666; + background: transparent !important; + border: 0px !important; + padding: 5px; + margin: 1px 0; + outline: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +/* line 118, sass/chosen.scss */ +div.chzn-container ul.chzn-choices li.search-field input.default { + color: #999; +} +/* line 123, sass/chosen.scss */ +div.chzn-container ul.chzn-choices li.search-choice { + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + background: #e6f0f8; + background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #dae8f3), color-stop(0.9, #e9f2fa)); + background-image: -moz-linear-gradient(center bottom, #dae8f3 0%, #e9f2fa 90%); + color: #333; + border: 1px solid #b3c9db; + font-weight: bold; + line-height: 13px; + padding: 3px 18px 3px 6px; + position: relative; + margin: 3px 0px 3px 5px; + text-shadow: 0px 1px 0px #e9f2fa; +} +/* line 138, sass/chosen.scss */ +div.chzn-container ul.chzn-choices li.search-choice span { + cursor: default; +} +/* line 141, sass/chosen.scss */ +div.chzn-container ul.chzn-choices li.search-choice.search-choice-focus { + background: #DDD; +} +/* line 144, sass/chosen.scss */ +div.chzn-container ul.chzn-choices li.search-choice a.search-choice-close { + position: absolute; + right: 4px; + top: 6px; + display: block; + width: 8px; + height: 9px; + font-size: 1px; + background: url(chosen-close.png) no-repeat; +} +/* line 153, sass/chosen.scss */ +div.chzn-container ul.chzn-choices li.search-choice a.search-choice-close:hover { + background-position: 0 -9px; +} +/* line 161, sass/chosen.scss */ +div.chzn-container ul.chzn-results { + margin: 0; + max-height: 196px; + padding: 0; + position: relative; + overflow-x: hidden; + overflow-y: auto; + z-index: 20; +} +/* line 169, sass/chosen.scss */ +div.chzn-container ul.chzn-results li { + padding: 7px 10px; + z-index: 22; + margin: 0; + list-style-type: none; +} +/* line 174, sass/chosen.scss */ +div.chzn-container ul.chzn-results li.active-result { + cursor: pointer; +} +/* line 177, sass/chosen.scss */ +div.chzn-container ul.chzn-results li em { + font-weight: bold; + font-style: normal; + background: #FEFFDC; +} +/* line 182, sass/chosen.scss */ +div.chzn-container ul.chzn-results li.highlighted { + background: #066bb9; + background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #066bb9), color-stop(0.5, #2482cb)); + background-image: -moz-linear-gradient(center bottom, #066bb9 0%, #2482cb 70%); + color: #fff; +} +/* line 187, sass/chosen.scss */ +div.chzn-container ul.chzn-results li.highlighted em { + color: #066bb9; +} +/* line 191, sass/chosen.scss */ +div.chzn-container ul.chzn-results li.no-results { + background: #F4F4F4; +} +/* line 194, sass/chosen.scss */ +div.chzn-container ul.chzn-results li.group-result { + cursor: default; + color: #999; + font-weight: bold; +} +/* line 199, sass/chosen.scss */ +div.chzn-container ul.chzn-results li.group-option { + padding-left: 20px; +} + +/* line 213, sass/chosen.scss */ +div.chzn-container-multi div.chzn-drop li.result-selected { + display: none; +} + +/* line 218, sass/chosen.scss */ +div.chzn-container-active a.chzn-single { + border-color: #058cf5; + -moz-box-shadow: 0px 0px 5px #999; + -webkit-box-shadow: 0px 0px 5px #999; + box-shadow: 0px 0px 5px #999; +} +/* line 224, sass/chosen.scss */ +div.chzn-container-active a.chzn-single-with-drop { + border: 1px solid #BBB; + border-width: 1px 1px 1px; + box-shadow: 0px 1px 0px #FFF inset; + background: #EEE; + background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, white), color-stop(0.5, #eeeeee)); + background-image: -moz-linear-gradient(center bottom, white 0%, #eeeeee 50%); + -webkit-border-bottom-left-radius: 0px; + -webkit-border-bottom-right-radius: 0px; + -moz-border-radius-bottomleft: 0px; + -moz-border-radius-bottomright: 0px; + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; +} +/* line 237, sass/chosen.scss */ +div.chzn-container-active a.chzn-single-with-drop div { + background: transparent; + border-left: none; +} +/* line 240, sass/chosen.scss */ +div.chzn-container-active a.chzn-single-with-drop div b { + background-position: right center; +} +/* line 245, sass/chosen.scss */ +div.chzn-container-active ul.chzn-choices { + z-index: 21; + border-color: #058cf5; + -moz-box-shadow: 0px 0px 5px #999; + -webkit-box-shadow: 0px 0px 5px #999; + box-shadow: 0px 0px 5px #999; +} +/* line 247, sass/chosen.scss */ +div.chzn-container-active ul.chzn-choices input { + color: #111 !important; +} diff --git a/chosen/chosen.proto.js b/chosen/chosen.proto.js new file mode 100644 index 0000000..ee59a6d --- /dev/null +++ b/chosen/chosen.proto.js @@ -0,0 +1,687 @@ +/*! + +Chosen for Protoype.js +by Patrick Filler at Harvest + +Copyright (c) 2011 Harvest + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ + +var Chosen; +Chosen = Class.create(); + +Chosen.prototype = { + + active_field : false, + mouse_on_container : false, + + results_showing: false, + + result_highlighted : null, + result_single_selected : null, + + choices: 0, + + // HTML Templates + single_temp : new Template('#{default}
    '), + multi_temp : new Template('
      '), + + choice_temp : new Template('
    • #{choice}
    • '), + no_results_temp : new Template('
    • No results match "#{terms}"
    • '), + + initialize: function(el){ + if(!Prototype.Browser.IE7 && !Prototype.Browser.IE6){ + this.form_field = el; + this.is_multiple = this.form_field.multiple; + this.form_field.observe("liszt:updated", this.results_update_field.bindAsEventListener(this)); + + this.default_text_default = (this.form_field.multiple) ? "Select Some Options" : "Select an Option"; + + this.click_test_action = this.test_active_click.bindAsEventListener(this); + + this.set_up_html(); + this.register_observers(); + } + }, + + set_up_html: function(){ + this.container_id = this.form_field.id + "_chzn"; + + this.f_width = (this.form_field.getStyle("width")) ? parseInt( this.form_field.getStyle("width"), 10 ) : this.form_field.getWidth(); + var container_props = { + 'id': this.container_id, + 'class':'chzn-container', + 'style':'width:'+ this.f_width +'px' + }; + + this.default_text = this.form_field.readAttribute('title') ? this.form_field.readAttribute('title') : this.default_text_default + + var base_template = ( this.is_multiple ) ? new Element('div', container_props).update( this.multi_temp.evaluate({ "default": this.default_text}) ) : new Element('div', container_props).update( this.single_temp.evaluate({ "default":this.default_text }) ); + + this.form_field.hide().insert({ after: base_template }); + + this.container = $(this.container_id); + this.container.addClassName( "chzn-container-" + ((this.is_multiple) ? "multi" : "single") ); + this.dropdown = this.container.down('div.chzn-drop'); + + var dd_top = this.container.getHeight(); + var dd_width = (this.f_width - get_side_border_padding(this.dropdown)); + + this.dropdown.setStyle({"width": dd_width + "px", "top": dd_top + "px"}); + + this.search_field = this.container.down('input'); + this.search_results = this.container.down('ul.chzn-results'); + this.search_field_scale(); + + this.search_no_results = this.container.down('li.no-results'); + + if( !this.is_multiple ){ + this.search_container = this.container.down('div.chzn-search'); + this.selected_item = this.container.down('.chzn-single'); + this.selected_item.observe("click", this.results_toggle.bindAsEventListener(this)); + var sf_width = (dd_width - get_side_border_padding(this.search_container) - get_side_border_padding(this.search_field)); + this.search_field.setStyle( {"width" : sf_width + "px"} ); + } + else{ + this.search_choices = this.container.down('ul.chzn-choices'); + this.search_container = this.container.down('li.search-field'); + this.search_choices.observe("click", this.choices_click.bindAsEventListener(this)); + } + + this.results_build(); + }, + + register_observers: function(){ + this.container.observe("click", this.container_click.bindAsEventListener(this)); + + this.container.observe("mouseenter", this.mouse_enter.bindAsEventListener(this)); + this.container.observe("mouseleave", this.mouse_leave.bindAsEventListener(this)); + + this.search_field.observe("blur", this.input_blur.bindAsEventListener(this)); + this.search_field.observe("keyup", this.keyup_checker.bindAsEventListener(this)); + this.search_field.observe("keydown", this.keydown_checker.bindAsEventListener(this)); + this.set_tab_index(); + + this.search_results.observe("click", this.search_results_click.bindAsEventListener(this) ); + this.search_results.observe("mouseover", this.search_results_mouseover.bindAsEventListener(this) ); + this.search_results.observe("mouseout", this.search_results_mouseout.bindAsEventListener(this) ); + + if( !this.is_multiple ){ this.selected_item.observe("focus", this.input_focus.bindAsEventListener(this)); } + this.search_field.observe("focus", this.input_focus.bindAsEventListener(this)); + }, + + set_tab_index: function(el){ + if(this.form_field.tabIndex){ + var ti = this.form_field.tabIndex; + this.form_field.tabIndex = -1; + + this.search_field.tabIndex = ti; + if( !this.is_multiple ){ this.selected_item.tabIndex = ti; } + } + }, + + container_click: function(evt){ + if(evt && evt.type=="click"){ evt.preventDefault(); } + if( !this.pending_destroy_click ){ + if(!this.active_field){ + if(this.is_multiple){ this.search_field.clear(); } + document.observe("click", this.click_test_action); + this.results_show(); + } + this.search_field.value = this.search_field.value; + this.search_field.focus(); + + this.container.addClassName("chzn-container-active"); + this.active_field = true; + } + else{ this.pending_destroy_click = false; } + }, + + mouse_enter: function(){ this.mouse_on_container = true; }, + mouse_leave: function(){ this.mouse_on_container = false; }, + + input_focus: function(evt){ + if(!this.active_field){ setTimeout( this.container_click.bind(this) , 50 ); } + }, + + input_blur: function(evt){ + if( !this.mouse_on_container ){ + this.active_field = false; + setTimeout( this.blur_test.bind(this) , 100 ); + } + }, + + blur_test: function(evt){ + if( !this.active_field && this.container.hasClassName("chzn-container-active") ){ this.close_field(); } + }, + + test_active_click: function(evt){ + if( evt.target.up( '#' + this.container.identify() ) ){ this.active_field = true; } + else{ this.close_field(); } + }, + + close_field: function(){ + document.stopObserving("click", this.click_test_action); + + if( !this.is_multiple ){ this.selected_item.tabIndex = this.search_field.tabIndex; } + + this.active_field = false; + this.results_hide(); + + this.container.removeClassName("chzn-container-active"); + this.winnow_results_clear(); + this.clear_backstroke(); + + this.show_search_field_default(); + this.search_field_scale(); + }, + + show_search_field_default: function(){ + if( this.is_multiple && this.choices < 1 && !this.active_field ){ + this.search_field.value = this.default_text; + this.search_field.addClassName("default"); + } + else{ + this.search_field.value = ""; + this.search_field.removeClassName("default"); + } + }, + + search_results_click: function(evt){ + var target = (evt.target.hasClassName("active-result")) ? evt.target : evt.target.up(".active-result"); + if( target ){ + this.result_highlight = target; + this.result_select(); + } + }, + + search_results_mouseover: function(evt){ + var target = (evt.target.hasClassName("active-result")) ? evt.target : evt.target.up(".active-result"); + if( target ){ this.result_do_highlight( target ); } + }, + + search_results_mouseout: function(evt){ + if( evt.target.hasClassName('active-result') || evt.target.up('.active-result') ){ this.result_clear_highlight(); } + }, + + results_show: function(){ + if( !this.is_multiple ){ + this.selected_item.addClassName('chzn-single-with-drop'); + if( this.result_single_selected ){ this.result_do_highlight( this.result_single_selected ); } + } + + var dd_top = (this.is_multiple) ? this.container.getHeight() : this.container.getHeight() - 1; + this.dropdown.setStyle({"top": dd_top + "px", "left":0}); + this.results_showing = true; + + if( !this.is_multiple ){ this.selected_item.tabIndex = -1; } + + this.search_field.focus(); + this.search_field.value = this.search_field.value; + + this.winnow_results(); + }, + + results_toggle: function(evt){ + evt.preventDefault(); + if( this.active_field ){ + if( this.results_showing ){ this.results_hide(); } + else{ this.results_show(); } + } + }, + + results_hide: function(){ + if( !this.is_multiple ){ this.selected_item.removeClassName('chzn-single-with-drop'); } + this.result_clear_highlight(); + this.dropdown.setStyle({"left":"-9000px"}); + this.results_showing = false; + }, + + results_build: function(){ + // TODO remove debugging + var startTime = new Date(); + + this.parsing = true; + this.results_data = select_to_array.parse( this.form_field ); + + if( this.is_multiple && this.choices > 0 ){ + this.search_choices.select("li.search-choice").invoke("remove"); + this.choices = 0; + } + + var i, content=''; + for( i = 0; i' + group.label.escapeHTML() + ''; + } + else{ return ""; } + }, + + result_add_option: function(option){ + if( !option.disabled ){ + option.dom_id = (this.form_field.id + "chzn_o_" + option.id); + + var classes = ( option.selected && this.is_multiple ) ? [] : ["active-result"]; + if( option.selected ){ classes.push("result-selected"); } + if( option.group_id >= 0 ){ classes.push("group-option"); } + + return '
    • ' + option.text.escapeHTML() + '
    • '; + } + else{ return ""; } + }, + + result_do_highlight: function(el){ + this.result_clear_highlight(); + + this.result_highlight = el; + this.result_highlight.addClassName('highlighted'); + + var maxHeight = parseInt(this.search_results.getStyle('maxHeight'), 10); + var visible_top = this.search_results.scrollTop; + var visible_bottom = maxHeight + visible_top; + + var high_top = this.result_highlight.positionedOffset().top; + var high_bottom = high_top + this.result_highlight.getHeight(); + + if( high_bottom > visible_bottom ){ this.search_results.scrollTop = (high_bottom - maxHeight > 0) ? high_bottom - maxHeight : 0; } + else if( high_top < visible_top ){ this.search_results.scrollTop = high_top; } + }, + result_clear_highlight: function(){ + if( this.result_highlight ){ + this.result_highlight.removeClassName('highlighted'); + this.result_highlight = null; + } + }, + + result_select: function(){ + if(this.result_highlight){ + var high = this.result_highlight; + this.result_clear_highlight(); + + high.addClassName("result-selected"); + if( this.is_multiple ){ this.result_deactivate(high); } + else{ this.result_single_selected = high; } + + var position = high.id.substr( high.id.lastIndexOf("_") + 1 ); + var item = this.results_data[position]; + item.selected = true; + + this.form_field.options[item.select_index].selected = true; + + if( this.is_multiple ){ this.choice_build( item ); } + else { this.selected_item.down("span").update(item.text); } + + + this.results_hide(); + this.search_field.value = ""; + + if(typeof Event.simulate === 'function'){ this.form_field.simulate("change"); } + + this.search_field_scale(); + } + }, + + result_activate: function(el){ + el.addClassName("active-result").show(); + }, + + result_deactivate: function(el){ + el.removeClassName("active-result").hide(); + }, + + result_deselect: function(pos){ + var result_data = this.results_data[pos]; + result_data.selected = false; + + this.form_field.options[result_data.select_index].selected = false; + var result = $(this.form_field.id + "chzn_o_" + pos); + result.removeClassName("result-selected").addClassName("active-result").show(); + + this.result_clear_highlight(); + this.winnow_results(); + + if(typeof Event.simulate === 'function'){ this.form_field.simulate("change"); } + + this.search_field_scale(); + }, + + results_search: function(){ + if( !this.results_showing ){ this.results_show(); } + else{ this.winnow_results(); } + }, + + winnow_results: function(){ + var startTime = new Date(); + this.no_results_clear(); + + var results = 0; + + var searchText = (this.search_field.value == this.default_text) ? "" : this.search_field.value.strip(); + var regex = new RegExp('^' + searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i'); + var zregex = new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i'); + + var i; + for( i = 0; i= 0 || option.text.indexOf("[") == 0){ + // TODO: replace this substitution of /\[\]/ with a list of characters to skip. + var parts = option.text.replace(/\[|\]/g, "").split(" "); + if( parts.length ){ + var j; + for( j = 0; j' + option.text.substr(startpos + searchText.length); + text = text.substr(0,startpos) + '' + text.substr(startpos); + } + else{ text = option.text; } + + if( $(result_id).innerHTML !== text ){ $(result_id).update( text ); } + + this.result_activate( $(result_id) ); + + if( option.group_id >= 0 ){ $( this.results_data[option.group_id].dom_id ).show(); } + } + else{ + if( $(result_id) === this.result_highlight ){ this.result_clear_highlight(); } + this.result_deactivate( $(result_id) ); + } + + } + } + } + + if( results < 1 && searchText.length ){ this.no_results( searchText ); } + else { this.winnow_results_set_highlight(); } + }, + + winnow_results_clear: function(){ + this.search_field.clear(); + var lis = this.search_results.select("li"); + var i; + + for( i = 0; i 0 && this.search_field.value.length < 1 ){ this.results_hide(); } + + this.result_deselect(link.readAttribute("rel")); + link.up('li').remove(); + }, + + search_field_scale: function(){ + if(this.is_multiple){ + var input = this.search_field; + + var h = 0, w = 0; + + var style_block = "position:absolute; left: -1000px; top: -1000px; display:none;"; + var styles = ['font-size','font-style', 'font-weight', 'font-family','line-height', 'text-transform', 'letter-spacing']; + styles.each(function(style){ style_block += style + ":" + input.getStyle(style) + ";"}); + + var div = new Element('div', { 'style' : style_block }).update(input.value); + document.body.appendChild(div); + + console.log( Element.measure(div, 'width') ); + w = Element.measure(div, 'width') + 25; + div.remove(); + + if( w > this.f_width-10 ){ w = this.f_width - 10; } + this.search_field.setStyle({'width':w + 'px'}); + + var dd_top = this.container.getHeight(); + this.dropdown.setStyle({"top": dd_top + "px"}); + } + }, + + keydown_arrow: function(){ + var actives = this.search_results.select("li.active-result"); + if( actives.length ){ + if( !this.result_highlight ){ this.result_do_highlight( actives.first() ); } + else if( this.results_showing ){ + var sibs = this.result_highlight.nextSiblings(); + var nexts = sibs.intersect(actives); + if( nexts.length ){ this.result_do_highlight(nexts.first()); } + } + if( !this.results_showing ){ this.results_show(); } + } + }, + + keyup_arrow: function(){ + if( !this.results_showing && !this.is_multiple ){ + this.results_show(); + } + else if( this.result_highlight ){ + var sibs = this.result_highlight.previousSiblings(); + var actives = this.search_results.select("li.active-result"); + var prevs = sibs.intersect(actives); + + if( prevs.length ){ this.result_do_highlight(prevs.first()); } + else{ + if(this.choices > 0){ this.results_hide(); } + this.result_clear_highlight(); + } + } + }, + + keydown_backstroke: function(){ + if( this.pending_backstroke ){ + this.choice_destroy( this.pending_backstroke.down("a") ); + this.clear_backstroke(); + } + else{ + this.pending_backstroke = this.search_container.siblings("li.search-choice").last(); + this.pending_backstroke.addClassName("search-choice-focus"); + } + }, + + clear_backstroke: function(){ + if( this.pending_backstroke ){ this.pending_backstroke.removeClassName("search-choice-focus"); } + this.pending_backstroke = null; + }, + + keyup_checker: function(evt){ + var stroke = evt.which || evt.keyCode; + this.search_field_scale(); + + switch(stroke){ + case 8: + if( this.is_multiple && this.backstroke_length < 1 && this.choices > 0 ) this.keydown_backstroke(); + else if( !this.pending_backstroke ){ this.results_search(); } + break; + case 13: + evt.preventDefault(); + if( this.results_showing ){ this.result_select(); } + break; + case 9: + case 13: + case 38: + case 40: + break; + default: + this.results_search(); + break; + } + }, + + keydown_checker: function(evt){ + var stroke = evt.which || evt.keyCode; + this.search_field_scale(); + + if(stroke !== 8 && this.pending_backstroke) this.clear_backstroke(); + + switch(stroke){ + case 8: + this.backstroke_length = this.search_field.value.length; + case 9: + this.mouse_on_container = false; + break; + case 13: + evt.preventDefault(); + break; + case 38: + evt.preventDefault(); + this.keyup_arrow(); + break; + case 40: + this.keydown_arrow(); + break; + } + } + +}; + +var get_side_border_padding = function(item){ + var layout = new Element.Layout(item); + return layout.get("border-left") + layout.get("border-right") + layout.get("padding-left") + layout.get("padding-right"); +} + +var select_to_array = { + parse: function(select) { + var children = select.children; + var opt_array = []; + + var group_index = 0; + var sel_index = 0; + + var i; + + for( i = 0; i0 ){ + opt_array.push( select_to_array.parse_option( children[i], opt_array.length, sel_index ) ); + sel_index += 1; + } + else { + sel_index += 1; + } + } + + return opt_array; + }, + + parse_option: function(option, opt_id, select_index, group_id, group_disabled) { + var opt = { id:opt_id, select_index:select_index, value:option.value, text:option.text, selected:option.selected, disabled:option.disabled } + if(group_id || group_id===0){ + opt.group_id = group_id; + if( group_disabled ){ opt.disabled = group_disabled; } + } + return opt; + } +}; + +document.observe('dom:loaded',function() { + $$(".chzn-select").each(function(el){ new Chosen( el ); }); +}); diff --git a/docsupport/style.css b/docsupport/style.css index a3a3151..38e49fd 100644 --- a/docsupport/style.css +++ b/docsupport/style.css @@ -21,10 +21,38 @@ pre, code, kbd, samp { font-family: monospace, sans-serif; } body { background: #EEE; color: #444; } header { background: #F36C00 url(header-bg.gif) repeat-x; height: 59px; min-width:780px; width: 100%; } -header div { margin: 0 auto; padding: 0 20px; width: 745px; } -header h1 { color:#FFF; font-size: 2em; font-weight: bold; height:59px; line-height: 59px; } -header a { color: white; float: right; line-height: 59px; } +header div { margin: 0 auto; padding: 0 40px; width: 745px; } +header h1 { color:#FFF; font-size: 2em; height:59px; line-height: 59px; } +header a { color: white; float: right; font-size: .825em; line-height: 59px; } -div#content { background: white; border: 1px solid #DDD; border-width: 0 1px 1px; margin: 0 auto; padding: 20px 20px 30px; width: 738px; } +div#content { background: white; border: 1px solid #DDD; border-width: 0 1px 1px; margin: 0 auto; padding: 20px 40px 30px; width: 738px; } -footer { color: #999; margin: 20px auto; padding: 0 20px; width: 745px; text-align:center; } \ No newline at end of file +footer { color: #999; margin: 20px auto; padding: 0 20px; width: 745px; text-align:center; } + +body { font-family: sans-serif; font-size: 1em; } + +p { margin: 1em 0; max-width: 700px; } + +h1, h2 { font-family: Georgia, Times, serif; } +h2 { font-size: 1.25em; margin: 2.5em 0 .5em; border-bottom: 1px solid #999; padding-bottom: 5px; } +h3 { font-weight: bold; } + +ul li { list-style: disc; margin-left: 1em; margin-bottom: 1em; } +ol li { margin-left: 1.25em; } + +li > p { margin-top: .25em; } + +div.side-by-side { width: 100%; margin-bottom: 1em; } +div.side-by-side > div { float: left; width: 50%; } +div.side-by-side > div > em { margin-bottom: 10px; display: block; } + +.faqs em { display: block; } + +.clearfix:after { + content: "\0020"; + display: block; + height: 0; + clear: both; + overflow: hidden; + visibility: hidden; +} \ No newline at end of file diff --git a/index.html b/index.html index 9b110cd..6abbbca 100644 --- a/index.html +++ b/index.html @@ -15,6 +15,7 @@ + @@ -26,16 +27,1049 @@
      -

      Chosen is a Javascript library designed to bring ease of use to long, unwieldy HTML select boxes.

      + +
      +

      Chosen is a javsacript plug-in for Prototype (jQuery support coming soon) that makes long, unwieldy select boxes much more user-friendly.

      + +

      Standard Select

      +
      +
      + Turns This + +
      +
      + Into This + +
      +
      + +

      Multiple Select

      +
      +
      + Turns This + +
      +
      + Into This + +
      +
      + +

      Why use Chosen?

      +
        +
      • +

        Easier to Use

        +

        Instead of forcing your users to scroll through a giant list of items, they can just start typing the name of the item they were looking for.

        +
      • +
      • +

        Progressive Enhancement

        +

        Because chosen replaces normal html select fields, you don't need to do anything special to make it work for browsers without javascript.

        +
      • +
      • +

        Lightweight

        +

        Even un-minified, Chosen's JS, CSS and Images weigh in at under 50k.

        +
      • +
      • +

        Painless Setup

        +

        Add Chosen's files to your app and then add the class chzn-select to your select box. That's it, you're done!

        +
      • +
      + +

      Setup

      +

      Using Chosen is easy as can be.

      +
        +
      1. Download the plug-in and copy the related files to your app.
      2. +
      3. Add the class chzn-select to any select box.
      4. +
      5. Disco.
      6. +
      + +

      FAQs

      +
        +
      • + Why did you build this built for Prototype? +
      • +
      • + What browsers are supported? +
      • +
          +
      + +
      Blah blah blah. © 2011 + Built by Harvest
      - - - - - \ No newline at end of file From b281455a140efd0b8c59f2ffb6547cfd8a7039c2 Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Wed, 22 Jun 2011 17:48:08 -0400 Subject: [PATCH 05/69] Removing unused docs files. --- docsupport/chosen-docs.js | 0 docsupport/jquery-1.6.min.js | 16 ---------------- 2 files changed, 16 deletions(-) delete mode 100644 docsupport/chosen-docs.js delete mode 100644 docsupport/jquery-1.6.min.js diff --git a/docsupport/chosen-docs.js b/docsupport/chosen-docs.js deleted file mode 100644 index e69de29..0000000 diff --git a/docsupport/jquery-1.6.min.js b/docsupport/jquery-1.6.min.js deleted file mode 100644 index b0d55a9..0000000 --- a/docsupport/jquery-1.6.min.js +++ /dev/null @@ -1,16 +0,0 @@ -/*! - * jQuery JavaScript Library v1.6 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Mon May 2 13:50:00 2011 -0400 - */ -(function(a,b){function cw(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function ct(a){if(!ch[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ci||(ci=c.createElement("iframe"),ci.frameBorder=ci.width=ci.height=0),c.body.appendChild(ci);if(!cj||!ci.createElement)cj=(ci.contentWindow||ci.contentDocument).document,cj.write("");b=cj.createElement(a),cj.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ci)}ch[a]=d}return ch[a]}function cs(a,b){var c={};f.each(cn.concat.apply([],cn.slice(0,b)),function(){c[this]=a});return c}function cr(){co=b}function cq(){setTimeout(cr,0);return co=f.now()}function cg(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function cf(){try{return new a.XMLHttpRequest}catch(b){}}function b_(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(a,b){return(a&&a!=="*"?a+".":"")+b.replace(z,"`").replace(A,"&")}function M(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function K(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function E(){return!0}function D(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){name="data-"+c.replace(j,"$1-$2").toLowerCase(),d=a.getAttribute(name);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(e){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?g=[null,a,null]:g=i.exec(a);if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
      a",b=a.getElementsByTagName("*"),d=a.getElementsByTagName("a")[0];if(!b||!b.length||!d)return{};e=c.createElement("select"),f=e.appendChild(c.createElement("option")),g=a.getElementsByTagName("input")[0],i={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.55$/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:g.value==="on",optSelected:f.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},g.checked=!0,i.noCloneChecked=g.cloneNode(!0).checked,e.disabled=!0,i.optDisabled=!f.disabled;try{delete a.test}catch(r){i.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function click(){i.noCloneEvent=!1,a.detachEvent("onclick",click)}),a.cloneNode(!0).fireEvent("onclick")),g=c.createElement("input"),g.value="t",g.setAttribute("type","radio"),i.radioValue=g.value==="t",g.setAttribute("checked","checked"),a.appendChild(g),j=c.createDocumentFragment(),j.appendChild(a.firstChild),i.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",k=c.createElement("body"),l={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(p in l)k.style[p]=l[p];k.appendChild(a),c.documentElement.appendChild(k),i.appendChecked=g.checked,i.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,i.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
      ",i.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
      t
      ",m=a.getElementsByTagName("td"),q=m[0].offsetHeight===0,m[0].style.display="",m[1].style.display="none",i.reliableHiddenOffsets=q&&m[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(h=c.createElement("div"),h.style.width="0",h.style.marginRight="0",a.appendChild(h),i.reliableMarginRight=(parseInt(c.defaultView.getComputedStyle(h,null).marginRight,10)||0)===0),k.innerHTML="",c.documentElement.removeChild(k);if(a.attachEvent)for(p in{submit:1,change:1,focusin:1})o="on"+p,q=o in a,q||(a.setAttribute(o,"return;"),q=typeof a[o]=="function"),i[p+"Bubbles"]=q;return i}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[c]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||"set"in c&&c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b=a.selectedIndex,c=[],d=a.options,e=a.type==="select-one";if(b<0)return null;for(var g=e?b:0,h=e?b+1:d.length;g=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex",readonly:"readOnly"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c]||(v&&(f.nodeName(a,"form")||u.test(c))?v:b);if(d!==b){if(d===null||d===!1&&!t.test(c)){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;d===!0&&!t.test(c)&&(d=c),a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.getAttribute("value");a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},propFix:{},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),f.support.getSetAttribute||(f.attrFix=f.extend(f.attrFix,{"for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder"}),v=f.attrHooks.name=f.attrHooks.value=f.valHooks.button={get:function(a,c){var d;if(c==="value"&&!f.nodeName(a,"button"))return a.getAttribute(c);d=a.getAttributeNode(c);return d&&d.specified?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=Object.prototype.hasOwnProperty,x=/\.(.*)$/,y=/^(?:textarea|input|select)$/i,z=/\./g,A=/ /g,B=/[^\w\s.|`]/g,C=function(a){return a.replace(B,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=D;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=D);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),C).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},J=function J(a){var c=a.target,d,e;if(!!y.test(c.nodeName)&&!c.readOnly){d=f._data(c,"_change_data"),e=I(c),(a.type!=="focusout"||c.type!=="radio")&&f._data(c,"_change_data",e);if(d===b||e===d)return;if(d!=null||e)a.type="change",a.liveFired=b,f.event.trigger(a,arguments[1],c)}};f.event.special.change={filters:{focusout:J,beforedeactivate:J,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&J.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&J.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",I(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in H)f.event.add(this,c+".specialChange",H[c]);return y.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return y.test(this.nodeName)}},H=f.event.special.change.filters,H.focus=H.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){return a.nodeName.toLowerCase()==="input"&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

      ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
      ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=T.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var X=/ jQuery\d+="(?:\d+|null)"/g,Y=/^\s+/,Z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,$=/<([\w:]+)/,_=/",""],legend:[1,"
      ","
      "],thead:[1,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],col:[2,"","
      "],area:[1,"",""],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div
      ","
      "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(X,""):null;if(typeof a=="string"&&!bb.test(a)&&(f.support.leadingWhitespace||!Y.test(a))&&!be[($.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Z,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[];for(var i=0,j;(j=a[i])!=null;i++){typeof j=="number"&&(j+="");if(!j)continue;if(typeof j=="string")if(!ba.test(j))j=b.createTextNode(j);else{j=j.replace(Z,"<$1>");var k=($.exec(j)||["",""])[1].toLowerCase(),l=be[k]||be._default,m=l[0],n=b.createElement("div");n.innerHTML=l[1]+j+l[2];while(m--)n=n.lastChild;if(!f.support.tbody){var o=_.test(j),p=k==="table"&&!o?n.firstChild&&n.firstChild.childNodes:l[1]===""&&!o?n.childNodes:[];for(var q=p.length-1;q>=0;--q)f.nodeName(p[q],"tbody")&&!p[q].childNodes.length&&p[q].parentNode.removeChild(p[q])}!f.support.leadingWhitespace&&Y.test(j)&&n.insertBefore(b.createTextNode(Y.exec(j)[0]),n.firstChild),j=n.childNodes}var r;if(!f.support.appendChecked)if(j[0]&&typeof (r=j.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bx(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(by=function(a,c){var d,e,g;c=c.replace(bp,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bz=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bq.test(d)&&br.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bx=by||bz,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV;try{bU=e.href}catch(bW){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
      ").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bX(bS),ajaxTransport:bX(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?b$(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=b_(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bY(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bY(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bZ(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var ca=f.now(),cb=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+ca++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cb.test(b.url)||e&&cb.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cb,l),b.url===j&&(e&&(k=k.replace(cb,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cc=a.ActiveXObject?function(){for(var a in ce)ce[a](0,1)}:!1,cd=0,ce;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cf()||cg()}:cf,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cc&&delete ce[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cd,cc&&(ce||(ce={},f(a).unload(cc)),ce[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ch={},ci,cj,ck=/^(?:toggle|show|hide)$/,cl=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cm,cn=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],co,cp=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cs("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a=f.timers,b=a.length;while(b--)a[b]()||a.splice(b,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cm),cm=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cu=/^t(?:able|d|h)$/i,cv=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cw(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cu.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="
      ";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cv.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cv.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cw(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cw(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file From 203da6c409ef50bdfab42f346c2de563a36efcf6 Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Thu, 23 Jun 2011 12:17:56 -0400 Subject: [PATCH 06/69] Some more docs updates --- chosen/chosen.proto.js | 2 +- docsupport/style.css | 4 +++- index.html | 14 ++++++-------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/chosen/chosen.proto.js b/chosen/chosen.proto.js index ee59a6d..1047f03 100644 --- a/chosen/chosen.proto.js +++ b/chosen/chosen.proto.js @@ -1,7 +1,7 @@ /*! Chosen for Protoype.js -by Patrick Filler at Harvest +by Patrick Filler for Harvest Copyright (c) 2011 Harvest diff --git a/docsupport/style.css b/docsupport/style.css index 38e49fd..1777ca6 100644 --- a/docsupport/style.css +++ b/docsupport/style.css @@ -55,4 +55,6 @@ div.side-by-side > div > em { margin-bottom: 10px; display: block; } clear: both; overflow: hidden; visibility: hidden; -} \ No newline at end of file +} + +a { color: #F36C00; } \ No newline at end of file diff --git a/index.html b/index.html index 6abbbca..f432dc2 100644 --- a/index.html +++ b/index.html @@ -30,6 +30,8 @@

      Chosen is a javsacript plug-in for Prototype (jQuery support coming soon) that makes long, unwieldy select boxes much more user-friendly.

      + +

      Project page on GitHub

      Standard Select

      @@ -1028,16 +1030,12 @@

      Why use Chosen?

      • -

        Easier to Use

        -

        Instead of forcing your users to scroll through a giant list of items, they can just start typing the name of the item they were looking for.

        +

        User Friendly

        +

        Instead of forcing your users to scroll through a giant list of items, they can just start typing the name of the item they were looking for. Non-matching entries are removed from view and choices can be selected using enter or mouse click.

      • Progressive Enhancement

        -

        Because chosen replaces normal html select fields, you don't need to do anything special to make it work for browsers without javascript.

        -
      • -
      • -

        Lightweight

        -

        Even un-minified, Chosen's JS, CSS and Images weigh in at under 50k.

        +

        Because chosen replaces normal html select fields, you don't need to do anything special to make it work for browsers without javascript. You don't need to do anything special on the back end to handle the data either -- the form field still gets submitted as normal.

      • Painless Setup

        @@ -1048,7 +1046,7 @@

        Setup

        Using Chosen is easy as can be.

          -
        1. Download the plug-in and copy the related files to your app.
        2. +
        3. Download the plug-in and copy the related files to your app.
        4. Add the class chzn-select to any select box.
        5. Disco.
        From e9d4a2fbf1eb4616f616f27649ea2ffcb4380f61 Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Thu, 23 Jun 2011 12:25:25 -0400 Subject: [PATCH 07/69] Clean up docs some more. --- docsupport/style.css | 4 ++-- index.html | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/docsupport/style.css b/docsupport/style.css index 1777ca6..77c95be 100644 --- a/docsupport/style.css +++ b/docsupport/style.css @@ -18,7 +18,7 @@ select, input, textarea, button { font:99% sans-serif; } pre, code, kbd, samp { font-family: monospace, sans-serif; } -body { background: #EEE; color: #444; } +body { background: #EEE; color: #444; line-height: 1.4em; } header { background: #F36C00 url(header-bg.gif) repeat-x; height: 59px; min-width:780px; width: 100%; } header div { margin: 0 auto; padding: 0 40px; width: 745px; } @@ -37,7 +37,7 @@ h1, h2 { font-family: Georgia, Times, serif; } h2 { font-size: 1.25em; margin: 2.5em 0 .5em; border-bottom: 1px solid #999; padding-bottom: 5px; } h3 { font-weight: bold; } -ul li { list-style: disc; margin-left: 1em; margin-bottom: 1em; } +ul li { list-style: disc; margin-left: 1em; margin-bottom: 1.25em; } ol li { margin-left: 1.25em; } li > p { margin-top: .25em; } diff --git a/index.html b/index.html index f432dc2..ff8f784 100644 --- a/index.html +++ b/index.html @@ -1039,7 +1039,7 @@
      • Painless Setup

        -

        Add Chosen's files to your app and then add the class chzn-select to your select box. That's it, you're done!

        +

        Add Chosen's files to your app and then add the class chzn-select to your select box. Chosen automatically respects optgroups, selected state, the multiple attribute and browser tab order. You don't need to do anything else except customize the style as you see fit.

      @@ -1054,10 +1054,12 @@

      FAQs

      • - Why did you build this built for Prototype? +

        Why did you build this built for Prototype?

        +

        Chosen was built for Harvest, which relies heavily on the Prototype framework. We're hoping to release a jQuery version of the library soon.

      • - What browsers are supported? +

        What browsers are supported?

        +

        All modern browsers are support (Firefox, Chrome, Safari and IE9). Legacy support for IE8 is also enabled.

      @@ -1065,8 +1067,7 @@
      From 08ef56fef519423690088e399aafeea2438ca0ff Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Thu, 23 Jun 2011 12:45:50 -0400 Subject: [PATCH 08/69] Update to latest Chosen --- chosen/chosen.proto.js | 1 - 1 file changed, 1 deletion(-) diff --git a/chosen/chosen.proto.js b/chosen/chosen.proto.js index 1047f03..f384694 100644 --- a/chosen/chosen.proto.js +++ b/chosen/chosen.proto.js @@ -521,7 +521,6 @@ Chosen.prototype = { var div = new Element('div', { 'style' : style_block }).update(input.value); document.body.appendChild(div); - console.log( Element.measure(div, 'width') ); w = Element.measure(div, 'width') + 25; div.remove(); From d1d016a331b6ac8c7b8ca8352c58c634e1b1a7f9 Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Thu, 23 Jun 2011 12:48:01 -0400 Subject: [PATCH 09/69] Turn off link outlines. --- docsupport/style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docsupport/style.css b/docsupport/style.css index 77c95be..a47ec33 100644 --- a/docsupport/style.css +++ b/docsupport/style.css @@ -57,4 +57,4 @@ div.side-by-side > div > em { margin-bottom: 10px; display: block; } visibility: hidden; } -a { color: #F36C00; } \ No newline at end of file +a { color: #F36C00; outline: none; } \ No newline at end of file From 482db243bc74ca9a3678f4a31236efc79ff8834a Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Thu, 23 Jun 2011 17:42:55 -0400 Subject: [PATCH 10/69] Updating chosen to latest version. --- chosen/chosen.proto.js | 51 +++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/chosen/chosen.proto.js b/chosen/chosen.proto.js index f384694..b8be350 100644 --- a/chosen/chosen.proto.js +++ b/chosen/chosen.proto.js @@ -96,7 +96,6 @@ Chosen.prototype = { if( !this.is_multiple ){ this.search_container = this.container.down('div.chzn-search'); this.selected_item = this.container.down('.chzn-single'); - this.selected_item.observe("click", this.results_toggle.bindAsEventListener(this)); var sf_width = (dd_width - get_side_border_padding(this.search_container) - get_side_border_padding(this.search_field)); this.search_field.setStyle( {"width" : sf_width + "px"} ); } @@ -124,7 +123,7 @@ Chosen.prototype = { this.search_results.observe("mouseover", this.search_results_mouseover.bindAsEventListener(this) ); this.search_results.observe("mouseout", this.search_results_mouseout.bindAsEventListener(this) ); - if( !this.is_multiple ){ this.selected_item.observe("focus", this.input_focus.bindAsEventListener(this)); } + if( !this.is_multiple ){ this.selected_item.observe("focus", this.activate_field.bindAsEventListener(this)); } this.search_field.observe("focus", this.input_focus.bindAsEventListener(this)); }, @@ -133,30 +132,46 @@ Chosen.prototype = { var ti = this.form_field.tabIndex; this.form_field.tabIndex = -1; - this.search_field.tabIndex = ti; - if( !this.is_multiple ){ this.selected_item.tabIndex = ti; } + if( !this.is_multiple ){ + this.selected_item.tabIndex = ti; + this.search_field.tabIndex = -1; + } + else{ this.search_field.tabIndex = ti; } } }, container_click: function(evt){ - if(evt && evt.type=="click"){ evt.preventDefault(); } + if(evt && evt.type=="click"){ evt.stop(); } if( !this.pending_destroy_click ){ if(!this.active_field){ if(this.is_multiple){ this.search_field.clear(); } document.observe("click", this.click_test_action); this.results_show(); } - this.search_field.value = this.search_field.value; - this.search_field.focus(); - - this.container.addClassName("chzn-container-active"); - this.active_field = true; + else if( !this.is_multiple && evt && (evt.target === this.selected_item || evt.target.up("a.chzn-single"))){ + this.results_show(); + } + + this.activate_field(); } else{ this.pending_destroy_click = false; } }, mouse_enter: function(){ this.mouse_on_container = true; }, mouse_leave: function(){ this.mouse_on_container = false; }, + + activate_field: function(){ + if( !this.is_multiple && !this.active_field ){ + this.search_field.tabIndex = this.selected_item.tabIndex; + this.selected_item.tabIndex = -1; + } + + this.container.addClassName("chzn-container-active"); + this.active_field = true; + + this.search_field.value = this.search_field.value; + this.search_field.focus(); + }, input_focus: function(evt){ if(!this.active_field){ setTimeout( this.container_click.bind(this) , 50 ); } @@ -181,7 +196,10 @@ Chosen.prototype = { close_field: function(){ document.stopObserving("click", this.click_test_action); - if( !this.is_multiple ){ this.selected_item.tabIndex = this.search_field.tabIndex; } + if( !this.is_multiple ){ + this.selected_item.tabIndex = this.search_field.tabIndex; + this.search_field.tabIndex = -1; + } this.active_field = false; this.results_hide(); @@ -232,22 +250,12 @@ Chosen.prototype = { this.dropdown.setStyle({"top": dd_top + "px", "left":0}); this.results_showing = true; - if( !this.is_multiple ){ this.selected_item.tabIndex = -1; } - this.search_field.focus(); this.search_field.value = this.search_field.value; this.winnow_results(); }, - results_toggle: function(evt){ - evt.preventDefault(); - if( this.active_field ){ - if( this.results_showing ){ this.results_hide(); } - else{ this.results_show(); } - } - }, - results_hide: function(){ if( !this.is_multiple ){ this.selected_item.removeClassName('chzn-single-with-drop'); } this.result_clear_highlight(); @@ -595,6 +603,7 @@ Chosen.prototype = { case 13: case 38: case 40: + case 16: break; default: this.results_search(); From 2d4430be993bc83ded5cc878fb10b07766965fd8 Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Thu, 23 Jun 2011 18:34:28 -0400 Subject: [PATCH 11/69] Add IE support for headers / footers. --- index.html | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/index.html b/index.html index ff8f784..4ef0fc9 100644 --- a/index.html +++ b/index.html @@ -16,6 +16,18 @@ + + From a82baf9fecbad819ccb0c4d0dec9c597965b9bc7 Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Tue, 28 Jun 2011 16:30:05 -0400 Subject: [PATCH 12/69] Updating to latest version of chosen / css. --- chosen/chosen-arrows.png | Bin 258 -> 0 bytes chosen/chosen-close.png | Bin 1384 -> 0 bytes chosen/chosen-sprite.png | Bin 0 -> 1866 bytes chosen/chosen.css | 205 +++++++++++++++++++-------------------- chosen/chosen.proto.js | 12 ++- 5 files changed, 105 insertions(+), 112 deletions(-) delete mode 100644 chosen/chosen-arrows.png delete mode 100644 chosen/chosen-close.png create mode 100644 chosen/chosen-sprite.png diff --git a/chosen/chosen-arrows.png b/chosen/chosen-arrows.png deleted file mode 100644 index 01a6541c129a593dfca4af8c7a61fd9d792bfe06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmeAS@N?(olHy`uVBq!ia0y~yU{GOTU=ZhEW?*0lF_2x!z`!6`;u=vBoS#-wo>-L1 z;Fyx1l&avFo0y&&l$w}QS$HzlhJk@WE5Ikj_51hl)22<^v}x1SsZ(#?zWwv(&(*6} zfBN)kTKPNZ|Nq$4=6cKcCn(PpxzzAf!0t=KCgxR4ZM)=Ho4U-}1bSzdl+KuJ zp*PcX#cLDwCTmk&5wX0+a{^1O;wJp(io3L>Ofx*+&&t;ucLK6Vb C-L1 z;Fyx1l&avFo0y&&l$w}QS$HzlhJk@OEi)vdB*NFnDmgz_FA=0huOhdA0R(L9D+&^m zvr|hHl2X$%^K6yg@7}MZkeOnu6mIHk;9KCFnvv;IRg@ZBp}Cc@k(Ggg0u(6ODcBUHq*(>IxIyhIN=dU- z$|xx*u+rBrFE7_CH`dE9O4m2Ew6p}7VPvFRl#-@fT$xvrSfQI&tPC^3CAB!YD6^m> zGe1uOWMX1cerbuVk`mO|irfNUU%0_}#n6CC&d=4aNG#Ad)HBe}%?0@j?BU{)pj3o2 zu&OQ&sVqp<4@xc0FD*(=4N6T@MzRXOMIeO*zP?ueMVaZDd5JkL`N^fZsd*)yF1AV) zxdnPDnJHF=#%AWOCN6GaCLKo>GjMjE=kNwPKDWC`Zl{3AJgIppwn{}x z_I6LDmUc2QFwXFFaSW-r)e>NveJDVrwsWCjor0*<4omSCr~eIG9{6AQ$0#ae;-~kQ zv5tppW=kJm(}k6*<+p|wtmvLRd)EqY4MPdm$FFx9?l3FZ@qO;(@9%cHYfL|#c(NZ}(k3*?#v~2T~%{E_S#m`752X|NPUY_tebabI+&S%|07)iDgDl z=b|5+pQhy{u~^ISh4}87C*Zhm;)`=8FEi(#cb~`9wa8>fqQv2_)km+t{;L0zQEuDq zwfA0@{HWXi{^I=d1LB+v#e&Rs4HKrEP0O93$TI8fvgAuoMIN}Fcv|%L@=KBSK<>CX z3oh_qXjk=|)$y|??&I&jTV@H191-k1BFfe39dP>Trs(z8ou{Q*DrYQC+L+<8_@Z~f z<(DSCx34cK=M1srG%cFBYSpX;K_0e~!3;6YFL&9k w30qyWF(RfpYHirAWtlbGZ~v9QGM|B&!CO|KUDt4FD5&i7boFyt=akR{0A6+PBme*a diff --git a/chosen/chosen-sprite.png b/chosen/chosen-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..6ec9bbf1e6d77cd0e5f3d5ab2ae690b59cda01ea GIT binary patch literal 1866 zcmeAS@N?(olHy`uVBq!ia0y~yV6b6eU`XL$V_;yor5OBzfq_A?#5JNMI6tkVJh3R1 z!7(L2DOJHUH!(dmC^a#qvhZZ84FdzSQf5d*NrbPDRdRl=ULr`1UPW#J0|?mIR}>^B zXQ!4ZB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT8h zBDWwnwIorYA~z?m*s8)-32d%aUa=KOSYJs2tfVB{Rte&$2;Tq&=lr5n1yel(-DCqZ z0|hffJwsy?b8~YY1tSAP1APM{eM2K%Lvt%*BP#;~1t?ImQ?MyYNwW%aaf8}bl#*tv zlu=SrV5P5LUS6(OZmgGIl&)`RX=w>E!^lXtC?!p|xH7LKu|hYmSQ%!5OKNd)QD#9& zW`3Rm$i&2?{L&IzB_*h_6}bg)WAlok!IYezt6z~=pl_&W0P+&Vuek-jzW9~q=E7AM zmjtCE+>6!V;*iRMRQ;gT;{4L0f0&U=z}5_DWYLQK`w3}COA!k(x;sQBH^dzrPwMJ zDcRdy__gE;0|WCuPZ!6Kid%1P+j>YRO0a*}?S0~@&!t5d4leCpBq6}n6zrH|DAMJ` zZORuUkbOjK%k1t4kCK)-u^DpcaXDp87hA*G8-LX?psPtJV1mvop<5Dv7#@H9-;&*t z8DiveV)paK_U|?866(I!Et|7x-RnsnhE`TljnBA?G71VlEDtPR^ik3J%%p@wqnT-w zPo_-PIqm2$fAN$9UzM!3F@4{swW#s-?c1iSuWB)_V3cxOCp0Z9Z+rAqSLsU~ZHpH# zmNzyw=GWKL3t|lo<&<8(W=)M+48O9O(nJsbTP6N+v9T|2-@YyXa-PnEMWO38P69d@swxY;L$+MZemu1d>;k2UX_~X;T!NI>CK75$} z=T1XSQB92uHw)9RmoGDa+_U2l6Zku??z-|5E=S|6uP5?Pw13~kKYz}g7ZtC9!o#Qc zEmRZ#RQ~nbH?@law~ik_Zk#Q3X_Bywx%u+^+}yw6|x6>8%3?8fFRm96tB7D0a1=+5Lwd zZyoqsovvqHIUS-evSZt}Z_Ekx8FPUux%jSxVHkvj6o2 zg9PTcW>vzPaewwJVK0+|2tlmn~nuvNCJIeTC^>4|RO&**-`~D%7m3sq|PF q8XEgBTuuVJ-w2C7nAEwSiH9LURH| Date: Wed, 29 Jun 2011 09:57:44 -0400 Subject: [PATCH 13/69] Update to latest version of chosen plug-in --- chosen/chosen.proto.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chosen/chosen.proto.js b/chosen/chosen.proto.js index 6ff1e77..ebfa162 100644 --- a/chosen/chosen.proto.js +++ b/chosen/chosen.proto.js @@ -96,7 +96,7 @@ Chosen.prototype = { if( !this.is_multiple ){ this.search_container = this.container.down('div.chzn-search'); this.selected_item = this.container.down('.chzn-single'); - var sf_width = (dd_width - get_side_border_padding(this.search_container)); + var sf_width = (dd_width - get_side_border_padding(this.search_container) - get_side_border_padding(this.search_field)); this.search_field.setStyle( {"width" : sf_width + "px"} ); } else{ From cffe5a09a7f96d0317b1a8c34a8844ed4edc8ba9 Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Fri, 8 Jul 2011 16:31:15 -0400 Subject: [PATCH 14/69] Update to latest version of Chosen --- chosen/chosen.proto.js | 1404 +++++++++++++++++++++------------------- 1 file changed, 735 insertions(+), 669 deletions(-) diff --git a/chosen/chosen.proto.js b/chosen/chosen.proto.js index ebfa162..26931da 100644 --- a/chosen/chosen.proto.js +++ b/chosen/chosen.proto.js @@ -1,697 +1,763 @@ -/*! - -Chosen for Protoype.js -by Patrick Filler for Harvest - -Copyright (c) 2011 Harvest - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -*/ - -var Chosen; -Chosen = Class.create(); - -Chosen.prototype = { +(function() { + /* + Chosen for Protoype.js + by Patrick Filler for Harvest - active_field : false, - mouse_on_container : false, - - results_showing: false, - - result_highlighted : null, - result_single_selected : null, - - choices: 0, + Copyright (c) 2011 Harvest - // HTML Templates - single_temp : new Template('#{default}
        '), - multi_temp : new Template('
          '), + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: - choice_temp : new Template('
        • #{choice}
        • '), - no_results_temp : new Template('
        • No results match "#{terms}"
        • '), - - initialize: function(el){ - if(!Prototype.Browser.IE7 && !Prototype.Browser.IE6){ - this.form_field = el; + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + */ var Chosen, OptionsParser, get_side_border_padding, root; + var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; + root = typeof exports !== "undefined" && exports !== null ? exports : this; + Chosen = (function() { + function Chosen(elmn) { + this.set_default_values(); + this.form_field = elmn; this.is_multiple = this.form_field.multiple; - this.form_field.observe("liszt:updated", this.results_update_field.bindAsEventListener(this)); - - this.default_text_default = (this.form_field.multiple) ? "Select Some Options" : "Select an Option"; - - this.click_test_action = this.test_active_click.bindAsEventListener(this); - + this.default_text_default = this.form_field.multiple ? "Select Some Options" : "Select an Option"; this.set_up_html(); this.register_observers(); } - }, - - set_up_html: function(){ - this.container_id = this.form_field.id + "_chzn"; - - this.f_width = (this.form_field.getStyle("width")) ? parseInt( this.form_field.getStyle("width"), 10 ) : this.form_field.getWidth(); - var container_props = { - 'id': this.container_id, - 'class':'chzn-container', - 'style':'width:'+ this.f_width +'px' + Chosen.prototype.set_default_values = function() { + this.click_test_action = __bind(function(evt) { + return this.test_active_click(evt); + }, this); + this.active_field = false; + this.mouse_on_container = false; + this.results_showing = false; + this.result_highlighted = null; + this.result_single_selected = null; + this.choices = 0; + this.single_temp = new Template('#{default}
            '); + this.multi_temp = new Template('
              '); + this.choice_temp = new Template('
            • #{choice}
            • '); + return this.no_results_temp = new Template('
            • No results match "#{terms}"
            • '); }; - - this.default_text = this.form_field.readAttribute('title') ? this.form_field.readAttribute('title') : this.default_text_default - - var base_template = ( this.is_multiple ) ? new Element('div', container_props).update( this.multi_temp.evaluate({ "default": this.default_text}) ) : new Element('div', container_props).update( this.single_temp.evaluate({ "default":this.default_text }) ); - - this.form_field.hide().insert({ after: base_template }); - - this.container = $(this.container_id); - this.container.addClassName( "chzn-container-" + ((this.is_multiple) ? "multi" : "single") ); - this.dropdown = this.container.down('div.chzn-drop'); - - var dd_top = this.container.getHeight(); - var dd_width = (this.f_width - get_side_border_padding(this.dropdown)); - - this.dropdown.setStyle({"width": dd_width + "px", "top": dd_top + "px"}); - - this.search_field = this.container.down('input'); - this.search_results = this.container.down('ul.chzn-results'); - this.search_field_scale(); - - this.search_no_results = this.container.down('li.no-results'); - - if( !this.is_multiple ){ - this.search_container = this.container.down('div.chzn-search'); - this.selected_item = this.container.down('.chzn-single'); - var sf_width = (dd_width - get_side_border_padding(this.search_container) - get_side_border_padding(this.search_field)); - this.search_field.setStyle( {"width" : sf_width + "px"} ); - } - else{ - this.search_choices = this.container.down('ul.chzn-choices'); - this.search_container = this.container.down('li.search-field'); - this.search_choices.observe("click", this.choices_click.bindAsEventListener(this)); - } - - this.results_build(); - }, - - register_observers: function(){ - this.container.observe("click", this.container_click.bindAsEventListener(this)); - - this.container.observe("mouseenter", this.mouse_enter.bindAsEventListener(this)); - this.container.observe("mouseleave", this.mouse_leave.bindAsEventListener(this)); - - this.search_field.observe("blur", this.input_blur.bindAsEventListener(this)); - this.search_field.observe("keyup", this.keyup_checker.bindAsEventListener(this)); - this.search_field.observe("keydown", this.keydown_checker.bindAsEventListener(this)); - this.set_tab_index(); - - this.search_results.observe("click", this.search_results_click.bindAsEventListener(this) ); - this.search_results.observe("mouseover", this.search_results_mouseover.bindAsEventListener(this) ); - this.search_results.observe("mouseout", this.search_results_mouseout.bindAsEventListener(this) ); - - if( !this.is_multiple ){ this.selected_item.observe("focus", this.activate_field.bindAsEventListener(this)); } - this.search_field.observe("focus", this.input_focus.bindAsEventListener(this)); - }, - - set_tab_index: function(el){ - if(this.form_field.tabIndex){ - var ti = this.form_field.tabIndex; - this.form_field.tabIndex = -1; - - if( !this.is_multiple ){ - this.selected_item.tabIndex = ti; + Chosen.prototype.set_up_html = function() { + var base_template, container_props, dd_top, dd_width, sf_width; + this.container_id = this.form_field.id + "_chzn"; + this.f_width = this.form_field.getStyle("width") ? parseInt(this.form_field.getStyle("width"), 10) : this.form_field.getWidth(); + container_props = { + 'id': this.container_id, + 'class': 'chzn-container', + 'style': 'width: ' + this.f_width + 'px' + }; + this.default_text = this.form_field.readAttribute('title') ? this.form_field.readAttribute('title') : this.default_text_default; + base_template = this.is_multiple ? new Element('div', container_props).update(this.multi_temp.evaluate({ + "default": this.default_text + })) : new Element('div', container_props).update(this.single_temp.evaluate({ + "default": this.default_text + })); + this.form_field.hide().insert({ + after: base_template + }); + this.container = $(this.container_id); + this.container.addClassName("chzn-container-" + (this.is_multiple ? "multi" : "single")); + this.dropdown = this.container.down('div.chzn-drop'); + dd_top = this.container.getHeight(); + dd_width = this.f_width - get_side_border_padding(this.dropdown); + this.dropdown.setStyle({ + "width": dd_width + "px", + "top": dd_top + "px" + }); + this.search_field = this.container.down('input'); + this.search_results = this.container.down('ul.chzn-results'); + this.search_field_scale(); + this.search_no_results = this.container.down('li.no-results'); + if (this.is_multiple) { + this.search_choices = this.container.down('ul.chzn-choices'); + this.search_container = this.container.down('li.search-field'); + } else { + this.search_container = this.container.down('div.chzn-search'); + this.selected_item = this.container.down('.chzn-single'); + sf_width = dd_width - get_side_border_padding(this.search_container) - get_side_border_padding(this.search_field); + this.search_field.setStyle({ + "width": sf_width + "px" + }); + } + this.results_build(); + return this.set_tab_index(); + }; + Chosen.prototype.register_observers = function() { + this.container.observe("click", __bind(function(evt) { + return this.container_click(evt); + }, this)); + this.container.observe("mouseenter", __bind(function(evt) { + return this.mouse_enter(evt); + }, this)); + this.container.observe("mouseleave", __bind(function(evt) { + return this.mouse_leave(evt); + }, this)); + this.search_results.observe("click", __bind(function(evt) { + return this.search_results_click(evt); + }, this)); + this.search_results.observe("mouseover", __bind(function(evt) { + return this.search_results_mouseover(evt); + }, this)); + this.search_results.observe("mouseout", __bind(function(evt) { + return this.search_results_mouseout(evt); + }, this)); + this.form_field.observe("liszt:updated", __bind(function(evt) { + return this.results_update_field(evt); + }, this)); + this.search_field.observe("blur", __bind(function(evt) { + return this.input_blur(evt); + }, this)); + this.search_field.observe("keyup", __bind(function(evt) { + return this.keyup_checker(evt); + }, this)); + this.search_field.observe("keydown", __bind(function(evt) { + return this.keydown_checker(evt); + }, this)); + if (this.is_multiple) { + this.search_choices.observe("click", __bind(function(evt) { + return this.choices_click(evt); + }, this)); + return this.search_field.observe("focus", __bind(function(evt) { + return this.input_focus(evt); + }, this)); + } else { + return this.selected_item.observe("focus", __bind(function(evt) { + return this.activate_field(evt); + }, this)); + } + }; + Chosen.prototype.container_click = function(evt) { + if (evt && evt.type === "click") { + evt.stop(); + if (!this.pending_destroy_click) { + if (!this.active_field) { + if (this.is_multiple) { + this.search_field.clear(); + } + document.observe("click", this.click_test_action); + this.results_show(); + } else if (!this.is_multiple && evt && (evt.target === this.selected_item || evt.target.up("a.chzn-single"))) { + this.results_show(); + } + return this.activate_field(); + } else { + return this.pending_destroy_click = false; + } + } + }; + Chosen.prototype.mouse_enter = function() { + return this.mouse_on_container = true; + }; + Chosen.prototype.mouse_leave = function() { + return this.mouse_on_container = false; + }; + Chosen.prototype.input_focus = function(evt) { + if (!this.active_field) { + return setTimeout(this.container_click.bind(this), 50); + } + }; + Chosen.prototype.input_blur = function(evt) { + if (!this.mouse_on_container) { + this.active_field = false; + return setTimeout(this.blur_test.bind(this), 100); + } + }; + Chosen.prototype.blur_test = function(evt) { + if (!this.active_field && this.container.hasClassName("chzn-container-active")) { + return this.close_field(); + } + }; + Chosen.prototype.close_field = function() { + document.stopObserving("click", this.click_test_action); + if (!this.is_multiple) { + this.selected_item.tabIndex = this.search_field.tabIndex; this.search_field.tabIndex = -1; } - else{ this.search_field.tabIndex = ti; } - } - }, - - container_click: function(evt){ - if(evt && evt.type=="click"){ evt.stop(); } - if( !this.pending_destroy_click ){ - if(!this.active_field){ - if(this.is_multiple){ this.search_field.clear(); } - document.observe("click", this.click_test_action); - this.results_show(); - } - else if( !this.is_multiple && evt && (evt.target === this.selected_item || evt.target.up("a.chzn-single"))){ - this.results_show(); - } - - this.activate_field(); - } - else{ this.pending_destroy_click = false; } - }, - - mouse_enter: function(){ this.mouse_on_container = true; }, - mouse_leave: function(){ this.mouse_on_container = false; }, - - activate_field: function(){ - if( !this.is_multiple && !this.active_field ){ - this.search_field.tabIndex = this.selected_item.tabIndex; - this.selected_item.tabIndex = -1; - } - - this.container.addClassName("chzn-container-active"); - this.active_field = true; - - this.search_field.value = this.search_field.value; - this.search_field.focus(); - }, - - input_focus: function(evt){ - if(!this.active_field){ setTimeout( this.container_click.bind(this) , 50 ); } - }, - - input_blur: function(evt){ - if( !this.mouse_on_container ){ this.active_field = false; - setTimeout( this.blur_test.bind(this) , 100 ); - } - }, - - blur_test: function(evt){ - if( !this.active_field && this.container.hasClassName("chzn-container-active") ){ this.close_field(); } - }, - - test_active_click: function(evt){ - if( evt.target.up( '#' + this.container.identify() ) ){ this.active_field = true; } - else{ this.close_field(); } - }, - - close_field: function(){ - document.stopObserving("click", this.click_test_action); - - if( !this.is_multiple ){ - this.selected_item.tabIndex = this.search_field.tabIndex; - this.search_field.tabIndex = -1; - } - - this.active_field = false; - this.results_hide(); - - this.container.removeClassName("chzn-container-active"); - this.winnow_results_clear(); - this.clear_backstroke(); - - this.show_search_field_default(); - this.search_field_scale(); - }, - - show_search_field_default: function(){ - if( this.is_multiple && this.choices < 1 && !this.active_field ){ - this.search_field.value = this.default_text; - this.search_field.addClassName("default"); - } - else{ - this.search_field.value = ""; - this.search_field.removeClassName("default"); - } - }, - - search_results_click: function(evt){ - var target = (evt.target.hasClassName("active-result")) ? evt.target : evt.target.up(".active-result"); - if( target ){ - this.result_highlight = target; - this.result_select(); - } - }, - - search_results_mouseover: function(evt){ - var target = (evt.target.hasClassName("active-result")) ? evt.target : evt.target.up(".active-result"); - if( target ){ this.result_do_highlight( target ); } - }, - - search_results_mouseout: function(evt){ - if( evt.target.hasClassName('active-result') || evt.target.up('.active-result') ){ this.result_clear_highlight(); } - }, - - results_show: function(){ - if( !this.is_multiple ){ - this.selected_item.addClassName('chzn-single-with-drop'); - if( this.result_single_selected ){ this.result_do_highlight( this.result_single_selected ); } - } - - var dd_top = (this.is_multiple) ? this.container.getHeight() : this.container.getHeight() - 1; - this.dropdown.setStyle({"top": dd_top + "px", "left":0}); - this.results_showing = true; - - this.search_field.focus(); - this.search_field.value = this.search_field.value; - - this.winnow_results(); - }, - - results_hide: function(){ - if( !this.is_multiple ){ this.selected_item.removeClassName('chzn-single-with-drop'); } - this.result_clear_highlight(); - this.dropdown.setStyle({"left":"-9000px"}); - this.results_showing = false; - }, - - results_build: function(){ - // TODO remove debugging - var startTime = new Date(); - - this.parsing = true; - this.results_data = select_to_array.parse( this.form_field ); - - if( this.is_multiple && this.choices > 0 ){ - this.search_choices.select("li.search-choice").invoke("remove"); - this.choices = 0; - } - else if( !this.is_multiple ){ - this.selected_item.down("span").update(this.default_text); - } - - var i, content=''; - for( i = 0; i 0) { + this.search_choices.select("li.search-choice").invoke("remove"); + this.choices = 0; + } else if (!this.is_multiple) { + this.selected_item.down("span").update(this.default_text); + } + content = ''; + _ref = this.results_data; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + data = _ref[_i]; + if (data.group) { + content += this.result_add_group(data); + } else { + content += this.result_add_option(data); + if (data.selected && this.is_multiple) { + this.choice_build(data); + } else if (data.selected && !this.is_multiple) { + this.selected_item.down("span").update(data.text); + } } } - } - this.show_search_field_default(); - this.search_results.update( content ); - this.parsing = false; - }, - - results_update_field: function(){ - this.result_clear_highlight(); - this.result_single_selected = null; - this.results_build(); - }, - - result_add_group: function(group){ - if( !group.disabled ){ - group.dom_id = this.form_field.id + "chzn_g_" + group.id; - return '
            • ' + group.label.escapeHTML() + '
            • '; - } - else{ return ""; } - }, - - result_add_option: function(option){ - if( !option.disabled ){ - option.dom_id = (this.form_field.id + "chzn_o_" + option.id); - - var classes = ( option.selected && this.is_multiple ) ? [] : ["active-result"]; - if( option.selected ){ classes.push("result-selected"); } - if( option.group_id >= 0 ){ classes.push("group-option"); } - - return '
            • ' + option.text.escapeHTML() + '
            • '; - } - else{ return ""; } - }, - - result_do_highlight: function(el){ - this.result_clear_highlight(); - - this.result_highlight = el; - this.result_highlight.addClassName('highlighted'); - - var maxHeight = parseInt(this.search_results.getStyle('maxHeight'), 10); - var visible_top = this.search_results.scrollTop; - var visible_bottom = maxHeight + visible_top; - - var high_top = this.result_highlight.positionedOffset().top; - var high_bottom = high_top + this.result_highlight.getHeight(); - - if( high_bottom > visible_bottom ){ this.search_results.scrollTop = (high_bottom - maxHeight > 0) ? high_bottom - maxHeight : 0; } - else if( high_top < visible_top ){ this.search_results.scrollTop = high_top; } - }, - result_clear_highlight: function(){ - if( this.result_highlight ){ this.result_highlight.removeClassName('highlighted'); } - this.result_highlight = null; - }, - - result_select: function(){ - if(this.result_highlight){ - var high = this.result_highlight; + this.show_search_field_default(); + this.search_results.update(content); + return this.parsing = false; + }; + Chosen.prototype.result_add_group = function(group) { + if (!group.disabled) { + group.dom_id = this.form_field.id + "chzn_g_" + group.id; + return '
            • ' + group.label.escapeHTML() + '
            • '; + } else { + return ""; + } + }; + Chosen.prototype.result_add_option = function(option) { + var classes; + if (!option.disabled) { + option.dom_id = this.form_field.id + "chzn_o_" + option.id; + classes = option.selected && this.is_multiple ? [] : ["active-result"]; + if (option.selected) { + classes.push("result-selected"); + } + if (option.group_id >= 0) { + classes.push("group-option"); + } + return '
            • ' + option.text.escapeHTML() + '
            • '; + } else { + return ""; + } + }; + Chosen.prototype.results_update_field = function() { this.result_clear_highlight(); - - high.addClassName("result-selected"); - if( this.is_multiple ){ this.result_deactivate(high); } - else{ this.result_single_selected = high; } - - var position = high.id.substr( high.id.lastIndexOf("_") + 1 ); - var item = this.results_data[position]; - item.selected = true; - - this.form_field.options[item.select_index].selected = true; - - if( this.is_multiple ){ this.choice_build( item ); } - else { this.selected_item.down("span").update(item.text); } - - - this.results_hide(); - this.search_field.value = ""; - - if(typeof Event.simulate === 'function'){ this.form_field.simulate("change"); } - - this.search_field_scale(); - } - }, - - result_activate: function(el){ - el.addClassName("active-result").show(); - }, - - result_deactivate: function(el){ - el.removeClassName("active-result").hide(); - }, - - result_deselect: function(pos){ - var result_data = this.results_data[pos]; - result_data.selected = false; - - this.form_field.options[result_data.select_index].selected = false; - var result = $(this.form_field.id + "chzn_o_" + pos); - result.removeClassName("result-selected").addClassName("active-result").show(); - - this.result_clear_highlight(); - this.winnow_results(); - - if(typeof Event.simulate === 'function'){ this.form_field.simulate("change"); } - - this.search_field_scale(); - }, - - results_search: function(){ - if( !this.results_showing ){ this.results_show(); } - else{ this.winnow_results(); } - }, - - winnow_results: function(){ - var startTime = new Date(); - this.no_results_clear(); - - var results = 0; - - var searchText = (this.search_field.value == this.default_text) ? "" : this.search_field.value.strip(); - var regex = new RegExp('^' + searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i'); - var zregex = new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i'); - - var i; - for( i = 0; i= 0 || option.text.indexOf("[") == 0){ - // TODO: replace this substitution of /\[\]/ with a list of characters to skip. - var parts = option.text.replace(/\[|\]/g, "").split(" "); - if( parts.length ){ - var j; - for( j = 0; j= visible_bottom) { + return this.search_results.scrollTop = (high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0; + } else if (high_top < visible_top) { + return this.search_results.scrollTop = high_top; + } + }; + Chosen.prototype.result_clear_highlight = function() { + if (this.result_highlight) { + this.result_highlight.removeClassName('highlighted'); + } + return this.result_highlight = null; + }; + Chosen.prototype.results_show = function() { + var dd_top; + if (!this.is_multiple) { + this.selected_item.addClassName('chzn-single-with-drop'); + if (this.result_single_selected) { + this.result_do_highlight(this.result_single_selected); + } + } + dd_top = this.is_multiple ? this.container.getHeight() : this.container.getHeight() - 1; + this.dropdown.setStyle({ + "top": dd_top + "px", + "left": 0 + }); + this.results_showing = true; + this.search_field.focus(); + this.search_field.value = this.search_field.value; + return this.winnow_results(); + }; + Chosen.prototype.results_hide = function() { + if (!this.is_multiple) { + this.selected_item.removeClassName('chzn-single-with-drop'); + } + this.result_clear_highlight(); + this.dropdown.setStyle({ + "left": "-9000px" + }); + return this.results_showing = false; + }; + Chosen.prototype.set_tab_index = function(el) { + var ti; + if (this.form_field.tabIndex) { + ti = this.form_field.tabIndex; + this.form_field.tabIndex = -1; + if (this.is_multiple) { + return this.search_field.tabIndex = ti; + } else { + this.selected_item.tabIndex = ti; + return this.search_field.tabIndex = -1; + } + } + }; + Chosen.prototype.show_search_field_default = function() { + if (this.is_multiple && this.choices < 1 && !this.active_field) { + this.search_field.value = this.default_text; + return this.search_field.addClassName("default"); + } else { + this.search_field.value = ""; + return this.search_field.removeClassName("default"); + } + }; + Chosen.prototype.search_results_click = function(evt) { + var target; + target = evt.target.hasClassName("active-result") ? evt.target : evt.target.up(".active-result"); + if (target) { + this.result_highlight = target; + return this.result_select(); + } + }; + Chosen.prototype.search_results_mouseover = function(evt) { + var target; + target = evt.target.hasClassName("active-result") ? evt.target : evt.target.up(".active-result"); + if (target) { + return this.result_do_highlight(target); + } + }; + Chosen.prototype.search_results_mouseout = function(evt) { + if (evt.target.hasClassName('active-result') || evt.target.up('.active-result')) { + return this.result_clear_highlight(); + } + }; + Chosen.prototype.choices_click = function(evt) { + evt.preventDefault(); + if (this.active_field && !(evt.target.hasClassName('search-choice') || evt.target.up('.search-choice')) && !this.results_showing) { + return this.results_show(); + } + }; + Chosen.prototype.choice_build = function(item) { + var choice_id, link; + choice_id = this.form_field.id + "_chzn_c_" + item.id; + this.choices += 1; + this.search_container.insert({ + before: this.choice_temp.evaluate({ + "id": choice_id, + "choice": item.text, + "position": item.id + }) + }); + link = $(choice_id).down('a'); + return link.observe("click", __bind(function(evt) { + return this.choice_destroy_link_click(evt); + }, this)); + }; + Chosen.prototype.choice_destroy_link_click = function(evt) { + evt.preventDefault(); + this.pending_destroy_click = true; + return this.choice_destroy(evt.target); + }; + Chosen.prototype.choice_destroy = function(link) { + this.choices -= 1; + this.show_search_field_default(); + if (this.is_multiple && this.choices > 0 && this.search_field.value.length < 1) { + this.results_hide(); + } + this.result_deselect(link.readAttribute("rel")); + return link.up('li').remove(); + }; + Chosen.prototype.result_select = function() { + var high, item, position; + if (this.result_highlight) { + high = this.result_highlight; + this.result_clear_highlight(); + high.addClassName("result-selected"); + if (this.is_multiple) { + this.result_deactivate(high); + } else { + this.result_single_selected = high; + } + position = high.id.substr(high.id.lastIndexOf("_") + 1); + item = this.results_data[position]; + item.selected = true; + this.form_field.options[item.select_index].selected = true; + if (this.is_multiple) { + this.choice_build(item); + } else { + this.selected_item.down("span").update(item.text); + } + this.results_hide(); + this.search_field.value = ""; + if (typeof Event.simulate === 'function') { + this.form_field.simulate("change"); + } + return this.search_field_scale(); + } + }; + Chosen.prototype.result_activate = function(el) { + return el.addClassName("active-result").show(); + }; + Chosen.prototype.result_deactivate = function(el) { + return el.removeClassName("active-result").hide(); + }; + Chosen.prototype.result_deselect = function(pos) { + var result, result_data; + result_data = this.results_data[pos]; + result_data.selected = false; + this.form_field.options[result_data.select_index].selected = false; + result = $(this.form_field.id + "chzn_o_" + pos); + result.removeClassName("result-selected").addClassName("active-result").show(); + this.result_clear_highlight(); + this.winnow_results(); + if (typeof Event.simulate === 'function') { + this.form_field.simulate("change"); + } + return this.search_field_scale(); + }; + Chosen.prototype.results_search = function(evt) { + if (this.results_showing) { + return this.winnow_results(); + } else { + return this.results_show(); + } + }; + Chosen.prototype.winnow_results = function() { + var found, option, part, parts, regex, result_id, results, searchText, startTime, startpos, text, zregex, _i, _j, _len, _len2, _ref; + startTime = new Date(); + this.no_results_clear(); + results = 0; + searchText = this.search_field.value === this.default_text ? "" : this.search_field.value.strip(); + regex = new RegExp('^' + searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i'); + zregex = new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i'); + _ref = this.results_data; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + option = _ref[_i]; + if (!option.disabled) { + if (option.group) { + $(option.dom_id).hide(); + } else if (!(this.is_multiple && option.selected)) { + found = false; + result_id = this.form_field.id + "chzn_o_" + option.id; + if (regex.test(option.text)) { + found = true; + results += 1; + } else if (option.text.indexOf(" ") >= 0 || option.text.indexOf("[") === 0) { + parts = option.text.replace(/\[|\]/g, "").split(" "); + if (parts.length) { + for (_j = 0, _len2 = parts.length; _j < _len2; _j++) { + part = parts[_j]; + if (regex.test(part)) { + found = true; + results += 1; + } + } } } - } - - if( found ){ - var text; - if( searchText.length ){ - var startpos = option.text.search( zregex ); - text = option.text.substr(0,startpos + searchText.length) + '
              ' + option.text.substr(startpos + searchText.length); - text = text.substr(0,startpos) + '' + text.substr(startpos); + if (found) { + if (searchText.length) { + startpos = option.text.search(zregex); + text = option.text.substr(0, startpos + searchText.length) + '' + option.text.substr(startpos + searchText.length); + text = text.substr(0, startpos) + '' + text.substr(startpos); + } else { + text = option.text; + } + if ($(result_id).innerHTML !== text) { + $(result_id).update(text); + } + this.result_activate($(result_id)); + if (option.group_id != null) { + $(this.results_data[option.group_id].dom_id).show(); + } + } else { + if ($(result_id) === this.result_highlight) { + this.result_clear_highlight(); + } + this.result_deactivate($(result_id)); } - else{ text = option.text; } - - if( $(result_id).innerHTML !== text ){ $(result_id).update( text ); } - - this.result_activate( $(result_id) ); - - if( option.group_id >= 0 ){ $( this.results_data[option.group_id].dom_id ).show(); } } - else{ - if( $(result_id) === this.result_highlight ){ this.result_clear_highlight(); } - this.result_deactivate( $(result_id) ); - } - } } - } - - if( results < 1 && searchText.length ){ this.no_results( searchText ); } - else { this.winnow_results_set_highlight(); } - }, - - winnow_results_clear: function(){ - this.search_field.clear(); - var lis = this.search_results.select("li"); - var i; - - for( i = 0; i 0 && this.search_field.value.length < 1 ){ this.results_hide(); } - - this.result_deselect(link.readAttribute("rel")); - link.up('li').remove(); - }, - - search_field_scale: function(){ - if(this.is_multiple){ - var input = this.search_field; - - var h = 0, w = 0; - - var style_block = "position:absolute; left: -1000px; top: -1000px; display:none;"; - var styles = ['font-size','font-style', 'font-weight', 'font-family','line-height', 'text-transform', 'letter-spacing']; - styles.each(function(style){ style_block += style + ":" + input.getStyle(style) + ";"}); - - var div = new Element('div', { 'style' : style_block }).update(input.value); - document.body.appendChild(div); - - w = Element.measure(div, 'width') + 25; - div.remove(); - - if( w > this.f_width-10 ){ w = this.f_width - 10; } - this.search_field.setStyle({'width':w + 'px'}); - - var dd_top = this.container.getHeight(); - this.dropdown.setStyle({"top": dd_top + "px"}); - } - }, - - keydown_arrow: function(){ - var actives = this.search_results.select("li.active-result"); - if( actives.length ){ - if( !this.result_highlight ){ this.result_do_highlight( actives.first() ); } - else if( this.results_showing ){ - var sibs = this.result_highlight.nextSiblings(); - var nexts = sibs.intersect(actives); - if( nexts.length ){ this.result_do_highlight(nexts.first()); } + if (results < 1 && searchText.length) { + return this.no_results(searchText); + } else { + return this.winnow_results_set_highlight(); } - if( !this.results_showing ){ this.results_show(); } - } - }, - - keyup_arrow: function(){ - if( !this.results_showing && !this.is_multiple ){ - this.results_show(); - } - else if( this.result_highlight ){ - var sibs = this.result_highlight.previousSiblings(); - var actives = this.search_results.select("li.active-result"); - var prevs = sibs.intersect(actives); - - if( prevs.length ){ this.result_do_highlight(prevs.first()); } - else{ - if(this.choices > 0){ this.results_hide(); } - this.result_clear_highlight(); + }; + Chosen.prototype.winnow_results_clear = function() { + var li, lis, _i, _len, _results; + this.search_field.clear(); + lis = this.search_results.select("li"); + _results = []; + for (_i = 0, _len = lis.length; _i < _len; _i++) { + li = lis[_i]; + _results.push(li.hasClassName("group-result") ? li.show() : !this.is_multiple || !li.hasClassName("result-selected") ? this.result_activate(li) : void 0); } - } - }, - - keydown_backstroke: function(){ - if( this.pending_backstroke ){ - this.choice_destroy( this.pending_backstroke.down("a") ); - this.clear_backstroke(); - } - else{ - this.pending_backstroke = this.search_container.siblings("li.search-choice").last(); - this.pending_backstroke.addClassName("search-choice-focus"); - } - }, - - clear_backstroke: function(){ - if( this.pending_backstroke ){ this.pending_backstroke.removeClassName("search-choice-focus"); } - this.pending_backstroke = null; - }, - - keyup_checker: function(evt){ - var stroke = evt.which || evt.keyCode; - this.search_field_scale(); - - switch(stroke){ - case 8: - if( this.is_multiple && this.backstroke_length < 1 && this.choices > 0 ) this.keydown_backstroke(); - else if( !this.pending_backstroke ){ this.results_search(); } - break; - case 13: - evt.preventDefault(); - if( this.results_showing ){ this.result_select(); } - break; - case 9: - case 13: - case 38: - case 40: - case 16: - break; - default: - this.results_search(); - break; - } - }, - - keydown_checker: function(evt){ - var stroke = evt.which || evt.keyCode; - this.search_field_scale(); - - if(stroke !== 8 && this.pending_backstroke) this.clear_backstroke(); - - switch(stroke){ - case 8: - this.backstroke_length = this.search_field.value.length; - case 9: - this.mouse_on_container = false; - break; - case 13: - evt.preventDefault(); - break; - case 38: - evt.preventDefault(); - this.keyup_arrow(); - break; - case 40: - this.keydown_arrow(); - break; - } - } - -}; - -var get_side_border_padding = function(item){ - var layout = new Element.Layout(item); - return layout.get("border-left") + layout.get("border-right") + layout.get("padding-left") + layout.get("padding-right"); -} - -var select_to_array = { - parse: function(select) { - var children = select.children; - var opt_array = []; - - var group_index = 0; - var sel_index = 0; - - var i; - - for( i = 0; i0 ){ - opt_array.push( select_to_array.parse_option( children[i], opt_array.length, sel_index ) ); - sel_index += 1; + }; + Chosen.prototype.no_results = function(terms) { + return this.search_results.insert(this.no_results_temp.evaluate({ + "terms": terms.escapeHTML() + })); + }; + Chosen.prototype.no_results_clear = function() { + var nr, _results; + nr = null; + _results = []; + while (nr = this.search_results.down(".no-results")) { + _results.push(nr.remove()); } - else { - sel_index += 1; + return _results; + }; + Chosen.prototype.keydown_arrow = function() { + var actives, nexts, sibs; + actives = this.search_results.select("li.active-result"); + if (actives.length) { + if (!this.result_highlight) { + this.result_do_highlight(actives.first()); + } else if (this.results_showing) { + sibs = this.result_highlight.nextSiblings(); + nexts = sibs.intersect(actives); + if (nexts.length) { + this.result_do_highlight(nexts.first()); + } + } + if (!this.results_showing) { + return this.results_show(); + } } + }; + Chosen.prototype.keyup_arrow = function() { + var actives, prevs, sibs; + if (!this.results_showing && !this.is_multiple) { + return this.results_show(); + } else if (this.result_highlight) { + sibs = this.result_highlight.previousSiblings(); + actives = this.search_results.select("li.active-result"); + prevs = sibs.intersect(actives); + if (prevs.length) { + return this.result_do_highlight(prevs.first()); + } else { + if (this.choices > 0) { + this.results_hide(); + } + return this.result_clear_highlight(); + } + } + }; + Chosen.prototype.keydown_backstroke = function() { + if (this.pending_backstroke) { + this.choice_destroy(this.pending_backstroke.down("a")); + return this.clear_backstroke(); + } else { + this.pending_backstroke = this.search_container.siblings("li.search-choice").last(); + return this.pending_backstroke.addClassName("search-choice-focus"); + } + }; + Chosen.prototype.clear_backstroke = function() { + if (this.pending_backstroke) { + this.pending_backstroke.removeClassName("search-choice-focus"); + } + return this.pending_backstroke = null; + }; + Chosen.prototype.keyup_checker = function(evt) { + var stroke, _ref; + stroke = (_ref = evt.which) != null ? _ref : evt.keyCode; + this.search_field_scale(); + switch (stroke) { + case 8: + if (this.is_multiple && this.backstroke_length < 1 && this.choices > 0) { + return this.keydown_backstroke(); + } else if (!this.pending_backstroke) { + return this.results_search(); + } + break; + case 13: + evt.preventDefault(); + if (this.results_showing) { + return this.result_select(); + } + break; + case 9: + case 13: + case 38: + case 40: + case 16: + break; + default: + return this.results_search(); + } + }; + Chosen.prototype.keydown_checker = function(evt) { + var stroke, _ref; + stroke = (_ref = evt.which) != null ? _ref : evt.keyCode; + this.search_field_scale(); + if (stroke !== 8 && this.pending_backstroke) { + this.clear_backstroke(); + } + switch (stroke) { + case 8: + return this.backstroke_length = this.search_field.value.length; + case 9: + return this.mouse_on_container = false; + case 13: + return evt.preventDefault(); + case 38: + evt.preventDefault(); + return this.keyup_arrow(); + case 40: + return this.keydown_arrow(); + } + }; + Chosen.prototype.search_field_scale = function() { + var dd_top, div, h, style, style_block, styles, w; + if (this.is_multiple) { + h = 0; + w = 0; + style_block = "position:absolute; left: -1000px; top: -1000px; display:none;"; + styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing']; + for (style in styles) { + style_block += style + ":" + this.search_field.getStyle(style) + ";"; + } + div = new Element('div', { + 'style': style_block + }).update(this.search_field.value); + document.body.appendChild(div); + w = Element.measure(div, 'width') + 25; + div.remove(); + if (w > this.f_width - 10) { + w = this.f_width - 10; + } + this.search_field.setStyle({ + 'width': w + 'px' + }); + dd_top = this.container.getHeight(); + return this.dropdown.setStyle({ + "top": dd_top + "px" + }); + } + }; + return Chosen; + })(); + root.Chosen = Chosen; + document.observe('dom:loaded', function(evt) { + var select, selects, _i, _len, _results; + selects = $$(".chzn-select"); + _results = []; + for (_i = 0, _len = selects.length; _i < _len; _i++) { + select = selects[_i]; + _results.push(new Chosen(select)); } - - return opt_array; - }, - - parse_option: function(option, opt_id, select_index, group_id, group_disabled) { - var opt = { id:opt_id, select_index:select_index, value:option.value, text:option.text, selected:option.selected, disabled:option.disabled } - if(group_id || group_id===0){ - opt.group_id = group_id; - if( group_disabled ){ opt.disabled = group_disabled; } + return _results; + }); + get_side_border_padding = function(elmt) { + var layout, side_border_padding; + layout = new Element.Layout(elmt); + return side_border_padding = layout.get("border-left") + layout.get("border-right") + layout.get("padding-left") + layout.get("padding-right"); + }; + root.get_side_border_padding = get_side_border_padding; + root = typeof exports !== "undefined" && exports !== null ? exports : this; + OptionsParser = (function() { + function OptionsParser() { + this.group_index = 0; + this.sel_index = 0; + this.parsed = []; } - return opt; - } -}; - -document.observe('dom:loaded',function() { - $$(".chzn-select").each(function(el){ new Chosen( el ); }); -}); + OptionsParser.prototype.add_node = function(child) { + if (child.nodeName === "OPTGROUP") { + return this.add_group(child); + } else { + return this.add_option(child); + } + }; + OptionsParser.prototype.add_group = function(group) { + var group_id, option, _i, _len, _ref; + group_id = this.sel_index + this.group_index; + this.parsed.push({ + id: group_id, + group: true, + label: group.label, + position: this.group_index, + children: 0, + disabled: group.disabled + }); + _ref = group.childNodes; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + option = _ref[_i]; + this.add_option(option, group_id, group.disabled); + } + return this.group_index += 1; + }; + OptionsParser.prototype.add_option = function(option, group_id, group_disabled) { + var _ref; + if (option.nodeName === "OPTION" && (this.sel_index > 0 || option.text !== "")) { + if (group_id || group_id === 0) { + this.parsed[group_id].children += 1; + } + this.parsed.push({ + id: this.sel_index + this.group_index, + select_index: this.sel_index, + value: option.value, + text: option.text, + selected: option.selected, + disabled: (_ref = group_disabled === true) != null ? _ref : { + group_disabled: option.disabled + }, + group_id: group_id + }); + return this.sel_index += 1; + } + }; + return OptionsParser; + })(); + OptionsParser.select_to_array = function(select) { + var child, parser, _i, _len, _ref; + parser = new OptionsParser(); + _ref = select.childNodes; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + child = _ref[_i]; + parser.add_node(child); + } + return parser.parsed; + }; + root.OptionsParser = OptionsParser; +}).call(this); From 6d819529995527ff798f24cb3c460d683445e0dd Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Fri, 8 Jul 2011 16:55:04 -0400 Subject: [PATCH 15/69] Updating to latest version of chosen. --- chosen/chosen.proto.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/chosen/chosen.proto.js b/chosen/chosen.proto.js index 26931da..27452b7 100644 --- a/chosen/chosen.proto.js +++ b/chosen/chosen.proto.js @@ -141,20 +141,20 @@ Chosen.prototype.container_click = function(evt) { if (evt && evt.type === "click") { evt.stop(); - if (!this.pending_destroy_click) { - if (!this.active_field) { - if (this.is_multiple) { - this.search_field.clear(); - } - document.observe("click", this.click_test_action); - this.results_show(); - } else if (!this.is_multiple && evt && (evt.target === this.selected_item || evt.target.up("a.chzn-single"))) { - this.results_show(); + } + if (!this.pending_destroy_click) { + if (!this.active_field) { + if (this.is_multiple) { + this.search_field.clear(); } - return this.activate_field(); - } else { - return this.pending_destroy_click = false; + document.observe("click", this.click_test_action); + this.results_show(); + } else if (!this.is_multiple && evt && (evt.target === this.selected_item || evt.target.up("a.chzn-single"))) { + this.results_show(); } + return this.activate_field(); + } else { + return this.pending_destroy_click = false; } }; Chosen.prototype.mouse_enter = function() { From 0616f2af69482943b15da996d603ed63a8914dae Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Wed, 13 Jul 2011 17:30:34 -0400 Subject: [PATCH 16/69] jQuery is now supported! Update to latest version of Chosen. --- chosen/chosen.proto.js | 32 +++++++++----------------------- index.html | 6 +----- 2 files changed, 10 insertions(+), 28 deletions(-) diff --git a/chosen/chosen.proto.js b/chosen/chosen.proto.js index 27452b7..27a70d5 100644 --- a/chosen/chosen.proto.js +++ b/chosen/chosen.proto.js @@ -1,27 +1,11 @@ (function() { /* - Chosen for Protoype.js - by Patrick Filler for Harvest + Chosen, a Select Box Enhancer for jQuery and Protoype + by Patrick Filler for Harvest, http://getharvest.com - Copyright (c) 2011 Harvest + Available for use under the MIT License, http://en.wikipedia.org/wiki/MIT_License - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. + Copyright (c) 2011 by Harvest */ var Chosen, OptionsParser, get_side_border_padding, root; var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; root = typeof exports !== "undefined" && exports !== null ? exports : this; @@ -608,6 +592,7 @@ if (this.is_multiple && this.backstroke_length < 1 && this.choices > 0) { return this.keydown_backstroke(); } else if (!this.pending_backstroke) { + this.result_clear_highlight(); return this.results_search(); } break; @@ -649,13 +634,14 @@ } }; Chosen.prototype.search_field_scale = function() { - var dd_top, div, h, style, style_block, styles, w; + var dd_top, div, h, style, style_block, styles, w, _i, _len; if (this.is_multiple) { h = 0; w = 0; style_block = "position:absolute; left: -1000px; top: -1000px; display:none;"; styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing']; - for (style in styles) { + for (_i = 0, _len = styles.length; _i < _len; _i++) { + style = styles[_i]; style_block += style + ":" + this.search_field.getStyle(style) + ";"; } div = new Element('div', { @@ -760,4 +746,4 @@ return parser.parsed; }; root.OptionsParser = OptionsParser; -}).call(this); +}).call(this); \ No newline at end of file diff --git a/index.html b/index.html index 4ef0fc9..15a24c7 100644 --- a/index.html +++ b/index.html @@ -41,7 +41,7 @@
              -

              Chosen is a javsacript plug-in for Prototype (jQuery support coming soon) that makes long, unwieldy select boxes much more user-friendly.

              +

              Chosen is a javsacript plug-in makes long, unwieldy select boxes much more user-friendly. It is currently available in both jQuery and Prototype flavors.

              Project page on GitHub

              @@ -1065,10 +1065,6 @@

              FAQs

                -
              • -

                Why did you build this built for Prototype?

                -

                Chosen was built for Harvest, which relies heavily on the Prototype framework. We're hoping to release a jQuery version of the library soon.

                -
              • What browsers are supported?

                All modern browsers are support (Firefox, Chrome, Safari and IE9). Legacy support for IE8 is also enabled.

                From 68722b907064482b0f95173074424769baf36732 Mon Sep 17 00:00:00 2001 From: Matthew Lettini Date: Thu, 14 Jul 2011 14:28:44 -0400 Subject: [PATCH 17/69] chosen logo --- docsupport/.DS_Store | Bin 0 -> 6148 bytes docsupport/chosen.png | Bin 0 -> 3467 bytes docsupport/header-bg.gif | Bin 1380 -> 0 bytes docsupport/style.css | 19 +++++++++---------- index.html | 16 +++++++--------- 5 files changed, 16 insertions(+), 19 deletions(-) create mode 100644 docsupport/.DS_Store create mode 100644 docsupport/chosen.png delete mode 100644 docsupport/header-bg.gif diff --git a/docsupport/.DS_Store b/docsupport/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON zU^D~25V%SxcdJP zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+ b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I literal 0 HcmV?d00001 diff --git a/docsupport/chosen.png b/docsupport/chosen.png new file mode 100644 index 0000000000000000000000000000000000000000..b81474b333111b51b48a836958d02d5df8969f25 GIT binary patch literal 3467 zcmeAS@N?(olHy`uVBq!ia0y~yV8~@)V36iuV_;w?Yi8_XU|^6eag8Vm&QB{TPb^Ah za7@WhN>%X8O-xS>N=;0uEIgTN!@$6-lo=9H65;D(m7Jfemk3g$SCL!500K7l6$OdO z*{LN8NvY|XdA3ULckfqH$V{%1*XSQL?vFu&J=B z$SufCElE_U$j!+swyLmI0-I}l#hD=EpgRf0Gw!Z$#{Ilm}X!Bo#cH`&0< zK*7vV&(PS!+}vD8!N|bSK;OVf-_S_c(A>({$jZP#0Sc7t6l{u8(yW49+@N+9rKH&^ zWt5Z@Sn2DRmzV368|&p4rRy77T3Uk4Ff!6DN=ef#uFNY*tkBIXR)(42l3JWxlvz-c znV+WsGBGhJzqG_wNeOCfMQ#Dy*t}wBFeT^b>Q^Kd=o{)8fV>3pYi@zBFMg%Dxp39R zB|)hO_hL1;IHa;5RX-@TIKQ+gIW;IXO&R2-0xRdD)WnkfqLBRj99Sp@WaO9R7iZ)b zC^!e3D)=TQXXb(UVD-MfR-SpqC5d^-sh%#jN)@>UdYPFiR)!{q7B0?arjBN2PKJiA z22L&p=8kTT2F50au1*F`gRI7`k;tKifEWnkc%6L2~Lxs^l7JnNcgFFDYi;Q zO7?a?j33J~FmV3&ba4!+xb-Hg)+gkqsC1aI(|4XcIlKD4?els4)#s1bK3-gOe+$o*HTRh}Fk9IkxXR#G zTzjZ=MceHOvvzIY9{#PhzrSCu|3Obrk0rO5j=_)Lzb8Ko(U03xAR;0X(I;aW)SajN zA=m2&zl=qKjA>TLmMiste{Icuer_)7;jH(|pEoK`yjYR2Tx-{!J%28op01y}muv0T zty`bHxw$z$@tw@cA4*rQUVZzxFe)la>*=$ z<>lq~({&;@&EPqHS*ha3hlh4`?>;|2uYJ_gzD&aBbLqbiUqcTkoK%~vS$<}Q;lX)A z99&#RVq#)-oAd7O`jD9Zy)pULEYs{~%a$*H-X~$`q%9NeWp#!@+kriTo8zfE3k!=x z!*1?2|H{wLe3!qdn)>T-E{9w2>Z`MMm%p#ml;YX{zu95t0UmWzVFlR3u%6MFxn($N_5t_$A9lLv)o%EQj(IAhg$Y~ZHe1km0GOI`QfWl zUTEl4-XC9o++()8hiySsaP&Yc|>4@e$payQmI$!r&Mal_6>%_jx4S{D8{ zQl9AZ%eMMkjY;LFC;QG$m^Q6!>dT$|>b-aKwwIQdfA_j@@#4j{<)@ei_@y zTWfPy-G5$4P)y8@f<&jt$eW6Vu~Q`89zA+A#4Y2=3&X~qq8&nYrKMkAPMI<#MJT3I z-^97DuFfquIJnoN`9RjzX-0O>c04$$%KM0UcGg}Yd9GcYPQHJ%C-tWUUg|xSV^)9X z=FOX@nJ@iNvI%u=y>;tWt-~8yWj4`jsfxU|NkCrX1AZXF!95bHX-?Tmv!#kcR>t7FQne;FWK6dfJSWOO>>TyBQ4l2V<5dcWnr#qHVZzD%7uRb4aq z>786{xylBmX*b(8d^(!{>&r{-WxlhoHL$#t@=w3HDfQ;&^z;AbZcy1N%l&)p<7+%K z&GYY>zKgwou%Bv@~+> z#HXE|?GxsDIkhRhyvd)&yj1-0@&5lFG5=3Z)s9z4lUh=!7dS~|R&&wg=rtd!In%GM z3axLM^xxCm`ii`D*&4o6w-hd@*=;MVJvD8!p?Xj1IkCD=GmX>B+FDyxIZd`1S_OHt z$_V|iV6>Zc_hp-z(lymPLaKLHJk=^bvgO*ru-8S~b)B>mouZa9?s&YDV@G|!q2`TS zW^8VgcWz5dV%#79spVsehC;)y#qRxlZZ#gPacp1L$M2V8XU$-}rM5$5;(m@G36YGq z(@*_9a9mAJe)fZkgoFo)AFm|-nJ)1^y>~sY#QBrT@87?zue-jfb~n#5 zJp8%L_UPq*lY@UGPW1{K+1yHOsP{g#NK8mbNc$`| zAKyEX!lL5h?FYn`zto%aK~T!da{A5nCqD*;hlfiG3ojObe#rRBA=OWR{@n>p^W8Pm zDAlV)eOKUV$rVeN9(`ZC!#%~3kK=9Gyc_N@Gqf*ce)#-(vab7sTe=;h^NW@rewnrL zn`z)W-RNyKqT=G)UtC=5Zfd~wFe)-8>saQ??QJL67fY7DyR&otp3lBsi#Z=YPda?2 zTvhqyF=5$nlDtQDA5HFhEcwmu&f-g|D|c6}$YlCymvlIJhucll=;&y9zd05cZ?+dU zTgDhU@$J6&uy>*h!{e3T-rv8UvH7NsxPIK824U}Yo1~t)_RGl2tXuSF-l-K!@^@Bd z83ZZ5lRLuFtgg=MII-)r+#H|X%Xhoil!@BIeM@RlP75BHvT9+Mpe7D@oCqevN?5>iRdMpud+jymAe0_bz zMC#KUCcn-7-qEwZ?Y*+MjQeah>1FOqOfxSn>HoR&!OAGTzD**34XjH!-*}xo!E>^m z>+sLd&wm@)?|8yB@qhaHd8LZGwI{Azo)P%T#mv&K{gGVlOws*f`&TSmx->N@vDu=} z(6smcy}h@8hBnN*k=xDi>ifr1@r_HH-Usj9R{8na{F5Kqn!i2XxqSI?C1ZV&1kLi`2G0~ah6J-$8vzFd4v%%9~eR;+N@b6q&U`Dd4| zx&JSdVy2#13;xV6`gkfLFz{pfn>+hAaEIK|jWSqx{`BeFevA<@987->Pv%Z8FZ4*8 zC)!#pd;WfxsJ2=2cKgM7MIV;ezq+!ryE5j;B&C(-_2PM#E?qi5JTx@2!GGmGS(8~e ztF;3Xq?n*KIw&$R8l=(kwVxWG}Qz`twe#b$Q?o(Ap}$}#~Rjr&3-dy9xS zUi{xyxO#Wh`N=cX%=!PMCZ4H0ZBYO3&-qK2FJ~`!;XUQ$WNj^d{rBH}1#Ipz_@{BI z+uPf#85tS%uRD}>Zq80SGqbXbZ*OncT~OF~PrBDFH!UqqsQ&Yzm?z~y@?ZXS-CtdK z@4?g}$JGmV?b;Q#{BmaCcGZi^rtcAWv5e`=o{KiVSx=sQ{C~`7^BJw^Gs`?2!nv0A zFMShyw)&*pPKlH$o9u$vG_#+cnwokdE|;x2QBczP(Bjt$yDmL?dF1%R;i&xxh zrfM1nX3E{k)V}ZT^iblI&AEckN9UgQxYo3Hitjz7#+}@?WtYJ@>rEk^3Ukcd1mT-Nm68h03^P^S%Ycc1SB95=+ zd|&ceKIbrguM_`PDfpvR;d{O0&vxZ6h3ud6n18g$eJNo5TFUdSM)YeL@ApRO?+sEv znq_~sDSpml`d%ycIfvnAhYADDfZ~7d2;Tq&m&B692;Tr3`-+0Z`$tPBhkpg_q^!KNrB%__*n4Qf|WN}8=wMoCG5mA-y? zdAVM>v0i>ry1t>Mr6tG=BO~3Slr-Jq%Dj@q3f;V7Wta&rsl~}fnFS@8`FRQ;6BCp2 zOG|8(l%U2|x5SpqG-FVr5`qW@KRGV(H>) zU}0$J;%4DyZ0raUbagRvbaXL>>GjMjE=kNwP6b&C(wm9UYk^mnJ0o7b;izIguZ>66Eg z9zM8#@9v%3w{G6Je(ma&%a<-*IDhW!nbW6Eo;ZH&=#j&R4j$OQZ||PnyLRr_zHRH4 z&6_rESif%Vn$@dTu2{Zo>5|2Z7A}}SZ|F(<6Xm4w6 zX>Mw4sIRN7sjjN5C@(85DK083$j{5o$mNlr>kh>weniH?el2oDPl2@VPj z@b~le@%HlcaCdWcadvWau(z|dv9_|bFgG(bF*Y(Z(AU$|(bm$`P*+n`QC3n^ke8E{ zk(QE_5El~_5f%~@;OFDz;pXDxU}s}xVP;}vU{L(Y0xq?5KqRQNWMET2FrmOh#fwFj mW6>eY3^T#w?8XK*Ox div > em { margin-bottom: 10px; display: block; } visibility: hidden; } -a { color: #F36C00; outline: none; } \ No newline at end of file +a { color: #F36C00; outline: none; text-decoration: none; } +a:hover { text-decoration: underline; } \ No newline at end of file diff --git a/index.html b/index.html index 15a24c7..de1fb67 100644 --- a/index.html +++ b/index.html @@ -33,17 +33,13 @@
                -
                Built by Harvest -

                Chosen

                -

                +

                Chosen

                -

                Chosen is a javsacript plug-in makes long, unwieldy select boxes much more user-friendly. It is currently available in both jQuery and Prototype flavors.

                - -

                Project page on GitHub

                + Project page on GitHub

                Standard Select

                @@ -1070,13 +1066,15 @@

                All modern browsers are support (Firefox, Chrome, Safari and IE9). Legacy support for IE8 is also enabled.

              - \ No newline at end of file From 3884c55c8b39af51524eb12725bc18ad774492f4 Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Fri, 15 Jul 2011 18:05:22 -0400 Subject: [PATCH 18/69] Updating to latest version of chosen.js --- chosen/chosen.proto.js | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/chosen/chosen.proto.js b/chosen/chosen.proto.js index 27a70d5..11e66d8 100644 --- a/chosen/chosen.proto.js +++ b/chosen/chosen.proto.js @@ -211,7 +211,7 @@ data = _ref[_i]; if (data.group) { content += this.result_add_group(data); - } else { + } else if (!data.empty) { content += this.result_add_option(data); if (data.selected && this.is_multiple) { this.choice_build(data); @@ -447,7 +447,7 @@ _ref = this.results_data; for (_i = 0, _len = _ref.length; _i < _len; _i++) { option = _ref[_i]; - if (!option.disabled) { + if (!option.disabled && !option.empty) { if (option.group) { $(option.dom_id).hide(); } else if (!(this.is_multiple && option.selected)) { @@ -715,21 +715,27 @@ }; OptionsParser.prototype.add_option = function(option, group_id, group_disabled) { var _ref; - if (option.nodeName === "OPTION" && (this.sel_index > 0 || option.text !== "")) { - if (group_id || group_id === 0) { - this.parsed[group_id].children += 1; + if (option.nodeName === "OPTION") { + if (option.text !== "") { + if (group_id || group_id === 0) { + this.parsed[group_id].children += 1; + } + this.parsed.push({ + id: this.sel_index + this.group_index, + select_index: this.sel_index, + value: option.value, + text: option.text, + selected: option.selected, + disabled: (_ref = group_disabled === true) != null ? _ref : { + group_disabled: option.disabled + }, + group_id: group_id + }); + } else { + this.parsed.push({ + empty: true + }); } - this.parsed.push({ - id: this.sel_index + this.group_index, - select_index: this.sel_index, - value: option.value, - text: option.text, - selected: option.selected, - disabled: (_ref = group_disabled === true) != null ? _ref : { - group_disabled: option.disabled - }, - group_id: group_id - }); return this.sel_index += 1; } }; @@ -746,4 +752,4 @@ return parser.parsed; }; root.OptionsParser = OptionsParser; -}).call(this); \ No newline at end of file +}).call(this); From 85f839d7673eed9a2d1286bb20b22e7da1f74f74 Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Mon, 18 Jul 2011 11:32:57 -0400 Subject: [PATCH 19/69] Add a link to issue tracker. --- index.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/index.html b/index.html index de1fb67..5a1f914 100644 --- a/index.html +++ b/index.html @@ -1061,6 +1061,10 @@

              FAQs

                +
              • +

                Something doesn't work. Can you fix it?

                +

                Yes! Please report all issues using the GitHub issue tracking tool.

                +
              • What browsers are supported?

                All modern browsers are support (Firefox, Chrome, Safari and IE9). Legacy support for IE8 is also enabled.

                From a2c74e01c5883f8912476c32ddf1eedb9a755651 Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Tue, 19 Jul 2011 10:17:22 -0400 Subject: [PATCH 20/69] Add Chosen analytics tracking. --- index.html | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/index.html b/index.html index 5a1f914..d507fdd 100644 --- a/index.html +++ b/index.html @@ -1078,6 +1078,20 @@ + + From b9ab5c517644faea7a605c983a2c6d2b7f3b8454 Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Tue, 19 Jul 2011 14:05:28 -0400 Subject: [PATCH 21/69] Update to latest version of Chosen. --- chosen/chosen.proto.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/chosen/chosen.proto.js b/chosen/chosen.proto.js index 11e66d8..16225f4 100644 --- a/chosen/chosen.proto.js +++ b/chosen/chosen.proto.js @@ -134,7 +134,7 @@ document.observe("click", this.click_test_action); this.results_show(); } else if (!this.is_multiple && evt && (evt.target === this.selected_item || evt.target.up("a.chzn-single"))) { - this.results_show(); + this.results_toggle(); } return this.activate_field(); } else { @@ -275,6 +275,13 @@ } return this.result_highlight = null; }; + Chosen.prototype.results_toggle = function() { + if (this.results_showing) { + return this.results_hide(); + } else { + return this.results_show(); + } + }; Chosen.prototype.results_show = function() { var dd_top; if (!this.is_multiple) { @@ -752,4 +759,4 @@ return parser.parsed; }; root.OptionsParser = OptionsParser; -}).call(this); +}).call(this); \ No newline at end of file From 5f201b19ee32e2dce7b8db35bf855c8148e7e38e Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Tue, 19 Jul 2011 14:18:03 -0400 Subject: [PATCH 22/69] Add credits. --- docsupport/style.css | 4 +++- index.html | 9 ++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/docsupport/style.css b/docsupport/style.css index 87f8519..1430fdd 100644 --- a/docsupport/style.css +++ b/docsupport/style.css @@ -56,4 +56,6 @@ div.side-by-side > div > em { margin-bottom: 10px; display: block; } } a { color: #F36C00; outline: none; text-decoration: none; } -a:hover { text-decoration: underline; } \ No newline at end of file +a:hover { text-decoration: underline; } + +ul.credits li { margin-bottom: .25em; } \ No newline at end of file diff --git a/index.html b/index.html index d507fdd..e89794f 100644 --- a/index.html +++ b/index.html @@ -1070,7 +1070,14 @@

                All modern browsers are support (Firefox, Chrome, Safari and IE9). Legacy support for IE8 is also enabled.

                • - + +

                  Credits

                  + + From 873244e4cb35cb788f8624a91760d40b30c4c6e4 Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Tue, 19 Jul 2011 14:45:46 -0400 Subject: [PATCH 23/69] Add demos with groups. --- index.html | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) diff --git a/index.html b/index.html index e89794f..e2ad969 100644 --- a/index.html +++ b/index.html @@ -1035,6 +1035,118 @@ +

                  <optgroup> Support

                  +
                  +
                  + Single Select with Groups + +
                  +
                  + Multiple Select with Groups + +
                  +
                  +

                  Why use Chosen?

                  • From 48c3dd229dce756ae4461bedf56dbff9e40e5d1d Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Tue, 19 Jul 2011 16:00:28 -0400 Subject: [PATCH 24/69] Update docs to latest version of plug-in --- chosen/chosen.proto.js | 73 +++++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 36 deletions(-) diff --git a/chosen/chosen.proto.js b/chosen/chosen.proto.js index 16225f4..8f8d9e1 100644 --- a/chosen/chosen.proto.js +++ b/chosen/chosen.proto.js @@ -6,7 +6,7 @@ Available for use under the MIT License, http://en.wikipedia.org/wiki/MIT_License Copyright (c) 2011 by Harvest - */ var Chosen, OptionsParser, get_side_border_padding, root; + */ var Chosen, SelectParser, get_side_border_padding, root; var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; root = typeof exports !== "undefined" && exports !== null ? exports : this; Chosen = (function() { @@ -198,7 +198,7 @@ var content, data, startTime, _i, _len, _ref; startTime = new Date(); this.parsing = true; - this.results_data = OptionsParser.select_to_array(this.form_field); + this.results_data = SelectParser.select_to_array(this.form_field); if (this.is_multiple && this.choices > 0) { this.search_choices.select("li.search-choice").invoke("remove"); this.choices = 0; @@ -226,7 +226,7 @@ }; Chosen.prototype.result_add_group = function(group) { if (!group.disabled) { - group.dom_id = this.form_field.id + "chzn_g_" + group.id; + group.dom_id = this.form_field.id + "chzn_g_" + group.array_index; return '
                  • ' + group.label.escapeHTML() + '
                  • '; } else { return ""; @@ -235,12 +235,12 @@ Chosen.prototype.result_add_option = function(option) { var classes; if (!option.disabled) { - option.dom_id = this.form_field.id + "chzn_o_" + option.id; + option.dom_id = this.form_field.id + "chzn_o_" + option.array_index; classes = option.selected && this.is_multiple ? [] : ["active-result"]; if (option.selected) { classes.push("result-selected"); } - if (option.group_id >= 0) { + if (option.group_array_index != null) { classes.push("group-option"); } return '
                  • ' + option.text.escapeHTML() + '
                  • '; @@ -360,13 +360,13 @@ }; Chosen.prototype.choice_build = function(item) { var choice_id, link; - choice_id = this.form_field.id + "_chzn_c_" + item.id; + choice_id = this.form_field.id + "_chzn_c_" + item.array_index; this.choices += 1; this.search_container.insert({ before: this.choice_temp.evaluate({ "id": choice_id, "choice": item.text, - "position": item.id + "position": item.array_index }) }); link = $(choice_id).down('a'); @@ -402,7 +402,7 @@ position = high.id.substr(high.id.lastIndexOf("_") + 1); item = this.results_data[position]; item.selected = true; - this.form_field.options[item.select_index].selected = true; + this.form_field.options[item.options_index].selected = true; if (this.is_multiple) { this.choice_build(item); } else { @@ -426,7 +426,7 @@ var result, result_data; result_data = this.results_data[pos]; result_data.selected = false; - this.form_field.options[result_data.select_index].selected = false; + this.form_field.options[result_data.options_index].selected = false; result = $(this.form_field.id + "chzn_o_" + pos); result.removeClassName("result-selected").addClassName("active-result").show(); this.result_clear_highlight(); @@ -459,7 +459,7 @@ $(option.dom_id).hide(); } else if (!(this.is_multiple && option.selected)) { found = false; - result_id = this.form_field.id + "chzn_o_" + option.id; + result_id = option.dom_id; if (regex.test(option.text)) { found = true; results += 1; @@ -487,8 +487,8 @@ $(result_id).update(text); } this.result_activate($(result_id)); - if (option.group_id != null) { - $(this.results_data[option.group_id].dom_id).show(); + if (option.group_array_index != null) { + $(this.results_data[option.group_array_index].dom_id).show(); } } else { if ($(result_id) === this.result_highlight) { @@ -689,68 +689,69 @@ }; root.get_side_border_padding = get_side_border_padding; root = typeof exports !== "undefined" && exports !== null ? exports : this; - OptionsParser = (function() { - function OptionsParser() { - this.group_index = 0; - this.sel_index = 0; + SelectParser = (function() { + function SelectParser() { + this.options_index = 0; this.parsed = []; } - OptionsParser.prototype.add_node = function(child) { + SelectParser.prototype.add_node = function(child) { if (child.nodeName === "OPTGROUP") { return this.add_group(child); } else { return this.add_option(child); } }; - OptionsParser.prototype.add_group = function(group) { - var group_id, option, _i, _len, _ref; - group_id = this.sel_index + this.group_index; + SelectParser.prototype.add_group = function(group) { + var group_position, option, _i, _len, _ref, _results; + group_position = this.parsed.length; this.parsed.push({ - id: group_id, + array_index: group_position, group: true, label: group.label, - position: this.group_index, children: 0, disabled: group.disabled }); _ref = group.childNodes; + _results = []; for (_i = 0, _len = _ref.length; _i < _len; _i++) { option = _ref[_i]; - this.add_option(option, group_id, group.disabled); + _results.push(this.add_option(option, group_position, group.disabled)); } - return this.group_index += 1; + return _results; }; - OptionsParser.prototype.add_option = function(option, group_id, group_disabled) { + SelectParser.prototype.add_option = function(option, group_position, group_disabled) { var _ref; if (option.nodeName === "OPTION") { if (option.text !== "") { - if (group_id || group_id === 0) { - this.parsed[group_id].children += 1; + if (group_position != null) { + this.parsed[group_position].children += 1; } this.parsed.push({ - id: this.sel_index + this.group_index, - select_index: this.sel_index, + array_index: this.parsed.length, + options_index: this.options_index, value: option.value, text: option.text, selected: option.selected, disabled: (_ref = group_disabled === true) != null ? _ref : { group_disabled: option.disabled }, - group_id: group_id + group_array_index: group_position }); } else { this.parsed.push({ + array_index: this.parsed.length, + options_index: this.options_index, empty: true }); } - return this.sel_index += 1; + return this.options_index += 1; } }; - return OptionsParser; + return SelectParser; })(); - OptionsParser.select_to_array = function(select) { + SelectParser.select_to_array = function(select) { var child, parser, _i, _len, _ref; - parser = new OptionsParser(); + parser = new SelectParser(); _ref = select.childNodes; for (_i = 0, _len = _ref.length; _i < _len; _i++) { child = _ref[_i]; @@ -758,5 +759,5 @@ } return parser.parsed; }; - root.OptionsParser = OptionsParser; -}).call(this); \ No newline at end of file + root.SelectParser = SelectParser; +}).call(this); From 6659b47b756602f9dc7fc51a389e493dcfbf3301 Mon Sep 17 00:00:00 2001 From: Patrick Filler Date: Tue, 19 Jul 2011 16:23:29 -0400 Subject: [PATCH 25/69] Always use the latest version of prototype. --- chosen/chosen.proto.js | 763 ----------------------------------------- index.html | 2 +- 2 files changed, 1 insertion(+), 764 deletions(-) delete mode 100644 chosen/chosen.proto.js diff --git a/chosen/chosen.proto.js b/chosen/chosen.proto.js deleted file mode 100644 index 8f8d9e1..0000000 --- a/chosen/chosen.proto.js +++ /dev/null @@ -1,763 +0,0 @@ -(function() { - /* - Chosen, a Select Box Enhancer for jQuery and Protoype - by Patrick Filler for Harvest, http://getharvest.com - - Available for use under the MIT License, http://en.wikipedia.org/wiki/MIT_License - - Copyright (c) 2011 by Harvest - */ var Chosen, SelectParser, get_side_border_padding, root; - var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; - root = typeof exports !== "undefined" && exports !== null ? exports : this; - Chosen = (function() { - function Chosen(elmn) { - this.set_default_values(); - this.form_field = elmn; - this.is_multiple = this.form_field.multiple; - this.default_text_default = this.form_field.multiple ? "Select Some Options" : "Select an Option"; - this.set_up_html(); - this.register_observers(); - } - Chosen.prototype.set_default_values = function() { - this.click_test_action = __bind(function(evt) { - return this.test_active_click(evt); - }, this); - this.active_field = false; - this.mouse_on_container = false; - this.results_showing = false; - this.result_highlighted = null; - this.result_single_selected = null; - this.choices = 0; - this.single_temp = new Template('#{default}
                      '); - this.multi_temp = new Template('
                        '); - this.choice_temp = new Template('
                      • #{choice}
                      • '); - return this.no_results_temp = new Template('
                      • No results match "#{terms}"
                      • '); - }; - Chosen.prototype.set_up_html = function() { - var base_template, container_props, dd_top, dd_width, sf_width; - this.container_id = this.form_field.id + "_chzn"; - this.f_width = this.form_field.getStyle("width") ? parseInt(this.form_field.getStyle("width"), 10) : this.form_field.getWidth(); - container_props = { - 'id': this.container_id, - 'class': 'chzn-container', - 'style': 'width: ' + this.f_width + 'px' - }; - this.default_text = this.form_field.readAttribute('title') ? this.form_field.readAttribute('title') : this.default_text_default; - base_template = this.is_multiple ? new Element('div', container_props).update(this.multi_temp.evaluate({ - "default": this.default_text - })) : new Element('div', container_props).update(this.single_temp.evaluate({ - "default": this.default_text - })); - this.form_field.hide().insert({ - after: base_template - }); - this.container = $(this.container_id); - this.container.addClassName("chzn-container-" + (this.is_multiple ? "multi" : "single")); - this.dropdown = this.container.down('div.chzn-drop'); - dd_top = this.container.getHeight(); - dd_width = this.f_width - get_side_border_padding(this.dropdown); - this.dropdown.setStyle({ - "width": dd_width + "px", - "top": dd_top + "px" - }); - this.search_field = this.container.down('input'); - this.search_results = this.container.down('ul.chzn-results'); - this.search_field_scale(); - this.search_no_results = this.container.down('li.no-results'); - if (this.is_multiple) { - this.search_choices = this.container.down('ul.chzn-choices'); - this.search_container = this.container.down('li.search-field'); - } else { - this.search_container = this.container.down('div.chzn-search'); - this.selected_item = this.container.down('.chzn-single'); - sf_width = dd_width - get_side_border_padding(this.search_container) - get_side_border_padding(this.search_field); - this.search_field.setStyle({ - "width": sf_width + "px" - }); - } - this.results_build(); - return this.set_tab_index(); - }; - Chosen.prototype.register_observers = function() { - this.container.observe("click", __bind(function(evt) { - return this.container_click(evt); - }, this)); - this.container.observe("mouseenter", __bind(function(evt) { - return this.mouse_enter(evt); - }, this)); - this.container.observe("mouseleave", __bind(function(evt) { - return this.mouse_leave(evt); - }, this)); - this.search_results.observe("click", __bind(function(evt) { - return this.search_results_click(evt); - }, this)); - this.search_results.observe("mouseover", __bind(function(evt) { - return this.search_results_mouseover(evt); - }, this)); - this.search_results.observe("mouseout", __bind(function(evt) { - return this.search_results_mouseout(evt); - }, this)); - this.form_field.observe("liszt:updated", __bind(function(evt) { - return this.results_update_field(evt); - }, this)); - this.search_field.observe("blur", __bind(function(evt) { - return this.input_blur(evt); - }, this)); - this.search_field.observe("keyup", __bind(function(evt) { - return this.keyup_checker(evt); - }, this)); - this.search_field.observe("keydown", __bind(function(evt) { - return this.keydown_checker(evt); - }, this)); - if (this.is_multiple) { - this.search_choices.observe("click", __bind(function(evt) { - return this.choices_click(evt); - }, this)); - return this.search_field.observe("focus", __bind(function(evt) { - return this.input_focus(evt); - }, this)); - } else { - return this.selected_item.observe("focus", __bind(function(evt) { - return this.activate_field(evt); - }, this)); - } - }; - Chosen.prototype.container_click = function(evt) { - if (evt && evt.type === "click") { - evt.stop(); - } - if (!this.pending_destroy_click) { - if (!this.active_field) { - if (this.is_multiple) { - this.search_field.clear(); - } - document.observe("click", this.click_test_action); - this.results_show(); - } else if (!this.is_multiple && evt && (evt.target === this.selected_item || evt.target.up("a.chzn-single"))) { - this.results_toggle(); - } - return this.activate_field(); - } else { - return this.pending_destroy_click = false; - } - }; - Chosen.prototype.mouse_enter = function() { - return this.mouse_on_container = true; - }; - Chosen.prototype.mouse_leave = function() { - return this.mouse_on_container = false; - }; - Chosen.prototype.input_focus = function(evt) { - if (!this.active_field) { - return setTimeout(this.container_click.bind(this), 50); - } - }; - Chosen.prototype.input_blur = function(evt) { - if (!this.mouse_on_container) { - this.active_field = false; - return setTimeout(this.blur_test.bind(this), 100); - } - }; - Chosen.prototype.blur_test = function(evt) { - if (!this.active_field && this.container.hasClassName("chzn-container-active")) { - return this.close_field(); - } - }; - Chosen.prototype.close_field = function() { - document.stopObserving("click", this.click_test_action); - if (!this.is_multiple) { - this.selected_item.tabIndex = this.search_field.tabIndex; - this.search_field.tabIndex = -1; - } - this.active_field = false; - this.results_hide(); - this.container.removeClassName("chzn-container-active"); - this.winnow_results_clear(); - this.clear_backstroke(); - this.show_search_field_default(); - return this.search_field_scale(); - }; - Chosen.prototype.activate_field = function() { - if (!this.is_multiple && !this.active_field) { - this.search_field.tabIndex = this.selected_item.tabIndex; - this.selected_item.tabIndex = -1; - } - this.container.addClassName("chzn-container-active"); - this.active_field = true; - this.search_field.value = this.search_field.value; - return this.search_field.focus(); - }; - Chosen.prototype.test_active_click = function(evt) { - if (evt.target.up('#' + this.container.id)) { - return this.active_field = true; - } else { - return this.close_field(); - } - }; - Chosen.prototype.results_build = function() { - var content, data, startTime, _i, _len, _ref; - startTime = new Date(); - this.parsing = true; - this.results_data = SelectParser.select_to_array(this.form_field); - if (this.is_multiple && this.choices > 0) { - this.search_choices.select("li.search-choice").invoke("remove"); - this.choices = 0; - } else if (!this.is_multiple) { - this.selected_item.down("span").update(this.default_text); - } - content = ''; - _ref = this.results_data; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - data = _ref[_i]; - if (data.group) { - content += this.result_add_group(data); - } else if (!data.empty) { - content += this.result_add_option(data); - if (data.selected && this.is_multiple) { - this.choice_build(data); - } else if (data.selected && !this.is_multiple) { - this.selected_item.down("span").update(data.text); - } - } - } - this.show_search_field_default(); - this.search_results.update(content); - return this.parsing = false; - }; - Chosen.prototype.result_add_group = function(group) { - if (!group.disabled) { - group.dom_id = this.form_field.id + "chzn_g_" + group.array_index; - return '
                      • ' + group.label.escapeHTML() + '
                      • '; - } else { - return ""; - } - }; - Chosen.prototype.result_add_option = function(option) { - var classes; - if (!option.disabled) { - option.dom_id = this.form_field.id + "chzn_o_" + option.array_index; - classes = option.selected && this.is_multiple ? [] : ["active-result"]; - if (option.selected) { - classes.push("result-selected"); - } - if (option.group_array_index != null) { - classes.push("group-option"); - } - return '
                      • ' + option.text.escapeHTML() + '
                      • '; - } else { - return ""; - } - }; - Chosen.prototype.results_update_field = function() { - this.result_clear_highlight(); - this.result_single_selected = null; - return this.results_build(); - }; - Chosen.prototype.result_do_highlight = function(el) { - var high_bottom, high_top, maxHeight, visible_bottom, visible_top; - this.result_clear_highlight(); - this.result_highlight = el; - this.result_highlight.addClassName("highlighted"); - maxHeight = parseInt(this.search_results.getStyle('maxHeight'), 10); - visible_top = this.search_results.scrollTop; - visible_bottom = maxHeight + visible_top; - high_top = this.result_highlight.positionedOffset().top; - high_bottom = high_top + this.result_highlight.getHeight(); - if (high_bottom >= visible_bottom) { - return this.search_results.scrollTop = (high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0; - } else if (high_top < visible_top) { - return this.search_results.scrollTop = high_top; - } - }; - Chosen.prototype.result_clear_highlight = function() { - if (this.result_highlight) { - this.result_highlight.removeClassName('highlighted'); - } - return this.result_highlight = null; - }; - Chosen.prototype.results_toggle = function() { - if (this.results_showing) { - return this.results_hide(); - } else { - return this.results_show(); - } - }; - Chosen.prototype.results_show = function() { - var dd_top; - if (!this.is_multiple) { - this.selected_item.addClassName('chzn-single-with-drop'); - if (this.result_single_selected) { - this.result_do_highlight(this.result_single_selected); - } - } - dd_top = this.is_multiple ? this.container.getHeight() : this.container.getHeight() - 1; - this.dropdown.setStyle({ - "top": dd_top + "px", - "left": 0 - }); - this.results_showing = true; - this.search_field.focus(); - this.search_field.value = this.search_field.value; - return this.winnow_results(); - }; - Chosen.prototype.results_hide = function() { - if (!this.is_multiple) { - this.selected_item.removeClassName('chzn-single-with-drop'); - } - this.result_clear_highlight(); - this.dropdown.setStyle({ - "left": "-9000px" - }); - return this.results_showing = false; - }; - Chosen.prototype.set_tab_index = function(el) { - var ti; - if (this.form_field.tabIndex) { - ti = this.form_field.tabIndex; - this.form_field.tabIndex = -1; - if (this.is_multiple) { - return this.search_field.tabIndex = ti; - } else { - this.selected_item.tabIndex = ti; - return this.search_field.tabIndex = -1; - } - } - }; - Chosen.prototype.show_search_field_default = function() { - if (this.is_multiple && this.choices < 1 && !this.active_field) { - this.search_field.value = this.default_text; - return this.search_field.addClassName("default"); - } else { - this.search_field.value = ""; - return this.search_field.removeClassName("default"); - } - }; - Chosen.prototype.search_results_click = function(evt) { - var target; - target = evt.target.hasClassName("active-result") ? evt.target : evt.target.up(".active-result"); - if (target) { - this.result_highlight = target; - return this.result_select(); - } - }; - Chosen.prototype.search_results_mouseover = function(evt) { - var target; - target = evt.target.hasClassName("active-result") ? evt.target : evt.target.up(".active-result"); - if (target) { - return this.result_do_highlight(target); - } - }; - Chosen.prototype.search_results_mouseout = function(evt) { - if (evt.target.hasClassName('active-result') || evt.target.up('.active-result')) { - return this.result_clear_highlight(); - } - }; - Chosen.prototype.choices_click = function(evt) { - evt.preventDefault(); - if (this.active_field && !(evt.target.hasClassName('search-choice') || evt.target.up('.search-choice')) && !this.results_showing) { - return this.results_show(); - } - }; - Chosen.prototype.choice_build = function(item) { - var choice_id, link; - choice_id = this.form_field.id + "_chzn_c_" + item.array_index; - this.choices += 1; - this.search_container.insert({ - before: this.choice_temp.evaluate({ - "id": choice_id, - "choice": item.text, - "position": item.array_index - }) - }); - link = $(choice_id).down('a'); - return link.observe("click", __bind(function(evt) { - return this.choice_destroy_link_click(evt); - }, this)); - }; - Chosen.prototype.choice_destroy_link_click = function(evt) { - evt.preventDefault(); - this.pending_destroy_click = true; - return this.choice_destroy(evt.target); - }; - Chosen.prototype.choice_destroy = function(link) { - this.choices -= 1; - this.show_search_field_default(); - if (this.is_multiple && this.choices > 0 && this.search_field.value.length < 1) { - this.results_hide(); - } - this.result_deselect(link.readAttribute("rel")); - return link.up('li').remove(); - }; - Chosen.prototype.result_select = function() { - var high, item, position; - if (this.result_highlight) { - high = this.result_highlight; - this.result_clear_highlight(); - high.addClassName("result-selected"); - if (this.is_multiple) { - this.result_deactivate(high); - } else { - this.result_single_selected = high; - } - position = high.id.substr(high.id.lastIndexOf("_") + 1); - item = this.results_data[position]; - item.selected = true; - this.form_field.options[item.options_index].selected = true; - if (this.is_multiple) { - this.choice_build(item); - } else { - this.selected_item.down("span").update(item.text); - } - this.results_hide(); - this.search_field.value = ""; - if (typeof Event.simulate === 'function') { - this.form_field.simulate("change"); - } - return this.search_field_scale(); - } - }; - Chosen.prototype.result_activate = function(el) { - return el.addClassName("active-result").show(); - }; - Chosen.prototype.result_deactivate = function(el) { - return el.removeClassName("active-result").hide(); - }; - Chosen.prototype.result_deselect = function(pos) { - var result, result_data; - result_data = this.results_data[pos]; - result_data.selected = false; - this.form_field.options[result_data.options_index].selected = false; - result = $(this.form_field.id + "chzn_o_" + pos); - result.removeClassName("result-selected").addClassName("active-result").show(); - this.result_clear_highlight(); - this.winnow_results(); - if (typeof Event.simulate === 'function') { - this.form_field.simulate("change"); - } - return this.search_field_scale(); - }; - Chosen.prototype.results_search = function(evt) { - if (this.results_showing) { - return this.winnow_results(); - } else { - return this.results_show(); - } - }; - Chosen.prototype.winnow_results = function() { - var found, option, part, parts, regex, result_id, results, searchText, startTime, startpos, text, zregex, _i, _j, _len, _len2, _ref; - startTime = new Date(); - this.no_results_clear(); - results = 0; - searchText = this.search_field.value === this.default_text ? "" : this.search_field.value.strip(); - regex = new RegExp('^' + searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i'); - zregex = new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i'); - _ref = this.results_data; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - option = _ref[_i]; - if (!option.disabled && !option.empty) { - if (option.group) { - $(option.dom_id).hide(); - } else if (!(this.is_multiple && option.selected)) { - found = false; - result_id = option.dom_id; - if (regex.test(option.text)) { - found = true; - results += 1; - } else if (option.text.indexOf(" ") >= 0 || option.text.indexOf("[") === 0) { - parts = option.text.replace(/\[|\]/g, "").split(" "); - if (parts.length) { - for (_j = 0, _len2 = parts.length; _j < _len2; _j++) { - part = parts[_j]; - if (regex.test(part)) { - found = true; - results += 1; - } - } - } - } - if (found) { - if (searchText.length) { - startpos = option.text.search(zregex); - text = option.text.substr(0, startpos + searchText.length) + '
                        ' + option.text.substr(startpos + searchText.length); - text = text.substr(0, startpos) + '' + text.substr(startpos); - } else { - text = option.text; - } - if ($(result_id).innerHTML !== text) { - $(result_id).update(text); - } - this.result_activate($(result_id)); - if (option.group_array_index != null) { - $(this.results_data[option.group_array_index].dom_id).show(); - } - } else { - if ($(result_id) === this.result_highlight) { - this.result_clear_highlight(); - } - this.result_deactivate($(result_id)); - } - } - } - } - if (results < 1 && searchText.length) { - return this.no_results(searchText); - } else { - return this.winnow_results_set_highlight(); - } - }; - Chosen.prototype.winnow_results_clear = function() { - var li, lis, _i, _len, _results; - this.search_field.clear(); - lis = this.search_results.select("li"); - _results = []; - for (_i = 0, _len = lis.length; _i < _len; _i++) { - li = lis[_i]; - _results.push(li.hasClassName("group-result") ? li.show() : !this.is_multiple || !li.hasClassName("result-selected") ? this.result_activate(li) : void 0); - } - return _results; - }; - Chosen.prototype.winnow_results_set_highlight = function() { - var do_high; - if (!this.result_highlight) { - do_high = this.search_results.down(".active-result"); - if (do_high) { - return this.result_do_highlight(do_high); - } - } - }; - Chosen.prototype.no_results = function(terms) { - return this.search_results.insert(this.no_results_temp.evaluate({ - "terms": terms.escapeHTML() - })); - }; - Chosen.prototype.no_results_clear = function() { - var nr, _results; - nr = null; - _results = []; - while (nr = this.search_results.down(".no-results")) { - _results.push(nr.remove()); - } - return _results; - }; - Chosen.prototype.keydown_arrow = function() { - var actives, nexts, sibs; - actives = this.search_results.select("li.active-result"); - if (actives.length) { - if (!this.result_highlight) { - this.result_do_highlight(actives.first()); - } else if (this.results_showing) { - sibs = this.result_highlight.nextSiblings(); - nexts = sibs.intersect(actives); - if (nexts.length) { - this.result_do_highlight(nexts.first()); - } - } - if (!this.results_showing) { - return this.results_show(); - } - } - }; - Chosen.prototype.keyup_arrow = function() { - var actives, prevs, sibs; - if (!this.results_showing && !this.is_multiple) { - return this.results_show(); - } else if (this.result_highlight) { - sibs = this.result_highlight.previousSiblings(); - actives = this.search_results.select("li.active-result"); - prevs = sibs.intersect(actives); - if (prevs.length) { - return this.result_do_highlight(prevs.first()); - } else { - if (this.choices > 0) { - this.results_hide(); - } - return this.result_clear_highlight(); - } - } - }; - Chosen.prototype.keydown_backstroke = function() { - if (this.pending_backstroke) { - this.choice_destroy(this.pending_backstroke.down("a")); - return this.clear_backstroke(); - } else { - this.pending_backstroke = this.search_container.siblings("li.search-choice").last(); - return this.pending_backstroke.addClassName("search-choice-focus"); - } - }; - Chosen.prototype.clear_backstroke = function() { - if (this.pending_backstroke) { - this.pending_backstroke.removeClassName("search-choice-focus"); - } - return this.pending_backstroke = null; - }; - Chosen.prototype.keyup_checker = function(evt) { - var stroke, _ref; - stroke = (_ref = evt.which) != null ? _ref : evt.keyCode; - this.search_field_scale(); - switch (stroke) { - case 8: - if (this.is_multiple && this.backstroke_length < 1 && this.choices > 0) { - return this.keydown_backstroke(); - } else if (!this.pending_backstroke) { - this.result_clear_highlight(); - return this.results_search(); - } - break; - case 13: - evt.preventDefault(); - if (this.results_showing) { - return this.result_select(); - } - break; - case 9: - case 13: - case 38: - case 40: - case 16: - break; - default: - return this.results_search(); - } - }; - Chosen.prototype.keydown_checker = function(evt) { - var stroke, _ref; - stroke = (_ref = evt.which) != null ? _ref : evt.keyCode; - this.search_field_scale(); - if (stroke !== 8 && this.pending_backstroke) { - this.clear_backstroke(); - } - switch (stroke) { - case 8: - return this.backstroke_length = this.search_field.value.length; - case 9: - return this.mouse_on_container = false; - case 13: - return evt.preventDefault(); - case 38: - evt.preventDefault(); - return this.keyup_arrow(); - case 40: - return this.keydown_arrow(); - } - }; - Chosen.prototype.search_field_scale = function() { - var dd_top, div, h, style, style_block, styles, w, _i, _len; - if (this.is_multiple) { - h = 0; - w = 0; - style_block = "position:absolute; left: -1000px; top: -1000px; display:none;"; - styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing']; - for (_i = 0, _len = styles.length; _i < _len; _i++) { - style = styles[_i]; - style_block += style + ":" + this.search_field.getStyle(style) + ";"; - } - div = new Element('div', { - 'style': style_block - }).update(this.search_field.value); - document.body.appendChild(div); - w = Element.measure(div, 'width') + 25; - div.remove(); - if (w > this.f_width - 10) { - w = this.f_width - 10; - } - this.search_field.setStyle({ - 'width': w + 'px' - }); - dd_top = this.container.getHeight(); - return this.dropdown.setStyle({ - "top": dd_top + "px" - }); - } - }; - return Chosen; - })(); - root.Chosen = Chosen; - document.observe('dom:loaded', function(evt) { - var select, selects, _i, _len, _results; - selects = $$(".chzn-select"); - _results = []; - for (_i = 0, _len = selects.length; _i < _len; _i++) { - select = selects[_i]; - _results.push(new Chosen(select)); - } - return _results; - }); - get_side_border_padding = function(elmt) { - var layout, side_border_padding; - layout = new Element.Layout(elmt); - return side_border_padding = layout.get("border-left") + layout.get("border-right") + layout.get("padding-left") + layout.get("padding-right"); - }; - root.get_side_border_padding = get_side_border_padding; - root = typeof exports !== "undefined" && exports !== null ? exports : this; - SelectParser = (function() { - function SelectParser() { - this.options_index = 0; - this.parsed = []; - } - SelectParser.prototype.add_node = function(child) { - if (child.nodeName === "OPTGROUP") { - return this.add_group(child); - } else { - return this.add_option(child); - } - }; - SelectParser.prototype.add_group = function(group) { - var group_position, option, _i, _len, _ref, _results; - group_position = this.parsed.length; - this.parsed.push({ - array_index: group_position, - group: true, - label: group.label, - children: 0, - disabled: group.disabled - }); - _ref = group.childNodes; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - option = _ref[_i]; - _results.push(this.add_option(option, group_position, group.disabled)); - } - return _results; - }; - SelectParser.prototype.add_option = function(option, group_position, group_disabled) { - var _ref; - if (option.nodeName === "OPTION") { - if (option.text !== "") { - if (group_position != null) { - this.parsed[group_position].children += 1; - } - this.parsed.push({ - array_index: this.parsed.length, - options_index: this.options_index, - value: option.value, - text: option.text, - selected: option.selected, - disabled: (_ref = group_disabled === true) != null ? _ref : { - group_disabled: option.disabled - }, - group_array_index: group_position - }); - } else { - this.parsed.push({ - array_index: this.parsed.length, - options_index: this.options_index, - empty: true - }); - } - return this.options_index += 1; - } - }; - return SelectParser; - })(); - SelectParser.select_to_array = function(select) { - var child, parser, _i, _len, _ref; - parser = new SelectParser(); - _ref = select.childNodes; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - child = _ref[_i]; - parser.add_node(child); - } - return parser.parsed; - }; - root.SelectParser = SelectParser; -}).call(this); diff --git a/index.html b/index.html index e2ad969..05e7533 100644 --- a/index.html +++ b/index.html @@ -1196,7 +1196,7 @@ - + - + + - + + + +