(function(B){var A=function(){var q={},C,l=65,U,n='<div class="colorpicker"><div class="colorpicker_color"><div><div></div></div></div><div class="colorpicker_hue"><div></div></div><div class="colorpicker_new_color"></div><div class="colorpicker_current_color"></div><div class="colorpicker_hex"><input type="text" maxlength="6" size="6" /></div><div class="colorpicker_rgb_r colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_g colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_h colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_s colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_submit"></div></div>',a={eventName:"click",onShow:function(){},onBeforeShow:function(){},onHide:function(){},onChange:function(){},onSubmit:function(){},color:"ff0000",flat:false},h=function(r,t){var s=J(r);B(t).data("colorpicker").fields.eq(1).val(s.r).end().eq(2).val(s.g).end().eq(3).val(s.b).end()},V=function(r,s){B(s).data("colorpicker").fields.eq(4).val(r.h).end().eq(5).val(r.s).end().eq(6).val(r.b).end()},G=function(r,s){B(s).data("colorpicker").fields.eq(0).val(p(r)).end()},L=function(r,s){B(s).data("colorpicker").selector.css("backgroundColor","#"+p({h:r.h,s:100,b:100}));B(s).data("colorpicker").selectorIndic.css({left:parseInt(150*r.s/100,10),top:parseInt(150*(100-r.b)/100,10)})},e=function(r,s){B(s).data("colorpicker").hue.css("top",parseInt(150-150*r.h/360,10))},H=function(r,s){B(s).data("colorpicker").currentColor.css("backgroundColor","#"+p(r))},d=function(r,s){B(s).data("colorpicker").newColor.css("backgroundColor","#"+p(r))},N=function(r){var s=r.charCode||r.keyCode||-1;if((s>=l&&s<=90)||s==32){return false}},E=function(s){var t=B(this).parent().parent(),r;if(this.parentNode.className.indexOf("_hex")>0){t.data("colorpicker").color=r=M(this.value);h(r.color,t.get(0));V(r,t.get(0))}else{if(this.parentNode.className.indexOf("_hsb")>0){t.data("colorpicker").color=r=F({h:parseInt(t.data("colorpicker").fields.eq(4).val(),10),s:parseInt(t.data("colorpicker").fields.eq(5).val(),10),b:parseInt(t.data("colorpicker").fields.eq(6).val(),10)});h(r,t.get(0));G(r,t.get(0))}else{t.data("colorpicker").color=r=I(k({r:parseInt(t.data("colorpicker").fields.eq(1).val(),10),g:parseInt(t.data("colorpicker").fields.eq(2).val(),10),b:parseInt(t.data("colorpicker").fields.eq(3).val(),10)}));G(r,t.get(0));V(r,t.get(0))}}L(r,t.get(0));e(r,t.get(0));d(r,t.get(0));t.data("colorpicker").onChange.apply(t,[r,p(r),J(r)])},O=function(s){var t=B(this).parent().parent();var r=t.data("colorpicker").color;h(r,t.get(0));V(r,t.get(0));G(r,t.get(0));e(r,t.get(0));L(r,t.get(0));d(r,t.get(0));t.data("colorpicker").fields.parent().removeClass("colorpicker_focus")},i=function(){l=this.parentNode.className.indexOf("_hex")>0?70:65;B(this).parent().parent().data("colorpicker").fields.parent().removeClass("colorpicker_focus");B(this).parent().addClass("colorpicker_focus")},g=function(r){var t=B(this).parent().find("input").focus();var s={el:B(this).parent().addClass("colorpicker_slider"),max:this.parentNode.className.indexOf("_hsb_h")>0?360:(this.parentNode.className.indexOf("_hsb")>0?100:255),y:r.pageY,field:t,val:parseInt(t.val(),10)};B(document).bind("mouseup",s,T);B(document).bind("mousemove",s,j);return false},j=function(r){r.data.field.val(Math.max(0,Math.min(r.data.max,parseInt(r.data.val+r.pageY-r.data.y,10))));E.apply(r.data.field.get(0));return false},T=function(r){r.data.el.removeClass("colorpicker_slider").find("input").focus();E.apply(r.data.field.get(0));B(document).unbind("mouseup",T);B(document).unbind("mousemove",j);return false},X=function(r){var s={cal:B(this).parent(),y:B(this).offset().top};E.apply(s.cal.data("colorpicker").fields.eq(4).val(parseInt(360*(150-Math.max(0,Math.min(150,(r.pageY-s.y))))/150,10)).get(0));B(document).bind("mouseup",s,R);B(document).bind("mousemove",s,K);return false},K=function(r){E.apply(r.data.cal.data("colorpicker").fields.eq(4).val(parseInt(360*(150-Math.max(0,Math.min(150,(r.pageY-r.data.y))))/150,10)).get(0));return false},R=function(r){B(document).unbind("mouseup",R);B(document).unbind("mousemove",K);return false},Y=function(r){var s={cal:B(this).parent(),pos:B(this).offset()};E.apply(s.cal.data("colorpicker").fields.eq(6).val(parseInt(100*(150-Math.max(0,Math.min(150,(r.pageY-s.pos.top))))/150,10)).end().eq(5).val(parseInt(100*(Math.max(0,Math.min(150,(r.pageX-s.pos.left))))/150,10)).get(0));B(document).bind("mouseup",s,Z);B(document).bind("mousemove",s,Q);return false},Q=function(r){E.apply(r.data.cal.data("colorpicker").fields.eq(6).val(parseInt(100*(150-Math.max(0,Math.min(150,(r.pageY-r.data.pos.top))))/150,10)).end().eq(5).val(parseInt(100*(Math.max(0,Math.min(150,(r.pageX-r.data.pos.left))))/150,10)).get(0));return false},Z=function(r){B(document).unbind("mouseup",Z);B(document).unbind("mousemove",Q);return false},W=function(r){B(this).addClass("colorpicker_focus")},o=function(r){B(this).removeClass("colorpicker_focus")},P=function(s){var t=B(this).parent();var r=t.data("colorpicker").color;t.data("colorpicker").origColor=r;H(r,t.get(0));t.data("colorpicker").onSubmit(r,p(r),J(r));return false},c=function(r){var v=B("#"+B(this).data("colorpickerId"));v.data("colorpicker").onBeforeShow.apply(this,[v.get(0)]);var w=B(this).offset();var u=S();var t=w.top+this.offsetHeight;var s=w.left;if(t+176>u.t+Math.min(u.h,u.ih)){t-=this.offsetHeight+176}if(s+356>u.l+Math.min(u.w,u.iw)){s-=356}v.css({left:s+"px",top:t+"px"});if(v.data("colorpicker").onShow.apply(this,[v.get(0)])!=false){v.show()}B(document).bind("mousedown",{cal:v},m);return false},m=function(r){if(!f(r.data.cal.get(0),r.target,r.data.cal.get(0))){if(r.data.cal.data("colorpicker").onHide.apply(this,[r.data.cal.get(0)])!=false){r.data.cal.hide()}B(document).unbind("mousedown",m)}},f=function(t,s,r){if(t==s){return true}if(t.contains&&!B.browser.safari){return t.contains(s)}if(t.compareDocumentPosition){return !!(t.compareDocumentPosition(s)&16)}var u=s.parentNode;while(u&&u!=r){if(u==t){return true}u=u.parentNode}return false},S=function(){var v,s,r,x,u,y;if(document.documentElement){v=document.documentElement.scrollTop;s=document.documentElement.scrollLeft;r=document.documentElement.scrollWidth;x=document.documentElement.scrollHeight}else{v=document.body.scrollTop;s=document.body.scrollLeft;r=document.body.scrollWidth;x=document.body.scrollHeight}u=self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0;y=self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0;return{t:v,l:s,w:r,h:x,iw:u,ih:y}},F=function(r){return{h:Math.min(360,Math.max(0,r.h)),s:Math.min(100,Math.max(0,r.s)),b:Math.min(100,Math.max(0,r.b))}},k=function(r){return{r:Math.min(255,Math.max(0,r.r)),g:Math.min(255,Math.max(0,r.g)),b:Math.min(255,Math.max(0,r.b))}},D=function(r){var r=parseInt(((r.indexOf("#")>-1)?r.substring(1):r),16);return{r:r>>16,g:(r&65280)>>8,b:(r&255)}},M=function(r){return I(D(r))},I=function(s){var r={};r.b=Math.max(Math.max(s.r,s.g),s.b);r.s=(r.b<=0)?0:Math.round(100*(r.b-Math.min(Math.min(s.r,s.g),s.b))/r.b);r.b=Math.round((r.b/255)*100);if((s.r==s.g)&&(s.g==s.b)){r.h=0}else{if(s.r>=s.g&&s.g>=s.b){r.h=60*(s.g-s.b)/(s.r-s.b)}else{if(s.g>=s.r&&s.r>=s.b){r.h=60+60*(s.g-s.r)/(s.g-s.b)}else{if(s.g>=s.b&&s.b>=s.r){r.h=120+60*(s.b-s.r)/(s.g-s.r)}else{if(s.b>=s.g&&s.g>=s.r){r.h=180+60*(s.b-s.g)/(s.b-s.r)}else{if(s.b>=s.r&&s.r>=s.g){r.h=240+60*(s.r-s.g)/(s.b-s.g)}else{if(s.r>=s.b&&s.b>=s.g){r.h=300+60*(s.r-s.b)/(s.r-s.g)}else{r.h=0}}}}}}}r.h=Math.round(r.h);return r},J=function(r){var u={};var z=Math.round(r.h);var y=Math.round(r.s*255/100);var t=Math.round(r.b*255/100);if(y==0){u.r=u.g=u.b=t}else{var AA=t;var x=(255-y)*t/255;var w=(AA-x)*(z%60)/60;if(z==360){z=0}if(z<60){u.r=AA;u.b=x;u.g=x+w}else{if(z<120){u.g=AA;u.b=x;u.r=AA-w}else{if(z<180){u.g=AA;u.r=x;u.b=x+w}else{if(z<240){u.b=AA;u.r=x;u.g=AA-w}else{if(z<300){u.b=AA;u.g=x;u.r=x+w}else{if(z<360){u.r=AA;u.g=x;u.b=AA-w}else{u.r=0;u.g=0;u.b=0}}}}}}}return{r:Math.round(u.r),g:Math.round(u.g),b:Math.round(u.b)}},b=function(r){var s=[r.r.toString(16),r.g.toString(16),r.b.toString(16)];B.each(s,function(t,u){if(u.length==1){s[t]="0"+u}});return s.join("")},p=function(r){return b(J(r))};return{init:function(r){r=B.extend({},a,r||{});if(typeof r.color=="string"){r.color=M(r.color)}else{if(r.color.r!=undefined&&r.color.g!=undefined&&r.color.b!=undefined){r.color=I(r.color)}else{if(r.color.h!=undefined&&r.color.s!=undefined&&r.color.b!=undefined){r.color=F(r.color)}else{return this}}}r.origColor=r.color;return this.each(function(){if(!B(this).data("colorpickerId")){var t="collorpicker_"+parseInt(Math.random()*1000);B(this).data("colorpickerId",t);var s=B(n).attr("id",t);if(r.flat){s.appendTo(this).show()}else{s.appendTo(document.body)}r.fields=s.find("input").bind("keydown",N).bind("change",E).bind("blur",O).bind("focus",i);s.find("span").bind("mousedown",g);r.selector=s.find("div.colorpicker_color").bind("mousedown",Y);r.selectorIndic=r.selector.find("div div");r.hue=s.find("div.colorpicker_hue div");s.find("div.colorpicker_hue").bind("mousedown",X);r.newColor=s.find("div.colorpicker_new_color");r.currentColor=s.find("div.colorpicker_current_color");s.data("colorpicker",r);s.find("div.colorpicker_submit").bind("mouseenter",W).bind("mouseleave",o).bind("click",P);h(r.color,s.get(0));V(r.color,s.get(0));G(r.color,s.get(0));e(r.color,s.get(0));L(r.color,s.get(0));H(r.color,s.get(0));d(r.color,s.get(0));if(r.flat){s.css({position:"relative",display:"block"})}else{B(this).bind(r.eventName,c)}}})},showPicker:function(){return this.each(function(){if(B(this).data("colorpickerId")){c.apply(this)}})},hidePicker:function(){return this.each(function(){if(B(this).data("colorpickerId")){B("#"+B(this).data("colorpickerId")).hide()}})},setColor:function(r){if(typeof r=="string"){r=M(r)}else{if(r.r!=undefined&&r.g!=undefined&&r.b!=undefined){r=I(r)}else{if(r.h!=undefined&&r.s!=undefined&&r.b!=undefined){r=F(r)}else{return this}}}return this.each(function(){if(B(this).data("colorpickerId")){var s=B("#"+B(this).data("colorpickerId"));s.data("colorpicker").color=r;s.data("colorpicker").origColor=r;h(r,s.get(0));V(r,s.get(0));G(r,s.get(0));e(r,s.get(0));L(r,s.get(0));H(r,s.get(0));d(r,s.get(0))}})}}}();B.fn.extend({ColorPicker:A.init,ColorPickerHide:A.hide,ColorPickerShow:A.show,ColorPickerSetColor:A.setColor})})(jQuery);
