Commit ae47d692817d92b40c5613275f8a57d91303235d

Authored by gitlabhq
2 parents fb40d27d 3fa770dd

Merge branch 'dev'

Showing 164 changed files with 3148 additions and 3006 deletions   Show diff stats

Too many changes.

To preserve performance only 100 of 164 files displayed.

Gemfile
... ... @@ -5,7 +5,7 @@ gem 'rails', '3.1.0'
5 5 gem 'sqlite3'
6 6 gem 'devise', "1.4.7"
7 7 gem 'stamp'
8   -gem 'will_paginate', '~> 3.0'
  8 +gem 'kaminari'
9 9 gem 'haml-rails'
10 10 gem 'jquery-rails'
11 11 gem 'grit', :git => 'git://github.com/gitlabhq/grit.git'
... ... @@ -16,7 +16,6 @@ gem 'faker'
16 16 gem 'seed-fu', :git => 'git://github.com/mbleigh/seed-fu.git'
17 17 gem "inifile"
18 18 gem "pygments.rb", "0.2.3"
19   -gem "kaminari"
20 19 gem "thin"
21 20 gem "git"
22 21 gem "acts_as_list"
... ... @@ -34,7 +33,7 @@ end
34 33  
35 34 group :development, :test do
36 35 gem 'rspec-rails'
37   - gem 'shoulda'
  36 + gem "shoulda", "~> 3.0.0.beta2"
38 37 gem 'capybara'
39 38 gem 'autotest'
40 39 gem 'autotest-rails'
... ...
Gemfile.lock
... ... @@ -200,7 +200,11 @@ GEM
200 200 ffi (>= 1.0.7)
201 201 json_pure
202 202 rubyzip
203   - shoulda (2.11.3)
  203 + shoulda (3.0.0.beta2)
  204 + shoulda-context (~> 1.0.0.beta1)
  205 + shoulda-matchers (~> 1.0.0.beta1)
  206 + shoulda-context (1.0.0.beta1)
  207 + shoulda-matchers (1.0.0.beta3)
204 208 simplecov (0.5.3)
205 209 multi_json (~> 1.0.3)
206 210 simplecov-html (~> 0.5.3)
... ... @@ -232,7 +236,6 @@ GEM
232 236 multi_json (>= 1.0.2)
233 237 warden (1.0.5)
234 238 rack (>= 1.0)
235   - will_paginate (3.0.0)
236 239 xpath (0.1.4)
237 240 nokogiri (~> 1.3)
238 241  
... ... @@ -265,7 +268,7 @@ DEPENDENCIES
265 268 ruby-debug19
266 269 sass-rails (~> 3.1.0)
267 270 seed-fu!
268   - shoulda
  271 + shoulda (~> 3.0.0.beta2)
269 272 simplecov
270 273 six
271 274 sqlite3
... ... @@ -274,4 +277,3 @@ DEPENDENCIES
274 277 thin
275 278 turn
276 279 uglifier
277   - will_paginate (~> 3.0)
... ...
app/assets/images/jquery_ui/images/ui-bg_flat_0_aaaaaa_40x100.png

180 Bytes

app/assets/images/jquery_ui/images/ui-bg_flat_75_ffffff_40x100.png

178 Bytes

app/assets/images/jquery_ui/images/ui-bg_glass_55_fbf9ee_1x400.png

120 Bytes

app/assets/images/jquery_ui/images/ui-bg_glass_65_ffffff_1x400.png

105 Bytes

app/assets/images/jquery_ui/images/ui-bg_glass_75_dadada_1x400.png

111 Bytes

app/assets/images/jquery_ui/images/ui-bg_glass_75_e6e6e6_1x400.png

110 Bytes

app/assets/images/jquery_ui/images/ui-bg_glass_95_fef1ec_1x400.png

119 Bytes

app/assets/images/jquery_ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png

101 Bytes

app/assets/images/jquery_ui/images/ui-icons_222222_256x240.png

4.27 KB

app/assets/images/jquery_ui/images/ui-icons_2e83ff_256x240.png

5.23 KB

app/assets/images/jquery_ui/images/ui-icons_454545_256x240.png

4.27 KB

app/assets/images/jquery_ui/images/ui-icons_888888_256x240.png

4.27 KB

app/assets/images/jquery_ui/images/ui-icons_cd0a0a_256x240.png

4.27 KB

app/assets/javascripts/application.js
... ... @@ -5,11 +5,14 @@
5 5 // the compiled file.
6 6 //
7 7 //= require jquery
  8 +//= require jquery-ui
8 9 //= require jquery_ujs
  10 +//= require jquery.ui.selectmenu
  11 +//= require jquery.cookie
9 12 //= require_tree .
10 13  
11 14 $(function(){
12   - $(".one_click_select").click(function(){
  15 + $(".one_click_select").live("click", function(){
13 16 $(this).select();
14 17 });
15 18  
... ...
app/assets/javascripts/jquery-ui-1.8.16.custom.min.js
... ... @@ -1,791 +0,0 @@
1   -/*!
2   - * jQuery UI 1.8.16
3   - *
4   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5   - * Dual licensed under the MIT or GPL Version 2 licenses.
6   - * http://jquery.org/license
7   - *
8   - * http://docs.jquery.com/UI
9   - */
10   -(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.16",
11   -keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({propAttr:c.fn.prop||c.fn.attr,_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=
12   -this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,
13   -"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":
14   -"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,
15   -outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a,
16   -"tabindex"),d=isNaN(b);return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&
17   -a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&
18   -c.ui.isOverAxis(b,e,i)}})}})(jQuery);
19   -;/*!
20   - * jQuery UI Widget 1.8.16
21   - *
22   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
23   - * Dual licensed under the MIT or GPL Version 2 licenses.
24   - * http://jquery.org/license
25   - *
26   - * http://docs.jquery.com/UI/Widget
27   - */
28   -(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)try{b(d).triggerHandler("remove")}catch(e){}k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(d){}});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=
29   -function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):
30   -d;if(e&&d.charAt(0)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=
31   -b.extend(true,{},this.options,this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+
32   -"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",
33   -c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
34   -;/*!
35   - * jQuery UI Mouse 1.8.16
36   - *
37   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
38   - * Dual licensed under the MIT or GPL Version 2 licenses.
39   - * http://jquery.org/license
40   - *
41   - * http://docs.jquery.com/UI/Mouse
42   - *
43   - * Depends:
44   - * jquery.ui.widget.js
45   - */
46   -(function(b){var d=false;b(document).mouseup(function(){d=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(c){return a._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===b.data(c.target,a.widgetName+".preventClickEvent")){b.removeData(c.target,a.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+
47   -this.widgetName)},_mouseDown:function(a){if(!d){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var c=this,f=a.which==1,g=typeof this.options.cancel=="string"&&a.target.nodeName?b(a.target).closest(this.options.cancel).length:false;if(!f||g||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=
48   -this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}true===b.data(a.target,this.widgetName+".preventClickEvent")&&b.removeData(a.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(e){return c._mouseMove(e)};this._mouseUpDelegate=function(e){return c._mouseUp(e)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return d=true}},_mouseMove:function(a){if(b.browser.msie&&
49   -!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=
50   -false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
51   -;/*
52   - * jQuery UI Position 1.8.16
53   - *
54   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
55   - * Dual licensed under the MIT or GPL Version 2 licenses.
56   - * http://jquery.org/license
57   - *
58   - * http://docs.jquery.com/UI/Position
59   - */
60   -(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY,
61   -left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+=
62   -k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-=
63   -m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left=
64   -d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+=
65   -a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b),
66   -g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery);
67   -;/*
68   - * jQuery UI Draggable 1.8.16
69   - *
70   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
71   - * Dual licensed under the MIT or GPL Version 2 licenses.
72   - * http://jquery.org/license
73   - *
74   - * http://docs.jquery.com/UI/Draggables
75   - *
76   - * Depends:
77   - * jquery.ui.core.js
78   - * jquery.ui.mouse.js
79   - * jquery.ui.widget.js
80   - */
81   -(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper==
82   -"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b=
83   -this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;if(b.iframeFix)d(b.iframeFix===true?"iframe":b.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")});return true},_mouseStart:function(a){var b=this.options;
84   -this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});
85   -this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);d.ui.ddmanager&&d.ui.ddmanager.dragStart(this,a);return true},
86   -_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=
87   -false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,
88   -10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},_mouseUp:function(a){this.options.iframeFix===true&&d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});d.ui.ddmanager&&d.ui.ddmanager.dragStop(this,a);return d.ui.mouse.prototype._mouseUp.call(this,a)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||
89   -!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone().removeAttr("id"):this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&
90   -a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=
91   -this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),
92   -10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),
93   -10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[a.containment=="document"?0:d(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,a.containment=="document"?0:d(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,
94   -(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){a=d(a.containment);var b=a[0];if(b){a.offset();var c=d(b).css("overflow")!=
95   -"hidden";this.containment=[(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0),(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0),(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),
96   -10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=a}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+
97   -this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&
98   -!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,h=a.pageY;if(this.originalPosition){var g;if(this.containment){if(this.relative_container){g=this.relative_container.offset();g=[this.containment[0]+g.left,this.containment[1]+g.top,this.containment[2]+g.left,this.containment[3]+g.top]}else g=this.containment;if(a.pageX-this.offset.click.left<g[0])e=g[0]+this.offset.click.left;
99   -if(a.pageY-this.offset.click.top<g[1])h=g[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>g[2])e=g[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>g[3])h=g[3]+this.offset.click.top}if(b.grid){h=b.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/b.grid[1])*b.grid[1]:this.originalPageY;h=g?!(h-this.offset.click.top<g[1]||h-this.offset.click.top>g[3])?h:!(h-this.offset.click.top<g[1])?h-b.grid[1]:h+b.grid[1]:h;e=b.grid[0]?this.originalPageX+Math.round((e-this.originalPageX)/
100   -b.grid[0])*b.grid[0]:this.originalPageX;e=g?!(e-this.offset.click.left<g[0]||e-this.offset.click.left>g[2])?e:!(e-this.offset.click.left<g[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:h-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version<
101   -526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs=this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b,
102   -c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.16"});d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var h=d.data(this,"sortable");if(h&&!h.options.disabled){c.sortables.push({instance:h,shouldRevert:h.options.revert});
103   -h.refreshPositions();h._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper;c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=
104   -false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs=c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=d(f).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item",true);
105   -this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};a.target=this.instance.currentItem[0];this.instance._mouseCapture(a,true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;
106   -c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&
107   -this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor=a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=
108   -a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!=
109   -"x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX-b.overflowOffset.left<
110   -c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()-
111   -c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable","snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this,
112   -width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),f=c.options,e=f.snapTolerance,h=b.offset.left,g=h+c.helperProportions.width,n=b.offset.top,o=n+c.helperProportions.height,i=c.snapElements.length-1;i>=0;i--){var j=c.snapElements[i].left,l=j+c.snapElements[i].width,k=c.snapElements[i].top,m=k+c.snapElements[i].height;if(j-e<h&&h<l+e&&k-e<n&&n<m+e||j-e<h&&h<l+e&&k-e<o&&o<m+e||j-e<g&&g<l+e&&k-e<n&&n<m+e||j-e<g&&g<l+e&&k-e<o&&
113   -o<m+e){if(f.snapMode!="inner"){var p=Math.abs(k-o)<=e,q=Math.abs(m-n)<=e,r=Math.abs(j-g)<=e,s=Math.abs(l-h)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:k-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:m,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:j-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:l}).left-c.margins.left}var t=
114   -p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(k-n)<=e;q=Math.abs(m-o)<=e;r=Math.abs(j-h)<=e;s=Math.abs(l-g)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:k,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:m-c.helperProportions.height,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:j}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:l-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[i].snapping&&
115   -(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[i].item}));c.snapElements[i].snapping=p||q||r||s||t}else{c.snapElements[i].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[i].item}));c.snapElements[i].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"),
116   -10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery);
117   -;/*
118   - * jQuery UI Droppable 1.8.16
119   - *
120   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
121   - * Dual licensed under the MIT or GPL Version 2 licenses.
122   - * http://jquery.org/license
123   - *
124   - * http://docs.jquery.com/UI/Droppables
125   - *
126   - * Depends:
127   - * jquery.ui.core.js
128   - * jquery.ui.widget.js
129   - * jquery.ui.mouse.js
130   - * jquery.ui.draggable.js
131   - */
132   -(function(d){d.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var a=this.options,b=a.accept;this.isover=0;this.isout=1;this.accept=d.isFunction(b)?b:function(c){return c.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};d.ui.ddmanager.droppables[a.scope]=d.ui.ddmanager.droppables[a.scope]||[];d.ui.ddmanager.droppables[a.scope].push(this);
133   -a.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var a=d.ui.ddmanager.droppables[this.options.scope],b=0;b<a.length;b++)a[b]==this&&a.splice(b,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(a,b){if(a=="accept")this.accept=d.isFunction(b)?b:function(c){return c.is(b)};d.Widget.prototype._setOption.apply(this,arguments)},_activate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&
134   -this.element.addClass(this.options.activeClass);b&&this._trigger("activate",a,this.ui(b))},_deactivate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);b&&this._trigger("deactivate",a,this.ui(b))},_over:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass);
135   -this._trigger("over",a,this.ui(b))}},_out:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",a,this.ui(b))}},_drop:function(a,b){var c=b||d.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g=
136   -d.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==c.options.scope&&g.accept.call(g.element[0],c.currentItem||c.element)&&d.ui.intersect(c,d.extend(g,{offset:g.element.offset()}),g.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop",
137   -a,this.ui(c));return this.element}return false},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}});d.extend(d.ui.droppable,{version:"1.8.16"});d.ui.intersect=function(a,b,c){if(!b.offset)return false;var e=(a.positionAbs||a.position.absolute).left,g=e+a.helperProportions.width,f=(a.positionAbs||a.position.absolute).top,h=f+a.helperProportions.height,i=b.offset.left,k=i+b.proportions.width,j=b.offset.top,l=j+b.proportions.height;
138   -switch(c){case "fit":return i<=e&&g<=k&&j<=f&&h<=l;case "intersect":return i<e+a.helperProportions.width/2&&g-a.helperProportions.width/2<k&&j<f+a.helperProportions.height/2&&h-a.helperProportions.height/2<l;case "pointer":return d.ui.isOver((a.positionAbs||a.position.absolute).top+(a.clickOffset||a.offset.click).top,(a.positionAbs||a.position.absolute).left+(a.clickOffset||a.offset.click).left,j,i,b.proportions.height,b.proportions.width);case "touch":return(f>=j&&f<=l||h>=j&&h<=l||f<j&&h>l)&&(e>=
139   -i&&e<=k||g>=i&&g<=k||e<i&&g>k);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f<c.length;f++)if(!(c[f].options.disabled||a&&!c[f].accept.call(c[f].element[0],a.currentItem||a.element))){for(var h=0;h<g.length;h++)if(g[h]==c[f].element[0]){c[f].proportions.height=0;continue a}c[f].visible=c[f].element.css("display")!=
140   -"none";if(c[f].visible){e=="mousedown"&&c[f]._activate.call(c[f],b);c[f].offset=c[f].element.offset();c[f].proportions={width:c[f].element[0].offsetWidth,height:c[f].element[0].offsetHeight}}}},drop:function(a,b){var c=false;d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&d.ui.intersect(a,this,this.options.tolerance))c=c||this._drop.call(this,b);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],a.currentItem||
141   -a.element)){this.isout=1;this.isover=0;this._deactivate.call(this,b)}}});return c},dragStart:function(a,b){a.element.parents(":not(body,html)").bind("scroll.droppable",function(){a.options.refreshPositions||d.ui.ddmanager.prepareOffsets(a,b)})},drag:function(a,b){a.options.refreshPositions&&d.ui.ddmanager.prepareOffsets(a,b);d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=d.ui.intersect(a,this,this.options.tolerance);
142   -if(c=!c&&this.isover==1?"isout":c&&this.isover==0?"isover":null){var e;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){e=d.data(g[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,b)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,b);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,b)}}}})},dragStop:function(a,b){a.element.parents(":not(body,html)").unbind("scroll.droppable");
143   -a.options.refreshPositions||d.ui.ddmanager.prepareOffsets(a,b)}}})(jQuery);
144   -;/*
145   - * jQuery UI Resizable 1.8.16
146   - *
147   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
148   - * Dual licensed under the MIT or GPL Version 2 licenses.
149   - * http://jquery.org/license
150   - *
151   - * http://docs.jquery.com/UI/Resizables
152   - *
153   - * Depends:
154   - * jquery.ui.core.js
155   - * jquery.ui.mouse.js
156   - * jquery.ui.widget.js
157   - */
158   -(function(e){e.widget("ui.resizable",e.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");e.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,
159   -_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&e.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),
160   -top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=
161   -this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",
162   -nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d<c.length;d++){var f=e.trim(c[d]),g=e('<div class="ui-resizable-handle '+("ui-resizable-"+f)+'"></div>');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor==
163   -String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,l);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection();
164   -this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){if(!a.disabled){e(this).removeClass("ui-resizable-autohide");b._handles.show()}},function(){if(!a.disabled)if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();
165   -var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=
166   -false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});
167   -this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff=
168   -{width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];
169   -if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},
170   -_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,
171   -{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateVirtualBoundaries:function(b){var a=this.options,c,d,f;a={minWidth:k(a.minWidth)?a.minWidth:0,maxWidth:k(a.maxWidth)?a.maxWidth:Infinity,minHeight:k(a.minHeight)?a.minHeight:0,maxHeight:k(a.maxHeight)?a.maxHeight:
172   -Infinity};if(this._aspectRatio||b){b=a.minHeight*this.aspectRatio;d=a.minWidth/this.aspectRatio;c=a.maxHeight*this.aspectRatio;f=a.maxWidth/this.aspectRatio;if(b>a.minWidth)a.minWidth=b;if(d>a.minHeight)a.minHeight=d;if(c<a.maxWidth)a.maxWidth=c;if(f<a.maxHeight)a.maxHeight=f}this._vBoundaries=a},_updateCache:function(b){this.offset=this.helper.offset();if(k(b.left))this.position.left=b.left;if(k(b.top))this.position.top=b.top;if(k(b.height))this.size.height=b.height;if(k(b.width))this.size.width=
173   -b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(k(b.height))b.width=b.height*this.aspectRatio;else if(k(b.width))b.height=b.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(d=="nw"){b.top=a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this._vBoundaries,c=this.axis,d=k(b.width)&&a.maxWidth&&a.maxWidth<b.width,f=k(b.height)&&a.maxHeight&&a.maxHeight<b.height,g=k(b.width)&&a.minWidth&&
174   -a.minWidth>b.width,h=k(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,l=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&l)b.left=i-a.minWidth;if(d&&l)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=
175   -null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var d=[c.css("borderTopWidth"),c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],f=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=e.map(d,function(g,h){g=parseInt(g,10)||
176   -0;h=parseInt(f[h],10)||0;return g+h})}e.browser.msie&&(e(b).is(":hidden")||e(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=this.options;this.elementOffset=this.element.offset();if(this._helper){this.helper=this.helper||e('<div style="overflow:hidden;"></div>');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+
177   -a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+
178   -c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);
179   -b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.16"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),
180   -10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-
181   -f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var l=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:l.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(l.css("position"))){c._revertToRelativePosition=true;l.css({position:"absolute",top:"auto",left:"auto"})}l.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?
182   -e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=
183   -e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,
184   -step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=
185   -e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;
186   -var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:
187   -a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-
188   -d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,
189   -f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,
190   -display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=
191   -e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=
192   -d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},k=function(b){return!isNaN(parseInt(b,10))}})(jQuery);
193   -;/*
194   - * jQuery UI Selectable 1.8.16
195   - *
196   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
197   - * Dual licensed under the MIT or GPL Version 2 licenses.
198   - * http://jquery.org/license
199   - *
200   - * http://docs.jquery.com/UI/Selectables
201   - *
202   - * Depends:
203   - * jquery.ui.core.js
204   - * jquery.ui.mouse.js
205   - * jquery.ui.widget.js
206   - */
207   -(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),
208   -selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,
209   -c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting",
210   -c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d=
211   -this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");
212   -a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&
213   -!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=
214   -e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.16"})})(jQuery);
215   -;/*
216   - * jQuery UI Sortable 1.8.16
217   - *
218   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
219   - * Dual licensed under the MIT or GPL Version 2 licenses.
220   - * http://jquery.org/license
221   - *
222   - * http://docs.jquery.com/UI/Sortables
223   - *
224   - * Depends:
225   - * jquery.ui.core.js
226   - * jquery.ui.mouse.js
227   - * jquery.ui.widget.js
228   - */
229   -(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){var a=this.options;this.containerCache={};this.element.addClass("ui-sortable");
230   -this.refresh();this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a===
231   -"disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&
232   -!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,
233   -left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};
234   -this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=
235   -document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);
236   -return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+b.scrollSpeed;else if(a.pageY-this.overflowOffset.top<
237   -b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-b.scrollSpeed;if(this.overflowOffset.left+this.scrollParent[0].offsetWidth-a.pageX<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+b.scrollSpeed;else if(a.pageX-this.overflowOffset.left<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-b.scrollSpeed}else{if(a.pageY-d(document).scrollTop()<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()-
238   -b.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()+b.scrollSpeed);if(a.pageX-d(document).scrollLeft()<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()-b.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()+b.scrollSpeed)}c!==false&&d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,
239   -a)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(b=this.items.length-1;b>=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],
240   -e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();
241   -c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):
242   -this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,
243   -dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},
244   -toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+j<k&&b+l>g&&b+l<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||
245   -this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?j:g<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width);b=b&&a;a=this._getDragVerticalDirection();
246   -var c=this._getDragHorizontalDirection();if(!b)return false;return this.floating?c&&c=="right"||a=="down"?2:1:a&&(a=="down"?2:1)},_intersectsWithSides:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&a||e=="left"&&!a:c&&(c=="down"&&b||c=="up"&&!b)},
247   -_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();
248   -if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),
249   -this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(a){this.items=[];this.containers=[this];var b=this.items,c=[[d.isFunction(this.options.items)?this.options.items.call(this.element[0],a,{item:this.currentItem}):d(this.options.items,this.element),
250   -this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h<g;h++){i=d(e[h]);i.data("sortable-item",a);b.push({item:i,instance:a,width:0,height:0,left:0,top:0})}}},refreshPositions:function(a){if(this.offsetParent&&
251   -this.helper)this.offset.parent=this._getParentOffset();for(var b=this.items.length-1;b>=0;b--){var c=this.items[b];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=
252   -this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=
253   -d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||
254   -0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",
255   -a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-
256   -f)<b){b=Math.abs(h-f);e=this.items[g]}}if(e||this.options.dropOnEmpty){this.currentContainer=this.containers[c];e?this._rearrange(a,e,null,true):this._rearrange(a,null,this.containers[c].element,true);this._trigger("change",a,this._uiHash());this.containers[c]._trigger("change",a,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(a){var b=
257   -this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a,this.currentItem])):b.helper=="clone"?this.currentItem.clone():this.currentItem;a.parents("body").length||d(b.appendTo!="parent"?b.appendTo:this.currentItem[0].parentNode)[0].appendChild(a[0]);if(a[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(a[0].style.width==
258   -""||b.forceHelperSize)a.width(this.currentItem.width());if(a[0].style.height==""||b.forceHelperSize)a.height(this.currentItem.height());return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=
259   -this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a=
260   -{top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),
261   -10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?
262   -document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)){var b=d(a.containment)[0];a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),
263   -10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(a,b){if(!b)b=
264   -this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&
265   -this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();
266   -var f=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])f=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-
267   -this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;f=this.originalPageX+Math.round((f-this.originalPageX)/b.grid[0])*b.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-b.grid[0]:f+b.grid[0]:f}}return{top:g-
268   -this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(a,b,c,e){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],
269   -this.direction=="down"?b.item[0]:b.item[0].nextSibling);this.counter=this.counter?++this.counter:1;var f=this,g=this.counter;window.setTimeout(function(){g==f.counter&&f.refreshPositions(!e)},0)},_clear:function(a,b){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]=
270   -"";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!b&&c.push(function(f){this._trigger("receive",f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!b)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!d.ui.contains(this.element[0],this.currentItem[0])){b||c.push(function(f){this._trigger("remove",
271   -f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,
272   -this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",
273   -a,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}return false}b||this._trigger("beforeStop",a,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!b){for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){d.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},
274   -_uiHash:function(a){var b=a||this;return{helper:b.helper,placeholder:b.placeholder||d([]),position:b.position,originalPosition:b.originalPosition,offset:b.positionAbs,item:b.currentItem,sender:a?a.element:null}}});d.extend(d.ui.sortable,{version:"1.8.16"})})(jQuery);
275   -;/*
276   - * jQuery UI Accordion 1.8.16
277   - *
278   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
279   - * Dual licensed under the MIT or GPL Version 2 licenses.
280   - * http://jquery.org/license
281   - *
282   - * http://docs.jquery.com/UI/Accordion
283   - *
284   - * Depends:
285   - * jquery.ui.core.js
286   - * jquery.ui.widget.js
287   - */
288   -(function(c){c.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");
289   -a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
290   -if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion",
291   -function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a=
292   -this.options;if(a.icons){c("<span></span>").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex");
293   -this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons();
294   -b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target);
295   -a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+
296   -c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options;
297   -if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
298   -if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(),
299   -e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight||
300   -e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false",
301   -"aria-selected":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.16",
302   -animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/);
303   -f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide",
304   -paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery);
305   -;/*
306   - * jQuery UI Autocomplete 1.8.16
307   - *
308   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
309   - * Dual licensed under the MIT or GPL Version 2 licenses.
310   - * http://jquery.org/license
311   - *
312   - * http://docs.jquery.com/UI/Autocomplete
313   - *
314   - * Depends:
315   - * jquery.ui.core.js
316   - * jquery.ui.widget.js
317   - * jquery.ui.position.js
318   - */
319   -(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.propAttr("readOnly"))){g=
320   -false;var f=d.ui.keyCode;switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!=
321   -a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)};
322   -this.menu=d("<ul></ul>").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&&
323   -a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");
324   -d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&&
325   -b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source=
326   -this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search",b)!==false)return this._search(a)},_search:function(a){this.pending++;this.element.addClass("ui-autocomplete-loading");this.source({term:a},this.response)},_response:function(a){if(!this.options.disabled&&a&&a.length){a=this._normalize(a);this._suggest(a);this._trigger("open")}else this.close();
327   -this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.deactivate();this._trigger("close",a)}},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return d.map(a,function(b){if(typeof b==="string")return{label:b,value:b};return d.extend({label:b.label||
328   -b.value,value:b.value||b.label},b)})},_suggest:function(a){var b=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(b,a);this.menu.deactivate();this.menu.refresh();b.show();this._resizeMenu();b.position(d.extend({of:this.element},this.options.position));this.options.autoFocus&&this.menu.next(new d.Event("mouseover"))},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(a,b){var g=this;
329   -d.each(b,function(c,f){g._renderItem(a,f)})},_renderItem:function(a,b){return d("<li></li>").data("item.autocomplete",b).append(d("<a></a>").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,
330   -"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery);
331   -(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
332   --1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.scrollTop(),c=this.element.height();if(b<0)this.element.scrollTop(g+b);else b>=c&&this.element.scrollTop(g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");
333   -this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0);e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b,
334   -this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e,g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||
335   -this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||
336   -this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element[d.fn.prop?"prop":"attr"]("scrollHeight")},select:function(e){this._trigger("selected",e,{item:this.active})}})})(jQuery);
337   -;/*
338   - * jQuery UI Button 1.8.16
339   - *
340   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
341   - * Dual licensed under the MIT or GPL Version 2 licenses.
342   - * http://jquery.org/license
343   - *
344   - * http://docs.jquery.com/UI/Button
345   - *
346   - * Depends:
347   - * jquery.ui.core.js
348   - * jquery.ui.widget.js
349   - */
350   -(function(b){var h,i,j,g,l=function(){var a=b(this).find(":ui-button");setTimeout(function(){a.button("refresh")},1)},k=function(a){var c=a.name,e=a.form,f=b([]);if(c)f=e?b(e).find("[name='"+c+"']"):b("[name='"+c+"']",a.ownerDocument).filter(function(){return!this.form});return f};b.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",l);if(typeof this.options.disabled!==
351   -"boolean")this.options.disabled=this.element.propAttr("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var a=this,c=this.options,e=this.type==="checkbox"||this.type==="radio",f="ui-state-hover"+(!e?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",function(){if(!c.disabled){b(this).addClass("ui-state-hover");
352   -this===h&&b(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){c.disabled||b(this).removeClass(f)}).bind("click.button",function(d){if(c.disabled){d.preventDefault();d.stopImmediatePropagation()}});this.element.bind("focus.button",function(){a.buttonElement.addClass("ui-state-focus")}).bind("blur.button",function(){a.buttonElement.removeClass("ui-state-focus")});if(e){this.element.bind("change.button",function(){g||a.refresh()});this.buttonElement.bind("mousedown.button",function(d){if(!c.disabled){g=
353   -false;i=d.pageX;j=d.pageY}}).bind("mouseup.button",function(d){if(!c.disabled)if(i!==d.pageX||j!==d.pageY)g=true})}if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled||g)return false;b(this).toggleClass("ui-state-active");a.buttonElement.attr("aria-pressed",a.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(c.disabled||g)return false;b(this).addClass("ui-state-active");a.buttonElement.attr("aria-pressed","true");
354   -var d=a.element[0];k(d).not(d).map(function(){return b(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;b(this).addClass("ui-state-active");h=this;b(document).one("mouseup",function(){h=null})}).bind("mouseup.button",function(){if(c.disabled)return false;b(this).removeClass("ui-state-active")}).bind("keydown.button",function(d){if(c.disabled)return false;if(d.keyCode==b.ui.keyCode.SPACE||
355   -d.keyCode==b.ui.keyCode.ENTER)b(this).addClass("ui-state-active")}).bind("keyup.button",function(){b(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(d){d.keyCode===b.ui.keyCode.SPACE&&b(this).click()})}this._setOption("disabled",c.disabled);this._resetButton()},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type===
356   -"radio"){var a=this.element.parents().filter(":last"),c="label[for='"+this.element.attr("id")+"']";this.buttonElement=a.find(c);if(!this.buttonElement.length){a=a.length?a.siblings():this.element.siblings();this.buttonElement=a.filter(c);if(!this.buttonElement.length)this.buttonElement=a.find(c)}this.element.addClass("ui-helper-hidden-accessible");(a=this.element.is(":checked"))&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",a)}else this.buttonElement=this.element},
357   -widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());this.hasTitle||this.buttonElement.removeAttr("title");
358   -b.Widget.prototype.destroy.call(this)},_setOption:function(a,c){b.Widget.prototype._setOption.apply(this,arguments);if(a==="disabled")c?this.element.propAttr("disabled",true):this.element.propAttr("disabled",false);else this._resetButton()},refresh:function(){var a=this.element.is(":disabled");a!==this.options.disabled&&this._setOption("disabled",a);if(this.type==="radio")k(this.element[0]).each(function(){b(this).is(":checked")?b(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
359   -"true"):b(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false")},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var a=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),
360   -c=b("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(a.empty()).text(),e=this.options.icons,f=e.primary&&e.secondary,d=[];if(e.primary||e.secondary){if(this.options.text)d.push("ui-button-text-icon"+(f?"s":e.primary?"-primary":"-secondary"));e.primary&&a.prepend("<span class='ui-button-icon-primary ui-icon "+e.primary+"'></span>");e.secondary&&a.append("<span class='ui-button-icon-secondary ui-icon "+e.secondary+"'></span>");if(!this.options.text){d.push(f?"ui-button-icons-only":
361   -"ui-button-icon-only");this.hasTitle||a.attr("title",c)}}else d.push("ui-button-text-only");a.addClass(d.join(" "))}}});b.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(a,c){a==="disabled"&&this.buttons.button("option",a,c);b.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var a=this.element.css("direction")===
362   -"ltr";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(a?"ui-corner-left":"ui-corner-right").end().filter(":last").addClass(a?"ui-corner-right":"ui-corner-left").end().end()},destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");
363   -b.Widget.prototype.destroy.call(this)}})})(jQuery);
364   -;/*
365   - * jQuery UI Dialog 1.8.16
366   - *
367   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
368   - * Dual licensed under the MIT or GPL Version 2 licenses.
369   - * http://jquery.org/license
370   - *
371   - * http://docs.jquery.com/UI/Dialog
372   - *
373   - * Depends:
374   - * jquery.ui.core.js
375   - * jquery.ui.widget.js
376   - * jquery.ui.button.js
377   - * jquery.ui.draggable.js
378   - * jquery.ui.mouse.js
379   - * jquery.ui.position.js
380   - * jquery.ui.resizable.js
381   - */
382   -(function(c,l){var m={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},n={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},o=c.attrFn||{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true,click:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,
383   -position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||"&#160;",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+
384   -b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&!i.isDefaultPrevented()&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),
385   -h=c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("<span></span>").addClass("ui-dialog-title").attr("id",
386   -e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");
387   -a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==
388   -b.uiDialog[0]){e=c(this).css("z-index");isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()};c.ui.dialog.maxZ+=1;
389   -d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target===
390   -f[0]&&e.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,
391   -function(){return!(d=true)});if(d){c.each(a,function(f,h){h=c.isFunction(h)?{click:h,text:f}:h;var i=c('<button type="button"></button>').click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.each(h,function(j,k){if(j!=="click")j in o?i[j](k):i.attr(j,k)});c.fn.button&&i.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",
392   -handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,
393   -originalSize:f.originalSize,position:f.position,size:f.size}}a=a===l?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",
394   -f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):
395   -[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f);
396   -if(g in m)e=true;if(g in n)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"):
397   -e.removeClass("ui-dialog-disabled");break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||"&#160;"));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a=
398   -this.options,b,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height-
399   -b,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.16",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),
400   -create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()<c.ui.dialog.overlay.maxZ)return false})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&!d.isDefaultPrevented()&&d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=(this.oldInstances.pop()||
401   -c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&
402   -c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a<b?c(window).height()+"px":a+"px"}else return c(document).height()+"px"},width:function(){var a,b;if(c.browser.msie){a=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);b=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return a<b?c(window).width()+"px":a+"px"}else return c(document).width()+
403   -"px"},resize:function(){var a=c([]);c.each(c.ui.dialog.overlay.instances,function(){a=a.add(this)});a.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
404   -;/*
405   - * jQuery UI Slider 1.8.16
406   - *
407   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
408   - * Dual licensed under the MIT or GPL Version 2 licenses.
409   - * http://jquery.org/license
410   - *
411   - * http://docs.jquery.com/UI/Slider
412   - *
413   - * Depends:
414   - * jquery.ui.core.js
415   - * jquery.ui.mouse.js
416   - * jquery.ui.widget.js
417   - */
418   -(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var a=this,b=this.options,c=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f=b.values&&b.values.length||1,e=[];this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+
419   -this.orientation+" ui-widget ui-widget-content ui-corner-all"+(b.disabled?" ui-slider-disabled ui-disabled":""));this.range=d([]);if(b.range){if(b.range===true){if(!b.values)b.values=[this._valueMin(),this._valueMin()];if(b.values.length&&b.values.length!==2)b.values=[b.values[0],b.values[0]]}this.range=d("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(b.range==="min"||b.range==="max"?" ui-slider-range-"+b.range:""))}for(var j=c.length;j<f;j+=1)e.push("<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>");
420   -this.handles=c.add(d(e.join("")).appendTo(a.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){b.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(b.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(g){d(this).data("index.ui-slider-handle",
421   -g)});this.handles.keydown(function(g){var k=true,l=d(this).data("index.ui-slider-handle"),i,h,m;if(!a.options.disabled){switch(g.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:k=false;if(!a._keySliding){a._keySliding=true;d(this).addClass("ui-state-active");i=a._start(g,l);if(i===false)return}break}m=a.options.step;i=a.options.values&&a.options.values.length?
422   -(h=a.values(l)):(h=a.value());switch(g.keyCode){case d.ui.keyCode.HOME:h=a._valueMin();break;case d.ui.keyCode.END:h=a._valueMax();break;case d.ui.keyCode.PAGE_UP:h=a._trimAlignValue(i+(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=a._trimAlignValue(i-(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===a._valueMax())return;h=a._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===a._valueMin())return;h=a._trimAlignValue(i-
423   -m);break}a._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(a._keySliding){a._keySliding=false;a._stop(g,k);a._change(g,k);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy();
424   -return this},_mouseCapture:function(a){var b=this.options,c,f,e,j,g;if(b.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:a.pageX,y:a.pageY});f=this._valueMax()-this._valueMin()+1;j=this;this.handles.each(function(k){var l=Math.abs(c-j.values(k));if(f>l){f=l;e=d(this);g=k}});if(b.range===true&&this.values(1)===b.min){g+=1;e=d(this.handles[g])}if(this._start(a,g)===false)return false;
425   -this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();b=e.offset();this._clickOffset=!d(a.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:a.pageX-b.left-e.width()/2,top:a.pageY-b.top-e.height()/2-(parseInt(e.css("borderTopWidth"),10)||0)-(parseInt(e.css("borderBottomWidth"),10)||0)+(parseInt(e.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(a,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(a){var b=
426   -this._normValueFromMouse({x:a.pageX,y:a.pageY});this._slide(a,this._handleIndex,b);return false},_mouseStop:function(a){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(a,this._handleIndex);this._change(a,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b;if(this.orientation==="horizontal"){b=
427   -this.elementSize.width;a=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{b=this.elementSize.height;a=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}b=a/b;if(b>1)b=1;if(b<0)b=0;if(this.orientation==="vertical")b=1-b;a=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+b*a)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);
428   -c.values=this.values()}return this._trigger("start",a,c)},_slide:function(a,b,c){var f;if(this.options.values&&this.options.values.length){f=this.values(b?0:1);if(this.options.values.length===2&&this.options.range===true&&(b===0&&c>f||b===1&&c<f))c=f;if(c!==this.values(b)){f=this.values();f[b]=c;a=this._trigger("slide",a,{handle:this.handles[b],value:c,values:f});this.values(b?0:1);a!==false&&this.values(b,c,true)}}else if(c!==this.value()){a=this._trigger("slide",a,{handle:this.handles[b],value:c});
429   -a!==false&&this.value(c)}},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("change",a,c)}},value:function(a){if(arguments.length){this.options.value=
430   -this._trimAlignValue(a);this._refreshValue();this._change(null,0)}else return this._value()},values:function(a,b){var c,f,e;if(arguments.length>1){this.options.values[a]=this._trimAlignValue(b);this._refreshValue();this._change(null,a)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e<c.length;e+=1){c[e]=this._trimAlignValue(f[e]);this._change(null,e)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(a):
431   -this.value();else return this._values()},_setOption:function(a,b){var c,f=0;if(d.isArray(this.options.values))f=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(a){case "disabled":if(b){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.propAttr("disabled",true);this.element.addClass("ui-disabled")}else{this.handles.propAttr("disabled",false);this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation();
432   -this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<f;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c;if(arguments.length){b=this.options.values[a];
433   -return b=this._trimAlignValue(b)}else{b=this.options.values.slice();for(c=0;c<b.length;c+=1)b[c]=this._trimAlignValue(b[c]);return b}},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b;a=a-c;if(Math.abs(c)*2>=b)a+=c>0?b:-b;return parseFloat(a.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var a=
434   -this.options.range,b=this.options,c=this,f=!this._animateOff?b.animate:false,e,j={},g,k,l,i;if(this.options.values&&this.options.values.length)this.handles.each(function(h){e=(c.values(h)-c._valueMin())/(c._valueMax()-c._valueMin())*100;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";d(this).stop(1,1)[f?"animate":"css"](j,b.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({width:e-
435   -g+"%"},{queue:false,duration:b.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:b.animate})}g=e});else{k=this.value();l=this._valueMin();i=this._valueMax();e=i!==l?(k-l)/(i-l)*100:0;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[f?"animate":"css"](j,b.animate);if(a==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[f?"animate":"css"]({width:e+"%"},
436   -b.animate);if(a==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:b.animate});if(a==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},b.animate);if(a==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:b.animate})}}});d.extend(d.ui.slider,{version:"1.8.16"})})(jQuery);
437   -;/*
438   - * jQuery UI Tabs 1.8.16
439   - *
440   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
441   - * Dual licensed under the MIT or GPL Version 2 licenses.
442   - * http://jquery.org/license
443   - *
444   - * http://docs.jquery.com/UI/Tabs
445   - *
446   - * Depends:
447   - * jquery.ui.core.js
448   - * jquery.ui.widget.js
449   - */
450   -(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&&
451   -e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=
452   -d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]||
453   -(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");
454   -this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected=
455   -this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");
456   -if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));
457   -this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+
458   -g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",
459   -function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};
460   -this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected=
461   --1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";
462   -d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e=
463   -d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b,
464   -e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);
465   -j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();
466   -if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=b}),function(h){return h>=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null,
467   -this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this},
468   -load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c,
469   -"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},
470   -url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.16"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k<a.anchors.length?k:0)},b);j&&j.stopPropagation()});e=a._unrotate||(a._unrotate=!e?function(j){j.clientX&&
471   -a.rotate(null)}:function(){t=c.selected;h()});if(b){this.element.bind("tabsshow",h);this.anchors.bind(c.event+".tabs",e);h()}else{clearTimeout(a.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(c.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery);
472   -;/*
473   - * jQuery UI Datepicker 1.8.16
474   - *
475   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
476   - * Dual licensed under the MIT or GPL Version 2 licenses.
477   - * http://jquery.org/license
478   - *
479   - * http://docs.jquery.com/UI/Datepicker
480   - *
481   - * Depends:
482   - * jquery.ui.core.js
483   - */
484   -(function(d,C){function M(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass=
485   -"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su",
486   -"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",
487   -minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false,disabled:false};d.extend(this._defaults,this.regional[""]);this.dpDiv=N(d('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}function N(a){return a.bind("mouseout",
488   -function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");b.length&&b.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");if(!(d.datepicker._isDisabledDatepicker(J.inline?a.parent()[0]:J.input[0])||!b.length)){b.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");
489   -b.addClass("ui-state-hover");b.hasClass("ui-datepicker-prev")&&b.addClass("ui-datepicker-prev-hover");b.hasClass("ui-datepicker-next")&&b.addClass("ui-datepicker-next-hover")}})}function H(a,b){d.extend(a,b);for(var c in b)if(b[c]==null||b[c]==C)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.16"}});var B=(new Date).getTime(),J;d.extend(M.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},
490   -setDefaults:function(a){H(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,
491   -"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:N(d('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",
492   -function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b);b.settings.disabled&&this._disableDatepicker(a)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&b.append.remove();if(c){b.append=d('<span class="'+this._appendClass+'">'+c+"</span>");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c==
493   -"focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("<img/>").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('<button type="button"></button>').addClass(this._triggerClass).html(f==""?c:d("<img/>").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():
494   -d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;g<f.length;g++)if(f[g].length>h){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,
495   -b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),true);this._updateDatepicker(b);this._updateAlternate(b);b.settings.disabled&&this._disableDatepicker(a);b.dpDiv.css("display","block")}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=
496   -1;this._dialogInput=d('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}H(a.settings,e||{});b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/
497   -2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=
498   -d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=
499   -a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().removeClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,
500   -"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().addClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==
501   -a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return true;return false},_getInst:function(a){try{return d.data(a,"datepicker")}catch(b){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(a,b,c){var e=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?d.extend({},d.datepicker._defaults):e?b=="all"?
502   -d.extend({},e.settings):this._get(e,b):null;var f=b||{};if(typeof b=="string"){f={};f[b]=c}if(e){this._curInst==e&&this._hideDatepicker();var h=this._getDateDatepicker(a,true),i=this._getMinMaxDate(e,"min"),g=this._getMinMaxDate(e,"max");H(e.settings,f);if(i!==null&&f.dateFormat!==C&&f.minDate===C)e.settings.minDate=this._formatDate(e,i);if(g!==null&&f.dateFormat!==C&&f.maxDate===C)e.settings.maxDate=this._formatDate(e,g);this._attachments(d(a),e);this._autoSize(e);this._setDate(e,h);this._updateAlternate(e);
503   -this._updateDatepicker(e)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){(a=this._getInst(a))&&this._updateDatepicker(a)},_setDateDatepicker:function(a,b){if(a=this._getInst(a)){this._setDate(a,b);this._updateDatepicker(a);this._updateAlternate(a)}},_getDateDatepicker:function(a,b){(a=this._getInst(a))&&!a.inline&&this._setDateFromField(a,b);return a?this._getDate(a):null},_doKeyDown:function(a){var b=d.datepicker._getInst(a.target),c=true,e=b.dpDiv.is(".ui-datepicker-rtl");
504   -b._keyEvent=true;if(d.datepicker._datepickerShowing)switch(a.keyCode){case 9:d.datepicker._hideDatepicker();c=false;break;case 13:c=d("td."+d.datepicker._dayOverClass+":not(."+d.datepicker._currentClass+")",b.dpDiv);c[0]&&d.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,c[0]);if(a=d.datepicker._get(b,"onSelect")){c=d.datepicker._formatDate(b);a.apply(b.input?b.input[0]:null,[c,b])}else d.datepicker._hideDatepicker();return false;case 27:d.datepicker._hideDatepicker();break;case 33:d.datepicker._adjustDate(a.target,
505   -a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 34:d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 35:if(a.ctrlKey||a.metaKey)d.datepicker._clearDate(a.target);c=a.ctrlKey||a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)d.datepicker._gotoToday(a.target);c=a.ctrlKey||a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?+1:-1,"D");c=
506   -a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 38:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,-7,"D");c=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?-1:+1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,
507   -"stepMonths"),"M");break;case 40:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,+7,"D");c=a.ctrlKey||a.metaKey;break;default:c=false}else if(a.keyCode==36&&a.ctrlKey)d.datepicker._showDatepicker(this);else c=false;if(c){a.preventDefault();a.stopPropagation()}},_doKeyPress:function(a){var b=d.datepicker._getInst(a.target);if(d.datepicker._get(b,"constrainInput")){b=d.datepicker._possibleChars(d.datepicker._get(b,"dateFormat"));var c=String.fromCharCode(a.charCode==C?a.keyCode:a.charCode);
508   -return a.ctrlKey||a.metaKey||c<" "||!b||b.indexOf(c)>-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",
509   -a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);if(d.datepicker._curInst&&d.datepicker._curInst!=b){d.datepicker._datepickerShowing&&d.datepicker._triggerOnClose(d.datepicker._curInst);d.datepicker._curInst.dpDiv.stop(true,true)}var c=d.datepicker._get(b,"beforeShow");c=c?c.apply(a,[a,b]):{};if(c!==false){H(b.settings,c);b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value=
510   -"";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);
511   -c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.datepicker._datepickerShowing=
512   -true;d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}}},_updateDatepicker:function(a){this.maxRows=4;var b=d.datepicker._getBorders(a.dpDiv);J=a;a.dpDiv.empty().append(this._generateHTML(a));var c=a.dpDiv.find("iframe.ui-datepicker-cover");c.length&&c.css({left:-b[0],top:-b[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});
513   -a.dpDiv.find("."+this._dayOverClass+" a").mouseover();b=this._getNumberOfMonths(a);c=b[1];a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");c>1&&a.dpDiv.addClass("ui-datepicker-multi-"+c).css("width",17*c+"em");a.dpDiv[(b[0]!=1||b[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&
514   -!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var e=a.yearshtml;setTimeout(function(){e===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);e=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),
515   -h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=
516   -this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_triggerOnClose:function(a){var b=this._get(a,"onClose");if(b)b.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a])},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);
517   -this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();d.datepicker._triggerOnClose(b);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},
518   -_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):
519   -0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e["selected"+(c=="M"?
520   -"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);
521   -this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");
522   -if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?
523   -b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=A+1<a.length&&a.charAt(A+1)==p)&&A++;return p},m=function(p){var D=
524   -o(p);p=new RegExp("^\\d{1,"+(p=="@"?14:p=="!"?20:p=="y"&&D?4:p=="o"?3:2)+"}");p=b.substring(q).match(p);if(!p)throw"Missing number at position "+q;q+=p[0].length;return parseInt(p[0],10)},n=function(p,D,K){p=d.map(o(p)?K:D,function(w,x){return[[x,w]]}).sort(function(w,x){return-(w[1].length-x[1].length)});var E=-1;d.each(p,function(w,x){w=x[1];if(b.substr(q,w.length).toLowerCase()==w.toLowerCase()){E=x[0];q+=w.length;return false}});if(E!=-1)return E+1;else throw"Unknown name at position "+q;},s=
525   -function(){if(b.charAt(q)!=a.charAt(A))throw"Unexpected literal at position "+q;q++},q=0,A=0;A<a.length;A++)if(k)if(a.charAt(A)=="'"&&!o("'"))k=false;else s();else switch(a.charAt(A)){case "d":l=m("d");break;case "D":n("D",f,h);break;case "o":u=m("o");break;case "m":j=m("m");break;case "M":j=n("M",i,g);break;case "y":c=m("y");break;case "@":var v=new Date(m("@"));c=v.getFullYear();j=v.getMonth()+1;l=v.getDate();break;case "!":v=new Date((m("!")-this._ticksTo1970)/1E4);c=v.getFullYear();j=v.getMonth()+
526   -1;l=v.getDate();break;case "'":if(o("'"))s();else k=true;break;default:s()}if(q<b.length)throw"Extra/unparsed characters found in date: "+b.substring(q);if(c==-1)c=(new Date).getFullYear();else if(c<100)c+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c<=e?0:-100);if(u>-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c,j-1,l));if(v.getFullYear()!=c||v.getMonth()+1!=j||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd",
527   -COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:
528   -null)||this._defaults.monthNames;var i=function(o){(o=k+1<a.length&&a.charAt(k+1)==o)&&k++;return o},g=function(o,m,n){m=""+m;if(i(o))for(;m.length<n;)m="0"+m;return m},j=function(o,m,n,s){return i(o)?s[m]:n[m]},l="",u=false;if(b)for(var k=0;k<a.length;k++)if(u)if(a.charAt(k)=="'"&&!i("'"))u=false;else l+=a.charAt(k);else switch(a.charAt(k)){case "d":l+=g("d",b.getDate(),2);break;case "D":l+=j("D",b.getDay(),e,f);break;case "o":l+=g("o",Math.round(((new Date(b.getFullYear(),b.getMonth(),b.getDate())).getTime()-
529   -(new Date(b.getFullYear(),0,0)).getTime())/864E5),3);break;case "m":l+=g("m",b.getMonth()+1,2);break;case "M":l+=j("M",b.getMonth(),h,c);break;case "y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case "@":l+=b.getTime();break;case "!":l+=b.getTime()*1E4+this._ticksTo1970;break;case "'":if(i("'"))l+="'";else u=true;break;default:l+=a.charAt(k)}return l},_possibleChars:function(a){for(var b="",c=false,e=function(h){(h=f+1<a.length&&a.charAt(f+1)==h)&&f++;return h},f=
530   -0;f<a.length;f++)if(c)if(a.charAt(f)=="'"&&!e("'"))c=false;else b+=a.charAt(f);else switch(a.charAt(f)){case "d":case "m":case "y":case "@":b+="0123456789";break;case "D":case "M":return null;case "'":if(e("'"))b+="'";else c=true;break;default:b+=a.charAt(f)}return b},_get:function(a,b){return a.settings[b]!==C?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var c=this._get(a,"dateFormat"),e=a.lastVal=a.input?a.input.val():null,f,h;f=h=this._getDefaultDate(a);
531   -var i=this._getFormatConfig(a);try{f=this.parseDate(c,e,i)||h}catch(g){this.log(g);e=b?"":e}a.selectedDay=f.getDate();a.drawMonth=a.selectedMonth=f.getMonth();a.drawYear=a.selectedYear=f.getFullYear();a.currentDay=e?f.getDate():0;a.currentMonth=e?f.getMonth():0;a.currentYear=e?f.getFullYear():0;this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var e=function(h){var i=new Date;
532   -i.setDate(i.getDate()+h);return i},f=function(h){try{return d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),h,d.datepicker._getFormatConfig(a))}catch(i){}var g=(h.toLowerCase().match(/^c/)?d.datepicker._getDate(a):null)||new Date,j=g.getFullYear(),l=g.getMonth();g=g.getDate();for(var u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,k=u.exec(h);k;){switch(k[2]||"d"){case "d":case "D":g+=parseInt(k[1],10);break;case "w":case "W":g+=parseInt(k[1],10)*7;break;case "m":case "M":l+=parseInt(k[1],10);g=
533   -Math.min(g,d.datepicker._getDaysInMonth(j,l));break;case "y":case "Y":j+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break}k=u.exec(h)}return new Date(j,l,g)};if(b=(b=b==null||b===""?c:typeof b=="string"?f(b):typeof b=="number"?isNaN(b)?c:e(b):new Date(b.getTime()))&&b.toString()=="Invalid Date"?c:b){b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0)}return this._daylightSavingAdjust(b)},_daylightSavingAdjust:function(a){if(!a)return null;a.setHours(a.getHours()>
534   -12?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&
535   -a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?
536   -new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&n<k?k:n;this._daylightSavingAdjust(new Date(m,g,1))>n;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));
537   -n=this._canAdjustMonth(a,-1,m,g)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+B+".datepicker._adjustDate('#"+a.id+"', -"+j+", 'M');\" title=\""+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>":f?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>";var s=this._get(a,"nextText");s=!h?s:this.formatDate(s,this._daylightSavingAdjust(new Date(m,
538   -g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+B+".datepicker._adjustDate('#"+a.id+"', +"+j+", 'M');\" title=\""+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>":f?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>";j=this._get(a,"currentText");s=this._get(a,"gotoCurrent")&&
539   -a.currentDay?u:b;j=!h?j:this.formatDate(j,s,this._getFormatConfig(a));h=!a.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+B+'.datepicker._hideDatepicker();">'+this._get(a,"closeText")+"</button>":"";e=e?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?h:"")+(this._isInRange(a,s)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+
540   -B+".datepicker._gotoToday('#"+a.id+"');\">"+j+"</button>":"")+(c?"":h)+"</div>":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");s=this._get(a,"dayNames");this._get(a,"dayNamesShort");var q=this._get(a,"dayNamesMin"),A=this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),D=this._get(a,"showOtherMonths"),K=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var E=this._getDefaultDate(a),w="",x=0;x<i[0];x++){var O=
541   -"";this.maxRows=4;for(var G=0;G<i[1];G++){var P=this._daylightSavingAdjust(new Date(m,g,a.selectedDay)),t=" ui-corner-all",y="";if(l){y+='<div class="ui-datepicker-group';if(i[1]>1)switch(G){case 0:y+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-1:y+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:y+=" ui-datepicker-group-middle";t="";break}y+='">'}y+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+t+'">'+(/all|left/.test(t)&&
542   -x==0?c?f:n:"")+(/all|right/.test(t)&&x==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,x>0||G>0,A,v)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var z=j?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(t=0;t<7;t++){var r=(t+h)%7;z+="<th"+((t+h+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+s[r]+'">'+q[r]+"</span></th>"}y+=z+"</tr></thead><tbody>";z=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,
543   -z);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;z=Math.ceil((t+z)/7);this.maxRows=z=l?this.maxRows>z?this.maxRows:z:z;r=this._daylightSavingAdjust(new Date(m,g,1-t));for(var Q=0;Q<z;Q++){y+="<tr>";var R=!j?"":'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(r)+"</td>";for(t=0;t<7;t++){var I=p?p.apply(a.input?a.input[0]:null,[r]):[true,""],F=r.getMonth()!=g,L=F&&!K||!I[0]||k&&r<k||o&&r>o;R+='<td class="'+((t+h+6)%7>=5?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(r.getTime()==
544   -P.getTime()&&g==a.selectedMonth&&a._keyEvent||E.getTime()==r.getTime()&&E.getTime()==P.getTime()?" "+this._dayOverClass:"")+(L?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!D?"":" "+I[1]+(r.getTime()==u.getTime()?" "+this._currentClass:"")+(r.getTime()==b.getTime()?" ui-datepicker-today":""))+'"'+((!F||D)&&I[2]?' title="'+I[2]+'"':"")+(L?"":' onclick="DP_jQuery_'+B+".datepicker._selectDay('#"+a.id+"',"+r.getMonth()+","+r.getFullYear()+', this);return false;"')+">"+(F&&!D?"&#xa0;":L?'<span class="ui-state-default">'+
545   -r.getDate()+"</span>":'<a class="ui-state-default'+(r.getTime()==b.getTime()?" ui-state-highlight":"")+(r.getTime()==u.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+'" href="#">'+r.getDate()+"</a>")+"</td>";r.setDate(r.getDate()+1);r=this._daylightSavingAdjust(r)}y+=R+"</tr>"}g++;if(g>11){g=0;m++}y+="</tbody></table>"+(l?"</div>"+(i[0]>0&&G==i[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");O+=y}w+=O}w+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':
546   -"");a._keyEvent=false;return w},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='<div class="ui-datepicker-title">',o="";if(h||!j)o+='<span class="ui-datepicker-month">'+i[b]+"</span>";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+B+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" >";for(var n=0;n<12;n++)if((!i||n>=e.getMonth())&&
547   -(!m||n<=f.getMonth()))o+='<option value="'+n+'"'+(n==b?' selected="selected"':"")+">"+g[n]+"</option>";o+="</select>"}u||(k+=o+(h||!(j&&l)?"&#xa0;":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+='<span class="ui-datepicker-year">'+c+"</span>";else{g=this._get(a,"yearRange").split(":");var s=(new Date).getFullYear();i=function(q){q=q.match(/c[+-].*/)?c+parseInt(q.substring(1),10):q.match(/[+-].*/)?s+parseInt(q,10):parseInt(q,10);return isNaN(q)?s:q};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,
548   -e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+B+".datepicker._selectMonthYear('#"+a.id+"', this, 'Y');\" >";b<=g;b++)a.yearshtml+='<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";a.yearshtml+="</select>";k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?"&#xa0;":"")+o;k+="</div>";return k},_adjustInstDate:function(a,b,c){var e=a.drawYear+(c=="Y"?b:0),f=a.drawMonth+
549   -(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&b<c?c:b;return b=a&&b>a?a:b},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");if(b)b.apply(a.input?
550   -a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);c=this._daylightSavingAdjust(new Date(c,
551   -e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,
552   -"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=function(a){if(!this.length)return this;
553   -if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));return this.each(function(){typeof a==
554   -"string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new M;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.16";window["DP_jQuery_"+B]=d})(jQuery);
555   -;/*
556   - * jQuery UI Progressbar 1.8.16
557   - *
558   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
559   - * Dual licensed under the MIT or GPL Version 2 licenses.
560   - * http://jquery.org/license
561   - *
562   - * http://docs.jquery.com/UI/Progressbar
563   - *
564   - * Depends:
565   - * jquery.ui.core.js
566   - * jquery.ui.widget.js
567   - */
568   -(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
569   -this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*
570   -this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.16"})})(jQuery);
571   -;/*
572   - * jQuery UI Effects 1.8.16
573   - *
574   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
575   - * Dual licensed under the MIT or GPL Version 2 licenses.
576   - * http://jquery.org/license
577   - *
578   - * http://docs.jquery.com/UI/Effects/
579   - */
580   -jQuery.effects||function(f,j){function m(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
581   -16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return n.transparent;return n[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return m(b)}function o(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,
582   -a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function p(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d=
583   -a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function l(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor",
584   -"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=m(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var n={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,
585   -0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,
586   -211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},q=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,
587   -d){if(f.isFunction(b)){d=b;b=null}return this.queue(function(){var e=f(this),g=e.attr("style")||" ",h=p(o.call(this)),r,v=e.attr("class");f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});r=p(o.call(this));e.attr("class",v);e.animate(u(h,r),{queue:false,duration:a,easing:b,complete:function(){f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments);f.dequeue(this)}})})};
588   -f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this,
589   -[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.16",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,a){var b;switch(c[0]){case "top":b=
590   -0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),
591   -d=document.activeElement;c.wrap(b);if(c[0]===d||f.contains(c[0],d))f(d).focus();b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(e,g){a[g]=c.css(g);if(isNaN(parseInt(a[g],10)))a[g]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){var a,b=document.activeElement;
592   -if(c.parent().is(".ui-effects-wrapper")){a=c.parent().replaceWith(c);if(c[0]===b||f.contains(c[0],b))f(b).focus();return a}return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});
593   -return d.call(this,b)},_show:f.fn.show,show:function(c){if(l(c))return this._show.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(l(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(l(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,
594   -arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/
595   -2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,
596   -d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,
597   -a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,
598   -d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g=
599   -0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;
600   -if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,
601   -a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
602   -;/*
603   - * jQuery UI Effects Blind 1.8.16
604   - *
605   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
606   - * Dual licensed under the MIT or GPL Version 2 licenses.
607   - * http://jquery.org/license
608   - *
609   - * http://docs.jquery.com/UI/Effects/Blind
610   - *
611   - * Depends:
612   - * jquery.effects.core.js
613   - */
614   -(function(b){b.effects.blind=function(c){return this.queue(function(){var a=b(this),g=["position","top","bottom","left","right"],f=b.effects.setMode(a,c.options.mode||"hide"),d=c.options.direction||"vertical";b.effects.save(a,g);a.show();var e=b.effects.createWrapper(a).css({overflow:"hidden"}),h=d=="vertical"?"height":"width";d=d=="vertical"?e.height():e.width();f=="show"&&e.css(h,0);var i={};i[h]=f=="show"?d:0;e.animate(i,c.duration,c.options.easing,function(){f=="hide"&&a.hide();b.effects.restore(a,
615   -g);b.effects.removeWrapper(a);c.callback&&c.callback.apply(a[0],arguments);a.dequeue()})})}})(jQuery);
616   -;/*
617   - * jQuery UI Effects Bounce 1.8.16
618   - *
619   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
620   - * Dual licensed under the MIT or GPL Version 2 licenses.
621   - * http://jquery.org/license
622   - *
623   - * http://docs.jquery.com/UI/Effects/Bounce
624   - *
625   - * Depends:
626   - * jquery.effects.core.js
627   - */
628   -(function(e){e.effects.bounce=function(b){return this.queue(function(){var a=e(this),l=["position","top","bottom","left","right"],h=e.effects.setMode(a,b.options.mode||"effect"),d=b.options.direction||"up",c=b.options.distance||20,m=b.options.times||5,i=b.duration||250;/show|hide/.test(h)&&l.push("opacity");e.effects.save(a,l);a.show();e.effects.createWrapper(a);var f=d=="up"||d=="down"?"top":"left";d=d=="up"||d=="left"?"pos":"neg";c=b.options.distance||(f=="top"?a.outerHeight({margin:true})/3:a.outerWidth({margin:true})/
629   -3);if(h=="show")a.css("opacity",0).css(f,d=="pos"?-c:c);if(h=="hide")c/=m*2;h!="hide"&&m--;if(h=="show"){var g={opacity:1};g[f]=(d=="pos"?"+=":"-=")+c;a.animate(g,i/2,b.options.easing);c/=2;m--}for(g=0;g<m;g++){var j={},k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing);c=h=="hide"?c*2:c/2}if(h=="hide"){g={opacity:0};g[f]=(d=="pos"?"-=":"+=")+c;a.animate(g,i/2,b.options.easing,function(){a.hide();e.effects.restore(a,l);e.effects.removeWrapper(a);
630   -b.callback&&b.callback.apply(this,arguments)})}else{j={};k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing,function(){e.effects.restore(a,l);e.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments)})}a.queue("fx",function(){a.dequeue()});a.dequeue()})}})(jQuery);
631   -;/*
632   - * jQuery UI Effects Clip 1.8.16
633   - *
634   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
635   - * Dual licensed under the MIT or GPL Version 2 licenses.
636   - * http://jquery.org/license
637   - *
638   - * http://docs.jquery.com/UI/Effects/Clip
639   - *
640   - * Depends:
641   - * jquery.effects.core.js
642   - */
643   -(function(b){b.effects.clip=function(e){return this.queue(function(){var a=b(this),i=["position","top","bottom","left","right","height","width"],f=b.effects.setMode(a,e.options.mode||"hide"),c=e.options.direction||"vertical";b.effects.save(a,i);a.show();var d=b.effects.createWrapper(a).css({overflow:"hidden"});d=a[0].tagName=="IMG"?d:a;var g={size:c=="vertical"?"height":"width",position:c=="vertical"?"top":"left"};c=c=="vertical"?d.height():d.width();if(f=="show"){d.css(g.size,0);d.css(g.position,
644   -c/2)}var h={};h[g.size]=f=="show"?c:0;h[g.position]=f=="show"?0:c/2;d.animate(h,{queue:false,duration:e.duration,easing:e.options.easing,complete:function(){f=="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);e.callback&&e.callback.apply(a[0],arguments);a.dequeue()}})})}})(jQuery);
645   -;/*
646   - * jQuery UI Effects Drop 1.8.16
647   - *
648   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
649   - * Dual licensed under the MIT or GPL Version 2 licenses.
650   - * http://jquery.org/license
651   - *
652   - * http://docs.jquery.com/UI/Effects/Drop
653   - *
654   - * Depends:
655   - * jquery.effects.core.js
656   - */
657   -(function(c){c.effects.drop=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right","opacity"],e=c.effects.setMode(a,d.options.mode||"hide"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a);var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true})/2:a.outerWidth({margin:true})/2);if(e=="show")a.css("opacity",0).css(f,b=="pos"?-g:g);var i={opacity:e==
658   -"show"?1:0};i[f]=(e=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
659   -;/*
660   - * jQuery UI Effects Explode 1.8.16
661   - *
662   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
663   - * Dual licensed under the MIT or GPL Version 2 licenses.
664   - * http://jquery.org/license
665   - *
666   - * http://docs.jquery.com/UI/Effects/Explode
667   - *
668   - * Depends:
669   - * jquery.effects.core.js
670   - */
671   -(function(j){j.effects.explode=function(a){return this.queue(function(){var c=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3,d=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3;a.options.mode=a.options.mode=="toggle"?j(this).is(":visible")?"hide":"show":a.options.mode;var b=j(this).show().css("visibility","hidden"),g=b.offset();g.top-=parseInt(b.css("marginTop"),10)||0;g.left-=parseInt(b.css("marginLeft"),10)||0;for(var h=b.outerWidth(true),i=b.outerHeight(true),e=0;e<c;e++)for(var f=
672   -0;f<d;f++)b.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+
673   -e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery);
674   -;/*
675   - * jQuery UI Effects Fade 1.8.16
676   - *
677   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
678   - * Dual licensed under the MIT or GPL Version 2 licenses.
679   - * http://jquery.org/license
680   - *
681   - * http://docs.jquery.com/UI/Effects/Fade
682   - *
683   - * Depends:
684   - * jquery.effects.core.js
685   - */
686   -(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery);
687   -;/*
688   - * jQuery UI Effects Fold 1.8.16
689   - *
690   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
691   - * Dual licensed under the MIT or GPL Version 2 licenses.
692   - * http://jquery.org/license
693   - *
694   - * http://docs.jquery.com/UI/Effects/Fold
695   - *
696   - * Depends:
697   - * jquery.effects.core.js
698   - */
699   -(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1],
700   -10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery);
701   -;/*
702   - * jQuery UI Effects Highlight 1.8.16
703   - *
704   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
705   - * Dual licensed under the MIT or GPL Version 2 licenses.
706   - * http://jquery.org/license
707   - *
708   - * http://docs.jquery.com/UI/Effects/Highlight
709   - *
710   - * Depends:
711   - * jquery.effects.core.js
712   - */
713   -(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&&
714   -this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
715   -;/*
716   - * jQuery UI Effects Pulsate 1.8.16
717   - *
718   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
719   - * Dual licensed under the MIT or GPL Version 2 licenses.
720   - * http://jquery.org/license
721   - *
722   - * http://docs.jquery.com/UI/Effects/Pulsate
723   - *
724   - * Depends:
725   - * jquery.effects.core.js
726   - */
727   -(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c<times;c++){b.animate({opacity:animateTo},duration,a.options.easing);animateTo=(animateTo+1)%2}b.animate({opacity:animateTo},duration,
728   -a.options.easing,function(){animateTo==0&&b.hide();a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()}).dequeue()})}})(jQuery);
729   -;/*
730   - * jQuery UI Effects Scale 1.8.16
731   - *
732   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
733   - * Dual licensed under the MIT or GPL Version 2 licenses.
734   - * http://jquery.org/license
735   - *
736   - * http://docs.jquery.com/UI/Effects/Scale
737   - *
738   - * Depends:
739   - * jquery.effects.core.js
740   - */
741   -(function(c){c.effects.puff=function(b){return this.queue(function(){var a=c(this),e=c.effects.setMode(a,b.options.mode||"hide"),g=parseInt(b.options.percent,10)||150,h=g/100,i={height:a.height(),width:a.width()};c.extend(b.options,{fade:true,mode:e,percent:e=="hide"?g:100,from:e=="hide"?i:{height:i.height*h,width:i.width*h}});a.effect("scale",b.options,b.duration,b.callback);a.dequeue()})};c.effects.scale=function(b){return this.queue(function(){var a=c(this),e=c.extend(true,{},b.options),g=c.effects.setMode(a,
742   -b.options.mode||"effect"),h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:g=="hide"?0:100),i=b.options.direction||"both",f=b.options.origin;if(g!="effect"){e.origin=f||["middle","center"];e.restore=true}f={height:a.height(),width:a.width()};a.from=b.options.from||(g=="show"?{height:0,width:0}:f);h={y:i!="horizontal"?h/100:1,x:i!="vertical"?h/100:1};a.to={height:f.height*h.y,width:f.width*h.x};if(b.options.fade){if(g=="show"){a.from.opacity=0;a.to.opacity=1}if(g=="hide"){a.from.opacity=
743   -1;a.to.opacity=0}}e.from=a.from;e.to=a.to;e.mode=g;a.effect("size",e,b.duration,b.callback);a.dequeue()})};c.effects.size=function(b){return this.queue(function(){var a=c(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],g=["position","top","bottom","left","right","overflow","opacity"],h=["width","height","overflow"],i=["fontSize"],f=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],
744   -p=c.effects.setMode(a,b.options.mode||"effect"),n=b.options.restore||false,m=b.options.scale||"both",l=b.options.origin,j={height:a.height(),width:a.width()};a.from=b.options.from||j;a.to=b.options.to||j;if(l){l=c.effects.getBaseline(l,j);a.from.top=(j.height-a.from.height)*l.y;a.from.left=(j.width-a.from.width)*l.x;a.to.top=(j.height-a.to.height)*l.y;a.to.left=(j.width-a.to.width)*l.x}var d={from:{y:a.from.height/j.height,x:a.from.width/j.width},to:{y:a.to.height/j.height,x:a.to.width/j.width}};
745   -if(m=="box"||m=="both"){if(d.from.y!=d.to.y){e=e.concat(f);a.from=c.effects.setTransition(a,f,d.from.y,a.from);a.to=c.effects.setTransition(a,f,d.to.y,a.to)}if(d.from.x!=d.to.x){e=e.concat(k);a.from=c.effects.setTransition(a,k,d.from.x,a.from);a.to=c.effects.setTransition(a,k,d.to.x,a.to)}}if(m=="content"||m=="both")if(d.from.y!=d.to.y){e=e.concat(i);a.from=c.effects.setTransition(a,i,d.from.y,a.from);a.to=c.effects.setTransition(a,i,d.to.y,a.to)}c.effects.save(a,n?e:g);a.show();c.effects.createWrapper(a);
746   -a.css("overflow","hidden").css(a.from);if(m=="content"||m=="both"){f=f.concat(["marginTop","marginBottom"]).concat(i);k=k.concat(["marginLeft","marginRight"]);h=e.concat(f).concat(k);a.find("*[width]").each(function(){child=c(this);n&&c.effects.save(child,h);var o={height:child.height(),width:child.width()};child.from={height:o.height*d.from.y,width:o.width*d.from.x};child.to={height:o.height*d.to.y,width:o.width*d.to.x};if(d.from.y!=d.to.y){child.from=c.effects.setTransition(child,f,d.from.y,child.from);
747   -child.to=c.effects.setTransition(child,f,d.to.y,child.to)}if(d.from.x!=d.to.x){child.from=c.effects.setTransition(child,k,d.from.x,child.from);child.to=c.effects.setTransition(child,k,d.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){n&&c.effects.restore(child,h)})})}a.animate(a.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){a.to.opacity===0&&a.css("opacity",a.from.opacity);p=="hide"&&a.hide();c.effects.restore(a,
748   -n?e:g);c.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
749   -;/*
750   - * jQuery UI Effects Shake 1.8.16
751   - *
752   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
753   - * Dual licensed under the MIT or GPL Version 2 licenses.
754   - * http://jquery.org/license
755   - *
756   - * http://docs.jquery.com/UI/Effects/Shake
757   - *
758   - * Depends:
759   - * jquery.effects.core.js
760   - */
761   -(function(d){d.effects.shake=function(a){return this.queue(function(){var b=d(this),j=["position","top","bottom","left","right"];d.effects.setMode(b,a.options.mode||"effect");var c=a.options.direction||"left",e=a.options.distance||20,l=a.options.times||3,f=a.duration||a.options.duration||140;d.effects.save(b,j);b.show();d.effects.createWrapper(b);var g=c=="up"||c=="down"?"top":"left",h=c=="up"||c=="left"?"pos":"neg";c={};var i={},k={};c[g]=(h=="pos"?"-=":"+=")+e;i[g]=(h=="pos"?"+=":"-=")+e*2;k[g]=
762   -(h=="pos"?"-=":"+=")+e*2;b.animate(c,f,a.options.easing);for(e=1;e<l;e++)b.animate(i,f,a.options.easing).animate(k,f,a.options.easing);b.animate(i,f,a.options.easing).animate(c,f/2,a.options.easing,function(){d.effects.restore(b,j);d.effects.removeWrapper(b);a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()});b.dequeue()})}})(jQuery);
763   -;/*
764   - * jQuery UI Effects Slide 1.8.16
765   - *
766   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
767   - * Dual licensed under the MIT or GPL Version 2 licenses.
768   - * http://jquery.org/license
769   - *
770   - * http://docs.jquery.com/UI/Effects/Slide
771   - *
772   - * Depends:
773   - * jquery.effects.core.js
774   - */
775   -(function(c){c.effects.slide=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right"],f=c.effects.setMode(a,d.options.mode||"show"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a).css({overflow:"hidden"});var g=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var e=d.options.distance||(g=="top"?a.outerHeight({margin:true}):a.outerWidth({margin:true}));if(f=="show")a.css(g,b=="pos"?isNaN(e)?"-"+e:-e:e);
776   -var i={};i[g]=(f=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+e;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){f=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
777   -;/*
778   - * jQuery UI Effects Transfer 1.8.16
779   - *
780   - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
781   - * Dual licensed under the MIT or GPL Version 2 licenses.
782   - * http://jquery.org/license
783   - *
784   - * http://docs.jquery.com/UI/Effects/Transfer
785   - *
786   - * Depends:
787   - * jquery.effects.core.js
788   - */
789   -(function(e){e.effects.transfer=function(a){return this.queue(function(){var b=e(this),c=e(a.options.to),d=c.offset();c={top:d.top,left:d.left,height:c.innerHeight(),width:c.innerWidth()};d=b.offset();var f=e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments);
790   -b.dequeue()})})}})(jQuery);
791   -;
792 0 \ No newline at end of file
app/assets/javascripts/jquery.cookie.js
... ... @@ -1,41 +0,0 @@
1   -/**
2   - * jQuery Cookie plugin
3   - *
4   - * Copyright (c) 2010 Klaus Hartl (stilbuero.de)
5   - * Dual licensed under the MIT and GPL licenses:
6   - * http://www.opensource.org/licenses/mit-license.php
7   - * http://www.gnu.org/licenses/gpl.html
8   - *
9   - */
10   -jQuery.cookie = function (key, value, options) {
11   -
12   - // key and at least value given, set cookie...
13   - if (arguments.length > 1 && String(value) !== "[object Object]") {
14   - options = jQuery.extend({}, options);
15   -
16   - if (value === null || value === undefined) {
17   - options.expires = -1;
18   - }
19   -
20   - if (typeof options.expires === 'number') {
21   - var days = options.expires, t = options.expires = new Date();
22   - t.setDate(t.getDate() + days);
23   - }
24   -
25   - value = String(value);
26   -
27   - return (document.cookie = [
28   - encodeURIComponent(key), '=',
29   - options.raw ? value : encodeURIComponent(value),
30   - options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
31   - options.path ? '; path=' + options.path : '',
32   - options.domain ? '; domain=' + options.domain : '',
33   - options.secure ? '; secure' : ''
34   - ].join(''));
35   - }
36   -
37   - // key and possibly options given, get cookie...
38   - options = value || {};
39   - var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
40   - return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
41   -};
app/assets/javascripts/jquery.ui.selectmenu.js
... ... @@ -1,845 +0,0 @@
1   - /*
2   - * jQuery UI selectmenu dev version
3   - *
4   - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
5   - * Dual licensed under the MIT (MIT-LICENSE.txt)
6   - * and GPL (GPL-LICENSE.txt) licenses.
7   - *
8   - * http://docs.jquery.com/UI
9   - * https://github.com/fnagel/jquery-ui/wiki/Selectmenu
10   - */
11   -
12   -(function($) {
13   -
14   -$.widget("ui.selectmenu", {
15   - getter: "value",
16   - version: "1.8",
17   - eventPrefix: "selectmenu",
18   - options: {
19   - transferClasses: true,
20   - typeAhead: "sequential",
21   - style: 'dropdown',
22   - positionOptions: {
23   - my: "left top",
24   - at: "left bottom",
25   - offset: null
26   - },
27   - width: null,
28   - menuWidth: null,
29   - handleWidth: 26,
30   - maxHeight: null,
31   - icons: null,
32   - format: null,
33   - bgImage: function() {},
34   - wrapperElement: "<div />"
35   - },
36   -
37   - _create: function() {
38   - var self = this, o = this.options;
39   -
40   - // set a default id value, generate a new random one if not set by developer
41   - var selectmenuId = this.element.attr( 'id' ) || 'ui-selectmenu-' + Math.random().toString( 16 ).slice( 2, 10 );
42   -
43   - // quick array of button and menu id's
44   - this.ids = [ selectmenuId + '-button', selectmenuId + '-menu' ];
45   -
46   - // define safe mouseup for future toggling
47   - this._safemouseup = true;
48   -
49   - // create menu button wrapper
50   - this.newelement = $( '<a />', {
51   - 'class': this.widgetBaseClass + ' ui-widget ui-state-default ui-corner-all',
52   - 'id' : this.ids[ 0 ],
53   - 'role': 'button',
54   - 'href': '#nogo',
55   - 'tabindex': this.element.attr( 'disabled' ) ? 1 : 0,
56   - 'aria-haspopup': true,
57   - 'aria-owns': this.ids[ 1 ]
58   - });
59   - this.newelementWrap = $( o.wrapperElement )
60   - .append( this.newelement )
61   - .insertAfter( this.element );
62   -
63   - // transfer tabindex
64   - var tabindex = this.element.attr( 'tabindex' );
65   - if ( tabindex ) {
66   - this.newelement.attr( 'tabindex', tabindex );
67   - }
68   -
69   - // save reference to select in data for ease in calling methods
70   - this.newelement.data( 'selectelement', this.element );
71   -
72   - // menu icon
73   - this.selectmenuIcon = $( '<span class="' + this.widgetBaseClass + '-icon ui-icon"></span>' )
74   - .prependTo( this.newelement );
75   -
76   - // append status span to button
77   - this.newelement.prepend( '<span class="' + self.widgetBaseClass + '-status" />' );
78   -
79   - // make associated form label trigger focus
80   - $( 'label[for="' + selectmenuId + '"]' )
81   - .attr( 'for', this.ids[0] )
82   - .bind( 'click.selectmenu', function() {
83   - self.newelement[0].focus();
84   - return false;
85   - });
86   -
87   - // click toggle for menu visibility
88   - this.newelement
89   - .bind('mousedown.selectmenu', function(event) {
90   - self._toggle(event, true);
91   - // make sure a click won't open/close instantly
92   - if (o.style == "popup") {
93   - self._safemouseup = false;
94   - setTimeout(function() { self._safemouseup = true; }, 300);
95   - }
96   - return false;
97   - })
98   - .bind('click.selectmenu', function() {
99   - return false;
100   - })
101   - .bind("keydown.selectmenu", function(event) {
102   - var ret = false;
103   - switch (event.keyCode) {
104   - case $.ui.keyCode.ENTER:
105   - ret = true;
106   - break;
107   - case $.ui.keyCode.SPACE:
108   - self._toggle(event);
109   - break;
110   - case $.ui.keyCode.UP:
111   - if (event.altKey) {
112   - self.open(event);
113   - } else {
114   - self._moveSelection(-1);
115   - }
116   - break;
117   - case $.ui.keyCode.DOWN:
118   - if (event.altKey) {
119   - self.open(event);
120   - } else {
121   - self._moveSelection(1);
122   - }
123   - break;
124   - case $.ui.keyCode.LEFT:
125   - self._moveSelection(-1);
126   - break;
127   - case $.ui.keyCode.RIGHT:
128   - self._moveSelection(1);
129   - break;
130   - case $.ui.keyCode.TAB:
131   - ret = true;
132   - break;
133   - default:
134   - ret = true;
135   - }
136   - return ret;
137   - })
138   - .bind('keypress.selectmenu', function(event) {
139   - self._typeAhead(event.which, 'mouseup');
140   - return true;
141   - })
142   - .bind('mouseover.selectmenu focus.selectmenu', function() {
143   - if (!o.disabled) {
144   - $(this).addClass(self.widgetBaseClass + '-focus ui-state-hover');
145   - }
146   - })
147   - .bind('mouseout.selectmenu blur.selectmenu', function() {
148   - if (!o.disabled) {
149   - $(this).removeClass(self.widgetBaseClass + '-focus ui-state-hover');
150   - }
151   - });
152   -
153   - // document click closes menu
154   - $(document).bind("mousedown.selectmenu", function(event) {
155   - self.close(event);
156   - });
157   -
158   - // change event on original selectmenu
159   - this.element
160   - .bind("click.selectmenu", function() {
161   - self._refreshValue();
162   - })
163   - // FIXME: newelement can be null under unclear circumstances in IE8
164   - // TODO not sure if this is still a problem (fnagel 20.03.11)
165   - .bind("focus.selectmenu", function() {
166   - if (self.newelement) {
167   - self.newelement[0].focus();
168   - }
169   - });
170   -
171   - // set width when not set via options
172   - if (!o.width) {
173   - o.width = this.element.outerWidth();
174   - }
175   - // set menu button width
176   - this.newelement.width(o.width);
177   -
178   - // hide original selectmenu element
179   - this.element.hide();
180   -
181   - // create menu portion, append to body
182   - this.list = $( '<ul />', {
183   - 'class': 'ui-widget ui-widget-content',
184   - 'aria-hidden': true,
185   - 'role': 'listbox',
186   - 'aria-labelledby': this.ids[0],
187   - 'id': this.ids[1]
188   - });
189   - this.listWrap = $( o.wrapperElement )
190   - .addClass( self.widgetBaseClass + '-menu' )
191   - .append( this.list )
192   - .appendTo( 'body' );
193   -
194   - // transfer menu click to menu button
195   - this.list
196   - .bind("keydown.selectmenu", function(event) {
197   - var ret = false;
198   - switch (event.keyCode) {
199   - case $.ui.keyCode.UP:
200   - if (event.altKey) {
201   - self.close(event, true);
202   - } else {
203   - self._moveFocus(-1);
204   - }
205   - break;
206   - case $.ui.keyCode.DOWN:
207   - if (event.altKey) {
208   - self.close(event, true);
209   - } else {
210   - self._moveFocus(1);
211   - }
212   - break;
213   - case $.ui.keyCode.LEFT:
214   - self._moveFocus(-1);
215   - break;
216   - case $.ui.keyCode.RIGHT:
217   - self._moveFocus(1);
218   - break;
219   - case $.ui.keyCode.HOME:
220   - self._moveFocus(':first');
221   - break;
222   - case $.ui.keyCode.PAGE_UP:
223   - self._scrollPage('up');
224   - break;
225   - case $.ui.keyCode.PAGE_DOWN:
226   - self._scrollPage('down');
227   - break;
228   - case $.ui.keyCode.END:
229   - self._moveFocus(':last');
230   - break;
231   - case $.ui.keyCode.ENTER:
232   - case $.ui.keyCode.SPACE:
233   - self.close(event, true);
234   - $(event.target).parents('li:eq(0)').trigger('mouseup');
235   - break;
236   - case $.ui.keyCode.TAB:
237   - ret = true;
238   - self.close(event, true);
239   - $(event.target).parents('li:eq(0)').trigger('mouseup');
240   - break;
241   - case $.ui.keyCode.ESCAPE:
242   - self.close(event, true);
243   - break;
244   - default:
245   - ret = true;
246   - }
247   - return ret;
248   - })
249   - .bind('keypress.selectmenu', function(event) {
250   - self._typeAhead(event.which, 'focus');
251   - return true;
252   - })
253   - // this allows for using the scrollbar in an overflowed list
254   - .bind( 'mousedown.selectmenu mouseup.selectmenu', function() { return false; });
255   -
256   - // needed when window is resized
257   - // TODO seems to be useless, but causes errors (fnagel 01.08.11)
258   - // see: https://github.com/fnagel/jquery-ui/issues/147
259   - // $(window).bind( "resize.selectmenu", $.proxy( self._refreshPosition, this ) );
260   - },
261   -
262   - _init: function() {
263   - var self = this, o = this.options;
264   -
265   - // serialize selectmenu element options
266   - var selectOptionData = [];
267   - this.element
268   - .find('option')
269   - .each(function() {
270   - var opt = $(this);
271   - selectOptionData.push({
272   - value: opt.attr('value'),
273   - text: self._formatText(opt.text()),
274   - selected: opt.attr('selected'),
275   - disabled: opt.attr('disabled'),
276   - classes: opt.attr('class'),
277   - typeahead: opt.attr('typeahead'),
278   - parentOptGroup: opt.parent('optgroup'),
279   - bgImage: o.bgImage.call(opt)
280   - });
281   - });
282   -
283   - // active state class is only used in popup style
284   - var activeClass = (self.options.style == "popup") ? " ui-state-active" : "";
285   -
286   - // empty list so we can refresh the selectmenu via selectmenu()
287   - this.list.html("");
288   -
289   - // write li's
290   - if (selectOptionData.length) {
291   - for (var i = 0; i < selectOptionData.length; i++) {
292   - var thisLiAttr = { role : 'presentation' };
293   - if ( selectOptionData[ i ].disabled ) {
294   - thisLiAttr[ 'class' ] = this.namespace + '-state-disabled';
295   - }
296   - var thisAAttr = {
297   - html: selectOptionData[i].text,
298   - href : '#nogo',
299   - tabindex : -1,
300   - role : 'option',
301   - 'aria-selected' : false
302   - };
303   - if ( selectOptionData[ i ].disabled ) {
304   - thisAAttr[ 'aria-disabled' ] = selectOptionData[ i ].disabled;
305   - }
306   - if ( selectOptionData[ i ].typeahead ) {
307   - thisAAttr[ 'typeahead' ] = selectOptionData[ i ].typeahead;
308   - }
309   - var thisA = $('<a/>', thisAAttr);
310   - var thisLi = $('<li/>', thisLiAttr)
311   - .append(thisA)
312   - .data('index', i)
313   - .addClass(selectOptionData[i].classes)
314   - .data('optionClasses', selectOptionData[i].classes || '')
315   - .bind("mouseup.selectmenu", function(event) {
316   - if (self._safemouseup && !self._disabled(event.currentTarget) && !self._disabled($( event.currentTarget ).parents( "ul>li." + self.widgetBaseClass + "-group " )) ) {
317   - var changed = $(this).data('index') != self._selectedIndex();
318   - self.index($(this).data('index'));
319   - self.select(event);
320   - if (changed) {
321   - self.change(event);
322   - }
323   - self.close(event, true);
324   - }
325   - return false;
326   - })
327   - .bind("click.selectmenu", function() {
328   - return false;
329   - })
330   - .bind('mouseover.selectmenu focus.selectmenu', function(e) {
331   - // no hover if diabled
332   - if (!$(e.currentTarget).hasClass(self.namespace + '-state-disabled') && !$(e.currentTarget).parent("ul").parent("li").hasClass(self.namespace + '-state-disabled')) {
333   - self._selectedOptionLi().addClass(activeClass);
334   - self._focusedOptionLi().removeClass(self.widgetBaseClass + '-item-focus ui-state-hover');
335   - $(this).removeClass('ui-state-active').addClass(self.widgetBaseClass + '-item-focus ui-state-hover');
336   - }
337   - })
338   - .bind('mouseout.selectmenu blur.selectmenu', function() {
339   - if ($(this).is(self._selectedOptionLi().selector)) {
340   - $(this).addClass(activeClass);
341   - }
342   - $(this).removeClass(self.widgetBaseClass + '-item-focus ui-state-hover');
343   - });
344   -
345   - // optgroup or not...
346   - if ( selectOptionData[i].parentOptGroup.length ) {
347   - var optGroupName = self.widgetBaseClass + '-group-' + this.element.find( 'optgroup' ).index( selectOptionData[i].parentOptGroup );
348   - if (this.list.find( 'li.' + optGroupName ).length ) {
349   - this.list.find( 'li.' + optGroupName + ':last ul' ).append( thisLi );
350   - } else {
351   - $(' <li role="presentation" class="' + self.widgetBaseClass + '-group ' + optGroupName + (selectOptionData[i].parentOptGroup.attr("disabled") ? ' ' + this.namespace + '-state-disabled" aria-disabled="true"' : '"' ) + '><span class="' + self.widgetBaseClass + '-group-label">' + selectOptionData[i].parentOptGroup.attr('label') + '</span><ul></ul></li> ')
352   - .appendTo( this.list )
353   - .find( 'ul' )
354   - .append( thisLi );
355   - }
356   - } else {
357   - thisLi.appendTo(this.list);
358   - }
359   -
360   - // append icon if option is specified
361   - if (o.icons) {
362   - for (var j in o.icons) {
363   - if (thisLi.is(o.icons[j].find)) {
364   - thisLi
365   - .data('optionClasses', selectOptionData[i].classes + ' ' + self.widgetBaseClass + '-hasIcon')
366   - .addClass(self.widgetBaseClass + '-hasIcon');
367   - var iconClass = o.icons[j].icon || "";
368   - thisLi
369   - .find('a:eq(0)')
370   - .prepend('<span class="' + self.widgetBaseClass + '-item-icon ui-icon ' + iconClass + '"></span>');
371   - if (selectOptionData[i].bgImage) {
372   - thisLi.find('span').css('background-image', selectOptionData[i].bgImage);
373   - }
374   - }
375   - }
376   - }
377   - }
378   - } else {
379   - $('<li role="presentation"><a href="#nogo" tabindex="-1" role="option"></a></li>').appendTo(this.list);
380   - }
381   - // we need to set and unset the CSS classes for dropdown and popup style
382   - var isDropDown = ( o.style == 'dropdown' );
383   - this.newelement
384   - .toggleClass( self.widgetBaseClass + '-dropdown', isDropDown )
385   - .toggleClass( self.widgetBaseClass + '-popup', !isDropDown );
386   - this.list
387   - .toggleClass( self.widgetBaseClass + '-menu-dropdown ui-corner-bottom', isDropDown )
388   - .toggleClass( self.widgetBaseClass + '-menu-popup ui-corner-all', !isDropDown )
389   - // add corners to top and bottom menu items
390   - .find( 'li:first' )
391   - .toggleClass( 'ui-corner-top', !isDropDown )
392   - .end().find( 'li:last' )
393   - .addClass( 'ui-corner-bottom' );
394   - this.selectmenuIcon
395   - .toggleClass( 'ui-icon-triangle-1-s', isDropDown )
396   - .toggleClass( 'ui-icon-triangle-2-n-s', !isDropDown );
397   -
398   - // transfer classes to selectmenu and list
399   - if ( o.transferClasses ) {
400   - var transferClasses = this.element.attr( 'class' ) || '';
401   - this.newelement.add( this.list ).addClass( transferClasses );
402   - }
403   -
404   - // set menu width to either menuWidth option value, width option value, or select width
405   - if ( o.style == 'dropdown' ) {
406   - this.list.width( o.menuWidth ? o.menuWidth : o.width );
407   - } else {
408   - this.list.width( o.menuWidth ? o.menuWidth : o.width - o.handleWidth );
409   - }
410   -
411   - // reset height to auto
412   - this.list.css( 'height', 'auto' );
413   - var listH = this.listWrap.height();
414   - // calculate default max height
415   - if ( o.maxHeight && o.maxHeight < listH ) {
416   - this.list.height( o.maxHeight );
417   - } else {
418   - var winH = $( window ).height() / 3;
419   - if ( winH < listH ) this.list.height( winH );
420   - }
421   -
422   - // save reference to actionable li's (not group label li's)
423   - this._optionLis = this.list.find( 'li:not(.' + self.widgetBaseClass + '-group)' );
424   -
425   - // transfer disabled state
426   - if ( this.element.attr( 'disabled' ) ) {
427   - this.disable();
428   - } else {
429   - this.enable()
430   - }
431   -
432   - // update value
433   - this.index( this._selectedIndex() );
434   -
435   - // needed when selectmenu is placed at the very bottom / top of the page
436   - window.setTimeout( function() {
437   - self._refreshPosition();
438   - }, 200 );
439   - },
440   -
441   - destroy: function() {
442   - this.element.removeData( this.widgetName )
443   - .removeClass( this.widgetBaseClass + '-disabled' + ' ' + this.namespace + '-state-disabled' )
444   - .removeAttr( 'aria-disabled' )
445   - .unbind( ".selectmenu" );
446   -
447   - // TODO unneded as event binding has been disabled
448   - // $( window ).unbind( ".selectmenu" );
449   - $( document ).unbind( ".selectmenu" );
450   -
451   - // unbind click on label, reset its for attr
452   - $( 'label[for=' + this.newelement.attr('id') + ']' )
453   - .attr( 'for', this.element.attr( 'id' ) )
454   - .unbind( '.selectmenu' );
455   -
456   - this.newelementWrap.remove();
457   - this.listWrap.remove();
458   -
459   - this.element.show();
460   -
461   - // call widget destroy function
462   - $.Widget.prototype.destroy.apply(this, arguments);
463   - },
464   -
465   - _typeAhead: function( code, eventType ){
466   - var self = this, focusFound = false, C = String.fromCharCode(code).toUpperCase();
467   - c = C.toLowerCase();
468   -
469   - if ( self.options.typeAhead == 'sequential' ) {
470   - // clear the timeout so we can use _prevChar
471   - window.clearTimeout('ui.selectmenu-' + self.selectmenuId);
472   -
473   - // define our find var
474   - var find = typeof( self._prevChar ) == 'undefined' ? '' : self._prevChar.join( '' );
475   -
476   - function focusOptSeq( elem, ind, c ){
477   - focusFound = true;
478   - $( elem ).trigger( eventType );
479   - typeof( self._prevChar ) == 'undefined' ? self._prevChar = [ c ] : self._prevChar[ self._prevChar.length ] = c;
480   - }
481   - this.list.find( 'li a' ).each( function( i ) {
482   - if ( !focusFound ) {
483   - // allow the typeahead attribute on the option tag for a more specific lookup
484   - var thisText = $( this ).attr( 'typeahead' ) || $(this).text();
485   - if ( thisText.indexOf( find + C ) === 0 ) {
486   - focusOptSeq( this, i, C );
487   - } else if (thisText.indexOf(find+c) === 0 ) {
488   - focusOptSeq( this, i, c );
489   - }
490   - }
491   - });
492   - // set a 1 second timeout for sequenctial typeahead
493   - // keep this set even if we have no matches so it doesnt typeahead somewhere else
494   - window.setTimeout( function( el ) {
495   - self._prevChar = undefined;
496   - }, 1000, self );
497   -
498   - } else {
499   - // define self._prevChar if needed
500   - if ( !self._prevChar ) { self._prevChar = [ '' , 0 ]; }
501   -
502   - focusFound = false;
503   - function focusOpt( elem, ind ){
504   - focusFound = true;
505   - $( elem ).trigger( eventType );
506   - self._prevChar[ 1 ] = ind;
507   - }
508   - this.list.find( 'li a' ).each(function( i ){
509   - if (!focusFound){
510   - var thisText = $(this).text();
511   - if ( thisText.indexOf( C ) === 0 || thisText.indexOf( c ) === 0 ) {
512   - if (self._prevChar[0] == C){
513   - if ( self._prevChar[ 1 ] < i ){ focusOpt( this, i ); }
514   - } else{
515   - focusOpt( this, i );
516   - }
517   - }
518   - }
519   - });
520   - this._prevChar[ 0 ] = C;
521   - }
522   - },
523   -
524   - // returns some usefull information, called by callbacks only
525   - _uiHash: function() {
526   - var index = this.index();
527   - return {
528   - index: index,
529   - option: $("option", this.element).get(index),
530   - value: this.element[0].value
531   - };
532   - },
533   -
534   - open: function(event) {
535   - var self = this, o = this.options;
536   - if ( self.newelement.attr("aria-disabled") != 'true' ) {
537   - self._closeOthers(event);
538   - self.newelement.addClass('ui-state-active');
539   -
540   - self.listWrap.appendTo( o.appendTo );
541   - self.list.attr('aria-hidden', false);
542   -
543   - if ( o.style == "dropdown" ) {
544   - self.newelement.removeClass('ui-corner-all').addClass('ui-corner-top');
545   - }
546   -
547   - self.listWrap.addClass( self.widgetBaseClass + '-open' );
548   - // positioning needed for IE7 (tested 01.08.11 on MS VPC Image)
549   - // see https://github.com/fnagel/jquery-ui/issues/147
550   - if ( $.browser.msie && $.browser.version.substr( 0,1 ) == 7 ) {
551   - self._refreshPosition();
552   - }
553   - var selected = self.list.attr('aria-hidden', false).find('li:not(.' + self.widgetBaseClass + '-group):eq(' + self._selectedIndex() + '):visible a');
554   - if (selected.length) selected[0].focus();
555   - // positioning needed for FF, Chrome, IE8, IE7, IE6 (tested 01.08.11 on MS VPC Image)
556   - self._refreshPosition();
557   -
558   - self._trigger("open", event, self._uiHash());
559   - }
560   - },
561   -
562   - close: function(event, retainFocus) {
563   - if ( this.newelement.is('.ui-state-active') ) {
564   - this.newelement
565   - .removeClass('ui-state-active');
566   - this.listWrap.removeClass(this.widgetBaseClass + '-open');
567   - this.list.attr('aria-hidden', true);
568   - if ( this.options.style == "dropdown" ) {
569   - this.newelement.removeClass('ui-corner-top').addClass('ui-corner-all');
570   - }
571   - if ( retainFocus ) {
572   - this.newelement.focus();
573   - }
574   - this._trigger("close", event, this._uiHash());
575   - }
576   - },
577   -
578   - change: function(event) {
579   - this.element.trigger("change");
580   - this._trigger("change", event, this._uiHash());
581   - },
582   -
583   - select: function(event) {
584   - if (this._disabled(event.currentTarget)) { return false; }
585   - this._trigger("select", event, this._uiHash());
586   - },
587   -
588   - _closeOthers: function(event) {
589   - $('.' + this.widgetBaseClass + '.ui-state-active').not(this.newelement).each(function() {
590   - $(this).data('selectelement').selectmenu('close', event);
591   - });
592   - $('.' + this.widgetBaseClass + '.ui-state-hover').trigger('mouseout');
593   - },
594   -
595   - _toggle: function(event, retainFocus) {
596   - if ( this.list.parent().is('.' + this.widgetBaseClass + '-open') ) {
597   - this.close(event, retainFocus);
598   - } else {
599   - this.open(event);
600   - }
601   - },
602   -
603   - _formatText: function(text) {
604   - return (this.options.format ? this.options.format(text) : text);
605   - },
606   -
607   - _selectedIndex: function() {
608   - return this.element[0].selectedIndex;
609   - },
610   -
611   - _selectedOptionLi: function() {
612   - return this._optionLis.eq(this._selectedIndex());
613   - },
614   -
615   - _focusedOptionLi: function() {
616   - return this.list.find('.' + this.widgetBaseClass + '-item-focus');
617   - },
618   -
619   - _moveSelection: function(amt, recIndex) {
620   - // do nothing if disabled
621   - if (!this.options.disabled) {
622   - var currIndex = parseInt(this._selectedOptionLi().data('index') || 0, 10);
623   - var newIndex = currIndex + amt;
624   - // do not loop when using up key
625   -
626   - if (newIndex < 0) {
627   - newIndex = 0;
628   - }
629   - if (newIndex > this._optionLis.size() - 1) {
630   - newIndex = this._optionLis.size() - 1;
631   - }
632   - // Occurs when a full loop has been made
633   - if (newIndex === recIndex) { return false; }
634   -
635   - if (this._optionLis.eq(newIndex).hasClass( this.namespace + '-state-disabled' )) {
636   - // if option at newIndex is disabled, call _moveFocus, incrementing amt by one
637   - (amt > 0) ? ++amt : --amt;
638   - this._moveSelection(amt, newIndex);
639   - } else {
640   - return this._optionLis.eq(newIndex).trigger('mouseup');
641   - }
642   - }
643   - },
644   -
645   - _moveFocus: function(amt, recIndex) {
646   - if (!isNaN(amt)) {
647   - var currIndex = parseInt(this._focusedOptionLi().data('index') || 0, 10);
648   - var newIndex = currIndex + amt;
649   - } else {
650   - var newIndex = parseInt(this._optionLis.filter(amt).data('index'), 10);
651   - }
652   -
653   - if (newIndex < 0) {
654   - newIndex = 0;
655   - }
656   - if (newIndex > this._optionLis.size() - 1) {
657   - newIndex = this._optionLis.size() - 1;
658   - }
659   -
660   - //Occurs when a full loop has been made
661   - if (newIndex === recIndex) { return false; }
662   -
663   - var activeID = this.widgetBaseClass + '-item-' + Math.round(Math.random() * 1000);
664   -
665   - this._focusedOptionLi().find('a:eq(0)').attr('id', '');
666   -
667   - if (this._optionLis.eq(newIndex).hasClass( this.namespace + '-state-disabled' )) {
668   - // if option at newIndex is disabled, call _moveFocus, incrementing amt by one
669   - (amt > 0) ? ++amt : --amt;
670   - this._moveFocus(amt, newIndex);
671   - } else {
672   - this._optionLis.eq(newIndex).find('a:eq(0)').attr('id',activeID).focus();
673   - }
674   -
675   - this.list.attr('aria-activedescendant', activeID);
676   - },
677   -
678   - _scrollPage: function(direction) {
679   - var numPerPage = Math.floor(this.list.outerHeight() / this.list.find('li:first').outerHeight());
680   - numPerPage = (direction == 'up' ? -numPerPage : numPerPage);
681   - this._moveFocus(numPerPage);
682   - },
683   -
684   - _setOption: function(key, value) {
685   - this.options[key] = value;
686   - // set
687   - if (key == 'disabled') {
688   - this.close();
689   - this.element
690   - .add(this.newelement)
691   - .add(this.list)[value ? 'addClass' : 'removeClass'](
692   - this.widgetBaseClass + '-disabled' + ' ' +
693   - this.namespace + '-state-disabled')
694   - .attr("aria-disabled", value);
695   - }
696   - },
697   -
698   - disable: function(index, type){
699   - // if options is not provided, call the parents disable function
700   - if ( typeof( index ) == 'undefined' ) {
701   - this._setOption( 'disabled', true );
702   - } else {
703   - if ( type == "optgroup" ) {
704   - this._disableOptgroup(index);
705   - } else {
706   - this._disableOption(index);
707   - }
708   - }
709   - },
710   -
711   - enable: function(index, type) {
712   - // if options is not provided, call the parents enable function
713   - if ( typeof( index ) == 'undefined' ) {
714   - this._setOption('disabled', false);
715   - } else {
716   - if ( type == "optgroup" ) {
717   - this._enableOptgroup(index);
718   - } else {
719   - this._enableOption(index);
720   - }
721   - }
722   - },
723   -
724   - _disabled: function(elem) {
725   - return $(elem).hasClass( this.namespace + '-state-disabled' );
726   - },
727   -
728   -
729   - _disableOption: function(index) {
730   - var optionElem = this._optionLis.eq(index);
731   - if (optionElem) {
732   - optionElem.addClass(this.namespace + '-state-disabled')
733   - .find("a").attr("aria-disabled", true);
734   - this.element.find("option").eq(index).attr("disabled", "disabled");
735   - }
736   - },
737   -
738   - _enableOption: function(index) {
739   - var optionElem = this._optionLis.eq(index);
740   - if (optionElem) {
741   - optionElem.removeClass( this.namespace + '-state-disabled' )
742   - .find("a").attr("aria-disabled", false);
743   - this.element.find("option").eq(index).removeAttr("disabled");
744   - }
745   - },
746   -
747   - _disableOptgroup: function(index) {
748   - var optGroupElem = this.list.find( 'li.' + this.widgetBaseClass + '-group-' + index );
749   - if (optGroupElem) {
750   - optGroupElem.addClass(this.namespace + '-state-disabled')
751   - .attr("aria-disabled", true);
752   - this.element.find("optgroup").eq(index).attr("disabled", "disabled");
753   - }
754   - },
755   -
756   - _enableOptgroup: function(index) {
757   - var optGroupElem = this.list.find( 'li.' + this.widgetBaseClass + '-group-' + index );
758   - if (optGroupElem) {
759   - optGroupElem.removeClass(this.namespace + '-state-disabled')
760   - .attr("aria-disabled", false);
761   - this.element.find("optgroup").eq(index).removeAttr("disabled");
762   - }
763   - },
764   -
765   - index: function(newValue) {
766   - if (arguments.length) {
767   - if (!this._disabled($(this._optionLis[newValue]))) {
768   - this.element[0].selectedIndex = newValue;
769   - this._refreshValue();
770   - } else {
771   - return false;
772   - }
773   - } else {
774   - return this._selectedIndex();
775   - }
776   - },
777   -
778   - value: function(newValue) {
779   - if (arguments.length) {
780   - this.element[0].value = newValue;
781   - this._refreshValue();
782   - } else {
783   - return this.element[0].value;
784   - }
785   - },
786   -
787   - _refreshValue: function() {
788   - var activeClass = (this.options.style == "popup") ? " ui-state-active" : "";
789   - var activeID = this.widgetBaseClass + '-item-' + Math.round(Math.random() * 1000);
790   - // deselect previous
791   - this.list
792   - .find('.' + this.widgetBaseClass + '-item-selected')
793   - .removeClass(this.widgetBaseClass + "-item-selected" + activeClass)
794   - .find('a')
795   - .attr('aria-selected', 'false')
796   - .attr('id', '');
797   - // select new
798   - this._selectedOptionLi()
799   - .addClass(this.widgetBaseClass + "-item-selected" + activeClass)
800   - .find('a')
801   - .attr('aria-selected', 'true')
802   - .attr('id', activeID);
803   -
804   - // toggle any class brought in from option
805   - var currentOptionClasses = (this.newelement.data('optionClasses') ? this.newelement.data('optionClasses') : "");
806   - var newOptionClasses = (this._selectedOptionLi().data('optionClasses') ? this._selectedOptionLi().data('optionClasses') : "");
807   - this.newelement
808   - .removeClass(currentOptionClasses)
809   - .data('optionClasses', newOptionClasses)
810   - .addClass( newOptionClasses )
811   - .find('.' + this.widgetBaseClass + '-status')
812   - .html(
813   - this._selectedOptionLi()
814   - .find('a:eq(0)')
815   - .html()
816   - );
817   -
818   - this.list.attr('aria-activedescendant', activeID);
819   - },
820   -
821   - _refreshPosition: function() {
822   - var o = this.options;
823   -
824   - // if its a native pop-up we need to calculate the position of the selected li
825   - if ( o.style == "popup" && !o.positionOptions.offset ) {
826   - var selected = this._selectedOptionLi();
827   - var _offset = "0 -" + ( selected.outerHeight() + selected.offset().top - this.list.offset().top );
828   - }
829   - // update zIndex if jQuery UI is able to process
830   - var zIndexElement = this.element.zIndex();
831   - if ( zIndexElement ) {
832   - this.listWrap.css( 'zIndex', zIndexElement );
833   - }
834   - this.listWrap.position({
835   - // set options for position plugin
836   - of: o.positionOptions.of || this.newelement,
837   - my: o.positionOptions.my,
838   - at: o.positionOptions.at,
839   - offset: o.positionOptions.offset || _offset,
840   - collision: o.positionOptions.collision || 'flip'
841   - });
842   - }
843   -});
844   -
845   -})(jQuery);
app/assets/javascripts/projects.js
... ... @@ -8,7 +8,7 @@ $(document).ready(function(){
8 8 e.stopPropagation();
9 9 $(this).find("td.tree-item-file-name a").click();
10 10 return false;
11   - }
  11 + }
12 12 });
13 13  
14 14 $("#projects-list .project").live('click', function(e){
... ...
app/assets/stylesheets/application.css
... ... @@ -2,6 +2,8 @@
2 2 * This is a manifest file that'll automatically include all the stylesheets available in this directory
3 3 * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
4 4 * the top of the compiled file, but it's generally better to create a new file per style scope.
  5 + *= require jquery-ui/jquery-ui
  6 + *= require jquery-ui/jquery.ui.selectmenu
5 7 *= require_self
6   - *= require_tree .
  8 + *= require_tree .
7 9 */
... ...
app/assets/stylesheets/highlight.css.scss
1   -@mixin round-borders-all($radius) {
  1 +@mixin round-borders-all($radius) {
2 2 border: 1px solid #eaeaea;
3 3 -moz-border-radius: $radius;
4 4 -webkit-border-radius: $radius;
... ... @@ -28,11 +28,11 @@ td.linenos{
28 28 .highlight pre{
29 29 }
30 30  
31   -.linenodiv pre {
  31 +.linenodiv pre {
32 32 white-space:pre-line;
33 33 }
34 34  
35   -td.linenos {
  35 +td.linenos {
36 36 background:#ECECEC;
37 37 color:#777;
38 38 padding:10px 0px 0px 10px;
... ... @@ -42,7 +42,7 @@ td.linenos {
42 42  
43 43 }
44 44  
45   -td.code .highlight {
  45 +td.code .highlight {
46 46 overflow: auto;
47 47 }
48 48 table.highlighttable pre{
... ... @@ -53,9 +53,8 @@ table.highlighttable pre{
53 53 text-align:left;
54 54 }
55 55  
56   -
57 56 .git-empty .highlight {
58   - @include round-borders-all(4px);
  57 + @include round-borders-all(4px);
59 58 background:#eee;
60 59 padding:5px;
61 60 //overflow-x:scroll;
... ... @@ -71,10 +70,9 @@ table.highlighttable pre{
71 70 .shadow{
72 71 -webkit-box-shadow:0 5px 15px #000;
73 72 -moz-box-shadow:0 5px 15px #000;
74   - box-shadow:0 5px 15px #000;
  73 + box-shadow:0 5px 15px #000;
75 74 }
76 75  
77   -
78 76 .hll { background-color: #ffffff }
79 77 .c { color: #888888; font-style: italic } /* Comment */
80 78 .err { color: #a61717; background-color: #e3d2d2 } /* Error */
... ... @@ -105,7 +103,7 @@ table.highlighttable pre{
105 103 .highlight .nb{color:#0086B3;} /* Name.Builtin */
106 104 .highlight .nc{color:#458;font-weight:bold;} /* Name.Class */
107 105 .highlight .no{color:#008080;} /* Name.Constant */
108   -.highlight .ni{color:#800080;}
  106 +.highlight .ni{color:#800080;}
109 107 .highlight .ne{color:#900;font-weight:bold;} /* Name.Exception */
110 108 .highlight .nf{color:#900;font-weight:bold;} /* Name.Function */
111 109 .highlight .nn{color:#005;font-weight:bold;} /* Name.Namespace */
... ...
app/assets/stylesheets/jquery.ui.selectmenu.css
... ... @@ -1,33 +0,0 @@
1   -/* Selectmenu
2   -----------------------------------*/
3   -.ui-selectmenu { background:none; font-size:12px;display: block; display: inline-block; position: relative; height: 2.2em; vertical-align: middle; text-decoration: none; overflow: hidden; zoom: 1; }
4   -.ui-selectmenu-icon { position:absolute; right:6px; margin-top:-8px; top: 50%; }
5   -.ui-selectmenu-menu { padding:0; margin:0; position:absolute; top: 0; display: none; z-index: 1005;} /* z-index: 1005 to make selectmenu work with dialog */
6   -.ui-selectmenu-menu ul { padding:0; margin:0; list-style:none; position: relative; overflow: auto; overflow-y: auto ; overflow-x: hidden; }
7   -.ui-selectmenu-open { display: block; }
8   -.ui-selectmenu.ui-widget { background:none; }
9   -.ui-selectmenu-menu-popup { margin-top: -1px; }
10   -.ui-selectmenu-menu-dropdown { }
11   -.ui-selectmenu-menu li.ui-state-active { background:#F7FBFC; border:none; padding:1px 0;}
12   -.ui-selectmenu-menu li { padding:0; margin:0; display: block; border-top: 1px dotted transparent; border-bottom: 1px dotted transparent; border-right-width: 0 !important; border-left-width: 0 !important; font-weight: normal !important; }
13   -.ui-selectmenu-menu li a,.ui-selectmenu-status { line-height: 1.4em; display: block; padding: .405em 2.1em .405em 1em; outline:none; text-decoration:none; }
14   -.ui-selectmenu-menu li.ui-state-disabled a, .ui-state-disabled { cursor: default; }
15   -.ui-selectmenu-menu li.ui-selectmenu-hasIcon a,
16   -.ui-selectmenu-hasIcon .ui-selectmenu-status { padding-left: 20px; position: relative; margin-left: 5px; }
17   -.ui-selectmenu-menu li .ui-icon, .ui-selectmenu-status .ui-icon { position: absolute; top: 1em; margin-top: -8px; left: 0; }
18   -.ui-selectmenu-status { line-height: 1.4em; }
19   -.ui-selectmenu-open li.ui-selectmenu-item-focus { background: none repeat scroll 0 0 #FFF6BF; border:1px solid #eaeaea;}
20   -.ui-selectmenu-open li.ui-selectmenu-item-selected { }
21   -.ui-selectmenu-menu li span,.ui-selectmenu-status span { display:block; margin-bottom: .2em; }
22   -.ui-selectmenu-menu li .ui-selectmenu-item-header { font-weight: bold; }
23   -.ui-selectmenu-menu li .ui-selectmenu-item-content { }
24   -.ui-selectmenu-menu li .ui-selectmenu-item-footer { opacity: .8; }
25   -/* for optgroups */
26   -.ui-selectmenu-menu .ui-selectmenu-group { font-size: 1em; }
27   -.ui-selectmenu-menu .ui-selectmenu-group .ui-selectmenu-group-label { line-height: 1.4em; display:block; padding: .6em .5em 0; font-weight: bold; }
28   -.ui-selectmenu-menu .ui-selectmenu-group ul { margin: 0; padding: 0; }
29   -/* IE6 workaround (dotted transparent borders) */
30   -* html .ui-selectmenu-menu li { border-color: pink; filter:chroma(color=pink); width:100%; }
31   -* html .ui-selectmenu-menu li a { position: relative }
32   -/* IE7 workaround (opacity disabled) */
33   -*+html .ui-state-disabled, *+html .ui-state-disabled a { color: silver; }
app/assets/stylesheets/projects.css.scss
... ... @@ -2,7 +2,7 @@
2 2 // They will automatically be included in application.css.
3 3 // You can use Sass (SCSS) here: http://sass-lang.com/
4 4  
5   -@mixin round-borders-bottom($radius) {
  5 +@mixin round-borders-bottom($radius) {
6 6 border-top: 1px solid #eaeaea;
7 7  
8 8 -moz-border-radius-bottomright: $radius;
... ... @@ -15,7 +15,7 @@
15 15 -webkit-border-bottom-right-radius: $radius;
16 16 }
17 17  
18   -@mixin round-borders-top($radius) {
  18 +@mixin round-borders-top($radius) {
19 19 border-top: 1px solid #eaeaea;
20 20  
21 21 -moz-border-radius-topright: $radius;
... ... @@ -28,14 +28,14 @@
28 28 -webkit-border-top-right-radius: $radius;
29 29 }
30 30  
31   -@mixin round-borders-all($radius) {
  31 +@mixin round-borders-all($radius) {
32 32 border: 1px solid #eaeaea;
33 33 -moz-border-radius: $radius;
34 34 -webkit-border-radius: $radius;
35 35 border-radius: $radius;
36 36 }
37 37  
38   -@mixin hover-color {
  38 +@mixin hover-color {
39 39 background: #fff !important;
40 40 background: -webkit-gradient(linear,left top,left bottom,from(#fff),to(#FFF6BF)) !important;
41 41 background: -moz-linear-gradient(top,#fff,#FFF6BF) !important;
... ... @@ -46,47 +46,47 @@
46 46 border:1px solid #CCC;
47 47 margin-bottom:1em;
48 48  
49   - .diff_file_header {
  49 + .diff_file_header {
50 50 padding:5px 5px;
51 51 border-bottom:1px solid #CCC;
52 52 background: #eee;
53 53 }
54   - .diff_file_content {
  54 + .diff_file_content {
55 55 overflow-x: scroll;
56 56 background:#fff;
57 57 color:#333;
58 58 font-size: 12px;
59 59 font-family: 'Courier New', 'andale mono','lucida console',monospace;
60 60 }
61   - .diff_file_content_image {
  61 + .diff_file_content_image {
62 62 background:#eee;
63 63 text-align:center;
64   - img {
  64 + img {
65 65 padding:100px;
66 66 max-width:300px;
67 67 }
68 68 }
69 69 }
70 70  
71   -#logo {
72   - &:hover {
  71 +#logo {
  72 + &:hover {
73 73 background:none;
74 74 }
75 75 }
76 76  
77   -.file_stats {
  77 +.file_stats {
78 78 margin-bottom:10px;
79 79 @include round-borders-all(4px);
80 80  
81   - span {
  81 + span {
82 82 border-top: 1px solid #eaeaea;
83 83 padding:5px 5px;
84 84 display:block;
85   - &:first-child {
  85 + &:first-child {
86 86 border-top:none;
87 87 }
88 88  
89   - img {
  89 + img {
90 90 width:18px;
91 91 float:left;
92 92 margin-right: 6px;
... ... @@ -94,15 +94,15 @@
94 94 }
95 95 }
96 96  
97   -.round-borders {
  97 +.round-borders {
98 98 @include round-borders-all(4px);
99 99 padding: 4px 0px;
100 100 }
101   -table.round-borders {
  101 +table.round-borders {
102 102 float:left;
103 103 }
104 104  
105   -.day-commits-table {
  105 +.day-commits-table {
106 106 @include round-borders-all(4px);
107 107 padding: 4px 0px;
108 108 margin-bottom:10px;
... ... @@ -110,55 +110,54 @@ table.round-borders {
110 110 width:100%;
111 111 background: #E6F1F6;
112 112  
113   - .day-header {
  113 + .day-header {
114 114 padding:10px;
115 115 h3 {
116 116 margin:0px;
117 117 }
118 118 }
119 119  
120   - ul {
  120 + ul {
121 121 display:block;
122 122 list-style:none;
123 123 margin:0px;
124 124 padding:0px;
125 125  
126   - li.commit {
  126 + li.commit {
127 127 display:list-item;
128 128 padding:8px;
129 129 margin:0px;
130 130 background: #F7FBFC;
131 131 border-top: 1px solid #E2EAEE;
132 132  
133   - &:first-child {
  133 + &:first-child {
134 134 border-top: 1px solid #E2EAEE;
135 135 }
136 136 &:nth-child(2n+1) {
137 137 background: white;
138 138 }
139 139  
140   - a.button {
  140 + a.button {
141 141 width:85px;
142 142 padding:10px;
143 143 margin:0px;
144 144 float:right;
145 145 }
146   - p {
  146 + p {
147 147 margin-bottom: 3px;
148 148 font-size: 13px;
149 149 }
150 150 }
151 151 }
152 152 }
153   -@mixin panel-color {
  153 +@mixin panel-color {
154 154 background: #111 !important;
155 155 background: -webkit-gradient(linear,left top,left bottom,from(#333),to(#111)) !important;
156 156 background: -moz-linear-gradient(top,#333,#111) !important;
157 157 background: transparent 9 !important;
158 158 }
159 159  
160   -
161   -#header-panel {
  160 +#header-panel {
162 161 @include panel-color;
163 162 height:40px;
164 163 position:fixed;
... ... @@ -178,23 +177,23 @@ table.round-borders {
178 177 color:white;
179 178 }
180 179  
181   - &.current {
  180 + &.current {
182 181 border-bottom: 3px solid #EAEAEA !important;
183 182 padding: 10px 20px 0;
184 183 color: #eaeaea;
185 184 }
186 185 }
187   - .search-holder {
  186 + .search-holder {
188 187 float:left;
189   - width:290px;
  188 + width:290px;
190 189 input {
191 190 @include round-borders-all(4px);
192   - width:290px;
  191 + width:290px;
193 192 border-color:#888;
194 193 padding:5px;
195 194 background:#666;
196 195 color:#222;
197   - &:focus {
  196 + &:focus {
198 197 background:#fff;
199 198 color:#000;
200 199 }
... ... @@ -211,7 +210,7 @@ table.round-borders {
211 210 padding:20px;
212 211 }
213 212  
214   -body {
  213 +body {
215 214 background: #eaeaea;
216 215 }
217 216  
... ... @@ -220,7 +219,7 @@ a {
220 219 }
221 220  
222 221 .diff_file_content{
223   - .old_line, .new_line {
  222 + .old_line, .new_line {
224 223 background:#ECECEC;
225 224 color:#777;
226 225 width:15px;
... ... @@ -230,9 +229,8 @@ a {
230 229 }
231 230 }
232 231  
233   -
234 232 .view_file_content{
235   - .old_line, .new_line {
  233 + .old_line, .new_line {
236 234 background:#ECECEC;
237 235 color:#777;
238 236 width:15px;
... ... @@ -249,20 +247,20 @@ a {
249 247 border:1px solid #CCC;
250 248 margin-bottom:1em;
251 249  
252   - .view_file_header {
  250 + .view_file_header {
253 251 padding:5px 5px;
254 252 border-bottom:1px solid #CCC;
255 253 background: #eee;
256 254 }
257   - .view_file_content {
  255 + .view_file_content {
258 256 background:#fff;
259 257 color:#514721;
260 258 font-size: 11px;
261 259 }
262   - .view_file_content_image {
  260 + .view_file_content_image {
263 261 background:#eee;
264 262 text-align:center;
265   - img {
  263 + img {
266 264 padding:100px;
267 265 max-width:300px;
268 266 }
... ... @@ -273,7 +271,7 @@ a {
273 271  
274 272 }
275 273  
276   -input.ssh_project_url {
  274 +input.ssh_project_url {
277 275 padding:5px;
278 276 margin:0px;
279 277 float:right;
... ... @@ -281,12 +279,10 @@ input.ssh_project_url {
281 279 text-align:center;
282 280 }
283 281  
284   -
285   -
286   -.day-commits-table li.commit {
  282 +.day-commits-table li.commit {
287 283 cursor:pointer;
288 284  
289   - &:hover {
  285 + &:hover {
290 286 @include hover-color;
291 287 }
292 288 }
... ... @@ -295,39 +291,39 @@ input.ssh_project_url {
295 291 #FFF6BF
296 292 #FFD324
297 293 */
298   -#tree-slider tr.tree-item {
  294 +#tree-slider tr.tree-item {
299 295 cursor:pointer;
300 296  
301   - &:hover {
  297 + &:hover {
302 298 @include hover-color;
303   - td {
  299 + td {
304 300 @include hover-color;
305 301 }
306 302 }
307 303 }
308   -#projects-list .project {
  304 +#projects-list .project {
309 305 height:50px;
310 306 }
311 307  
312 308 #projects-list .project,
313 309 #snippets-table .snippet,
314   -#issues-table .issue{
  310 +#issues-table .issue{
315 311 cursor:pointer;
316 312  
317   - &:hover {
  313 + &:hover {
318 314 @include hover-color;
319   - td {
  315 + td {
320 316 @include hover-color;
321 317 }
322 318 }
323 319 }
324 320  
325   -.clear {
  321 +.clear {
326 322 clear: both;
327 323 }
328 324  
329   -.top_project_menu {
330   - a {
  325 +.top_project_menu {
  326 + a {
331 327 border-right: 1px solid #FFFFFF;
332 328 box-shadow: -1px 0 #DDDDDD inset;
333 329 color: #666;
... ... @@ -339,7 +335,7 @@ input.ssh_project_url {
339 335 text-shadow: 0 1px 0 #FFFFFF;
340 336 float:left;
341 337  
342   - &.current {
  338 + &.current {
343 339 background-color: #FFFFFF;
344 340 color: #222222;
345 341 }
... ... @@ -363,11 +359,11 @@ input.ssh_project_url {
363 359 .new_project,
364 360 .new_snippet,
365 361 .edit_snippet,
366   -.edit_project {
  362 +.edit_project {
367 363 input[type='text'],
368 364 input[type='email'],
369 365 input[type='password'],
370   - textarea {
  366 + textarea {
371 367 width:400px;
372 368 padding:8px;
373 369 font-size:14px;
... ... @@ -375,7 +371,7 @@ input.ssh_project_url {
375 371 }
376 372 }
377 373  
378   -.input_button {
  374 +.input_button {
379 375 //@include round-borders-all(4px);
380 376 padding:8px;
381 377 font-size:14px;
... ... @@ -393,7 +389,7 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
393 389 border-bottom: 1px solid #E2EAEE;
394 390 }
395 391  
396   -.top_menu_count {
  392 +.top_menu_count {
397 393 background: none repeat scroll 0 0 #FFF6BF;
398 394 border-color: #FFD324;
399 395 color: #514721;
... ... @@ -417,7 +413,7 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
417 413  
418 414 /** FALSH **/
419 415  
420   -#flash_container {
  416 +#flash_container {
421 417 height:40px;
422 418 position:fixed;
423 419 z-index:1009;
... ... @@ -429,7 +425,7 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
429 425 cursor:pointer;
430 426 border-bottom:1px solid #777;
431 427  
432   - h4 {
  428 + h4 {
433 429 color:#444;
434 430 font-size:22px;
435 431 padding-top:5px;
... ... @@ -460,50 +456,50 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
460 456 color: #0099FF;
461 457 }
462 458  
463   - &.hm {
  459 + &.hm {
464 460 margin: 0px 0px;
465 461 }
466 462  
467   - &.vm {
  463 + &.vm {
468 464 margin: 5px 0px;
469 465 }
470 466 }
471 467  
472 468 /** Notes **/
473 469  
474   -#notes-list {
  470 +#notes-list {
475 471 display:block;
476 472 list-style:none;
477 473 margin:0px;
478 474 padding:0px;
479 475  
480   - li {
  476 + li {
481 477 display:list-item;
482 478 padding:8px;
483 479 margin:0px;
484 480 background: #F7FBFC;
485 481 border-top: 1px solid #E2EAEE;
486 482  
487   - &:first-child {
  483 + &:first-child {
488 484 border-top: none;
489 485 }
490 486 &:nth-child(2n+1) {
491 487 background: white;
492 488 }
493   - p {
  489 + p {
494 490 margin-bottom: 4px;
495 491 font-size: 13px;
496 492 color:#111;
497 493 }
498 494 }
499   - cite {
500   - &.ago {
  495 + cite {
  496 + &.ago {
501 497 color:#666;
502 498 }
503 499 }
504 500 }
505 501  
506   -.notes_count {
  502 +.notes_count {
507 503 background: none repeat scroll 0 0 #FFF6BF;
508 504 border-color: #FFD324;
509 505 color: #514721;
... ... @@ -515,36 +511,36 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
515 511 right: 6px;
516 512 top: 6px;
517 513 }
518   -.note_author {
  514 +.note_author {
519 515 float:left;
520 516 width:60px;
521 517 }
522   -.note_content {
  518 +.note_content {
523 519 float:left;
524 520 width:650px;
525 521 }
526 522  
527   -.issue_notes {
528   - .note_content {
  523 +.issue_notes {
  524 + .note_content {
529 525 float:left;
530 526 width:400px;
531 527 }
532 528 }
533 529  
534 530 #user_projects_limit{
535   - width: 60px;
  531 + width: 60px;
536 532 }
537 533  
538   -.project_thumb {
  534 +.project_thumb {
539 535 margin:20px 0;
540 536 width: 250px;
541 537 float:left;
542 538 padding:20px;
543 539 text-align:center;
544   - p, h4 {
  540 + p, h4 {
545 541 text-align:left;
546 542 }
547   - .lbutton {
  543 + .lbutton {
548 544 float:left;
549 545 }
550 546 }
... ... @@ -559,8 +555,8 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
559 555 padding: 10px;
560 556 }
561 557  
562   -.recent_message_parent {
563   - img {
  558 +.recent_message_parent {
  559 + img {
564 560 padding-right:10px;
565 561 }
566 562  
... ... @@ -571,7 +567,7 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
571 567  
572 568 &.dash_wall{
573 569 border-bottom: 2px solid orange;
574   - span {
  570 + span {
575 571 background: orange;
576 572 color:black;
577 573 }
... ... @@ -579,14 +575,14 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
579 575  
580 576 &.dash_issue{
581 577 border-bottom: 2px solid #ffbbbb;
582   - span {
  578 + span {
583 579 background: #ffbbbb;
584 580 }
585 581 }
586 582 &.dash_commit{
587 583 border-bottom: 2px solid #bbbbff;
588 584  
589   - span{
  585 + span{
590 586 background: #bbbbff;
591 587 }
592 588 }
... ... @@ -594,27 +590,26 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
594 590 &.dash_snippet{
595 591 border-bottom: 2px solid #bbffbb;
596 592  
597   - span{
  593 + span{
598 594 background: #bbffbb;
599 595 }
600 596 }
601 597  
602   -
603   - span{
  598 + span{
604 599 border: 1px solid #aaa;
605 600 color:black;
606 601 padding:1px 4px;
607 602 }
608 603  
609   - h4 {
  604 + h4 {
610 605 margin-bottom:3px;
611 606 }
612 607  
613 608 }
614 609 .commit,
615   -.message,
  610 +.message,
616 611 #notes-list{
617   - .author {
  612 + .author {
618 613 background: #eaeaea;
619 614 color: #333;
620 615 border: 1px solid #aaa;
... ... @@ -624,17 +619,17 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
624 619 }
625 620  
626 621 /* Note textare */
627   -#note_note {
  622 +#note_note {
628 623 height:100px;
629 624 width:97%;
630 625 font-size:14px;
631 626 }
632 627  
633   -.wall_page {
634   - #note_note {
  628 +.wall_page {
  629 + #note_note {
635 630 height:25px;
636 631 }
637   - .attach_holder {
  632 + .attach_holder {
638 633 display:none;
639 634 }
640 635 }
... ... @@ -653,31 +648,55 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
653 648 padding:2px 4px;
654 649 border:none;
655 650  
656   - &.high {
  651 + &.high {
657 652 background: #D12F19;
658 653 color:white;
659 654 }
660 655  
661   - &.today {
  656 + &.today {
662 657 background: #44aa22;
663 658 color:white;
664 659 }
665 660  
666   - &.yours {
  661 + &.yours {
667 662 background: #4466cc;
668 663 color:white;
669 664 }
  665 + &.normal {
  666 + background: #2c5ca6;
  667 + color:white;
  668 + }
670 669 &.notes {
671 670 background: #2c5c66;
672 671 color:white;
673 672 }
674 673 }
675 674  
676   -#issues-table .issue {
677   - &.critical {
  675 +#issues-table .issue {
  676 + &.critical {
678 677 td {
679 678 //background: #D12F19;
680 679 //color:#fff;
681 680 }
682 681 }
683 682 }
  683 +
  684 +.top_panel_issues{
  685 + #issue_search_form {
  686 + margin:5px 0;
  687 + input {
  688 + border:1px solid #D3D3D3;
  689 + padding: 3px;
  690 + height: 28px;
  691 + width: 300px;
  692 + -webkit-appearance:none;
  693 + box-sizing: border-box;
  694 + -moz-box-sizing: border-box;
  695 +
  696 + &:focus {
  697 + border-color:#c2e1ef;
  698 + }
  699 + }
  700 + }
  701 +}
  702 +
... ...
app/controllers/admin/mailer_controller.rb
... ... @@ -20,7 +20,7 @@ class Admin::MailerController &lt; ApplicationController
20 20 else
21 21 render :file => 'notify/note_wall_email.html.haml', :layout => 'notify'
22 22 end
23   - rescue
  23 + rescue
24 24 render :text => "Preview not avaialble"
25 25 end
26 26  
... ... @@ -29,7 +29,7 @@ class Admin::MailerController &lt; ApplicationController
29 29 @password = "DHasJKDHAS!"
30 30  
31 31 render :file => 'notify/new_user_email.html.haml', :layout => 'notify'
32   - rescue
  32 + rescue
33 33 render :text => "Preview not avaialble"
34 34 end
35 35  
... ... @@ -38,7 +38,7 @@ class Admin::MailerController &lt; ApplicationController
38 38 @user = @issue.assignee
39 39 @project = @issue.project
40 40 render :file => 'notify/new_issue_email.html.haml', :layout => 'notify'
41   - rescue
  41 + rescue
42 42 render :text => "Preview not avaialble"
43 43 end
44 44 end
... ...
app/controllers/admin/projects_controller.rb
... ... @@ -4,29 +4,14 @@ class Admin::ProjectsController &lt; ApplicationController
4 4  
5 5 def index
6 6 @admin_projects = Project.page(params[:page])
7   -
8   - respond_to do |format|
9   - format.html # index.html.erb
10   - format.json { render json: @admin_projects }
11   - end
12 7 end
13 8  
14 9 def show
15 10 @admin_project = Project.find_by_code(params[:id])
16   -
17   - respond_to do |format|
18   - format.html # show.html.erb
19   - format.json { render json: @admin_project }
20   - end
21 11 end
22 12  
23 13 def new
24 14 @admin_project = Project.new
25   -
26   - respond_to do |format|
27   - format.html # new.html.erb
28   - format.json { render json: @admin_project }
29   - end
30 15 end
31 16  
32 17 def edit
... ... @@ -37,28 +22,20 @@ class Admin::ProjectsController &lt; ApplicationController
37 22 @admin_project = Project.new(params[:project])
38 23 @admin_project.owner = current_user
39 24  
40   - respond_to do |format|
41   - if @admin_project.save
42   - format.html { redirect_to [:admin, @admin_project], notice: 'Project was successfully created.' }
43   - format.json { render json: @admin_project, status: :created, location: @admin_project }
44   - else
45   - format.html { render action: "new" }
46   - format.json { render json: @admin_project.errors, status: :unprocessable_entity }
47   - end
  25 + if @admin_project.save
  26 + redirect_to [:admin, @admin_project], notice: 'Project was successfully created.'
  27 + else
  28 + render :action => "new"
48 29 end
49 30 end
50 31  
51 32 def update
52 33 @admin_project = Project.find_by_code(params[:id])
53 34  
54   - respond_to do |format|
55   - if @admin_project.update_attributes(params[:project])
56   - format.html { redirect_to [:admin, @admin_project], notice: 'Project was successfully updated.' }
57   - format.json { head :ok }
58   - else
59   - format.html { render action: "edit" }
60   - format.json { render json: @admin_project.errors, status: :unprocessable_entity }
61   - end
  35 + if @admin_project.update_attributes(params[:project])
  36 + redirect_to [:admin, @admin_project], notice: 'Project was successfully updated.'
  37 + else
  38 + render :action => "edit"
62 39 end
63 40 end
64 41  
... ... @@ -66,9 +43,6 @@ class Admin::ProjectsController &lt; ApplicationController
66 43 @admin_project = Project.find_by_code(params[:id])
67 44 @admin_project.destroy
68 45  
69   - respond_to do |format|
70   - format.html { redirect_to admin_projects_url }
71   - format.json { head :ok }
72   - end
  46 + redirect_to admin_projects_url
73 47 end
74 48 end
... ...
app/controllers/admin/team_members_controller.rb
... ... @@ -4,29 +4,14 @@ class Admin::TeamMembersController &lt; ApplicationController
4 4  
5 5 def index
6 6 @admin_team_members = UsersProject.page(params[:page]).per(100).order("project_id DESC")
7   -
8   - respond_to do |format|
9   - format.html # index.html.erb
10   - format.json { render json: @admin_team_members }
11   - end
12 7 end
13 8  
14 9 def show
15 10 @admin_team_member = UsersProject.find(params[:id])
16   -
17   - respond_to do |format|
18   - format.html # show.html.erb
19   - format.json { render json: @admin_team_member }
20   - end
21 11 end
22 12  
23 13 def new
24 14 @admin_team_member = UsersProject.new(params[:team_member])
25   -
26   - respond_to do |format|
27   - format.html # new.html.erb
28   - format.json { render json: @admin_team_member }
29   - end
30 15 end
31 16  
32 17 def edit
... ... @@ -37,14 +22,10 @@ class Admin::TeamMembersController &lt; ApplicationController
37 22 @admin_team_member = UsersProject.new(params[:team_member])
38 23 @admin_team_member.project_id = params[:team_member][:project_id]
39 24  
40   - respond_to do |format|
41   - if @admin_team_member.save
42   - format.html { redirect_to admin_team_member_path(@admin_team_member), notice: 'UsersProject was successfully created.' }
43   - format.json { render json: @admin_team_member, status: :created, location: @team_member }
44   - else
45   - format.html { render action: "new" }
46   - format.json { render json: @admin_team_member.errors, status: :unprocessable_entity }
47   - end
  25 + if @admin_team_member.save
  26 + redirect_to admin_team_member_path(@admin_team_member), notice: 'UsersProject was successfully created.'
  27 + else
  28 + render action: "new"
48 29 end
49 30 end
50 31  
... ... @@ -52,14 +33,10 @@ class Admin::TeamMembersController &lt; ApplicationController
52 33 @admin_team_member = UsersProject.find(params[:id])
53 34 @admin_team_member.project_id = params[:team_member][:project_id]
54 35  
55   - respond_to do |format|
56   - if @admin_team_member.update_attributes(params[:team_member])
57   - format.html { redirect_to admin_team_member_path(@admin_team_member), notice: 'UsersProject was successfully updated.' }
58   - format.json { head :ok }
59   - else
60   - format.html { render action: "edit" }
61   - format.json { render json: @admin_team_member.errors, status: :unprocessable_entity }
62   - end
  36 + if @admin_team_member.update_attributes(params[:team_member])
  37 + redirect_to admin_team_member_path(@admin_team_member), notice: 'UsersProject was successfully updated.'
  38 + else
  39 + render action: "edit"
63 40 end
64 41 end
65 42  
... ... @@ -67,9 +44,6 @@ class Admin::TeamMembersController &lt; ApplicationController
67 44 @admin_team_member = UsersProject.find(params[:id])
68 45 @admin_team_member.destroy
69 46  
70   - respond_to do |format|
71   - format.html { redirect_to admin_team_members_url }
72   - format.json { head :ok }
73   - end
  47 + redirect_to admin_team_members_url
74 48 end
75 49 end
... ...
app/controllers/admin/users_controller.rb
... ... @@ -4,29 +4,14 @@ class Admin::UsersController &lt; ApplicationController
4 4  
5 5 def index
6 6 @admin_users = User.page(params[:page])
7   -
8   - respond_to do |format|
9   - format.html # index.html.erb
10   - format.json { render json: @admin_users }
11   - end
12 7 end
13 8  
14 9 def show
15 10 @admin_user = User.find(params[:id])
16   -
17   - respond_to do |format|
18   - format.html # show.html.erb
19   - format.json { render json: @admin_user }
20   - end
21 11 end
22 12  
23 13 def new
24 14 @admin_user = User.new(:projects_limit => 10)
25   -
26   - respond_to do |format|
27   - format.html # new.html.erb
28   - format.json { render json: @admin_user }
29   - end
30 15 end
31 16  
32 17 def edit
... ... @@ -36,7 +21,7 @@ class Admin::UsersController &lt; ApplicationController
36 21 def create
37 22 admin = params[:user].delete("admin")
38 23  
39   - @admin_user = User.new(params[:user])
  24 + @admin_user = User.new(params[:user])
40 25 @admin_user.admin = (admin && admin.to_i > 0)
41 26  
42 27 respond_to do |format|
... ... @@ -54,8 +39,8 @@ class Admin::UsersController &lt; ApplicationController
54 39 def update
55 40 admin = params[:user].delete("admin")
56 41 if params[:user][:password].empty?
57   - params[:user].delete(:password)
58   - params[:user].delete(:password_confirmation)
  42 + params[:user].delete(:password)
  43 + params[:user].delete(:password_confirmation)
59 44 end
60 45  
61 46 @admin_user = User.find(params[:id])
... ...
app/controllers/application_controller.rb
... ... @@ -8,7 +8,7 @@ class ApplicationController &lt; ActionController::Base
8 8 render :file => File.join(Rails.root, "public", "gitosis_error"), :layout => false
9 9 end
10 10  
11   - protected
  11 + protected
12 12  
13 13 def abilities
14 14 @abilities ||= Six.new
... ... @@ -18,7 +18,7 @@ class ApplicationController &lt; ActionController::Base
18 18 abilities.allowed?(object, action, subject)
19 19 end
20 20  
21   - def project
  21 + def project
22 22 @project ||= Project.find_by_code(params[:project_id])
23 23 end
24 24  
... ... @@ -55,7 +55,7 @@ class ApplicationController &lt; ActionController::Base
55 55  
56 56 @tag = unless params[:tag].blank?
57 57 params[:tag]
58   - else
  58 + else
59 59 nil
60 60 end
61 61  
... ...
app/controllers/issues_controller.rb
1 1 class IssuesController < ApplicationController
2 2 before_filter :authenticate_user!
3   - before_filter :project
  3 + before_filter :project
4 4 before_filter :issue, :only => [:edit, :update, :destroy, :show]
5 5  
6 6 # Authorize
7 7 before_filter :add_project_abilities
8 8 before_filter :authorize_read_issue!
9   - before_filter :authorize_write_issue!, :only => [:new, :create, :close, :edit, :update, :sort]
  9 + before_filter :authorize_write_issue!, :only => [:new, :create, :close, :edit, :update, :sort]
10 10  
11 11 respond_to :js
12 12  
... ... @@ -34,7 +34,7 @@ class IssuesController &lt; ApplicationController
34 34 end
35 35  
36 36 def show
37   - @notes = @issue.notes
  37 + @notes = @issue.notes.order("created_at ASC")
38 38 @note = @project.notes.new(:noteable => @issue)
39 39 end
40 40  
... ... @@ -57,14 +57,13 @@ class IssuesController &lt; ApplicationController
57 57 end
58 58 end
59 59  
60   -
61 60 def destroy
62 61 return access_denied! unless can?(current_user, :admin_issue, @issue)
63 62  
64 63 @issue.destroy
65 64  
66 65 respond_to do |format|
67   - format.js { render :nothing => true }
  66 + format.js { render :nothing => true }
68 67 end
69 68 end
70 69  
... ... @@ -78,7 +77,23 @@ class IssuesController &lt; ApplicationController
78 77 render :nothing => true
79 78 end
80 79  
81   - protected
  80 + def search
  81 + terms = params['terms']
  82 +
  83 + @project = Project.find(params['project'])
  84 + @issues = case params[:status].to_i
  85 + when 1 then @project.issues
  86 + when 2 then @project.issues.closed
  87 + when 3 then @project.issues.opened.assigned(current_user)
  88 + else @project.issues.opened
  89 + end
  90 +
  91 + @issues = @issues.where("title LIKE ? OR content LIKE ?", "%#{terms}%", "%#{terms}%") unless terms.blank?
  92 +
  93 + render :partial => 'issues'
  94 + end
  95 +
  96 + protected
82 97  
83 98 def issue
84 99 @issue ||= @project.issues.find(params[:id])
... ...
app/controllers/keys_controller.rb
... ... @@ -24,7 +24,7 @@ class KeysController &lt; ApplicationController
24 24  
25 25 respond_to do |format|
26 26 format.html { redirect_to keys_url }
27   - format.js { render :nothing => true }
  27 + format.js { render :nothing => true }
28 28 end
29 29 end
30 30 end
... ...
app/controllers/notes_controller.rb
1 1 class NotesController < ApplicationController
2   - before_filter :project
  2 + before_filter :project
3 3  
4 4 # Authorize
5 5 before_filter :add_project_abilities
6   - before_filter :authorize_write_note!, :only => [:create]
  6 + before_filter :authorize_write_note!, :only => [:create]
7 7  
8 8 respond_to :js
9 9  
... ... @@ -15,10 +15,9 @@ class NotesController &lt; ApplicationController
15 15 notify if params[:notify] == '1'
16 16 end
17 17  
18   -
19 18 respond_to do |format|
20 19 format.html {redirect_to :back}
21   - format.js
  20 + format.js
22 21 end
23 22 end
24 23  
... ... @@ -30,11 +29,11 @@ class NotesController &lt; ApplicationController
30 29 @note.destroy
31 30  
32 31 respond_to do |format|
33   - format.js { render :nothing => true }
  32 + format.js { render :nothing => true }
34 33 end
35 34 end
36 35  
37   - protected
  36 + protected
38 37  
39 38 def notify
40 39 @project.users.reject { |u| u.id == current_user.id } .each do |u|
... ...
app/controllers/profile_controller.rb
... ... @@ -14,7 +14,7 @@ class ProfileController &lt; ApplicationController
14 14 end
15 15  
16 16 def password_update
17   - params[:user].reject!{ |k, v| k != "password" && k != "password_confirmation"}
  17 + params[:user].reject!{ |k, v| k != "password" && k != "password_confirmation"}
18 18 @user = current_user
19 19  
20 20 if @user.update_attributes(params[:user])
... ...
app/controllers/projects_controller.rb
1 1 class ProjectsController < ApplicationController
2   - before_filter :project, :except => [:index, :new, :create]
  2 + before_filter :project, :except => [:index, :new, :create]
3 3  
4 4 # Authorize
5 5 before_filter :add_project_abilities
6   - before_filter :authorize_read_project!, :except => [:index, :new, :create]
7   - before_filter :authorize_admin_project!, :only => [:edit, :update, :destroy]
  6 + before_filter :authorize_read_project!, :except => [:index, :new, :create]
  7 + before_filter :authorize_admin_project!, :only => [:edit, :update, :destroy]
8 8  
9 9 before_filter :require_non_empty_project, :only => [:blob, :tree]
10 10  
... ... @@ -23,7 +23,7 @@ class ProjectsController &lt; ApplicationController
23 23 @project = Project.new(params[:project])
24 24 @project.owner = current_user
25 25  
26   - Project.transaction do
  26 + Project.transaction do
27 27 @project.save!
28 28 @project.users_projects.create!(:admin => true, :read => true, :write => true, :user => current_user)
29 29 end
... ... @@ -31,7 +31,7 @@ class ProjectsController &lt; ApplicationController
31 31 respond_to do |format|
32 32 if @project.valid?
33 33 format.html { redirect_to @project, notice: 'Project was successfully created.' }
34   - format.js
  34 + format.js
35 35 else
36 36 format.html { render action: "new" }
37 37 format.js
... ... @@ -51,10 +51,10 @@ class ProjectsController &lt; ApplicationController
51 51 respond_to do |format|
52 52 if project.update_attributes(params[:project])
53 53 format.html { redirect_to project, :notice => 'Project was successfully updated.' }
54   - format.js
  54 + format.js
55 55 else
56 56 format.html { render action: "edit" }
57   - format.js
  57 + format.js
58 58 end
59 59 end
60 60 end
... ... @@ -105,7 +105,7 @@ class ProjectsController &lt; ApplicationController
105 105  
106 106 if params[:commit_id]
107 107 @commit = @repo.commits(params[:commit_id]).first
108   - else
  108 + else
109 109 @commit = @repo.commits(@ref || "master").first
110 110 end
111 111  
... ... @@ -114,8 +114,8 @@ class ProjectsController &lt; ApplicationController
114 114  
115 115 respond_to do |format|
116 116 format.html # show.html.erb
117   - format.js do
118   - # disable cache to allow back button works
  117 + format.js do
  118 + # diasbale cache to allow back button works
119 119 response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
120 120 response.headers["Pragma"] = "no-cache"
121 121 response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
... ... @@ -132,7 +132,7 @@ class ProjectsController &lt; ApplicationController
132 132  
133 133 if @tree.is_a?(Grit::Blob)
134 134 send_data(@tree.data, :type => @tree.mime_type, :disposition => 'inline', :filename => @tree.name)
135   - else
  135 + else
136 136 head(404)
137 137 end
138 138 rescue
... ... @@ -147,9 +147,9 @@ class ProjectsController &lt; ApplicationController
147 147 end
148 148 end
149 149  
150   - protected
  150 + protected
151 151  
152   - def project
  152 + def project
153 153 @project ||= Project.find_by_code(params[:id])
154 154 end
155 155 end
... ...
app/controllers/snippets_controller.rb
1 1 class SnippetsController < ApplicationController
2 2 before_filter :authenticate_user!
3   - before_filter :project
  3 + before_filter :project
4 4  
5 5 # Authorize
6 6 before_filter :add_project_abilities
7 7 before_filter :authorize_read_snippet!
8   - before_filter :authorize_write_snippet!, :only => [:new, :create, :close, :edit, :update, :sort]
  8 + before_filter :authorize_write_snippet!, :only => [:new, :create, :close, :edit, :update, :sort]
9 9  
10 10 respond_to :html
11 11  
... ... @@ -13,7 +13,7 @@ class SnippetsController &lt; ApplicationController
13 13 @snippets = @project.snippets
14 14 end
15 15  
16   - def new
  16 + def new
17 17 @snippet = @project.snippets.new
18 18 end
19 19  
... ...
app/controllers/team_members_controller.rb
1 1 class TeamMembersController < ApplicationController
2   - before_filter :project
  2 + before_filter :project
3 3  
4 4 # Authorize
5 5 before_filter :add_project_abilities
6 6 before_filter :authorize_read_project!
7   - before_filter :authorize_admin_project!, :only => [:new, :create, :destroy, :update]
  7 + before_filter :authorize_admin_project!, :only => [:new, :create, :destroy, :update]
8 8  
9 9 def show
10 10 @team_member = project.users_projects.find(params[:id])
... ... @@ -26,7 +26,7 @@ class TeamMembersController &lt; ApplicationController
26 26  
27 27 respond_to do |format|
28 28 format.js
29   - format.html do
  29 + format.html do
30 30 unless @team_member.valid?
31 31 flash[:alert] = "User should have at least one role"
32 32 end
... ... @@ -41,7 +41,7 @@ class TeamMembersController &lt; ApplicationController
41 41  
42 42 respond_to do |format|
43 43 format.html { redirect_to root_path }
44   - format.js { render :nothing => true }
  44 + format.js { render :nothing => true }
45 45 end
46 46 end
47 47 end
... ...
app/helpers/application_helper.rb
... ... @@ -23,9 +23,9 @@ module ApplicationHelper
23 23 end
24 24  
25 25 def last_commit(project)
26   - if project.repo_exists?
  26 + if project.repo_exists?
27 27 time_ago_in_words(project.commit.committed_date) + " ago"
28   - else
  28 + else
29 29 "Never"
30 30 end
31 31 end
... ... @@ -33,8 +33,8 @@ module ApplicationHelper
33 33 def search_autocomplete_source
34 34 projects = current_user.projects.map{ |p| { :label => p.name, :url => project_path(p) } }
35 35 default_nav = [
36   - { :label => "Keys", :url => keys_path },
37   - { :label => "Projects", :url => projects_path },
  36 + { :label => "Keys", :url => keys_path },
  37 + { :label => "Projects", :url => projects_path },
38 38 { :label => "Admin", :url => admin_root_path }
39 39 ]
40 40  
... ... @@ -42,10 +42,10 @@ module ApplicationHelper
42 42  
43 43 if @project && !@project.new_record?
44 44 project_nav = [
45   - { :label => "#{@project.code} / Issues", :url => project_issues_path(@project) },
46   - { :label => "#{@project.code} / Wall", :url => wall_project_path(@project) },
47   - { :label => "#{@project.code} / Tree", :url => tree_project_path(@project) },
48   - { :label => "#{@project.code} / Commits", :url => project_commits_path(@project) },
  45 + { :label => "#{@project.code} / Issues", :url => project_issues_path(@project) },
  46 + { :label => "#{@project.code} / Wall", :url => wall_project_path(@project) },
  47 + { :label => "#{@project.code} / Tree", :url => tree_project_path(@project) },
  48 + { :label => "#{@project.code} / Commits", :url => project_commits_path(@project) },
49 49 { :label => "#{@project.code} / Team", :url => team_project_path(@project) }
50 50 ]
51 51 end
... ...
app/helpers/commits_helper.rb
1 1 module CommitsHelper
2 2 def diff_line(line, line_new = 0, line_old = 0)
3 3 full_line = html_escape(line.gsub(/\n/, ''))
4   - color = if line[0] == "+"
  4 + color = if line[0] == "+"
5 5 full_line = "<span class=\"old_line\">&nbsp;</span><span class=\"new_line\">#{line_new}</span> " + full_line
6 6 "#DFD"
7   - elsif line[0] == "-"
  7 + elsif line[0] == "-"
8 8 full_line = "<span class=\"old_line\">#{line_old}</span><span class=\"new_line\">&nbsp;</span> " + full_line
9 9 "#FDD"
10   - else
  10 + else
11 11 full_line = "<span class=\"old_line\">#{line_old}</span><span class=\"new_line\">#{line_new}</span> " + full_line
12 12 "none"
13 13 end
... ...
app/helpers/projects_helper.rb
... ... @@ -12,7 +12,7 @@ module ProjectsHelper
12 12 else
13 13 true
14 14 end
15   - rescue
  15 + rescue
16 16 nil
17 17 end
18 18 end
... ...
app/helpers/snippets_helper.rb
1 1 module SnippetsHelper
  2 + def lifetime_select_options
  3 + options = [
  4 + ['forever', nil],
  5 + ['1 day', "#{Date.current + 1.day}"],
  6 + ['1 week', "#{Date.current + 1.week}"],
  7 + ['1 month', "#{Date.current + 1.month}"]
  8 + ]
  9 + options_for_select(options)
  10 + end
2 11 end
... ...
app/models/ability.rb
... ... @@ -17,14 +17,14 @@ class Ability
17 17 :read_issue,
18 18 :read_snippet,
19 19 :read_team_member,
20   - :read_note
  20 + :read_note
21 21 ] if project.readers.include?(user)
22 22  
23 23 rules << [
24 24 :write_project,
25 25 :write_issue,
26 26 :write_snippet,
27   - :write_note
  27 + :write_note
28 28 ] if project.writers.include?(user)
29 29  
30 30 rules << [
... ... @@ -32,13 +32,13 @@ class Ability
32 32 :admin_issue,
33 33 :admin_snippet,
34 34 :admin_team_member,
35   - :admin_note
  35 + :admin_note
36 36 ] if project.admins.include?(user)
37 37  
38 38 rules.flatten
39 39 end
40 40  
41   - class << self
  41 + class << self
42 42 [:issue, :note, :snippet].each do |name|
43 43 define_method "#{name}_abilities" do |user, subject|
44 44 if subject.author == user
... ... @@ -48,7 +48,7 @@ class Ability
48 48 :"admin_#{name}"
49 49 ]
50 50 else
51   - subject.respond_to?(:project) ?
  51 + subject.respond_to?(:project) ?
52 52 project_abilities(user, subject.project) : []
53 53 end
54 54 end
... ...
app/models/issue.rb
... ... @@ -13,10 +13,10 @@ class Issue &lt; ActiveRecord::Base
13 13 validates :title,
14 14 :presence => true,
15 15 :length => { :within => 0..255 }
16   -
17   - validates :content,
18   - :presence => true,
19   - :length => { :within => 0..2000 }
  16 +
  17 + #validates :content,
  18 + #:presence => true,
  19 + #:length => { :within => 0..2000 }
20 20  
21 21 scope :critical, where(:critical => true)
22 22 scope :non_critical, where(:critical => false)
... ... @@ -30,7 +30,7 @@ class Issue &lt; ActiveRecord::Base
30 30 def today?
31 31 Date.today == created_at.to_date
32 32 end
33   -
  33 +
34 34 def new?
35 35 today? && created_at == updated_at
36 36 end
... ...
app/models/key.rb
... ... @@ -17,11 +17,11 @@ class Key &lt; ActiveRecord::Base
17 17 def set_identifier
18 18 self.identifier = "#{user.identifier}_#{Time.now.to_i}"
19 19 end
20   -
  20 +
21 21 def update_gitosis
22 22 Gitosis.new.configure do |c|
23 23 c.update_keys(identifier, key)
24   -
  24 +
25 25 projects.each do |project|
26 26 c.update_project(project.path, project.gitosis_writers)
27 27 end
... ...
app/models/note.rb
... ... @@ -7,18 +7,18 @@ class Note &lt; ActiveRecord::Base
7 7 belongs_to :author,
8 8 :class_name => "User"
9 9  
10   - attr_protected :author, :author_id
  10 + attr_protected :author, :author_id
11 11  
12 12 validates_presence_of :project
13 13  
14 14 validates :note,
15 15 :presence => true,
16   - :length => { :within => 0..255 }
  16 + :length => { :within => 0..5000 }
17 17  
18   - validates :attachment,
19   - :file_size => {
20   - :maximum => 10.megabytes.to_i
21   - }
  18 + validates :attachment,
  19 + :file_size => {
  20 + :maximum => 10.megabytes.to_i
  21 + }
22 22  
23 23 scope :common, where(:noteable_id => nil)
24 24  
... ...
app/models/project.rb
... ... @@ -20,7 +20,7 @@ class Project &lt; ActiveRecord::Base
20 20 :format => { :with => /^[a-zA-Z0-9_\-]*$/,
21 21 :message => "only letters, digits & '_' '-' allowed" },
22 22 :length => { :within => 0..255 }
23   -
  23 +
24 24 validates :description,
25 25 :length => { :within => 0..2000 }
26 26  
... ... @@ -57,13 +57,13 @@ class Project &lt; ActiveRecord::Base
57 57 c.update_project(path, gitosis_writers)
58 58 end
59 59 end
60   -
  60 +
61 61 def destroy_gitosis_project
62 62 Gitosis.new.configure do |c|
63 63 c.destroy_project(self)
64 64 end
65 65 end
66   -
  66 +
67 67 def add_access(user, *access)
68 68 opts = { :user => user }
69 69 access.each { |name| opts.merge!(name => true) }
... ... @@ -102,12 +102,12 @@ class Project &lt; ActiveRecord::Base
102 102 def url_to_repo
103 103 "#{GITOSIS["git_user"]}@#{GITOSIS["host"]}:#{path}.git"
104 104 end
105   -
  105 +
106 106 def path_to_repo
107 107 GITOSIS["base_path"] + path + ".git"
108 108 end
109 109  
110   - def repo
  110 + def repo
111 111 @repo ||= Grit::Repo.new(path_to_repo)
112 112 end
113 113  
... ... @@ -122,17 +122,17 @@ class Project &lt; ActiveRecord::Base
122 122 def commit(commit_id = nil)
123 123 if commit_id
124 124 repo.commits(commit_id).first
125   - else
  125 + else
126 126 repo.commits.first
127 127 end
128 128 end
129 129  
130   - def heads
  130 + def heads
131 131 @heads ||= repo.heads
132 132 end
133 133  
134 134 def fresh_commits
135   - commits = heads.map do |h|
  135 + commits = heads.map do |h|
136 136 repo.commits(h.name, 10)
137 137 end.flatten.uniq { |c| c.id }
138 138  
... ... @@ -144,7 +144,7 @@ class Project &lt; ActiveRecord::Base
144 144 end
145 145  
146 146 def commits_since(date)
147   - commits = heads.map do |h|
  147 + commits = heads.map do |h|
148 148 repo.log(h.name, nil, :since => date)
149 149 end.flatten.uniq { |c| c.id }
150 150  
... ... @@ -165,7 +165,7 @@ class Project &lt; ActiveRecord::Base
165 165 unless owner.can_create_project?
166 166 errors[:base] << ("Your own projects limit is #{owner.projects_limit}! Please contact administrator to increase it")
167 167 end
168   - rescue
  168 + rescue
169 169 errors[:base] << ("Cant check your ability to create project")
170 170 end
171 171  
... ...
app/models/snippet.rb
... ... @@ -13,7 +13,7 @@ class Snippet &lt; ActiveRecord::Base
13 13 validates :title,
14 14 :presence => true,
15 15 :length => { :within => 0..255 }
16   -
  16 +
17 17 validates :file_name,
18 18 :presence => true,
19 19 :length => { :within => 0..255 }
... ... @@ -22,9 +22,11 @@ class Snippet &lt; ActiveRecord::Base
22 22 :presence => true,
23 23 :length => { :within => 0..10000 }
24 24  
  25 + scope :fresh, order("created_at DESC")
  26 + scope :non_expired, where(["expires_at IS NULL OR expires_at > ?", Time.current])
25 27  
26 28 def self.content_types
27   - [
  29 + [
28 30 ".rb", ".py", ".pl", ".scala", ".c", ".cpp", ".java",
29 31 ".haml", ".html", ".sass", ".scss", ".xml", ".php", ".erb",
30 32 ".js", ".sh", ".coffee", ".yml", ".md"
... ... @@ -34,6 +36,10 @@ class Snippet &lt; ActiveRecord::Base
34 36 def colorize
35 37 system_colorize(content, file_name)
36 38 end
  39 +
  40 + def expired?
  41 + expires_at && expires_at < Time.current
  42 + end
37 43 end
38 44 # == Schema Information
39 45 #
... ... @@ -47,5 +53,6 @@ end
47 53 # created_at :datetime
48 54 # updated_at :datetime
49 55 # file_name :string(255)
  56 +# expires_at :datetime
50 57 #
51 58  
... ...
app/models/user.rb
... ... @@ -5,7 +5,7 @@ class User &lt; ActiveRecord::Base
5 5 :recoverable, :rememberable, :trackable, :validatable
6 6  
7 7 # Setup accessible (or protected) attributes for your model
8   - attr_accessible :email, :password, :password_confirmation, :remember_me,
  8 + attr_accessible :email, :password, :password_confirmation, :remember_me,
9 9 :name, :projects_limit, :skype, :linkedin, :twitter
10 10  
11 11 has_many :users_projects, :dependent => :destroy
... ...
app/views/admin/mailer/preview.html.haml
1 1 %p This is page with preview for all system emails that are sent to user
2   -%p Email previews built based on existing Project/Commit/Issue base - so some preview maybe unavailable unless object appear in system
  2 +%p Email previews built based on existing Project/Commit/Issue base - so some preview maybe unavailable unless object appear in system
3 3  
4 4 #accordion
5 5 %h3
6 6 %a New user
7   - %div
  7 + %div
8 8 %iframe{ :src=> admin_mailer_preview_user_new_path, :width=>"100%", :height=>"350"}
9 9 %h3
10 10 %a New issue
11   - %div
  11 + %div
12 12 %iframe{ :src=> admin_mailer_preview_issue_new_path, :width=>"100%", :height=>"350"}
13   - %h3
  13 + %h3
14 14 %a Commit note
15 15 %div
16 16 %iframe{ :src=> admin_mailer_preview_note_path(:type => "Commit"), :width=>"100%", :height=>"350"}
17 17 %h3
18 18 %a Issue note
19   - %div
  19 + %div
20 20 %iframe{ :src=> admin_mailer_preview_note_path(:type => "Issue"), :width=>"100%", :height=>"350"}
21 21 %h3
22 22 %a Wall note
23   - %div
  23 + %div
24 24 %iframe{ :src=> admin_mailer_preview_note_path(:type => "Wall"), :width=>"100%", :height=>"350"}
25 25  
26   -
27   -:javascript
  26 +:javascript
28 27 $(function() {
29 28 $( "#accordion" ).accordion(); });
... ...
app/views/admin/projects/show.html.haml
1 1 %p#notice= notice
2 2  
3 3 .span-8.colborder
4   - %h2= @admin_project.name
  4 + %h2= @admin_project.name
5 5  
6 6 %p
7 7 %b Name:
... ... @@ -22,16 +22,16 @@
22 22  
23 23 .span-14
24 24  
25   - %h2 Team
  25 + %h2 Team
26 26  
27 27 %table.round-borders
28 28 %tr
29 29 %th Name
30   - %th Added
  30 + %th Added
31 31 %th Web
32 32 %th Git
33 33 %th Admin
34   - %th
  34 + %th
35 35  
36 36 - @admin_project.users_projects.each do |tm|
37 37 %tr
... ...
app/views/admin/team_members/index.html.haml
... ... @@ -7,8 +7,8 @@
7 7 %th Read
8 8 %th Git
9 9 %th Manage
10   - %th Added
11   - %th
  10 + %th Added
  11 + %th
12 12 %th
13 13 %th
14 14 - members.each do |tm|
... ...
app/views/admin/team_members/show.html.haml
... ... @@ -11,7 +11,6 @@
11 11 %b Since:
12 12 = @admin_team_member.updated_at
13 13  
14   -
15 14 .span-10
16 15 .span-6
17 16 %b Access:
... ...
app/views/admin/users/_form.html.haml
... ... @@ -44,7 +44,7 @@
44 44 .field
45 45 = f.label :twitter
46 46 %br
47   - = f.text_field :twitter
  47 + = f.text_field :twitter
48 48 .clear
49 49 %br
50 50 .actions
... ...
app/views/admin/users/new.html.haml
... ... @@ -2,5 +2,4 @@
2 2  
3 3 = render 'form'
4 4  
5   -
6 5 = link_to 'Back', admin_users_path, :class => "right lbutton"
... ...
app/views/admin/users/show.html.haml
... ... @@ -19,28 +19,27 @@
19 19 = @admin_user.skype
20 20 %p
21 21 %b LinkedIn:
22   - = @admin_user.linkedin
  22 + = @admin_user.linkedin
23 23 %p
24 24 %b Twitter:
25 25 = @admin_user.twitter
26 26  
27   -
28 27 .clear
29 28 = link_to 'Edit', edit_admin_user_path(@admin_user)
30 29 \|
31 30 = link_to 'Back', admin_users_path
32 31  
33 32 .span-14
34   - %h2 Projects
  33 + %h2 Projects
35 34  
36 35 %table.round-borders
37 36 %tr
38 37 %th Name
39   - %th Added
  38 + %th Added
40 39 %th Web
41 40 %th Git
42 41 %th Admin
43   - %th
  42 + %th
44 43  
45 44 - @admin_user.users_projects.each do |tm|
46 45 - project = tm.project
... ...
app/views/commits/_diff.html.haml
... ... @@ -8,7 +8,7 @@
8 8 .diff_file_header
9 9 - if diff.deleted_file
10 10 %strong{:id => "#{diff.b_path}"}= diff.a_path
11   - - else
  11 + - else
12 12 = link_to tree_file_project_path(@project, @commit.id, diff.b_path) do
13 13 %strong{:id => "#{diff.b_path}"}= diff.b_path
14 14 %br/
... ... @@ -19,5 +19,5 @@
19 19 .diff_file_content_image
20 20 %img{:src => "data:#{file.mime_type};base64,#{Base64.encode64(file.data)}"}
21 21 - else
22   - %p
  22 + %p
23 23 %center No preview for this file type
... ...
app/views/commits/_index.html.haml
... ... @@ -6,4 +6,4 @@
6 6 %h1 Listing commits
7 7 %div{:id => dom_id(@project)}
8 8 = render "commits"
9   -%br/
10 9 \ No newline at end of file
  10 +%br/
... ...
app/views/commits/_text_file.html.haml
... ... @@ -2,6 +2,7 @@
2 2 - line_new = 0
3 3 - lines_arr = diff.diff.lines.to_a
4 4 - lines_arr.each do |line|
  5 + - next if line.match(/^--- \/dev\/null/)
5 6 - next if line.match(/^--- a/)
6 7 - next if line.match(/^\+\+\+ b/)
7 8 - if line.match(/^@@ -/)
... ... @@ -12,10 +13,10 @@
12 13 = diff_line(line, line_new, line_old)
13 14 - if line[0] == "+"
14 15 - line_new += 1
15   - - elsif
  16 + - elsif
16 17 - line[0] == "-"
17 18 - line_old += 1
18   - - else
  19 + - else
19 20 - line_new += 1
20 21 - line_old += 1
21 22  
... ...
app/views/commits/show.js.haml
... ... @@ -4,5 +4,5 @@
4 4 side.html("#{escape_javascript(render "commits/show")}");
5 5 $("##{dom_id(@project)}").parent().append(side);
6 6 $("##{dom_id(@project)}").addClass("span-14");
7   -:plain
  7 +:plain
8 8 $("#notes-list").html("#{escape_javascript(render(:partial => 'notes/notes_list'))}");
... ...
app/views/devise/confirmations/new.html.erb
... ... @@ -9,4 +9,4 @@
9 9 <div><%= f.submit "Resend confirmation instructions" %></div>
10 10 <% end %>
11 11  
12   -<%= render :partial => "devise/shared/links" %>
13 12 \ No newline at end of file
  13 +<%= render :partial => "devise/shared/links" %>
... ...
app/views/devise/passwords/edit.html.erb
... ... @@ -13,4 +13,4 @@
13 13 <div><%= f.submit "Change my password" %></div>
14 14 <% end %>
15 15  
16   -<%= render :partial => "devise/shared/links" %>
17 16 \ No newline at end of file
  17 +<%= render :partial => "devise/shared/links" %>
... ...
app/views/devise/shared/_links.erb
... ... @@ -22,4 +22,4 @@
22 22 <%- resource_class.omniauth_providers.each do |provider| %>
23 23 <%= link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider) %><br />
24 24 <% end -%>
25   -<% end -%>
26 25 \ No newline at end of file
  26 +<% end -%>
... ...
app/views/devise/unlocks/new.html.erb
... ... @@ -9,4 +9,4 @@
9 9 <div><%= f.submit "Resend unlock instructions" %></div>
10 10 <% end %>
11 11  
12   -<%= render :partial => "devise/shared/links" %>
13 12 \ No newline at end of file
  13 +<%= render :partial => "devise/shared/links" %>
... ...
app/views/issues/_form.html.haml
... ... @@ -7,10 +7,10 @@
7 7  
8 8 .span-8
9 9 = f.label :title
10   - = f.text_field :title, :style => "width:450px"
11   - .span-8
12   - = f.label :content
13   - = f.text_area :content, :style => "width:450px; height:130px"
  10 + = f.text_area :title, :style => "width:450px; height:100px", :maxlength => 255
  11 + -#.span-8
  12 + -#= f.label :content
  13 + -#= f.text_area :content, :style => "width:450px; height:130px"
14 14 .span-8.append-bottom
15 15 = f.label :assignee_id
16 16 = f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" })
... ...
app/views/issues/_issues.html.haml
1 1 %table.round-borders#issues-table
2 2 %tr
3 3 - if can?(current_user, :admin_issue, @project) && !params[:f] || params[:f] == "0"
4   - %th
  4 + %th
5 5 %th Assignee
6 6 %th ID
7 7 %th Title
... ...
app/views/issues/_show.html.haml
1 1 %tr{ :id => dom_id(issue), :class => "issue #{issue.critical ? "critical" : ""}", :url => project_issue_path(@project, issue) }
2   - - if can?(current_user, :admin_issue, @project) && !params[:f] || params[:f] == "0"
  2 + - if can?(current_user, :admin_issue, @project) && (!params[:f] || params[:f] == "0")
3 3 %td
4 4 = image_tag "move.png" , :class => [:handle, :left]
5 5 %td
... ... @@ -7,7 +7,7 @@
7 7 = truncate issue.assignee.name, :lenght => 20
8 8 %td ##{issue.id}
9 9 %td
10   - = html_escape issue.title
  10 + = truncate(html_escape(issue.title), :length => 60)
11 11 %br
12 12 - if issue.critical
13 13 %span.tag.high critical
... ... @@ -21,10 +21,10 @@
21 21 -#notes
22 22 %td
23 23 - if can? current_user, :write_issue, @project
24   - = form_for([@project, issue], :remote => true) do |f|
  24 + = form_for([@project, issue], :remote => true) do |f|
25 25 = f.check_box :closed, :onclick => "$(this).parent().submit();"
26 26 = hidden_field_tag :status_only, true
27   - - else
  27 + - else
28 28 = check_box_tag "closed", 1, issue.closed, :disabled => true
29 29 %td
30 30 - if can?(current_user, :admin_issue, @project) || issue.author == current_user
... ...
app/views/issues/index.html.haml
1 1 %div
2   - - if can? current_user, :write_issue, @project
3   - .left= link_to 'New Issue', new_project_issue_path(@project), :remote => true, :class => "lbutton vm"
4   - .right
5   - = form_tag project_issues_path(@project), :method => :get do
6   - .span-2
7   - = radio_button_tag :f, 0, (params[:f] || "0") == "0", :onclick => "this.form.submit()", :id => "open_issues"
8   - = label_tag "open_issues","Open"
9   - .span-2
10   - = radio_button_tag :f, 2, params[:f] == "2", :onclick => "this.form.submit()", :id => "closed_issues"
11   - = label_tag "closed_issues","Closed"
12   - .span-2
13   - = radio_button_tag :f, 3, params[:f] == "3", :onclick => "this.form.submit()", :id => "my_issues"
14   - = label_tag "my_issues","To Me"
15   -
16   - .span-2
17   - = radio_button_tag :f, 1, params[:f] == "1", :onclick => "this.form.submit()", :id => "all_issues"
18   - = label_tag "all_issues","All"
  2 + .top_panel_issues
  3 + - if can? current_user, :write_issue, @project
  4 + %div{:class => "left", :style => "margin-right: 10px;" }
  5 + = link_to 'New Issue', new_project_issue_path(@project), :remote => true, :class => "lbutton vm"
  6 + = form_tag search_project_issues_path(@project), :method => :get, :remote => true, :class => :left, :id => "issue_search_form" do
  7 + = hidden_field_tag :project_id, @project.id, { :id => 'project_id' }
  8 + = search_field_tag :issue_search, nil, { :placeholder => 'Search', :class => 'issue_search' }
  9 +
  10 + .right
  11 + = form_tag project_issues_path(@project), :method => :get do
  12 + .span-2
  13 + = radio_button_tag :f, 0, (params[:f] || "0") == "0", :onclick => "this.form.submit()", :id => "open_issues", :class => "status"
  14 + = label_tag "open_issues","Open"
  15 + .span-2
  16 + = radio_button_tag :f, 2, params[:f] == "2", :onclick => "this.form.submit()", :id => "closed_issues", :class => "status"
  17 + = label_tag "closed_issues","Closed"
  18 + .span-2
  19 + = radio_button_tag :f, 3, params[:f] == "3", :onclick => "this.form.submit()", :id => "my_issues", :class => "status"
  20 + = label_tag "my_issues","To Me"
  21 + .span-2
  22 + = radio_button_tag :f, 1, params[:f] == "1", :onclick => "this.form.submit()", :id => "all_issues", :class => "status"
  23 + = label_tag "all_issues","All"
19 24  
20 25 #issues-table-holder= render "issues"
21 26 %br
22 27 :javascript
23   - $('.delete-issue').live('ajax:success', function() {
24   - $(this).closest('tr').fadeOut(); });
25   -
  28 + var href = $('.issue_search').parent().attr('action');
  29 + var last_terms = '';
  30 +
  31 + $('.issue_search').keyup(function() {
  32 + var terms = $(this).val();
  33 + var project_id = $('#project_id').val();
  34 + var status = $('.status:checked').val();
  35 + if (terms != last_terms) {
  36 + last_terms = terms;
  37 +
  38 + if (terms.length >= 2 || terms.length == 0) {
  39 + $.get(href, { 'status': status, 'terms': terms, project: project_id }, function(response) {
  40 + $('#issues-table').html(response);
  41 + setSortable();
  42 + });
  43 + }
  44 + }
  45 + });
  46 +
  47 + $('.delete-issue').live('ajax:success', function() {
  48 + $(this).closest('tr').fadeOut(); updatePage();});
  49 +
26 50 function setSortable(){
27 51 $('#issues-table>tbody').sortable({
28 52 axis: 'y',
... ...
app/views/issues/show.html.haml
1 1 %h2
2   - = "Issue ##{@issue.id} - #{@issue.title}"
3   -
  2 + = "Issue ##{@issue.id} - #{html_escape(@issue.title)}"
4 3 .span-15
5   - = simple_format html_escape(@issue.content)
  4 + -#= simple_format html_escape(@issue.content)
6 5 .issue_notes= render "notes/notes"
7 6 .span-8.right
8 7 .span-8
9 8 - if @issue.closed
10 9 %center.success Closed
11   - - else
  10 + - else
12 11 %center.error Open
13 12 %table.round-borders
14 13 %tr
15   - %td Title:
  14 + %td Title:
16 15 %td
17 16 = truncate html_escape(@issue.title)
18 17 %tr
19   - %td Project
  18 + %td Project
20 19 %td
21 20 %strong= @issue.project.name
22 21 %tr
23   - %td Author:
  22 + %td Author:
24 23 %td
25 24 = image_tag gravatar_icon(@issue.author.email), :class => "left", :width => 40, :style => "padding:0 5px;"
26 25 = @issue.author.name
27 26 %tr
28   - %td Assignee:
  27 + %td Assignee:
29 28 %td
30 29 = image_tag gravatar_icon(@issue.assignee.email), :class => "left", :width => 40, :style => "padding:0 5px;"
31 30 = @issue.assignee.name
  31 + %tr
  32 + %td Tags
  33 + %td
  34 + - if @issue.critical
  35 + %span.tag.high critical
  36 + - else
  37 + %span.tag.normal normal
  38 +
  39 + - if @issue.today?
  40 + %span.tag.today today
32 41 %tr
33 42 %td Closed?
34 43 %td
35 44 - if can? current_user, :write_issue, @project
36   - = form_for([@project, @issue]) do |f|
  45 + = form_for([@project, @issue]) do |f|
37 46 = f.check_box :closed, :onclick => "$(this).parent().submit();"
38 47 = hidden_field_tag :status_only, true
39   - - else
  48 + - else
40 49 = check_box_tag "closed", 1, @issue.closed, :disabled => true
41 50  
42 51  
  52 + - if can?(current_user, :admin_issue, @issue)
  53 + .clear
  54 + = link_to 'Edit', edit_project_issue_path(@project, @issue), :class => "lbutton positive", :remote => true
  55 + .right= link_to 'Destroy', [@project, @issue], :confirm => 'Are you sure?', :method => :delete, :class => "lbutton delete-issue negative", :id => "destroy_issue_#{@issue.id}"
43 56 .clear
44 57  
... ...
app/views/issues/show.js.haml
1   -:plain
  1 +:plain
2 2 $("#notes-list").html("#{escape_javascript(render(:partial => 'notes/notes_list'))}");
... ...
app/views/issues/update.js.haml
... ... @@ -2,11 +2,11 @@
2 2 - if @issue.valid?
3 3 :plain
4 4 $("##{dom_id(@issue)}").fadeOut();
5   -- else
  5 +- else
6 6 - if @issue.valid?
7 7 :plain
8 8 $("#edit_issue_dialog").dialog("close");
9   - $.ajax({type: "GET", url: location.href, dataType: "script"});
  9 + updatePage();
10 10 - else
11 11 :plain
12 12 $("#edit_issue_dialog").empty();
... ...
app/views/keys/index.html.haml
... ... @@ -10,6 +10,6 @@
10 10 = render(:partial => 'show', :locals => {:key => key})
11 11  
12 12 :javascript
13   - $('.delete-key').live('ajax:success', function() {
14   - $(this).closest('tr').fadeOut(); });
  13 + $('.delete-key').live('ajax:success', function() {
  14 + $(this).closest('tr').fadeOut(); });
15 15  
... ...
app/views/layouts/_flash.html.haml
... ... @@ -6,9 +6,9 @@
6 6 %h4= text
7 7 :javascript
8 8 $(function(){
9   - $("#flash_container").slideDown("slow");
10   - $("#flash_container").click(function(){
11   - $(this).slideUp("slow");
  9 + $("#flash_container").slideDown("slow");
  10 + $("#flash_container").click(function(){
  11 + $(this).slideUp("slow");
12 12 });
13 13 setTimeout("hideFlash()",2000);
14 14 });
... ...
app/views/layouts/_head_panel.html.erb
... ... @@ -22,7 +22,6 @@
22 22 </div>
23 23 </div>
24 24  
25   -
26 25 <% if current_user %>
27 26 <%= javascript_tag do %>
28 27 $(function() {
... ...
app/views/layouts/application.html.haml
... ... @@ -7,7 +7,6 @@
7 7 = stylesheet_link_tag 'blueprint/print', :media => "print"
8 8 = stylesheet_link_tag 'blueprint/plugins/buttons/screen', :media => "screen, projection"
9 9 = stylesheet_link_tag 'blueprint/plugins/link-icons/screen', :media => "screen, projection"
10   - = stylesheet_link_tag 'jquery_ui/jquery-ui-1.8.16.custom', :media => "screen, projection"
11 10 = stylesheet_link_tag "application"
12 11 = javascript_include_tag "application"
13 12 = csrf_meta_tags
... ...
app/views/notes/_form.html.haml
... ... @@ -10,7 +10,7 @@
10 10  
11 11 %div
12 12 = f.label :note
13   - %cite (255 symbols only)
  13 + %cite
14 14 %br
15 15 = f.text_area :note, :size => 255
16 16  
... ... @@ -22,7 +22,7 @@
22 22  
23 23 = check_box_tag :notify, 1, true
24 24 = label_tag :notify, "Notify project team about your note"
25   -
  25 +
26 26 .clear
27 27 %br
28 28 = f.submit 'Add note', :class => "lbutton vm", :id => "submit_note"
... ...
app/views/notes/_notes.html.haml
1 1 - if controller.action_name == "wall"
2 2 %ul#notes-list= render "notes/notes_list"
3 3  
4   -- else
  4 +- else
5 5 %ul#notes-list= render "notes/notes_list"
6 6 %br
7 7 %br
... ... @@ -9,17 +9,16 @@
9 9 = render "notes/form"
10 10  
11 11 :javascript
12   - $('.delete-note').live('ajax:success', function() {
13   - $(this).closest('li').fadeOut(); });
  12 + $('.delete-note').live('ajax:success', function() {
  13 + $(this).closest('li').fadeOut(); });
14 14  
15 15 $("#new_note").live("ajax:before", function(){
16   - $("#submit_note").attr("disabled", "disabled");
  16 + $("#submit_note").attr("disabled", "disabled");
17 17 })
18 18  
19 19 $("#new_note").live("ajax:complete", function(){
20   - $("#submit_note").removeAttr("disabled");
  20 + $("#submit_note").removeAttr("disabled");
21 21 })
22   -
23 22  
24 23 - if ["issues", "projects"].include?(controller.controller_name)
25 24 :javascript
... ...
app/views/notes/create.js.haml
... ... @@ -7,5 +7,5 @@
7 7 :plain
8 8 $("#new_note").replaceWith("#{escape_javascript(render('form'))}");
9 9  
10   -:plain
  10 +:plain
11 11 $("#submit_note").removeAttr("disabled");
... ...
app/views/notify/new_issue_email.html.haml
... ... @@ -10,9 +10,9 @@
10 10 %td{:style => "font-size: 1px; line-height: 1px;", :width => "21"}
11 11 %td{:align => "left", :style => "padding: 20px 0 0;"}
12 12 %h2{:style => "color:#646464 !important; font-weight: bold; margin: 0; padding: 0; line-height: 26px; font-size: 18px; font-family: Helvetica, Arial, sans-serif; "}
13   - = link_to project_issue_url(@project, @issue) do
  13 + = link_to project_issue_url(@project, @issue) do
14 14 = "Issue ##{@issue.id.to_s}"
15   - = truncate(@issue.title, :length => 45)
  15 + = truncate(@issue.title, :length => 45)
16 16 %br
17 17 %cite{:style => "color:#767676; font-weight: normal; margin: 0; padding: 0; line-height: 20px; font-size: 12px;font-family: Helvetica, Arial, sans-serif; "}
18 18 = @issue.content
... ...
app/views/notify/new_user_email.html.haml
... ... @@ -4,7 +4,7 @@
4 4 %td{:style => "font-size: 1px; line-height: 1px;", :width => "21"}
5 5 %td{:align => "left", :style => "padding: 20px 0 0;"}
6 6 %h2{:style => "color:#646464; font-weight: bold; margin: 0; padding: 0; line-height: 26px; font-size: 18px; font-family: Helvetica, Arial, sans-serif; "}
7   - Hi #{@user.name}!
  7 + Hi #{@user.name}!
8 8 %p{:style => "color:#767676; font-weight: normal; margin: 0; padding: 0; line-height: 20px; font-size: 12px;font-family: Helvetica, Arial, sans-serif; "}
9 9 Administrator created account for you. Now you are a member of company gitlab application.
10 10 %td{:style => "font-size: 1px; line-height: 1px;", :width => "21"}
... ...
app/views/notify/note_issue_email.html.haml
... ... @@ -4,10 +4,10 @@
4 4 %td{:style => "font-size: 1px; line-height: 1px;", :width => "21"}
5 5 %td{:align => "left", :style => "padding: 20px 0 0;"}
6 6 %h2{:style => "color:#646464 !important; font-weight: bold; margin: 0; padding: 0; line-height: 26px; font-size: 18px; font-family: Helvetica, Arial, sans-serif; "}
7   - New comment -
8   - = link_to project_issue_url(@project, @issue, :anchor => "note_#{@note.id}") do
  7 + New comment -
  8 + = link_to project_issue_url(@project, @issue, :anchor => "note_#{@note.id}") do
9 9 = "Issue ##{@issue.id.to_s}"
10   - = truncate(@issue.title, :length => 35)
  10 + = truncate(@issue.title, :length => 35)
11 11 %td{:style => "font-size: 1px; line-height: 1px;", :width => "21"}
12 12 %tr
13 13 %td{:style => "font-size: 1px; line-height: 1px;", :width => "21"}
... ...
app/views/notify/note_wall_email.html.haml
... ... @@ -4,7 +4,7 @@
4 4 %td{:style => "font-size: 1px; line-height: 1px;", :width => "21"}
5 5 %td{:align => "left", :style => "padding: 20px 0 0;"}
6 6 %h2{:style => "color:#646464; font-weight: bold; margin: 0; padding: 0; line-height: 26px; font-size: 18px; font-family: Helvetica, Arial, sans-serif; "}
7   - New message on
  7 + New message on
8 8 = link_to "Project Wall", wall_project_url(@project, :anchor => "note_#{@note.id}")
9 9 %td{:style => "font-size: 1px; line-height: 1px;", :width => "21"}
10 10 %tr
... ...
app/views/projects/_form.html.haml
... ... @@ -21,7 +21,7 @@
21 21 %td
22 22 = f.text_field :path, :placeholder => "example_project", :disabled => !@project.new_record?
23 23 %tr
24   - %td
  24 + %td
25 25 .left= f.label :code
26 26 %cite.right http://yourserver/
27 27 %td= f.text_field :code, :placeholder => "example"
... ... @@ -39,10 +39,10 @@
39 39 = image_tag "ajax-loader.gif", :class => "append-bottom"
40 40 - if @project.new_record?
41 41 %h3.prepend-top Creating project &amp; repository. Please wait for few minutes
42   - - else
  42 + - else
43 43 %h3.prepend-top Updating project &amp; repository. Please wait for few minutes
44 44 :javascript
45   - $('.new_project, .edit_project').bind('ajax:before', function() {
46   - $(this).find(".form_content").hide();
  45 + $('.new_project, .edit_project').bind('ajax:before', function() {
  46 + $(this).find(".form_content").hide();
47 47 $('.ajax_loader').show();
48   - });
  48 + });
... ...
app/views/projects/_list.html.haml
... ... @@ -16,7 +16,7 @@
16 16 %td= check_box_tag "read", 1, project.readers.include?(current_user), :disabled => :disabled
17 17 %td= check_box_tag "commit", 1, project.writers.include?(current_user), :disabled => :disabled
18 18 %td= check_box_tag "admin", 1, project.admins.include?(current_user), :disabled => :disabled
19   - %td
  19 + %td
20 20 -if can? current_user, :admin_project, project
21 21 = link_to 'Edit', edit_project_path(project), :class => "lbutton positive"
22 22 %br
... ...
app/views/projects/_projects_top_menu.html.haml
... ... @@ -11,7 +11,7 @@
11 11 $(".list").toggle();
12 12 if($(".tile").is(":visible")){
13 13 $.cookie('project_view', 'tile', { expires: 14 });
14   - } else {
  14 + } else {
15 15 $.cookie('project_view', 'list', { expires: 14 });
16 16 }
17 17 }
... ...
app/views/projects/_recent_commits.html.haml
... ... @@ -6,8 +6,8 @@
6 6 = image_tag "no_avatar.png", :class => "left", :width => 40, :style => "padding-right:5px;"
7 7 %p{:style => "margin-bottom: 3px;"}
8 8 %strong
9   - = link_to truncate(commit.safe_message, :length => 60), project_commit_path(@project, :id => commit.id)
10   -
  9 + = link_to truncate(commit.safe_message, :length => 60), project_commit_path(@project, :id => commit.id)
  10 +
11 11 %span
12 12 %span.author
13 13 = commit.author.name.force_encoding("UTF-8")
... ...
app/views/projects/_team.html.haml
... ... @@ -14,5 +14,5 @@
14 14 = render(:partial => 'team_members/show', :locals => {:member => up})
15 15  
16 16 :javascript
17   - $('.delete-team-member').live('ajax:success', function() {
18   - $(this).closest('tr').fadeOut(); });
  17 + $('.delete-team-member').live('ajax:success', function() {
  18 + $(this).closest('tr').fadeOut(); });
... ...
app/views/projects/_top_menu.html.haml
... ... @@ -23,7 +23,7 @@
23 23 = link_to project_snippets_path(@project), :class => (controller.controller_name == "snippets") ? "current" : nil do
24 24 Snippets
25 25 - if @project.snippets.count > 0
26   - %span{ :class => "top_menu_count" }= @project.snippets.count
  26 + %span{ :class => "top_menu_count" }= @project.snippets.non_expired.count
27 27  
28 28 - if @commit
29 29 %span= link_to truncate(commit_name(@project,@commit), :length => 15), project_commit_path(@project, :id => @commit.id), :class => current_page?(:controller => "commits", :action => "show", :project_id => @project, :id => @commit.id) ? "current" : nil
... ...
app/views/projects/empty.html.erb
... ... @@ -40,7 +40,7 @@ eos
40 40 <p>
41 41 Be careful! <br/>
42 42 Project cant be recovered after destroy.</p>
43   - <%= link_to 'Destroy', @project,
  43 + <%= link_to 'Destroy', @project,
44 44 :confirm => 'Are you sure?', :method => :delete,
45 45 :class => "left button negative span-6", :style => "text-align:center" %>
46 46 <div class="clear"></div>
... ...
app/views/projects/index.html.haml
... ... @@ -3,7 +3,7 @@
3 3 = render "tile"
4 4 %div{:class => "list", :style => view_mode_style("list")}
5 5 = render "list"
6   -- else
  6 +- else
7 7 %center.prepend-top
8 8 %h2
9 9 %cite Nothing here
... ...
app/views/projects/show.html.haml
... ... @@ -21,3 +21,8 @@
21 21 %h3 Talk
22 22 =render "projects/recent_messages"
23 23  
  24 +:javascript
  25 + function updateDashboard(){
  26 + $('#content-container').load("#{escape_javascript(project_path(@project))} #content-container>*");
  27 + }
  28 + setInterval("updateDashboard()", 300000);
... ...
app/views/projects/tree.js.haml
1 1 :plain
2   - $("#tree-holder table").hide("slide", { direction: "left" }, 150, function(){
  2 + $("#tree-holder table").hide("slide", { direction: "left" }, 150, function(){
3 3 $("#tree-holder").html("#{escape_javascript(render(:partial => "tree", :locals => {:repo => @repo, :commit => @commit, :tree => @tree}))}");
4 4 $("#tree-holder table").show("slide", { direction: "right" }, 150);
5 5 });
... ...
app/views/projects/wall.html.haml
... ... @@ -20,7 +20,7 @@
20 20 %hr
21 21 = render "notes/notes"
22 22  
23   -:javascript
  23 +:javascript
24 24 $(function(){
25 25 $("#note_note").live("click", function(){
26 26 $(this).css("height", "100px");
... ...
app/views/projects/wall.js.haml
1   -:plain
  1 +:plain
2 2 $("#notes-list").html("#{escape_javascript(render(:partial => 'notes/notes_list'))}");
... ...
app/views/snippets/_form.html.haml
... ... @@ -13,10 +13,13 @@
13 13 %td= f.label :file_name
14 14 %td= f.text_field :file_name, :placeholder => "example.rb"
15 15 %tr
  16 + %td= f.label "Lifetime"
  17 + %td= f.select :expires_at, lifetime_select_options
  18 + %tr
16 19 %td{:colspan => 2}
17 20 = f.label :content, "Code"
18 21 %br
19 22 = f.text_area :content, :style => "height:240px;width:932px;"
20   -
  23 +
21 24 .actions.prepend-top
22 25 = f.submit 'Save', :class => "lbutton vm"
... ...
app/views/snippets/_snippet.html.haml
1   -%tr{ :id => dom_id(snippet), :class => "snippet", :url => project_snippet_path(@project, snippet) }
2   - %td
3   - = image_tag gravatar_icon(snippet.author.email), :class => "left", :width => 40, :style => "padding:0 5px;"
4   - = truncate snippet.author.name, :lenght => 20
5   - %td= html_escape snippet.title
6   - %td= html_escape snippet.file_name
7   - %td
8   - - if can?(current_user, :admin_snippet, @project) || snippet.author == current_user
9   - = link_to 'Edit', edit_project_snippet_path(@project, snippet), :class => "lbutton positive"
10   - - if can?(current_user, :admin_snippet, @project) || snippet.author == current_user
11   - = link_to 'Destroy', [@project, snippet], :confirm => 'Are you sure?', :method => :delete, :remote => true, :class => "lbutton delete-snippet negative", :id => "destroy_snippet_#{snippet.id}"
  1 +- unless snippet.expired?
  2 + %tr{ :id => dom_id(snippet), :class => "snippet", :url => project_snippet_path(@project, snippet) }
  3 + %td
  4 + = image_tag gravatar_icon(snippet.author.email), :class => "left", :width => 40, :style => "padding:0 5px;"
  5 + = truncate snippet.author.name, :lenght => 20
  6 + %td= html_escape snippet.title
  7 + %td= html_escape snippet.file_name
  8 + %td
  9 + - if can?(current_user, :admin_snippet, @project) || snippet.author == current_user
  10 + = link_to 'Edit', edit_project_snippet_path(@project, snippet), :class => "lbutton positive"
  11 + - if can?(current_user, :admin_snippet, @project) || snippet.author == current_user
  12 + = link_to 'Destroy', [@project, snippet], :confirm => 'Are you sure?', :method => :delete, :remote => true, :class => "lbutton delete-snippet negative", :id => "destroy_snippet_#{snippet.id}"
... ...
app/views/snippets/index.html.haml
... ... @@ -8,7 +8,7 @@
8 8 %th Title
9 9 %th File name
10 10 %th
11   - = render @snippets
  11 + = render @snippets.fresh
12 12 :javascript
13   - $('.delete-snippet').live('ajax:success', function() {
14   - $(this).closest('tr').fadeOut(); });
  13 + $('.delete-snippet').live('ajax:success', function() {
  14 + $(this).closest('tr').fadeOut(); });
... ...
app/views/snippets/show.html.haml
1   -%h2
2   - = "Snippet ##{@snippet.id} - #{@snippet.title}"
  1 +- if !@snippet.expired?
  2 + %h2
  3 + = "Snippet ##{@snippet.id} - #{@snippet.title}"
3 4  
4   -.view_file
5   - .view_file_header
6   - %strong
7   - = @snippet.file_name
8   - %br/
9   - .view_file_content
10   - :erb
11   - <%= raw @snippet.colorize %>
  5 + .view_file
  6 + .view_file_header
  7 + %strong
  8 + = @snippet.file_name
  9 + %br/
  10 + .view_file_content
  11 + :erb
  12 + <%= raw @snippet.colorize %>
12 13  
13   -- if can?(current_user, :admin_snippet, @project) || @snippet.author == current_user
14   - = link_to 'Edit', edit_project_snippet_path(@project, @snippet), :class => "lbutton positive"
15   -- if can?(current_user, :admin_snippet, @project) || @snippet.author == current_user
16   - = link_to 'Destroy', [@project, @snippet], :confirm => 'Are you sure?', :method => :delete, :class => "lbutton delete-snippet negative", :id => "destroy_snippet_#{@snippet.id}"
17   -.clear
18   -%br
19   -.snippet_notes= render "notes/notes"
  14 + - if can?(current_user, :admin_snippet, @project) || @snippet.author == current_user
  15 + = link_to 'Edit', edit_project_snippet_path(@project, @snippet), :class => "lbutton positive"
  16 + - if can?(current_user, :admin_snippet, @project) || @snippet.author == current_user
  17 + = link_to 'Destroy', [@project, @snippet], :confirm => 'Are you sure?', :method => :delete, :class => "lbutton delete-snippet negative", :id => "destroy_snippet_#{@snippet.id}"
  18 + .clear
  19 + %br
  20 + .snippet_notes= render "notes/notes"
20 21  
21   -.clear
  22 + .clear
22 23  
  24 +- else
  25 + %h2
  26 + Sorry, this snippet is no longer exists
... ...
app/views/team_members/_show.html.haml
... ... @@ -7,11 +7,11 @@
7 7  
8 8 %td= truncate user.email, :lenght => 16
9 9 - if can? current_user, :admin_project, @project
10   - = form_for(member, :as => :team_member, :url => project_team_member_path(@project, member)) do |f|
  10 + = form_for(member, :as => :team_member, :url => project_team_member_path(@project, member)) do |f|
11 11 %td= f.check_box :read, :onclick => "$(this.form).submit();"
12 12 %td= f.check_box :write, :onclick => "$(this.form).submit();"
13 13 %td= f.check_box :admin, :onclick => "$(this.form).submit();"
14   - - else
  14 + - else
15 15 %td= check_box_tag "read", 1, member.read, :disabled => :disabled
16 16 %td= check_box_tag "commit", 1, member.write, :disabled => :disabled
17 17 %td= check_box_tag "admin", 1, member.admin, :disabled => :disabled
... ...
app/views/team_members/show.html.haml
... ... @@ -25,4 +25,3 @@
25 25 %b Twitter:
26 26 = user.twitter
27 27  
28   -
... ...
config/application.rb
... ... @@ -44,5 +44,8 @@ module Gitlab
44 44  
45 45 # Version of your assets, change this if you want to expire all your assets
46 46 config.assets.version = '1.0'
  47 +
  48 + # Extend assets path
  49 + config.assets.paths << Rails.root.join('vendor', 'assets', 'images', 'jquery-ui')
47 50 end
48 51 end
... ...
config/environments/production.rb
... ... @@ -58,7 +58,6 @@ Gitlab::Application.configure do
58 58 # Send deprecation notices to registered listeners
59 59 config.active_support.deprecation = :notify
60 60  
61   -
62 61 config.action_mailer.delivery_method = :sendmail
63 62 # Defaults to:
64 63 # # config.action_mailer.sendmail_settings = {
... ...