YAHOO.util.Color=function(){var a="0",c=YAHOO.lang.isArray,b=YAHOO.lang.isNumber;return{real2dec:function(d){return Math.min(255,Math.round(d*256));},hsv2rgb:function(l,e,g){if(c(l)){return this.hsv2rgb.call(this,l[0],l[1],l[2]);}var d,k,h,m=Math.floor((l/60)%6),j=(l/60)-m,n=g*(1-e),o=g*(1-j*e),f=g*(1-(1-j)*e),i;
switch(m){case 0:d=g;k=f;h=n;break;case 1:d=o;k=g;h=n;break;case 2:d=n;k=g;h=f;break;case 3:d=n;k=o;h=g;break;case 4:d=f;k=n;h=g;break;case 5:d=g;k=n;h=o;break;}i=this.real2dec;return[i(d),i(k),i(h)];},rgb2hsv:function(d,i,h){if(c(d)){return this.rgb2hsv.apply(this,d);}d/=255;i/=255;h/=255;var j,e,l=Math.min(Math.min(d,i),h),g=Math.max(Math.max(d,i),h),f=g-l,k;
switch(g){case l:j=0;break;case d:j=60*(i-h)/f;if(i<h){j+=360;}break;case i:j=(60*(h-d)/f)+120;break;case h:j=(60*(d-i)/f)+240;break;}e=(g===0)?0:1-(l/g);k=[Math.round(j),e,g];return k;},rgb2hex:function(e,f,g){if(c(e)){return this.rgb2hex.apply(this,e);}var d=this.dec2hex;return d(e)+d(f)+d(g);},dec2hex:function(d){d=parseInt(d,10)|0;
d=(d>255||d<0)?0:d;return(a+d.toString(16)).slice(-2).toUpperCase();},hex2dec:function(d){return parseInt(d,16);},hex2rgb:function(e){var d=this.hex2dec;return[d(e.slice(0,2)),d(e.slice(2,4)),d(e.slice(4,6))];},websafe:function(e,f,g){if(c(e)){return this.websafe.apply(this,e);}var d=function(j){if(b(j)){j=Math.min(Math.max(0,j),255);
var i,h;for(i=0;i<256;i=i+51){h=i+51;if(j>=i&&j<=h){return(j-i>25)?h:i;}}}return j;};return[d(e),d(f),d(g)];}};}();(function(){var e=0,i=YAHOO.util,b=YAHOO.lang,a=YAHOO.widget.Slider,c=i.Color,j=i.Dom,f=i.Event,d=b.substitute,g="yui-picker";function h(k,l){e=e+1;l=l||{};if(arguments.length===1&&!YAHOO.lang.isString(k)&&!k.nodeName){l=k;
k=l.element||null;}if(!k&&!l.element){k=this._createHostElement(l);}h.superclass.constructor.call(this,k,l);this.initPicker();}YAHOO.extend(h,YAHOO.util.Element,{ID:{R:g+"-r",R_HEX:g+"-rhex",G:g+"-g",G_HEX:g+"-ghex",B:g+"-b",B_HEX:g+"-bhex",H:g+"-h",S:g+"-s",V:g+"-v",PICKER_BG:g+"-bg",PICKER_THUMB:g+"-thumb",HUE_BG:g+"-hue-bg",HUE_THUMB:g+"-hue-thumb",HEX:g+"-hex",SWATCH:g+"-swatch",WEBSAFE_SWATCH:g+"-websafe-swatch",CONTROLS:g+"-controls",RGB_CONTROLS:g+"-rgb-controls",HSV_CONTROLS:g+"-hsv-controls",HEX_CONTROLS:g+"-hex-controls",HEX_SUMMARY:g+"-hex-summary",CONTROLS_LABEL:g+"-controls-label"},TXT:{ILLEGAL_HEX:"Illegal hex value entered",SHOW_CONTROLS:"Show color details",HIDE_CONTROLS:"Hide color details",CURRENT_COLOR:"Currently selected color: {rgb}",CLOSEST_WEBSAFE:"Closest websafe color: {rgb}. Click to select.",R:"R",G:"G",B:"B",H:"H",S:"S",V:"V",HEX:"#",DEG:"\u00B0",PERCENT:"%"},IMAGE:{PICKER_THUMB:"../../build/colorpicker/assets/picker_thumb.png",HUE_THUMB:"../../build/colorpicker/assets/hue_thumb.png"},DEFAULT:{PICKER_SIZE:180},OPT:{HUE:"hue",SATURATION:"saturation",VALUE:"value",RED:"red",GREEN:"green",BLUE:"blue",HSV:"hsv",RGB:"rgb",WEBSAFE:"websafe",HEX:"hex",PICKER_SIZE:"pickersize",SHOW_CONTROLS:"showcontrols",SHOW_RGB_CONTROLS:"showrgbcontrols",SHOW_HSV_CONTROLS:"showhsvcontrols",SHOW_HEX_CONTROLS:"showhexcontrols",SHOW_HEX_SUMMARY:"showhexsummary",SHOW_WEBSAFE:"showwebsafe",CONTAINER:"container",IDS:"ids",ELEMENTS:"elements",TXT:"txt",IMAGES:"images",ANIMATE:"animate"},skipAnim:true,_createHostElement:function(){var k=document.createElement("div");
if(this.CSS.BASE){k.className=this.CSS.BASE;}return k;},_updateHueSlider:function(){var l=this.get(this.OPT.PICKER_SIZE),k=this.get(this.OPT.HUE);k=l-Math.round(k/360*l);if(k===l){k=0;}this.hueSlider.setValue(k,this.skipAnim);},_updatePickerSlider:function(){var k=this.get(this.OPT.PICKER_SIZE),m=this.get(this.OPT.SATURATION),l=this.get(this.OPT.VALUE);
m=Math.round(m*k/100);l=Math.round(k-(l*k/100));this.pickerSlider.setRegionValue(m,l,this.skipAnim);},_updateSliders:function(){this._updateHueSlider();this._updatePickerSlider();},setValue:function(k,l){l=(l)||false;this.set(this.OPT.RGB,k,l);this._updateSliders();},hueSlider:null,pickerSlider:null,_getH:function(){var l=this.get(this.OPT.PICKER_SIZE),k=(l-this.hueSlider.getValue())/l;
k=Math.round(k*360);return(k===360)?0:k;},_getS:function(){return this.pickerSlider.getXValue()/this.get(this.OPT.PICKER_SIZE);},_getV:function(){var k=this.get(this.OPT.PICKER_SIZE);return(k-this.pickerSlider.getYValue())/k;},_updateSwatch:function(){var o=this.get(this.OPT.RGB),m=this.get(this.OPT.WEBSAFE),n=this.getElement(this.ID.SWATCH),k=o.join(","),l=this.get(this.OPT.TXT);
j.setStyle(n,"background-color","rgb("+k+")");n.title=d(l.CURRENT_COLOR,{"rgb":"#"+this.get(this.OPT.HEX)});n=this.getElement(this.ID.WEBSAFE_SWATCH);k=m.join(",");j.setStyle(n,"background-color","rgb("+k+")");n.title=d(l.CLOSEST_WEBSAFE,{"rgb":"#"+c.rgb2hex(m)});},_getValuesFromSliders:function(){this.set(this.OPT.RGB,c.hsv2rgb(this._getH(),this._getS(),this._getV()));
},_updateFormFields:function(){this.getElement(this.ID.H).value=this.get(this.OPT.HUE);this.getElement(this.ID.S).value=this.get(this.OPT.SATURATION);this.getElement(this.ID.V).value=this.get(this.OPT.VALUE);this.getElement(this.ID.R).value=this.get(this.OPT.RED);this.getElement(this.ID.R_HEX).innerHTML=c.dec2hex(this.get(this.OPT.RED));
this.getElement(this.ID.G).value=this.get(this.OPT.GREEN);this.getElement(this.ID.G_HEX).innerHTML=c.dec2hex(this.get(this.OPT.GREEN));this.getElement(this.ID.B).value=this.get(this.OPT.BLUE);this.getElement(this.ID.B_HEX).innerHTML=c.dec2hex(this.get(this.OPT.BLUE));this.getElement(this.ID.HEX).value=this.get(this.OPT.HEX);
},_onHueSliderChange:function(m){var k=this._getH(),l=c.hsv2rgb(k,1,1),n="rgb("+l.join(",")+")";this.set(this.OPT.HUE,k,true);j.setStyle(this.getElement(this.ID.PICKER_BG),"background-color",n);if(this.hueSlider.valueChangeSource!==a.SOURCE_SET_VALUE){this._getValuesFromSliders();}this._updateFormFields();
this._updateSwatch();},_onPickerSliderChange:function(m){var k=this._getS(),l=this._getV();this.set(this.OPT.SATURATION,Math.round(k*100),true);this.set(this.OPT.VALUE,Math.round(l*100),true);if(this.pickerSlider.valueChangeSource!==a.SOURCE_SET_VALUE){this._getValuesFromSliders();}this._updateFormFields();
this._updateSwatch();},_getCommand:function(l){var k=f.getCharCode(l);if(k===38){return 3;}else{if(k===13){return 6;}else{if(k===40){return 4;}else{if(k>=48&&k<=57){return 1;}else{if(k>=97&&k<=102){return 2;}else{if(k>=65&&k<=70){return 2;}else{if("8, 9, 13, 27, 37, 39".indexOf(k)>-1||l.ctrlKey||l.metaKey){return 5;
}else{return 0;}}}}}}}},_useFieldValue:function(k,l,m){var n=l.value;if(m!==this.OPT.HEX){n=parseInt(n,10);}if(n!==this.get(m)){this.set(m,n);}},_rgbFieldKeypress:function(o,l,m){var n=this._getCommand(o),k=(o.shiftKey)?10:1;switch(n){case 6:this._useFieldValue.apply(this,arguments);break;case 3:this.set(m,Math.min(this.get(m)+k,255));
this._updateFormFields();break;case 4:this.set(m,Math.max(this.get(m)-k,0));this._updateFormFields();break;default:}},_hexFieldKeypress:function(k,l,m){var n=this._getCommand(k);if(n===6){this._useFieldValue.apply(this,arguments);}},_hexOnly:function(k,l){var m=this._getCommand(k);switch(m){case 6:case 5:case 1:break;
case 2:if(l!==true){break;}default:f.stopEvent(k);return false;}},_numbersOnly:function(k){return this._hexOnly(k,true);},getElement:function(k){return this.get(this.OPT.ELEMENTS)[this.get(this.OPT.IDS)[k]];},_createElements:function(){var q,r,o,p,s,t=this.get(this.OPT.IDS),n=this.get(this.OPT.TXT),l=this.get(this.OPT.IMAGES),m=function(w,v){var u=document.createElement(w);
if(v){b.augmentObject(u,v,true);}return u;},k=function(w,v){var u=b.merge({autocomplete:"off",value:"0",size:3,maxlength:3},v);u.name=u.id;return new m(w,u);};s=this.get("element");q=new m("div",{id:t[this.ID.PICKER_BG],className:"yui-picker-bg",tabIndex:-1,hideFocus:true});r=new m("div",{id:t[this.ID.PICKER_THUMB],className:"yui-picker-thumb"});
o=new m("img",{src:l.PICKER_THUMB});r.appendChild(o);q.appendChild(r);s.appendChild(q);q=new m("div",{id:t[this.ID.HUE_BG],className:"yui-picker-hue-bg",tabIndex:-1,hideFocus:true});r=new m("div",{id:t[this.ID.HUE_THUMB],className:"yui-picker-hue-thumb"});o=new m("img",{src:l.HUE_THUMB});r.appendChild(o);
q.appendChild(r);s.appendChild(q);q=new m("div",{id:t[this.ID.CONTROLS],className:"yui-picker-controls"});s.appendChild(q);s=q;q=new m("div",{className:"hd"});r=new m("a",{id:t[this.ID.CONTROLS_LABEL],href:"#"});q.appendChild(r);s.appendChild(q);q=new m("div",{className:"bd"});s.appendChild(q);s=q;q=new m("ul",{id:t[this.ID.RGB_CONTROLS],className:"yui-picker-rgb-controls"});
r=new m("li");r.appendChild(document.createTextNode(n.R+" "));p=new k("input",{id:t[this.ID.R],className:"yui-picker-r"});r.appendChild(p);q.appendChild(r);r=new m("li");r.appendChild(document.createTextNode(n.G+" "));p=new k("input",{id:t[this.ID.G],className:"yui-picker-g"});r.appendChild(p);q.appendChild(r);
r=new m("li");r.appendChild(document.createTextNode(n.B+" "));p=new k("input",{id:t[this.ID.B],className:"yui-picker-b"});r.appendChild(p);q.appendChild(r);s.appendChild(q);q=new m("ul",{id:t[this.ID.HSV_CONTROLS],className:"yui-picker-hsv-controls"});r=new m("li");r.appendChild(document.createTextNode(n.H+" "));
p=new k("input",{id:t[this.ID.H],className:"yui-picker-h"});r.appendChild(p);r.appendChild(document.createTextNode(" "+n.DEG));q.appendChild(r);r=new m("li");r.appendChild(document.createTextNode(n.S+" "));p=new k("input",{id:t[this.ID.S],className:"yui-picker-s"});r.appendChild(p);r.appendChild(document.createTextNode(" "+n.PERCENT));
q.appendChild(r);r=new m("li");r.appendChild(document.createTextNode(n.V+" "));p=new k("input",{id:t[this.ID.V],className:"yui-picker-v"});r.appendChild(p);r.appendChild(document.createTextNode(" "+n.PERCENT));q.appendChild(r);s.appendChild(q);q=new m("ul",{id:t[this.ID.HEX_SUMMARY],className:"yui-picker-hex_summary"});
r=new m("li",{id:t[this.ID.R_HEX]});q.appendChild(r);r=new m("li",{id:t[this.ID.G_HEX]});q.appendChild(r);r=new m("li",{id:t[this.ID.B_HEX]});q.appendChild(r);s.appendChild(q);q=new m("div",{id:t[this.ID.HEX_CONTROLS],className:"yui-picker-hex-controls"});q.appendChild(document.createTextNode(n.HEX+" "));
r=new k("input",{id:t[this.ID.HEX],className:"yui-picker-hex",size:6,maxlength:6});q.appendChild(r);s.appendChild(q);s=this.get("element");q=new m("div",{id:t[this.ID.SWATCH],className:"yui-picker-swatch"});s.appendChild(q);q=new m("div",{id:t[this.ID.WEBSAFE_SWATCH],className:"yui-picker-websafe-swatch"});
s.appendChild(q);},_attachRGBHSV:function(k,l){f.on(this.getElement(k),"keydown",function(m,n){n._rgbFieldKeypress(m,this,l);},this);f.on(this.getElement(k),"keypress",this._numbersOnly,this,true);f.on(this.getElement(k),"blur",function(m,n){n._useFieldValue(m,this,l);},this);},_updateRGB:function(){var k=[this.get(this.OPT.RED),this.get(this.OPT.GREEN),this.get(this.OPT.BLUE)];
this.set(this.OPT.RGB,k);this._updateSliders();},_initElements:function(){var n=this.OPT,o=this.get(n.IDS),k=this.get(n.ELEMENTS),l,p,m;for(l in this.ID){if(b.hasOwnProperty(this.ID,l)){o[this.ID[l]]=o[l];}}p=j.get(o[this.ID.PICKER_BG]);if(!p){this._createElements();}else{}for(l in o){if(b.hasOwnProperty(o,l)){p=j.get(o[l]);
m=j.generateId(p);o[l]=m;o[o[l]]=m;k[m]=p;}}},initPicker:function(){this._initSliders();this._bindUI();this.syncUI(true);},_initSliders:function(){var l=this.ID,k=this.get(this.OPT.PICKER_SIZE);this.hueSlider=a.getVertSlider(this.getElement(l.HUE_BG),this.getElement(l.HUE_THUMB),0,k);this.pickerSlider=a.getSliderRegion(this.getElement(l.PICKER_BG),this.getElement(l.PICKER_THUMB),0,k,0,k);
this.set(this.OPT.ANIMATE,this.get(this.OPT.ANIMATE));},_bindUI:function(){var l=this.ID,k=this.OPT;this.hueSlider.subscribe("change",this._onHueSliderChange,this,true);this.pickerSlider.subscribe("change",this._onPickerSliderChange,this,true);f.on(this.getElement(l.WEBSAFE_SWATCH),"click",function(m){this.setValue(this.get(k.WEBSAFE));
},this,true);f.on(this.getElement(l.CONTROLS_LABEL),"click",function(m){this.set(k.SHOW_CONTROLS,!this.get(k.SHOW_CONTROLS));f.preventDefault(m);},this,true);this._attachRGBHSV(l.R,k.RED);this._attachRGBHSV(l.G,k.GREEN);this._attachRGBHSV(l.B,k.BLUE);this._attachRGBHSV(l.H,k.HUE);this._attachRGBHSV(l.S,k.SATURATION);
this._attachRGBHSV(l.V,k.VALUE);f.on(this.getElement(l.HEX),"keydown",function(m,n){n._hexFieldKeypress(m,this,k.HEX);},this);f.on(this.getElement(this.ID.HEX),"keypress",this._hexOnly,this,true);f.on(this.getElement(this.ID.HEX),"blur",function(m,n){n._useFieldValue(m,this,k.HEX);},this);},syncUI:function(k){this.skipAnim=k;
this._updateRGB();this.skipAnim=false;},_updateRGBFromHSV:function(){var k=[this.get(this.OPT.HUE),this.get(this.OPT.SATURATION)/100,this.get(this.OPT.VALUE)/100],l=c.hsv2rgb(k);this.set(this.OPT.RGB,l);this._updateSliders();},_updateHex:function(){var n=this.get(this.OPT.HEX),l=n.length,m,o,k;if(l===3){m=n.split("");
for(o=0;o<l;o=o+1){m[o]=m[o]+m[o];}n=m.join("");}if(n.length!==6){return false;}k=c.hex2rgb(n);this.setValue(k);},_hideShowEl:function(m,l){var k=(b.isString(m)?this.getElement(m):m);j.setStyle(k,"display",(l)?"":"none");},initAttributes:function(l){l=l||{};h.superclass.initAttributes.call(this,l);this.setAttributeConfig(this.OPT.PICKER_SIZE,{value:l.size||this.DEFAULT.PICKER_SIZE});
this.setAttributeConfig(this.OPT.HUE,{value:l.hue||0,validator:b.isNumber});this.setAttributeConfig(this.OPT.SATURATION,{value:l.saturation||0,validator:b.isNumber});this.setAttributeConfig(this.OPT.VALUE,{value:b.isNumber(l.value)?l.value:100,validator:b.isNumber});this.setAttributeConfig(this.OPT.RED,{value:b.isNumber(l.red)?l.red:255,validator:b.isNumber});
this.setAttributeConfig(this.OPT.GREEN,{value:b.isNumber(l.green)?l.green:255,validator:b.isNumber});this.setAttributeConfig(this.OPT.BLUE,{value:b.isNumber(l.blue)?l.blue:255,validator:b.isNumber});this.setAttributeConfig(this.OPT.HEX,{value:l.hex||"FFFFFF",validator:b.isString});this.setAttributeConfig(this.OPT.RGB,{value:l.rgb||[255,255,255],method:function(p){this.set(this.OPT.RED,p[0],true);
this.set(this.OPT.GREEN,p[1],true);this.set(this.OPT.BLUE,p[2],true);var n=c.websafe(p),o=c.rgb2hex(p),q=c.rgb2hsv(p);this.set(this.OPT.WEBSAFE,n,true);this.set(this.OPT.HEX,o,true);if(q[1]){this.set(this.OPT.HUE,q[0],true);}this.set(this.OPT.SATURATION,Math.round(q[1]*100),true);this.set(this.OPT.VALUE,Math.round(q[2]*100),true);
},readonly:true});this.setAttributeConfig(this.OPT.CONTAINER,{value:null,method:function(n){if(n){n.showEvent.subscribe(function(){this.pickerSlider.focus();},this,true);}}});this.setAttributeConfig(this.OPT.WEBSAFE,{value:l.websafe||[255,255,255]});var m=l.ids||b.merge({},this.ID),k;if(!l.ids&&e>1){for(k in m){if(b.hasOwnProperty(m,k)){m[k]=m[k]+e;
}}}this.setAttributeConfig(this.OPT.IDS,{value:m,writeonce:true});this.setAttributeConfig(this.OPT.TXT,{value:l.txt||this.TXT,writeonce:true});this.setAttributeConfig(this.OPT.IMAGES,{value:l.images||this.IMAGE,writeonce:true});this.setAttributeConfig(this.OPT.ELEMENTS,{value:{},readonly:true});this.setAttributeConfig(this.OPT.SHOW_CONTROLS,{value:b.isBoolean(l.showcontrols)?l.showcontrols:true,method:function(o){var n=j.getElementsByClassName("bd","div",this.getElement(this.ID.CONTROLS))[0];
this._hideShowEl(n,o);this.getElement(this.ID.CONTROLS_LABEL).innerHTML=(o)?this.get(this.OPT.TXT).HIDE_CONTROLS:this.get(this.OPT.TXT).SHOW_CONTROLS;}});this.setAttributeConfig(this.OPT.SHOW_RGB_CONTROLS,{value:b.isBoolean(l.showrgbcontrols)?l.showrgbcontrols:true,method:function(n){this._hideShowEl(this.ID.RGB_CONTROLS,n);
}});this.setAttributeConfig(this.OPT.SHOW_HSV_CONTROLS,{value:b.isBoolean(l.showhsvcontrols)?l.showhsvcontrols:false,method:function(n){this._hideShowEl(this.ID.HSV_CONTROLS,n);if(n&&this.get(this.OPT.SHOW_HEX_SUMMARY)){this.set(this.OPT.SHOW_HEX_SUMMARY,false);}}});this.setAttributeConfig(this.OPT.SHOW_HEX_CONTROLS,{value:b.isBoolean(l.showhexcontrols)?l.showhexcontrols:false,method:function(n){this._hideShowEl(this.ID.HEX_CONTROLS,n);
}});this.setAttributeConfig(this.OPT.SHOW_WEBSAFE,{value:b.isBoolean(l.showwebsafe)?l.showwebsafe:true,method:function(n){this._hideShowEl(this.ID.WEBSAFE_SWATCH,n);}});this.setAttributeConfig(this.OPT.SHOW_HEX_SUMMARY,{value:b.isBoolean(l.showhexsummary)?l.showhexsummary:true,method:function(n){this._hideShowEl(this.ID.HEX_SUMMARY,n);
if(n&&this.get(this.OPT.SHOW_HSV_CONTROLS)){this.set(this.OPT.SHOW_HSV_CONTROLS,false);}}});this.setAttributeConfig(this.OPT.ANIMATE,{value:b.isBoolean(l.animate)?l.animate:true,method:function(n){if(this.pickerSlider){this.pickerSlider.animate=n;this.hueSlider.animate=n;}}});this.on(this.OPT.HUE+"Change",this._updateRGBFromHSV,this,true);
this.on(this.OPT.SATURATION+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.VALUE+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.RED+"Change",this._updateRGB,this,true);this.on(this.OPT.GREEN+"Change",this._updateRGB,this,true);this.on(this.OPT.BLUE+"Change",this._updateRGB,this,true);
this.on(this.OPT.HEX+"Change",this._updateHex,this,true);this._initElements();}});YAHOO.widget.ColorPicker=h;})();YAHOO.register("colorpicker",YAHOO.widget.ColorPicker,{version:"2.7.0",build:"1799"});