right-rails 1.0.3 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. data/CHANGELOG +8 -2
  2. data/Rakefile +28 -28
  3. data/lib/right_rails/java_script_generator.rb +59 -51
  4. data/public/images/{colorpicker.png → rightjs-ui/colorpicker.png} +0 -0
  5. data/public/images/{resizable.png → rightjs-ui/resizable.png} +0 -0
  6. data/public/javascripts/right-olds-src.js +47 -46
  7. data/public/javascripts/right-safe-src.js +103 -102
  8. data/public/javascripts/right-safe.js +1 -1
  9. data/public/javascripts/right-src.js +611 -541
  10. data/public/javascripts/right.js +86 -85
  11. data/public/javascripts/right/autocompleter-src.js +81 -77
  12. data/public/javascripts/right/autocompleter.js +1 -1
  13. data/public/javascripts/right/calendar-src.js +209 -197
  14. data/public/javascripts/right/calendar.js +6 -6
  15. data/public/javascripts/right/colorpicker-src.js +127 -117
  16. data/public/javascripts/right/colorpicker.js +6 -6
  17. data/public/javascripts/right/dnd-src.js +63 -63
  18. data/public/javascripts/right/dnd.js +2 -2
  19. data/public/javascripts/right/in-edit-src.js +53 -48
  20. data/public/javascripts/right/in-edit.js +2 -2
  21. data/public/javascripts/right/lightbox-src.js +107 -99
  22. data/public/javascripts/right/lightbox.js +2 -2
  23. data/public/javascripts/right/rater-src.js +48 -46
  24. data/public/javascripts/right/rater.js +3 -3
  25. data/public/javascripts/right/resizable-src.js +53 -61
  26. data/public/javascripts/right/resizable.js +4 -4
  27. data/public/javascripts/right/selectable-src.js +97 -95
  28. data/public/javascripts/right/selectable.js +2 -2
  29. data/public/javascripts/right/slider-src.js +47 -45
  30. data/public/javascripts/right/slider.js +8 -8
  31. data/public/javascripts/right/sortable-src.js +54 -52
  32. data/public/javascripts/right/tabs-src.js +181 -171
  33. data/public/javascripts/right/tooltip-src.js +39 -37
  34. data/public/javascripts/right/uploader-src.js +21 -19
  35. data/spec/lib/right_rails/java_script_generator_spec.rb +61 -56
  36. metadata +9 -7
@@ -13,8 +13,8 @@ i=p(e.getStyle("borderBottomWidth"));e=a.top-d.y+g;d=a.left-d.x+h;h=a.width-h-j;
13
13
  this;var c=f(function(){if(this.visible()&&(!this.showAt||this.shownAt===a))this.setValue(a.value())}).bind(this);a.on({keyup:c,change:c});this.onChange(function(){if(!this.showAt||this.shownAt===a)a.setValue(this.getValue())});return this}}],extend:{version:"2.0.0",EVENTS:q("show hide change done"),Options:{format:"ISO",showTime:null,showButtons:false,minDate:false,maxDate:false,fxName:"fade",fxDuration:"short",firstDay:1,numberOfMonths:1,timePeriod:1,twentyFourHour:null,listYears:false,hideOnPick:false,
14
14
  update:null,trigger:null,cssRule:"*[data-calendar]"},Formats:{ISO:"%Y-%m-%d",POSIX:"%Y/%m/%d",EUR:"%d-%m-%Y",US:"%m/%d/%Y"},i18n:{Done:"Done",Now:"Now",NextMonth:"Next Month",PrevMonth:"Previous Month",NextYear:"Next Year",PrevYear:"Previous Year",dayNames:q("Sunday Monday Tuesday Wednesday Thursday Friday Saturday"),dayNamesShort:q("Sun Mon Tue Wed Thu Fri Sat"),dayNamesMin:q("Su Mo Tu We Th Fr Sa"),monthNames:q("January February March April May June July August September October November December"),
15
15
  monthNamesShort:q("Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec")},current:null,hideAll:function(a){D("div.rui-calendar").each(function(b){b instanceof n&&b!==a&&b.visible()&&!b.inlined()&&b.hide()})}},initialize:function(a){this.$super("calendar",a);this.addClass("rui-panel");a=this.options;this.insert([this.swaps=new H(a),this.greed=new I(a)]);if(a.showTime)this.insert(this.timepicker=new J(a));if(a.showButtons)this.insert(this.buttons=new K(a));this.setDate(new Date).initEvents()},setDate:function(a,
16
- b){if(a=this.parse(a)){var c=this.options;if(c.minDate&&c.minDate>a)a=new Date(c.minDate);if(c.maxDate&&c.maxDate<a){a=new Date(c.maxDate);a.setDate(a.getDate()-1)}this._date=b?new Date(this._date||this.date):null;this.greed.setDate(this._date||a,a);if(c.minDate||c.maxDate)this.swaps.setDate(a);this.timepicker&&!b&&this.timepicker.setDate(a);if(a!=this.date)this.fire("change",this.date=a)}return this},getDate:function(){return this.date},setValue:function(a){return this.setDate(a)},getValue:function(a){return this.format(a)},
17
- insertTo:function(a,b){this.addClass("rui-calendar-inline");return this.$super(a,b)},done:function(){this.inlined()||this.hide();this.fire("done",this.date)},inlined:function(){return this.hasClass("rui-calendar-inline")},setOptions:function(a){a=a||{};this.$super(a,y(a.trigger||a.update));var b=this.constructor,c=this.options;c.i18n={};for(var e in b.i18n)c.i18n[e]=z(b.i18n[e])?b.i18n[e].clone():b.i18n[e];E(c.i18n,a.i18n);c.dayNames=c.i18n.dayNamesMin;c.firstDay&&c.dayNames.push(c.dayNames.shift());
16
+ b){if(a=this.parse(a)){var c=this.options;if(c.minDate&&c.minDate>a)a=new Date(c.minDate);if(c.maxDate&&c.maxDate<a){a=new Date(c.maxDate);a.setDate(a.getDate()-1)}this._date=b?new Date(this._date||this.date):null;this.greed.setDate(this._date||a,a);if(c.minDate||c.maxDate)this.swaps.setDate(a);this.timepicker&&!b&&this.timepicker.setDate(a);if(a!=this.date)this.fire("change",{date:this.date=a})}return this},getDate:function(){return this.date},setValue:function(a){return this.setDate(a)},getValue:function(a){return this.format(a)},
17
+ insertTo:function(a,b){this.addClass("rui-calendar-inline");return this.$super(a,b)},done:function(){this.inlined()||this.hide();this.fire("done",{date:this.date})},inlined:function(){return this.hasClass("rui-calendar-inline")},setOptions:function(a){a=a||{};this.$super(a,y(a.trigger||a.update));var b=this.constructor,c=this.options;c.i18n={};for(var e in b.i18n)c.i18n[e]=z(b.i18n[e])?b.i18n[e].clone():b.i18n[e];E(c.i18n,a.i18n);c.dayNames=c.i18n.dayNamesMin;c.firstDay&&c.dayNames.push(c.dayNames.shift());
18
18
  if(!z(c.numberOfMonths))c.numberOfMonths=[c.numberOfMonths,1];if(c.minDate)c.minDate=this.parse(c.minDate);if(c.maxDate){c.maxDate=this.parse(c.maxDate);c.maxDate.setDate(c.maxDate.getDate()+1)}c.format=o(b.Formats[c.format]||c.format).trim();if(c.showTime===null)c.showTime=c.format.search(/%[HkIl]/)>-1;if(c.twentyFourHour===null)c.twentyFourHour=c.format.search(/%[Il]/)<0;if(c.timePeriod>60&&12%Math.ceil(c.timePeriod/60))c.twentyFourHour=true;c.update&&this.assignTo(c.update,c.trigger);return this},
19
19
  hideOthers:function(){n.hideAll(this);return this}}),H=new t(l,{initialize:function(a){this.$super("div",{"class":"swaps"});this.options=a;var b=a.i18n;this.insert([this.prevMonth=new r("&lsaquo;",{title:b.PrevMonth,"class":"prev-month"}),this.nextMonth=new r("&rsaquo;",{title:b.NextMonth,"class":"next-month"})]);if(a.listYears)this.insert([this.prevYear=new r("&laquo;",{title:b.PrevYear,"class":"prev-year"}),this.nextYear=new r("&raquo;",{title:b.NextYear,"class":"next-year"})]);this.buttons=o([this.prevMonth,
20
20
  this.nextMonth,this.prevYear,this.nextYear]).compact();this.onClick(this.clicked)},setDate:function(a){var b=this.options,c=b.numberOfMonths[0]*b.numberOfMonths[1],e=true,d=true,g=true,h=true;if(b.minDate){g=new Date(a.getFullYear(),0,1,0,0,0);var j=new Date(b.minDate.getFullYear(),0,1,0,0,0);e=g>j;g.setMonth(a.getMonth()-Math.ceil(c-c/2));j.setMonth(b.minDate.getMonth());g=g>=j}if(b.maxDate){a=new Date(a);b=new Date(b.maxDate);c=o([a,b]);c.each(function(i){i.setDate(32);i.setMonth(i.getMonth()-1);
@@ -26,11 +26,11 @@ new Date(a)}c=(d.listYears?g.monthNamesShort[a.getMonth()]+",":g.monthNames[a.ge
26
26
  this.insert([this.hours=(new l("select")).onChange(b),this.minutes=(new l("select")).onChange(b)]);for(var c=a.timePeriod<60?a.timePeriod:60,e=a.timePeriod<60?1:Math.ceil(a.timePeriod/60),d=0;d<60;d++){var g=s(d);if(d<24&&d%e==0)if(a.twentyFourHour)this.hours.insert(new l("option",{value:d,html:g}));else if(d<12)this.hours.insert(new l("option",{value:d,html:d==0?12:d}));d%c==0&&this.minutes.insert(new l("option",{value:d,html:g}))}if(!a.twentyFourHour){this.meridian=(new l("select")).onChange(b).insertTo(this);
27
27
  o(o(a.format).includes(/%P/)?["am","pm"]:["AM","PM"]).each(function(h){this.meridian.insert(new l("option",{value:h.toLowerCase(),html:h}))},this)}},setDate:function(a){var b=this.options,c=b.timePeriod<60?a.getHours():Math.round(a.getHours()/(b.timePeriod/60))*(b.timePeriod/60);a=Math.round(a.getMinutes()/(b.timePeriod%60))*b.timePeriod;if(this.meridian){this.meridian.setValue(c<12?"am":"pm");c=c==0||c==12?12:c>12?c-12:c}this.hours.setValue(c);this.minutes.setValue(a)},timeChanged:function(a){a.stopPropagation();
28
28
  a=p(this.hours.value());var b=p(this.minutes.value());if(this.meridian){if(a==12)a=0;if(this.meridian.value()=="pm")a+=12}this.fire("time-set",{hours:a,minutes:b})}}),K=new t(l,{initialize:function(a){this.$super("div",{"class":"buttons"});this.insert([(new r(a.i18n.Now,{"class":"now"})).onClick("fire","now-clicked"),(new r(a.i18n.Done,{"class":"done"})).onClick("fire","done-clicked")])}});n.include({parse:function(a){var b;if(F(a)&&a){var c=B.escape(this.options.format),e=o(c.match(/%[a-z]/ig)).map("match",
29
- /[a-z]$/i).map("first").without("%");c=new B("^"+c.replace(/%p/i,"(pm|PM|am|AM)").replace(/(%[a-z])/ig,"(.+?)")+"$");if(a=o(a).trim().match(c)){a.shift();for(var d=c=null,g=null,h=null,j=null,i;a.length;){var k=a.shift(),m=e.shift();if(m.toLowerCase()=="b")d=this.options.i18n[m=="b"?"monthNamesShort":"monthNames"].indexOf(k);else if(m.toLowerCase()=="p")i=k.toLowerCase();else{k=p(k);switch(m){case "d":case "e":b=k;break;case "m":d=k-1;break;case "y":case "Y":c=k;break;case "H":case "k":case "I":case "l":g=
29
+ /[a-z]$/i).map("first").without("%");c=new B("^"+c.replace(/%p/i,"(pm|PM|am|AM)").replace(/(%[a-z])/ig,"(.+?)")+"$");if(a=o(a).trim().match(c)){a.shift();for(var d=c=null,g=null,h=null,j=null,i;a.length;){var k=a.shift(),m=e.shift();if(m.toLowerCase()=="b")d=this.options.i18n[m=="b"?"monthNamesShort":"monthNames"].indexOf(k);else if(m.toLowerCase()=="p")i=k.toLowerCase();else{k=p(k,10);switch(m){case "d":case "e":b=k;break;case "m":d=k-1;break;case "y":case "Y":c=k;break;case "H":case "k":case "I":case "l":g=
30
30
  k;break;case "M":h=k;break;case "S":j=k;break}}}if(i){g=g==12?0:g;g=i=="pm"?g+12:g}b=new Date(c,d,b,g,h,j)}}else if(a instanceof Date||Date.parse(a))b=new Date(a);return!b||isNaN(b.getTime())?null:b},format:function(a){var b=this.options.i18n,c=this.date.getDay(),e=this.date.getMonth(),d=this.date.getDate(),g=this.date.getFullYear(),h=this.date.getHours(),j=this.date.getMinutes(),i=this.date.getSeconds(),k=h==0?12:h<13?h:h-12;b={a:b.dayNamesShort[c],A:b.dayNames[c],b:b.monthNamesShort[e],B:b.monthNames[e],
31
31
  d:s(d),e:""+d,m:(e<9?"0":"")+(e+1),y:(""+g).substring(2,4),Y:""+g,H:s(h),k:""+h,I:(h>0&&(h<10||h>12&&h<22)?"0":"")+k,l:""+k,p:h<12?"AM":"PM",P:h<12?"am":"pm",M:s(j),S:s(i),"%":"%"};a=a||this.options.format;for(var m in b)a=a.replace("%"+m,b[m]);return a}});n.include({initEvents:function(){var a=this._terminate;this.on({"prev-day":["_shiftDate",{Date:-1}],"next-day":["_shiftDate",{Date:1}],"prev-week":["_shiftDate",{Date:-7}],"next-week":["_shiftDate",{Date:7}],"prev-month":["_shiftDate",{Month:-1}],
32
32
  "next-month":["_shiftDate",{Month:1}],"prev-year":["_shiftDate",{FullYear:-1}],"next-year":["_shiftDate",{FullYear:1}],"date-set":this._changeDate,"time-set":this._changeTime,"now-clicked":this._setNow,"done-clicked":this.done,click:a,mousedown:a,focus:a,blur:a})},_shiftDate:function(a){var b=new Date(this.date);for(var c in a)b["set"+c](b["get"+c]()+a[c]);this.setDate(b)},_changeDate:function(a){var b=new Date(this.date);b.setDate(a.date);b.setMonth(a.month);b.setFullYear(a.year);this.setDate(b,
33
- true);this.options.hideOnPick&&this.done()},_changeTime:function(a){var b=new Date(this.date);b.setHours(a.hours);b.setMinutes(a.minutes);this.setDate(b)},_setNow:function(){this.setDate(new Date)},_terminate:function(a){a.stopPropagation();if(this._hide_delay){this._hide_delay.cancel();this._hide_delay=null}}});y(u).on({focus:function(a){a=a.target instanceof A?a.target:null;n.hideAll();if(a&&(a.calendar||a.match(n.Options.cssRule)))(a.calendar||new n({update:a})).setValue(a.value()).showAt(a)},
34
- blur:function(a){var b=a.target.calendar;if(b)b._hide_delay=o(function(){b.hide()}).delay(200)},click:function(a){var b=a.target instanceof l?a.target:null;if(b&&(b.calendar||b.match(n.Options.cssRule))){if(!(b instanceof A)){a.stop();(b.calendar||new n({trigger:b})).hide(null).toggleAt(b.assignedInput)}}else a.find("div.rui-calendar")||n.hideAll()},keydown:function(a){var b=n.current,c={27:"hide",37:"prev-day",39:"next-day",38:"prev-week",40:"next-week",33:"prev-month",34:"next-month",13:"done"}[a.keyCode];
35
- if(c&&b&&b.visible()){a.stop();G(b[c])?b[c]():b.fire(c)}}});u.write('<style type="text/css">.rui-panel{margin:0;padding:.5em;position:relative;background-color:#EEE;border:1px solid #BBB;border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;box-shadow:.15em .3em .5em #BBB;-moz-box-shadow:.15em .3em .5em #BBB;-webkit-box-shadow:.15em .3em .5em #BBB;cursor:default} *.rui-button{display:inline-block; *display:inline; *zoom:1;height:1em;line-height:1em;margin:0;padding:.2em .5em;text-align:center;border:1px solid #CCC;border-radius:.2em;-moz-border-radius:.2em;-webkit-border-radius:.2em;cursor:pointer;color:#333;background-color:#FFF;user-select:none;-moz-user-select:none;-webkit-user-select:none} *.rui-button:hover{color:#111;border-color:#999;background-color:#DDD;box-shadow:#888 0 0 .1em;-moz-box-shadow:#888 0 0 .1em;-webkit-box-shadow:#888 0 0 .1em} *.rui-button:active{color:#000;border-color:#777;text-indent:1px;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none} *.rui-button-disabled, *.rui-button-disabled:hover, *.rui-button-disabled:active{color:#888;background:#DDD;border-color:#CCC;cursor:default;text-indent:0;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none}div.rui-re-anchor{margin:0;padding:0;background:none;border:none;float:none;display:inline;position:absolute;z-index:9999}div.rui-calendar .swaps,div.rui-calendar .greed,div.rui-calendar .timepicker,div.rui-calendar .buttons,div.rui-calendar table,div.rui-calendar table tr,div.rui-calendar table th,div.rui-calendar table td,div.rui-calendar table tbody,div.rui-calendar table thead,div.rui-calendar table caption{background:none;border:none;width:auto;height:auto;margin:0;padding:0}div.rui-calendar-inline{position:relative;display:inline-block; *display:inline; *zoom:1;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none}div.rui-calendar .swaps{position:relative}div.rui-calendar .swaps .rui-button{position:absolute;float:left;width:1em;padding:.15em .4em}div.rui-calendar .swaps .next-month{right:0em;_right:.5em}div.rui-calendar .swaps .prev-year{left:2.05em}div.rui-calendar .swaps .next-year{right:2.05em;_right:2.52em}div.rui-calendar .greed{border-spacing:0px;border-collapse:collapse;border-size:0}div.rui-calendar .greed td{vertical-align:top;padding-left:.4em}div.rui-calendar .greed>tbody>tr>td:first-child{padding:0}div.rui-calendar .month{margin-top:.2em;border-spacing:1px;border-collapse:separate}div.rui-calendar .month caption{text-align:center}div.rui-calendar .month th{color:#666;text-align:center}div.rui-calendar .month td{text-align:right;padding:.1em .3em;background-color:#FFF;border:1px solid #CCC;cursor:pointer;color:#555;border-radius:.2em;-moz-border-radius:.2em;-webkit-border-radius:.2em}div.rui-calendar .month td:hover{background-color:#CCC;border-color:#AAA;color:#000}div.rui-calendar .month td.blank{background:transparent;cursor:default;border:none}div.rui-calendar .month td.selected{background-color:#BBB;border-color:#AAA;color:#222;font-weight:bold;padding:.1em .2em}div.rui-calendar .month td.disabled{color:#888;background:#EEE;border-color:#CCC;cursor:default}div.rui-calendar .timepicker{border-top:1px solid #ccc;margin-top:.3em;padding-top:.5em;text-align:center}div.rui-calendar .timepicker select{margin:0 .4em}div.rui-calendar .buttons{position:relative;margin-top:.5em}div.rui-calendar .buttons div.rui-button{width:4em;padding:.25em .5em}div.rui-calendar .buttons .done{position:absolute;right:0em;top:0}</style>');
33
+ true);this.options.hideOnPick&&this.done()},_changeTime:function(a){var b=new Date(this.date);b.setHours(a.hours);b.setMinutes(a.minutes);this.setDate(b)},_setNow:function(){this.setDate(new Date)},_terminate:function(a){a.stopPropagation();if(this._hide_delay){this._hide_delay.cancel();this._hide_delay=null}}});y(u).on({focus:function(a){a=a.target instanceof A&&a.target.get("type")=="text"?a.target:null;n.hideAll();if(a&&(a.calendar||a.match(n.Options.cssRule)))(a.calendar||new n({update:a})).setValue(a.value()).showAt(a)},
34
+ blur:function(a){var b=a.target.calendar;if(b)b._hide_delay=o(function(){b.hide()}).delay(200)},click:function(a){var b=a.target instanceof l?a.target:null;if(b&&(b.calendar||b.match(n.Options.cssRule))){if(!(b instanceof A)||b.get("type")!="text"){a.stop();(b.calendar||new n({trigger:b})).hide(null).toggleAt(b.assignedInput)}}else a.find("div.rui-calendar")||n.hideAll()},keydown:function(a){var b=n.current,c={27:"hide",37:"prev-day",39:"next-day",38:"prev-week",40:"next-week",33:"prev-month",34:"next-month",
35
+ 13:"done"}[a.keyCode];if(c&&b&&b.visible()){a.stop();G(b[c])?b[c]():b.fire(c)}}});u.write('<style type="text/css">.rui-panel{margin:0;padding:.5em;position:relative;background-color:#EEE;border:1px solid #BBB;border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;box-shadow:.15em .3em .5em #BBB;-moz-box-shadow:.15em .3em .5em #BBB;-webkit-box-shadow:.15em .3em .5em #BBB;cursor:default} *.rui-button{display:inline-block; *display:inline; *zoom:1;height:1em;line-height:1em;margin:0;padding:.2em .5em;text-align:center;border:1px solid #CCC;border-radius:.2em;-moz-border-radius:.2em;-webkit-border-radius:.2em;cursor:pointer;color:#333;background-color:#FFF;user-select:none;-moz-user-select:none;-webkit-user-select:none} *.rui-button:hover{color:#111;border-color:#999;background-color:#DDD;box-shadow:#888 0 0 .1em;-moz-box-shadow:#888 0 0 .1em;-webkit-box-shadow:#888 0 0 .1em} *.rui-button:active{color:#000;border-color:#777;text-indent:1px;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none} *.rui-button-disabled, *.rui-button-disabled:hover, *.rui-button-disabled:active{color:#888;background:#DDD;border-color:#CCC;cursor:default;text-indent:0;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none}div.rui-re-anchor{margin:0;padding:0;background:none;border:none;float:none;display:inline;position:absolute;z-index:9999}div.rui-calendar .swaps,div.rui-calendar .greed,div.rui-calendar .timepicker,div.rui-calendar .buttons,div.rui-calendar table,div.rui-calendar table tr,div.rui-calendar table th,div.rui-calendar table td,div.rui-calendar table tbody,div.rui-calendar table thead,div.rui-calendar table caption{background:none;border:none;width:auto;height:auto;margin:0;padding:0}div.rui-calendar-inline{position:relative;display:inline-block; *display:inline; *zoom:1;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none}div.rui-calendar .swaps{position:relative}div.rui-calendar .swaps .rui-button{position:absolute;float:left;width:1em;padding:.15em .4em}div.rui-calendar .swaps .next-month{right:0em;_right:.5em}div.rui-calendar .swaps .prev-year{left:2.05em}div.rui-calendar .swaps .next-year{right:2.05em;_right:2.52em}div.rui-calendar .greed{border-spacing:0px;border-collapse:collapse;border-size:0}div.rui-calendar .greed td{vertical-align:top;padding-left:.4em}div.rui-calendar .greed>tbody>tr>td:first-child{padding:0}div.rui-calendar .month{margin-top:.2em;border-spacing:1px;border-collapse:separate}div.rui-calendar .month caption{text-align:center}div.rui-calendar .month th{color:#666;text-align:center}div.rui-calendar .month td{text-align:right;padding:.1em .3em;background-color:#FFF;border:1px solid #CCC;cursor:pointer;color:#555;border-radius:.2em;-moz-border-radius:.2em;-webkit-border-radius:.2em}div.rui-calendar .month td:hover{background-color:#CCC;border-color:#AAA;color:#000}div.rui-calendar .month td.blank{background:transparent;cursor:default;border:none}div.rui-calendar .month td.selected{background-color:#BBB;border-color:#AAA;color:#222;font-weight:bold;padding:.1em .2em}div.rui-calendar .month td.disabled{color:#888;background:#EEE;border-color:#CCC;cursor:default}div.rui-calendar .timepicker{border-top:1px solid #ccc;margin-top:.3em;padding-top:.5em;text-align:center}div.rui-calendar .timepicker select{margin:0 .4em}div.rui-calendar .buttons{position:relative;margin-top:.5em}div.rui-calendar .buttons div.rui-button{width:4em;padding:.25em .5em}div.rui-calendar .buttons .done{position:absolute;right:0em;top:0}</style>');
36
36
  return n}(document,parseInt,RightJS);
@@ -37,19 +37,20 @@ var R = RightJS,
37
37
 
38
38
 
39
39
 
40
+
40
41
  /**
41
42
  * The widget units constructor
42
43
  *
43
44
  * @param String tag-name or Object methods
44
45
  * @param Object methods
45
46
  * @return Widget wrapper
46
- */
47
+ */
47
48
  function Widget(tag_name, methods) {
48
49
  if (!methods) {
49
50
  methods = tag_name;
50
51
  tag_name = 'DIV';
51
52
  }
52
-
53
+
53
54
  /**
54
55
  * An Abstract Widget Unit
55
56
  *
@@ -66,17 +67,17 @@ function Widget(tag_name, methods) {
66
67
  initialize: function(key, options) {
67
68
  this.key = key;
68
69
  var args = [{'class': 'rui-' + key}];
69
-
70
+
70
71
  // those two have different constructors
71
72
  if (!(this instanceof RightJS.Input || this instanceof RightJS.Form)) {
72
73
  args.unshift(tag_name);
73
74
  }
74
75
  this.$super.apply(this, args);
75
-
76
+
76
77
  if (RightJS.isString(options)) {
77
78
  options = RightJS.$(options);
78
79
  }
79
-
80
+
80
81
  // if the options is another element then
81
82
  // try to dynamically rewrap it with our widget
82
83
  if (options instanceof RightJS.Element) {
@@ -109,16 +110,16 @@ function Widget(tag_name, methods) {
109
110
  return this;
110
111
  }
111
112
  });
112
-
113
+
113
114
  /**
114
115
  * Creating the actual widget class
115
116
  *
116
117
  */
117
118
  var Klass = new RightJS.Wrapper(AbstractWidget, methods);
118
-
119
+
119
120
  // creating the widget related shortcuts
120
121
  RightJS.Observer.createShortcuts(Klass.prototype, Klass.EVENTS || []);
121
-
122
+
122
123
  return Klass;
123
124
  }
124
125
 
@@ -144,7 +145,7 @@ var Button = new RightJS.Wrapper(RightJS.Element, {
144
145
  this._.innerHTML = caption;
145
146
  this.addClass('rui-button');
146
147
  },
147
-
148
+
148
149
  /**
149
150
  * Disasbles the button
150
151
  *
@@ -153,7 +154,7 @@ var Button = new RightJS.Wrapper(RightJS.Element, {
153
154
  disable: function() {
154
155
  return this.addClass('rui-button-disabled');
155
156
  },
156
-
157
+
157
158
  /**
158
159
  * Enables the button
159
160
  *
@@ -162,7 +163,7 @@ var Button = new RightJS.Wrapper(RightJS.Element, {
162
163
  enable: function() {
163
164
  return this.removeClass('rui-button-disabled');
164
165
  },
165
-
166
+
166
167
  /**
167
168
  * Checks if the button is disabled
168
169
  *
@@ -171,7 +172,7 @@ var Button = new RightJS.Wrapper(RightJS.Element, {
171
172
  disabled: function() {
172
173
  return this.hasClass('rui-button-disabled');
173
174
  },
174
-
175
+
175
176
  /**
176
177
  * Checks if the button is enabled
177
178
  *
@@ -180,7 +181,7 @@ var Button = new RightJS.Wrapper(RightJS.Element, {
180
181
  enabled: function() {
181
182
  return !this.disabled();
182
183
  },
183
-
184
+
184
185
  /**
185
186
  * Overloading the method, so it fired the events
186
187
  * only when the button is active
@@ -195,6 +196,7 @@ var Button = new RightJS.Wrapper(RightJS.Element, {
195
196
  }
196
197
  });
197
198
 
199
+
198
200
  /**
199
201
  * A shared module that toggles a widget visibility status
200
202
  * in a uniformed way according to the options settings
@@ -218,7 +220,7 @@ function toggler(element, event, fx_name, fx_options) {
218
220
  if (RightJS.Fx) {
219
221
  if (fx_name === undefined) {
220
222
  fx_name = this.options.fxName;
221
-
223
+
222
224
  if (fx_options === undefined) {
223
225
  fx_options = {
224
226
  duration: this.options.fxDuration,
@@ -233,12 +235,12 @@ function toggler(element, event, fx_name, fx_options) {
233
235
  }
234
236
  }
235
237
  }
236
-
238
+
237
239
  RightJS.Element.prototype[event].call(element, fx_name, fx_options);
238
-
240
+
239
241
  // manually trigger the event if no fx were specified
240
242
  if (!RightJS.Fx || !fx_name) { this.fire(event); }
241
-
243
+
242
244
  return this;
243
245
  }
244
246
 
@@ -255,34 +257,34 @@ function toggler(element, event, fx_name, fx_options) {
255
257
  * @return void
256
258
  */
257
259
  function re_position(element, where, resize) {
258
- var anchor = this.reAnchor || (this.reAnchor =
260
+ var anchor = this.reAnchor || (this.reAnchor =
259
261
  new RightJS.Element('div', {'class': 'rui-re-anchor'}))
260
262
  .insert(this),
261
-
263
+
262
264
  pos = anchor.insertTo(element, 'after').position(),
263
265
  dims = element.dimensions(), target = this,
264
-
266
+
265
267
  border_top = parseInt(element.getStyle('borderTopWidth')),
266
268
  border_left = parseInt(element.getStyle('borderLeftWidth')),
267
269
  border_right = parseInt(element.getStyle('borderRightWidth')),
268
270
  border_bottom = parseInt(element.getStyle('borderBottomWidth')),
269
-
271
+
270
272
  top = dims.top - pos.y + border_top,
271
273
  left = dims.left - pos.x + border_left,
272
274
  width = dims.width - border_left - border_right,
273
275
  height = dims.height - border_top - border_bottom;
274
-
276
+
275
277
  // making the element to appear so we could read it's sizes
276
278
  target.setStyle('visibility:hidden').show(null);
277
-
279
+
278
280
  if (where === 'right') {
279
281
  left += width - target.size().x;
280
282
  } else { // bottom
281
283
  top += height;
282
284
  }
283
-
285
+
284
286
  target.moveTo(left, top);
285
-
287
+
286
288
  if (resize) {
287
289
  if (['left', 'right'].include(where)) {
288
290
  target.setHeight(height);
@@ -290,7 +292,7 @@ function re_position(element, where, resize) {
290
292
  target.setWidth(width);
291
293
  }
292
294
  }
293
-
295
+
294
296
  // rolling the invisibility back
295
297
  target.setStyle('visibility:visible').hide(null);
296
298
  }
@@ -312,7 +314,7 @@ var Toggler = {
312
314
  this.constructor.current = this;
313
315
  return toggler.call(this, this, 'show', fx_name, fx_options);
314
316
  },
315
-
317
+
316
318
  /**
317
319
  * Hides the element
318
320
  *
@@ -324,7 +326,7 @@ var Toggler = {
324
326
  this.constructor.current = null;
325
327
  return toggler.call(this, this, 'hide', fx_name, fx_options);
326
328
  },
327
-
329
+
328
330
  /**
329
331
  * Toggles the widget at the given element
330
332
  *
@@ -335,13 +337,13 @@ var Toggler = {
335
337
  */
336
338
  showAt: function(element, where, resize) {
337
339
  this.hide(null).shownAt = element = RightJS.$(element);
338
-
340
+
339
341
  // moves this element at the given one
340
342
  re_position.call(this, element, where, resize);
341
-
343
+
342
344
  return this.show();
343
345
  },
344
-
346
+
345
347
  /**
346
348
  * Toggles the widget at the given element
347
349
  *
@@ -355,6 +357,7 @@ var Toggler = {
355
357
  }
356
358
  };
357
359
 
360
+
358
361
  /**
359
362
  * A shared module that provides for the widgets an ability
360
363
  * to be assigned to an input element and work in pair with it
@@ -379,35 +382,36 @@ var Assignable = {
379
382
  assignTo: function(input, trigger) {
380
383
  input = RightJS.$(input);
381
384
  trigger = RightJS.$(trigger);
382
-
385
+
383
386
  if (trigger) {
384
387
  trigger[this.key] = this;
385
388
  trigger.assignedInput = input;
386
389
  } else {
387
390
  input[this.key] = this;
388
391
  }
389
-
392
+
390
393
  var on_change = RightJS(function() {
391
394
  if (this.visible() && (!this.showAt || this.shownAt === input)) {
392
395
  this.setValue(input.value());
393
396
  }
394
397
  }).bind(this);
395
-
398
+
396
399
  input.on({
397
400
  keyup: on_change,
398
401
  change: on_change
399
402
  });
400
-
403
+
401
404
  this.onChange(function() {
402
405
  if (!this.showAt || this.shownAt === input) {
403
406
  input.setValue(this.getValue());
404
407
  }
405
408
  });
406
-
409
+
407
410
  return this;
408
411
  }
409
412
  };
410
413
 
414
+
411
415
  /**
412
416
  * The basic file for Colorpicker
413
417
  *
@@ -415,29 +419,29 @@ var Assignable = {
415
419
  */
416
420
  var Colorpicker = new Widget({
417
421
  include: [Toggler, Assignable],
418
-
422
+
419
423
  extend: {
420
424
  version: '2.0.0',
421
-
425
+
422
426
  EVENTS: $w('change show hide done'),
423
-
427
+
424
428
  Options: {
425
429
  format: 'hex', // hex or rgb
426
-
430
+
427
431
  update: null, // an element to update with the color text
428
432
  updateBg: null, // an element to update it's background color
429
433
  trigger: null, // a trigger element for the popup
430
-
434
+
431
435
  fxName: 'fade', // popup displaying fx
432
436
  fxDuration: 'short',
433
-
437
+
434
438
  cssRule: '*[data-colorpicker]'
435
439
  },
436
-
440
+
437
441
  i18n: {
438
442
  Done: 'Done'
439
443
  },
440
-
444
+
441
445
  // hides all the popup colorpickers on the page
442
446
  hideAll: function() {
443
447
  $$('div.rui-colorpicker').each(function(picker) {
@@ -447,7 +451,7 @@ var Colorpicker = new Widget({
447
451
  });
448
452
  }
449
453
  },
450
-
454
+
451
455
  /**
452
456
  * basic constructor
453
457
  *
@@ -464,27 +468,27 @@ var Colorpicker = new Widget({
464
468
  ])
465
469
  .on({
466
470
  mousedown: this.startTrack,
467
-
471
+
468
472
  keyup: this.recalc,
469
473
  blur: this.update,
470
474
  focus: this.cancelTimer,
471
-
475
+
472
476
  done: this.done
473
477
  });
474
-
478
+
475
479
  // hooking up the elements to update
476
480
  if (this.options.update) { this.assignTo(this.options.update, this.options.trigger); }
477
481
  if (this.options.updateBg) { this.updateBg(this.options.updateBg); }
478
-
482
+
479
483
  // setting up the initial values
480
484
  this.tint = R([1, 0, 0]);
481
485
  this.satur = 0;
482
486
  this.bright = 1;
483
487
  this.color = R([255, 255, 255]);
484
-
488
+
485
489
  this.recalc().update();
486
490
  },
487
-
491
+
488
492
  /**
489
493
  * Sets the color of the widget
490
494
  *
@@ -494,15 +498,15 @@ var Colorpicker = new Widget({
494
498
  setValue: function(value) {
495
499
  var color = isArray(value) ? value : this.toColor(value);
496
500
  if (color && color.length === 3) {
497
-
501
+
498
502
  // normalizing the data
499
503
  color = color.map(function(value) {
500
504
  return this.bound(parseInt(''+value), 0, 255);
501
505
  }, this);
502
-
506
+
503
507
  this.color = color;
504
508
  this.color2tint().update();
505
-
509
+
506
510
  // reupdating the popup-state a bit later when we have the sizes
507
511
  if (!this.colors.size().y) {
508
512
  this.update.bind(this).delay(20);
@@ -510,7 +514,7 @@ var Colorpicker = new Widget({
510
514
  }
511
515
  return this;
512
516
  },
513
-
517
+
514
518
  /**
515
519
  * Returns the value of the widget
516
520
  * formatted according to the options
@@ -521,7 +525,7 @@ var Colorpicker = new Widget({
521
525
  getValue: function(array) {
522
526
  return array ? this.color : this[this.options.format === 'rgb' ? 'toRgb' : 'toHex']();
523
527
  },
524
-
528
+
525
529
  /**
526
530
  * Assigns the colorpicer to automatically update
527
531
  * given element's background on changes
@@ -538,7 +542,7 @@ var Colorpicker = new Widget({
538
542
  }
539
543
  return this;
540
544
  },
541
-
545
+
542
546
  /**
543
547
  * Inlines the widget into the given element
544
548
  *
@@ -551,7 +555,7 @@ var Colorpicker = new Widget({
551
555
  .$super(element, position)
552
556
  .addClass('rui-colorpicker-inline');
553
557
  },
554
-
558
+
555
559
  /**
556
560
  * Checks if that's an inlined version of the widget
557
561
  *
@@ -560,7 +564,7 @@ var Colorpicker = new Widget({
560
564
  inlined: function() {
561
565
  return this.hasClass('rui-colorpicker-inline');
562
566
  },
563
-
567
+
564
568
  /**
565
569
  * Finalizes the action
566
570
  *
@@ -572,7 +576,7 @@ var Colorpicker = new Widget({
572
576
  }
573
577
  return this;
574
578
  },
575
-
579
+
576
580
  // protected
577
581
 
578
582
  // catching up the user options
@@ -584,29 +588,29 @@ var Colorpicker = new Widget({
584
588
  // updates the preview and pointer positions
585
589
  update: function() {
586
590
  this.field._.style.backgroundColor = 'rgb('+ this.tint.map(function(c) { return Math.round(c*255); }) +')';
587
-
591
+
588
592
  // updating the input fields
589
593
  var color = this.color, controls = this.controls;
590
-
594
+
591
595
  controls.preview._.style.backgroundColor = controls.display._.value = this.toHex();
592
-
596
+
593
597
  controls.rDisplay._.value = color[0];
594
598
  controls.gDisplay._.value = color[1];
595
599
  controls.bDisplay._.value = color[2];
596
-
600
+
597
601
  // adjusting the field pointer position
598
602
  var pointer = this.field.pointer._.style,
599
603
  field = this.field.size(),
600
604
  top = field.y - this.bright * field.y - 2,
601
605
  left = this.satur * field.x - 2;
602
-
606
+
603
607
  pointer.top = this.bound(top, 0, field.y - 5) + 'px';
604
608
  pointer.left = this.bound(left, 0, field.x - 5) + 'px';
605
-
609
+
606
610
  // adjusting the ting pointer position
607
611
  var tint = this.tint, position;
608
612
  field = this.colors.size();
609
-
613
+
610
614
  if (tint[1] == 0) { // the red-blue section
611
615
  position = tint[0] == 1 ? tint[2] : (2 - tint[0]);
612
616
  } else if (tint[0] == 0) { // the blue-green section
@@ -614,25 +618,25 @@ var Colorpicker = new Widget({
614
618
  } else { // the green-red section
615
619
  position = 4 + (tint[1] == 1 ? tint[0] : (2 - tint[1]));
616
620
  }
617
-
621
+
618
622
  position = position / 6 * field.y;
619
-
623
+
620
624
  this.colors.pointer._.style.top = this.bound(position, 0, field.y - 4) + 'px';
621
-
625
+
622
626
  // tracking the color change events
623
627
  if (this.prevColor !== ''+this.color) {
624
- this.fire('change', this.color);
628
+ this.fire('change', {value: this.color});
625
629
  this.prevColor = ''+ this.color;
626
630
  }
627
-
631
+
628
632
  return this;
629
633
  },
630
-
634
+
631
635
  // recalculates the state after the input field changes
632
636
  recalc: function(event) {
633
637
  if (event) {
634
638
  var field = event.target, value = field._.value, color = $A(this.color), changed=false;
635
-
639
+
636
640
  if (field === this.controls.display && /#\w{6}/.test(value)) {
637
641
  // using the hex values
638
642
  changed = color = this.toColor(value);
@@ -641,27 +645,27 @@ var Colorpicker = new Widget({
641
645
  color[field._.cIndex] = value;
642
646
  changed = true;
643
647
  }
644
-
648
+
645
649
  if (changed) { this.setValue(color); }
646
-
650
+
647
651
  } else {
648
652
  this.tint2color();
649
653
  }
650
-
654
+
651
655
  return this;
652
656
  },
653
-
657
+
654
658
  // starts the mousemoves tracking
655
659
  startTrack: function(event) {
656
660
  this.stopTrack();
657
661
  this.cancelTimer();
658
-
662
+
659
663
  if (event.target === this.field.pointer) {
660
664
  event.target = this.field;
661
665
  } else if (event.target === this.colors.pointer) {
662
666
  event.target = this.colors;
663
667
  }
664
-
668
+
665
669
  if (event.target === this.field || event.target === this.colors) {
666
670
  event.stop();
667
671
  Colorpicker.tracking = this;
@@ -669,41 +673,41 @@ var Colorpicker = new Widget({
669
673
  this.trackMove(event); // jumping over there
670
674
  }
671
675
  },
672
-
676
+
673
677
  // stops tracking the mousemoves
674
678
  stopTrack: function() {
675
679
  Colorpicker.tracking = false;
676
680
  this.field.tracking = false;
677
681
  this.colors.tracking = false;
678
682
  },
679
-
683
+
680
684
  // tracks the cursor moves over the fields
681
685
  trackMove: function(event) {
682
686
  var field, pos = event.position(), top, left;
683
-
687
+
684
688
  if (this.field.tracking) {
685
689
  field = this.field.dimensions();
686
690
  } else if (this.colors.tracking) {
687
691
  field = this.colors.dimensions();
688
692
  }
689
-
693
+
690
694
  if (field) {
691
695
  top = this.bound(pos.y - field.top, 0, field.height);
692
696
  left = this.bound(pos.x - field.left, 0, field.width);
693
-
697
+
694
698
  if (this.field.tracking) {
695
699
  this.satur = left / field.width;
696
700
  this.bright = 1 - top / field.height;
697
-
701
+
698
702
  } else if (this.colors.tracking) {
699
703
  // preventing it from jumping to the top
700
704
  if (top == field.height) { top = field.height - 0.1; }
701
-
705
+
702
706
  var step = field.height / 6,
703
707
  tint = this.tint = [0, 0, 0],
704
708
  stright = top % step / step,
705
709
  reverse = 1 - stright;
706
-
710
+
707
711
  if (top < step) {
708
712
  tint[0] = 1;
709
713
  tint[2] = stright;
@@ -724,11 +728,11 @@ var Colorpicker = new Widget({
724
728
  tint[0] = 1;
725
729
  }
726
730
  }
727
-
731
+
728
732
  this.recalc().update();
729
733
  }
730
734
  },
731
-
735
+
732
736
  cancelTimer: function(event) {
733
737
  R(function() { // IE has a lack of sync in here
734
738
  if (this._hide_delay) {
@@ -739,6 +743,7 @@ var Colorpicker = new Widget({
739
743
  }
740
744
  });
741
745
 
746
+
742
747
  /**
743
748
  * The colors field element
744
749
  *
@@ -751,6 +756,7 @@ var Field = new Wrapper(Element, {
751
756
  }
752
757
  });
753
758
 
759
+
754
760
  /**
755
761
  * The tint picker block
756
762
  *
@@ -763,6 +769,7 @@ var Colors = new Wrapper(Element, {
763
769
  }
764
770
  });
765
771
 
772
+
766
773
  /**
767
774
  * The controls block unit
768
775
  *
@@ -784,8 +791,9 @@ var Controls = new Wrapper(Element, {
784
791
  }
785
792
  });
786
793
 
794
+
787
795
  /**
788
- * This module contains various caluculations logic for
796
+ * This module contains various caluculations logic for
789
797
  * the Colorpicker widget
790
798
  *
791
799
  * Copyright (C) 2010 Nikolay Nemshilov
@@ -800,7 +808,7 @@ Colorpicker.include({
800
808
  toRgb: function(color) {
801
809
  return 'rgb('+ this.color.join(',') +')';
802
810
  },
803
-
811
+
804
812
  /**
805
813
  * Converts the color to a HEX string value
806
814
  *
@@ -810,7 +818,7 @@ Colorpicker.include({
810
818
  toHex: function(color) {
811
819
  return '#'+ this.color.map(function(c) { return (c < 16 ? '0' : '') + c.toString(16); }).join('');
812
820
  },
813
-
821
+
814
822
  /**
815
823
  * Converts a string value into an Array of color
816
824
  *
@@ -819,22 +827,22 @@ Colorpicker.include({
819
827
  */
820
828
  toColor: function(in_value) {
821
829
  var value = in_value.toLowerCase(), match;
822
-
830
+
823
831
  if ((match = /rgb\((\d+),(\d+),(\d+)\)/.exec(value))) {
824
832
  return [match[1], match[2], match[3]].map(parseInt);
825
-
833
+
826
834
  } else if (/#[\da-f]+/.test(value)) {
827
835
  // converting the shortified hex in to the full-length version
828
836
  if ((match = /^#([\da-f])([\da-f])([\da-f])$/.exec(value))) {
829
837
  value = '#'+match[1]+match[1]+match[2]+match[2]+match[3]+match[3];
830
838
  }
831
-
839
+
832
840
  if ((match = /#([\da-f]{2})([\da-f]{2})([\da-f]{2})/.exec(value))) {
833
841
  return [match[1], match[2], match[3]].map(function(n) { return parseInt(n, 16); });
834
842
  }
835
843
  }
836
844
  },
837
-
845
+
838
846
  /**
839
847
  * converts color into the tint, saturation and brightness values
840
848
  *
@@ -843,19 +851,19 @@ Colorpicker.include({
843
851
  color2tint: function() {
844
852
  var color = $A(this.color).sort(function(a,b) { return a-b; }),
845
853
  min = color[0], max = color[2];
846
-
854
+
847
855
  this.bright = max / 255;
848
856
  this.satur = 1 - min / (max || 1);
849
-
857
+
850
858
  this.tint.each(function(value, i) {
851
859
  this.tint[i] = ((!min && !max) || min == max) ? i == 0 ? 1 : 0 :
852
860
  (this.color[i] - min) / (max - min);
853
861
  return this.tint[i];
854
862
  }, this);
855
-
863
+
856
864
  return this;
857
865
  },
858
-
866
+
859
867
  /**
860
868
  * Converts tint, saturation and brightness into the actual RGB color
861
869
  *
@@ -863,15 +871,15 @@ Colorpicker.include({
863
871
  */
864
872
  tint2color: function() {
865
873
  var tint = this.tint, color = this.color;
866
-
874
+
867
875
  for (var i=0; i < 3; i++) {
868
876
  color[i] = 1 + this.satur * (tint[i] - 1);
869
877
  color[i] = Math.round(255 * color[i] * this.bright);
870
878
  }
871
-
879
+
872
880
  return this;
873
881
  },
874
-
882
+
875
883
  /**
876
884
  * bounds the value to the given limits
877
885
  *
@@ -882,18 +890,19 @@ Colorpicker.include({
882
890
  */
883
891
  bound: function(in_value, min, max) {
884
892
  var value = in_value;
885
-
893
+
886
894
  if (min < max) {
887
895
  value = value < min ? min : value > max ? max : value;
888
896
  } else {
889
897
  if (value > max) { value = max; }
890
898
  if (value < min) { value = min; }
891
899
  }
892
-
900
+
893
901
  return value;
894
902
  }
895
903
  });
896
904
 
905
+
897
906
  /**
898
907
  * The document level hooks for colorpicker
899
908
  *
@@ -905,27 +914,27 @@ $(document).on({
905
914
  Colorpicker.tracking.stopTrack();
906
915
  }
907
916
  },
908
-
917
+
909
918
  mousemove: function(event) {
910
919
  if (Colorpicker.tracking) {
911
920
  Colorpicker.tracking.trackMove(event);
912
921
  }
913
922
  },
914
-
923
+
915
924
  focus: function(event) {
916
925
  var target = event.target instanceof Input ? event.target : null;
917
-
926
+
918
927
  Colorpicker.hideAll();
919
-
928
+
920
929
  if (target && (target.colorpicker || target.match(Colorpicker.Options.cssRule))) {
921
930
  (target.colorpicker || new Colorpicker({update: target}))
922
931
  .setValue(target.value()).showAt(target);
923
932
  }
924
933
  },
925
-
934
+
926
935
  blur: function(event) {
927
936
  var target = event.target, colorpicker = target.colorpicker;
928
-
937
+
929
938
  if (colorpicker) {
930
939
  // we use the delay so it didn't get hidden when the user clicks the calendar itself
931
940
  colorpicker._hide_delay = R(function() {
@@ -933,10 +942,10 @@ $(document).on({
933
942
  }).delay(200);
934
943
  }
935
944
  },
936
-
945
+
937
946
  click: function(event) {
938
947
  var target = (event.target instanceof Element) ? event.target : null;
939
-
948
+
940
949
  if (target && (target.colorpicker || target.match(Colorpicker.Options.cssRule))) {
941
950
  if (!(target instanceof Input)) {
942
951
  event.stop();
@@ -947,13 +956,13 @@ $(document).on({
947
956
  Colorpicker.hideAll();
948
957
  }
949
958
  },
950
-
959
+
951
960
  keydown: function(event) {
952
961
  var colorpicker = Colorpicker.current, name = ({
953
962
  27: 'hide', // Escape
954
963
  13: 'done' // Enter
955
964
  })[event.keyCode];
956
-
965
+
957
966
  if (name && colorpicker && colorpicker.visible()) {
958
967
  event.stop();
959
968
  colorpicker[name]();
@@ -961,7 +970,8 @@ $(document).on({
961
970
  }
962
971
  });
963
972
 
973
+
964
974
  document.write("<style type=\"text/css\"> *.rui-button{display:inline-block; *display:inline; *zoom:1;height:1em;line-height:1em;margin:0;padding:.2em .5em;text-align:center;border:1px solid #CCC;border-radius:.2em;-moz-border-radius:.2em;-webkit-border-radius:.2em;cursor:pointer;color:#333;background-color:#FFF;user-select:none;-moz-user-select:none;-webkit-user-select:none} *.rui-button:hover{color:#111;border-color:#999;background-color:#DDD;box-shadow:#888 0 0 .1em;-moz-box-shadow:#888 0 0 .1em;-webkit-box-shadow:#888 0 0 .1em} *.rui-button:active{color:#000;border-color:#777;text-indent:1px;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none} *.rui-button-disabled, *.rui-button-disabled:hover, *.rui-button-disabled:active{color:#888;background:#DDD;border-color:#CCC;cursor:default;text-indent:0;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none}div.rui-re-anchor{margin:0;padding:0;background:none;border:none;float:none;display:inline;position:absolute;z-index:9999}.rui-panel{margin:0;padding:.5em;position:relative;background-color:#EEE;border:1px solid #BBB;border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;box-shadow:.15em .3em .5em #BBB;-moz-box-shadow:.15em .3em .5em #BBB;-webkit-box-shadow:.15em .3em .5em #BBB;cursor:default}div.rui-colorpicker .field,div.rui-colorpicker .field *,div.rui-colorpicker .colors,div.rui-colorpicker .colors *{border:none;background:none;width:auto;height:auto;position:static;float:none;top:none;left:none;right:none;bottom:none;margin:0;padding:0;display:block;font-weight:normal;vertical-align:center}div.rui-colorpicker div.field,div.rui-colorpicker div.field div.pointer,div.rui-colorpicker div.colors,div.rui-colorpicker div.colors div.pointer{background:url(/images/rightjs-ui/colorpicker.png) no-repeat 0 0}div.rui-colorpicker div.field,div.rui-colorpicker div.colors,div.rui-colorpicker div.controls{display:inline-block; *display:inline; *zoom:1;position:relative;vertical-align:top;height:150px}div.rui-colorpicker div.field div.pointer,div.rui-colorpicker div.colors div.pointer{position:absolute;top:0px;left:0;width:9px;height:9px}div.rui-colorpicker input.display,div.rui-colorpicker div.preview,div.rui-colorpicker div.rgb-display,div.rui-colorpicker input.rui-ui-button{font-size:100%;display:block;width:auto;padding:0 .2em}div.rui-colorpicker input.display,div.rui-colorpicker div.preview,div.rui-colorpicker div.rgb-display input,div.rui-colorpicker input.rui-ui-button{border:1px solid #AAA;-moz-border-radius:.2em;-webkit-border-radius:.2em}div.rui-colorpicker div.field{width:150px;background-color:red;cursor:crosshair;margin-right:1.2em}div.rui-colorpicker div.field div.pointer{background-position:-170px 0;margin-left:-2px;margin-top:-2px}div.rui-colorpicker div.colors{width:16px;background-position:-150px 0;border-color:#EEE;cursor:pointer;margin-right:.6em}div.rui-colorpicker div.colors div.pointer{cursor:default;background-position:-170px -20px;margin-left:-8px;margin-top:-3px}div.rui-colorpicker div.controls{width:5em}div.rui-colorpicker div.preview{height:2em;background:white;border-color:#BBB}div.rui-colorpicker input.display{margin-top:.5em;background:#FFF;width:4.5em}div.rui-colorpicker div.rgb-display{padding:0;text-align:right;margin-top:.5em}div.rui-colorpicker div.rgb-display label{display:inline}div.rui-colorpicker div.rgb-display label:after{content:none}div.rui-colorpicker div.rgb-display input{vertical-align:top;font-size:100%;width:2em;text-align:right;margin-left:.2em;padding:0 .2em;background:#FFF;margin-bottom:1px;display:inline}div.rui-colorpicker div.rui-button{cursor:pointer;position:absolute;bottom:0;right:0;width:4em}div.rui-colorpicker-inline{display:inline-block; *display:inline; *zoom:1;position:relative;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;z-index:auto}</style>");
965
975
 
966
976
  return Colorpicker;
967
- })(document, Math, parseInt, RightJS);
977
+ })(document, Math, parseInt, RightJS);