5 Copyright (c) 2010 Meta100 LLC.
6 http://www.meta100.com/
8 Licensed under the MIT license
9 http://www.opensource.org/licenses/mit-license.php
12 (function($){var b
,e
,g
,j
,i
=$(document
),h
=$("<div>"),n
=$("<div>"),o
=$("<div>"),p
=$("<input>"),q
=/^rgb[a]?\((\d+),\s*(\d+),\s*(\d+)(,\s*(\d+\.\d+)*)?\)/,r
=/([a-f0-9])([a-f0-9])([a-f0-9])/,s
=/#[a-f0-9]{3}/,t
=/#[a-f0-9]{6}/;$.fn
.mColorPicker=function(a
){var c
=$.fn
.mColorPicker
.getCookie("swatches");b
=$.extend($.fn
.mColorPicker
.defaults
,a
);$.fn
.mColorPicker
.defaults
.swatches
.concat(b
.swatches
).slice(-10);if(e
.enhancedSwatches
&&c
)b
.swatches
=c
.split("||").concat(b
.swatches
).slice(0,10)||b
.swatches
;$("div#mColorPicker").length
||$.fn
.mColorPicker
.drawPicker();$("#css_disabled_color_picker").length
||$("head").prepend('<meta data-remove-me="true"/><style id="css_disabled_color_picker" type="text/css">.mColorPicker[disabled] + span, .mColorPicker[disabled="disabled"] + span, .mColorPicker[disabled="true"] + span {filter:alpha(opacity=50);-moz-opacity:0.5;-webkit-opacity:0.5;-khtml-opacity: 0.5;opacity: 0.5;cursor:default;}</style>');$("meta[data-remove-me=true]").remove();this.each($.fn
.mColorPicker
.drawPickerTriggers
);return this};$.fn
.mColorPicker
.init
={replace
:"[type=color]",index
:0,enhancedSwatches
:true,allowTransparency
:true,slogan
:"Meta100 - Designing Fun",showLogo
:true};$.fn
.mColorPicker
.defaults
={currentId
:false,currentInput
:false,currentColor
:false,changeColor
:false,color
:false,imageFolder
:"images/",swatches
:"#ffffff,#ffff00,#00ff00,#00ffff,#0000ff,#ff00ff,#ff0000,#4c2b11,#3b3b3b,#000000".split(",")};$.fn
.mColorPicker
.start=function(){$('input[data-mcolorpicker!="true"]').filter(function(){return e
.replace
=="[type=color]"?this.getAttribute("type")=="color":$(this).is(e
.replace
)}).mColorPicker()};$.fn
.mColorPicker
.events=function(){$("#mColorPickerBg").live("click",$.fn
.mColorPicker
.closePicker
);$(".mColorPicker").live("keyup",function(){try{$(this).css({"background-color":$(this).val()}).css({color
:$.fn
.mColorPicker
.textColor($(this).css("background-color"))}).trigger("change")}catch(a
){}});$(".mColorPickerTrigger").live("click",$.fn
.mColorPicker
.colorShow
);$(".mColor, .mPastColor").live("mousemove",function(a
){if(!b
.changeColor
)return false;var c
=$(this),f
=c
.offset(),d
=b
.currentInput
,d
=d
.attr("data-hex")||d
.attr("hex");b
.color
=c
.css("background-color");if(c
.hasClass("mPastColor"))b
.color
=$.fn
.mColorPicker
.setColor(b
.color
,d
);else if(c
.hasClass("mColorTransparent"))b
.color
="transparent";else if(!c
.hasClass("mPastColor"))b
.color
=$.fn
.mColorPicker
.whichColor(a
.pageX
-f
.left
,a
.pageY
-f
.top
,d
);b
.currentInput
.mSetInputColor(b
.color
)}).live("click",$.fn
.mColorPicker
.colorPicked
);$("#mColorPickerInput").live("keyup",function(a
){try{b
.color
=$(this).val(),b
.currentInput
.mSetInputColor(b
.color
),a
.which
==13&&$.fn
.mColorPicker
.colorPicked()}catch(c
){}}).live("blur",function(){b
.currentInput
.mSetInputColor(b
.color
)});$("#mColorPickerWrapper").live("mouseleave",function(){if(!b
.changeColor
)return false;b
.currentInput
.mSetInputColor(b
.currentColor
)})};$.fn
.mColorPicker
.drawPickerTriggers=function(){var a
=$(this),c
=a
.attr("id")||"color_"+e
.index
++,f
=a
.attr("text")=="hidden"||a
.attr("data-text")=="hidden"?true:false,d
=$.fn
.mColorPicker
.setColor(a
.val(),a
.attr("data-hex")||a
.attr("hex")),k
=a
.width(),g
=a
.height(),h
=a
.css("float"),l
=$("<span>"),m
=$("<span>"),i
="";l
.attr({id
:"color_work_area","class":"mColorPickerInput"}).appendTo(j
);m
.attr({id
:"mcp_"+c
,"class":"mColorPickerTrigger"}).css({display
:"inline-block",cursor
:"pointer"}).insertAfter(a
);$("<img>").attr({src
:b
.imageFolder
+"color.png"}).css({border
:0,margin
:"0 0 0 3px","vertical-align":"text-bottom"}).appendTo(m
);l
.append(a
);i
=l
.html().replace(/type="color"/gi,'type="'+(f
?"hidden":"text")+'"');l
.html("").remove();a
=$(i
).attr("id",c
).addClass("mColorPicker").val(d
).insertBefore(m
);f
&&m
.css({border
:"1px solid black","float":h
,width
:k
,height
:g
}).addClass(a
.attr("class")).html(" ");a
.mSetInputColor(d
);return a
};$.fn
.mColorPicker
.drawPicker=function(){var a
=$("<div>"),c
=$("<a>"),f
=$("<div>"),d
=$("<div>");n
.attr({id
:"mColorPickerBg"}).css({display
:"none",background
:"black",opacity
:0.01,position
:"absolute",top
:0,right
:0,bottom
:0,left
:0}).appendTo(j
);h
.attr({id
:"mColorPicker","data-mcolorpicker":true}).css({position
:"absolute",border
:"1px solid #ccc",color
:"#fff",width
:"194px",height
:"184px","font-size":"12px","font-family":"times",display
:"none"}).appendTo(j
);o
.attr({id
:"mColorPickerTest"}).css({display
:"none"}).appendTo(j
);d
.attr({id
:"mColorPickerWrapper"}).css({position
:"relative",border
:"solid 1px gray"}).appendTo(h
);$("<div>").attr({id
:"mColorPickerImg","class":"mColor"}).css({height
:"136px",width
:"192px",border
:0,cursor
:"crosshair","background-image":"url("+b
.imageFolder
+"picker.png)"}).appendTo(d
);a
.attr({id
:"mColorPickerSwatches"}).css({"border-right":"1px solid #000"}).appendTo(d
);$("<div>").addClass("mClear").css({clear
:"both"}).appendTo(a
);for(g
=9;g
>-1;g
--)$("<div>").attr({id
:"cell"+g
,"class":"mPastColor"+(g
>0?" mNoLeftBorder":"")}).css({"background-color":b
.swatches
[g
].toLowerCase(),height
:"18px",width
:"18px",border
:"1px solid #000","float":"left"}).html(" ").prependTo(a
);f
.attr({id
:"mColorPickerFooter"}).css({"background-image":"url("+b
.imageFolder
+"grid.gif)",position
:"relative",height
:"26px"}).appendTo(d
);p
.attr({id
:"mColorPickerInput",type
:"text"}).css({border
:"solid 1px gray","font-size":"10pt",margin
:"3px",width
:"80px"}).appendTo(f
);e
.allowTransparency
&&$("<span>").attr({id
:"mColorPickerTransparent","class":"mColor mColorTransparent"}).css({"font-size":"16px",color
:"#000","padding-right":"30px","padding-top":"3px",cursor
:"pointer",overflow
:"hidden","float":"right"}).text("transparent").appendTo(f
);e
.showLogo
&&c
.attr({href
:"http://meta100.com/",title
:e
.slogan
,alt
:e
.slogan
,target
:"_blank"}).css({"float":"right"}).appendTo(f
);$("<img>").attr({src
:b
.imageFolder
+"meta100.png",title
:e
.slogan
,alt
:e
.slogan
}).css({border
:0,"border-left":"1px solid #aaa",right
:0,position
:"absolute"}).appendTo(c
);$(".mNoLeftBorder").css({"border-left":0})};$.fn
.mColorPicker
.closePicker=function(){n
.hide();h
.fadeOut()};$.fn
.mColorPicker
.colorShow=function(){var a
=$(this),c
=a
.attr("id").replace("mcp_",""),f
=a
.offset(),d
=$("#"+c
),k
=f
.top
+a
.outerHeight(),e
=f
.left
;if(d
.attr("disabled"))return false;b
.currentColor
=d
.css("background-color");b
.changeColor
=true;b
.currentInput
=d
;b
.currentId
=c
;k
+h
.height()>i
.height()&&(k
=f
.top
-h
.height());e
+h
.width()>i
.width()&&(e
=f
.left
-h
.width()+a
.outerWidth());h
.css({top
:k
+"px",left
:e
+"px"}).fadeIn("fast");n
.show();b
.color
=$("#"+c
).attr("data-text")?a
.css("background-color"):d
.css("background-color");b
.color
=$.fn
.mColorPicker
.setColor(b
.color
,d
.attr("data-hex")||d
.attr("hex"));p
.val(b
.color
)};$.fn
.mColorPicker
.setInputColor=function(a
,c
){$("#"+a
).mSetInputColor(c
)};$.fn
.mSetInputColor=function(a
){var c
=$(this),f
={"background-color":a
,"background-image":a
=="transparent"?"url('"+b
.imageFolder
+"grid.gif')":"",color
:$.fn
.mColorPicker
.textColor(a
)};(c
.attr("data-text")||c
.attr("text"))&&c
.next().css(f
);c
.val(a
).css(f
).trigger("change");p
.val(a
)};$.fn
.mColorPicker
.textColor=function(a
){a
=$.fn
.mColorPicker
.RGBtoHex(a
);return typeof a
=="undefined"||a
=="transparent"?"black":parseInt(a
.substr(1,2),16)+parseInt(a
.substr(3,2),16)+parseInt(a
.substr(5,2),16)<400?"white":"black"};$.fn
.mColorPicker
.setCookie=function(a
,c
,b
){a
=a
+"="+escape(c
);c
=new Date
;c
.setDate(c
.getDate()+b
);a
+="; expires="+c
.toGMTString();document
.cookie
=a
};$.fn
.mColorPicker
.getCookie=function(a
){return(a
=document
.cookie
.match("(^|;) ?"+a
+"=([^;]*)(;|$)"))?unescape(a
[2]):null};$.fn
.mColorPicker
.colorPicked=function(){b
.changeColor
=false;$.fn
.mColorPicker
.closePicker();$.fn
.mColorPicker
.addToSwatch();b
.currentInput
.trigger("colorpicked")};$.fn
.mColorPicker
.addToSwatch=function(a
){if(!e
.enhancedSwatches
)return false;var c
=[];g
=0;if(typeof a
=="string")b
.color
=a
.toLowerCase();b
.color
!="transparent"&&(c
[0]=b
.color
.toLowerCase());$(".mPastColor").each(function(){var a
=$(this);b
.color
=a
.css("background-color").toLowerCase();if(b
.color
!=c
[0]&&$.fn
.mColorPicker
.RGBtoHex(b
.color
)!=c
[0]&&$.fn
.mColorPicker
.hexToRGB(b
.color
)!=c
[0]&&c
.length
<10)c
[c
.length
]=b
.color
;$(this).css("background-color",c
[g
++])});e
.enhancedSwatches
&&$.fn
.mColorPicker
.setCookie("swatches",c
.join("||"),365)};$.fn
.mColorPicker
.whichColor=function(a
,c
,b
){var d
=[255,255,255];a
<32?(d
[1]=a
*8,d
[2]=0):a
<64?(d
[0]=256-(a
-32)*8,d
[2]=0):a
<96?(d
[0]=0,d
[2]=(a
-64)*8):a
<128?(d
[0]=0,d
[1]=256-(a
-96)*8):a
<160?(d
[0]=(a
-128)*8,d
[1]=0):(d
[1]=0,d
[2]=256-(a
-160)*8);for(var e
=0;e
<3;e
++)c
<64?d
[e
]+=(256-d
[e
])*(64-c
)/64:c<=128?d[e]-=d[e]*(c-64)/64:c
>128&&(d
[e
]=256-a
/192*256),d[e]=Math.round(Math.min(d[e],255)),b=="true"&&(d[e]=$.fn.mColorPicker.decToHex(d[e]));return b=="true"?"#"+d.join(""):"rgb("+d.join(", ")+")"};$.fn.mColorPicker.setColor=function(a,c){return c=="true"?$.fn.mColorPicker.RGBtoHex(a):$.fn.mColorPicker.hexToRGB(a)};$.fn.mColorPicker.colorTest=function(a){o.css("background-color",a);return o.css("background-color")};$.fn.mColorPicker.decToHex=function(a){a=parseInt(a);return String("0123456789ABCDEF".charAt(Math.floor(a/16)))+String("0123456789ABCDEF".charAt(a
-Math
.floor(a
/16)*16))};$.fn
.mColorPicker
.RGBtoHex=function(a
){var c
="#",b
,a
=a
?a
.toLowerCase():false;if(!a
)return"";if(t
.test(a
))return a
.substr(0,7);if(s
.test(a
))return a
.replace(r
,"$1$1$2$2$3$3").substr(0,7);if(b
=a
.match(q
)){for(a
=1;a
<4;a
++)c
+=$.fn
.mColorPicker
.decToHex(b
[a
]);return c
}return $.fn
.mColorPicker
.colorTest(a
)};$.fn
.mColorPicker
.hexToRGB=function(a
){a
=a
?a
.toLowerCase():false;if(!a
)return"";if(q
.test(a
))return a
;return s
.test(a
)?(t
.test(a
)||(a
=a
.replace(r
,"$1$1$2$2$3$3")),"rgb("+parseInt(a
.substr(1,2),16)+", "+parseInt(a
.substr(3,2),16)+", "+parseInt(a
.substr(5,2),16)+")"):$.fn
.mColorPicker
.colorTest(a
)};e
=$.fn
.mColorPicker
.init
;i
.ready(function(){j
=$("body");$.fn
.mColorPicker
.events();e
.replace
&&($.fn
.mColorPicker
.start(),typeof $.fn
.livequery
=="function"?$(e
.replace
).livequery($.fn
.mColorPicker
.start
):$(document
).live("ajaxSuccess.mColorPicker",$.fn
.mColorPicker
.start
))})})(jQuery
);