(function($){$.fn.colorPicker=function(){if(this.length>0){buildSelector();}
return this.each(function(i){buildPicker(this);});};var selectorOwner;var selectorShowing=false;buildPicker=function(element){control=$("<div class='color_picker'>&nbsp;</div>");control.css('background-color',$(element).val());control.bind("click",toggleSelector);$(element).after(control);$(element).hide();};buildSelector=function(){selector=$("<div id='color_selector'></div>");$.each($.fn.colorPicker.defaultColors,function(i){swatch=$("<div class='color_swatch'>&nbsp;</div>");swatch.css("background-color","#"+this);swatch.bind("click",function(e){changeColor($(this).css("background-color"));});swatch.bind("mouseover",function(e){$(this).css("border-color","#FFFFFF");$("input#color_value").val(toHex($(this).css("background-color")));});swatch.bind("mouseout",function(e){$(this).css("border-color","#000");$("input#color_value").val(toHex($(selectorOwner).css("background-color")));});swatch.appendTo(selector);});$("body").append(selector);selector.hide();};checkMouse=function(event){var selector="div#color_selector";var selectorParent=$(event.target).parents(selector).length;if(event.target==$(selector)[0]||event.target==selectorOwner||selectorParent>0){return;}
hideSelector();};hideSelector=function(){var selector=$("div#color_selector");$(document).unbind("mousedown",checkMouse);selector.hide();selectorShowing=false;};showSelector=function(){var selector=$("div#color_selector");selector.css({top:$(selectorOwner).offset().top+($(selectorOwner).outerHeight()),left:$(selectorOwner).offset().left});hexColor=$(selectorOwner).prev("input").val();$("input#color_value").val(hexColor);selector.show();$(document).bind("mousedown",checkMouse);selectorShowing=true;};toggleSelector=function(event){selectorOwner=this;if(selectorShowing){hideSelector();}else{showSelector();}};changeColor=function(value){selectedValue=toHex(value);if(selectedValue){$(selectorOwner).css("background-color",selectedValue);$(selectorOwner).prev("input").val(selectedValue).change();hideSelector();}};toHex=function(color){if(color.match(/[0-9a-fA-F]{3}$/)||color.match(/[0-9a-fA-F]{6}$/)){color=(color.charAt(0)=="#")?color:("#"+color);}else if(color.match(/^rgb\(([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5]),[ ]{0,1}([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5]),[ ]{0,1}([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5])\)$/)){var c=([parseInt(RegExp.$1,10),parseInt(RegExp.$2,10),parseInt(RegExp.$3,10)]);var pad=function(str){if(str.length<2){for(var i=0,len=2-str.length;i<len;i++){str='0'+str;}}
return str;};if(c.length==3){var r=pad(c[0].toString(16)),g=pad(c[1].toString(16)),b=pad(c[2].toString(16));color='#'+r+g+b;}}else{color=false;}
return color;};$.fn.colorPicker.addColors=function(colorArray){$.fn.colorPicker.defaultColors=$.fn.colorPicker.defaultColors.concat(colorArray);};$.fn.colorPicker.defaultColors=['ffffff','c2c2c2','959595','626262','000000','ddebb7','d0e07a','b7d433','51682f','7cc576','39b44a','1c7a3d','6dcff6','00bff3','00adef','0076a3','003471','2e348f','fff799','fff468','fff200','ffe88c','ffd600','e3b122','fdc689','fbaf5d','f7941d','f69679','f26c4f','ed1c24','f49ac1','f06ea9','ec008c','bc8cbf','a863a8','92278f','a186be','8560a8','662d91','c69c6d','a57c52','8c6239'];})(jQuery);
