﻿/**
 * DMXzone color support for jQuery.css and animation
 * @version 1.0.0
 */
(function(g){function e(){function b(){var c=e.hslToRgb(a.hue,a.sat,a.lum);a.r=c[0];a.g=c[1];a.b=c[2]}function d(){var c=e.rgbToHsl(a.r,a.g,a.b);a.hue=c[0];a.sat=c[1];a.lum=c[2]}var a={hue:0,sat:0,lum:0,r:0,g:0,b:0,alpha:1,name:""};this.getProps=function(){return a};this.setAlpha=function(c){c=Math.max(Math.min(c,1),0);if(c!==a.alpha)a.alpha=c;return this};this.setName=function(c){var f=e.namedColors[c];if(f){a.r=f[0];a.g=f[1];a.b=f[2];d();a.name=c}return this};this.setHue=function(c){c=Math.max(Math.min(c, 360),0);if(c!==a.hue){a.hue=c;b()}return this};this.setSaturation=function(c){c=Math.max(Math.min(c,100),0);if(c!==a.sat){a.sat=c;b()}return this};this.setLuminance=function(c){c=Math.max(Math.min(c,100),0);if(c!==a.lum){a.lum=c;b()}return this};this.setR=function(c){c=Math.max(Math.min(c,255),0);if(c!==a.r){a.r=c;d()}return this};this.setG=function(c){c=Math.max(Math.min(c,255),0);if(c!==a.g){a.g=c;d()}return this};this.setB=function(c){c=Math.max(Math.min(c,255),0);if(c!==a.b){a.b=c;d()}return this}; this.getAlpha=function(){return a.alpha};this.getName=function(){return a.name};this.getHue=function(){return a.hue};this.getSaturation=function(){return a.sat};this.getLuminance=function(){return a.lum};this.getR=function(){return a.r};this.getG=function(){return a.g};this.getB=function(){return a.b};this.getString=function(c){switch(c.toLowerCase()){case "hex":return e.rgbToHex(a.r,a.g,a.b);case "rgb":return"rgb("+Math.round(a.r)+", "+Math.round(a.g)+", "+Math.round(a.b)+")";case "rgba":return"rgba("+ Math.round(a.r)+", "+Math.round(a.g)+", "+Math.round(a.b)+", "+a.alpha+")";case "hsl":return"hsl("+a.hue+", "+a.sat+"%, "+a.lum+"%)";case "hsla":return"hsla("+a.hue+", "+a.sat+"%, "+a.lum+"%, "+a.alpha+")"}};this.toArray=function(c){switch(c.toLowerCase()){case "hex":c=e.rgbToHex(a.r,a.g,a.b);return[c.substr(1,2),c.substr(3,2),c.substr(5,2)];case "rgb":return[a.r,a.g,a.b];case "rgba":return[a.r,a.g,a.b,a.alpha];case "hsl":return[a.hue,a.sat,a.lum];case "hsla":return[a.hue,a.sat,a.lum,a.alpha]}};this.setRGB= function(c,f,h,i){a.r=Math.max(Math.min(c,255),0);a.g=Math.max(Math.min(f,255),0);a.b=Math.max(Math.min(h,255),0);if(i||i===0)this.setAlpha(i);d();return this};this.setHSL=function(c,f,h,i){a.hue=Math.max(Math.min(c,360),0);a.sat=Math.max(Math.min(f,100),0);a.lum=Math.max(Math.min(h,100),0);if(i||i===0)this.setAlpha(i);b();return this};this.setString=function(c){c=e.parse(c);this.setRGB(c.getR(),c.getG(),c.getB());this.setAlpha(c.getAlpha());return this}}e.rgbToHex=function(b,d,a){var c=[Math.round(b).toString(16), Math.round(d).toString(16),Math.round(a).toString(16)];g.each(c,function(f,h){if(h.length==1)c[f]="0"+h});return"#"+c.join("")};e.rgbToHsl=function(b,d,a){b/=255;d/=255;a/=255;var c=Math.max(b,d,a),f=Math.min(b,d,a),h,i=(c+f)/2;if(c==f)h=f=0;else{var k=c-f;f=i>0.5?k/(2-c-f):k/(c+f);switch(c){case b:h=(d-a)/k+(d<a?6:0);break;case d:h=(a-b)/k+2;break;case a:h=(b-d)/k+4}h/=6}return[h*360,f*100,i*100]};e.hslToRgb=function(b,d,a){var c;if(d===0)d=a=c=a/100;else{c=function(i,k,l){if(l<0)l+=1;if(l>1)l-= 1;if(l<1/6)return i+(k-i)*6*l;if(l<0.5)return k;if(l<2/3)return i+(k-i)*(2/3-l)*6;return i};b=b/360;a=a/100;d=d/100;var f=a<0.5?a*(1+d):a+d-a*d,h=2*a-f;d=c(h,f,b+1/3);a=c(h,f,b);c=c(h,f,b-1/3)}return[d*255,a*255,c*255]};e.parse=function(b){var d;if(b&&b.constructor==Array&&(b.length==3||b.length==4)){d=(new e).setRGB(b[0],b[1],b[2]);b.length==4&&d.setAlpha(b[3]);return d}b=String(b);if(d=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(b))return(new e).setRGB(parseInt(d[1],16),parseInt(d[2], 16),parseInt(d[3],16));if(d=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(b))return(new e).setRGB(parseInt(d[1]+""+d[1],16),parseInt(d[2]+""+d[2],16),parseInt(d[3]+""+d[3],16));if(d=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(b))return(new e).setRGB(parseFloat(d[1]),parseFloat(d[2]),parseFloat(d[3]));if(d=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(b))return(new e).setRGB(parseFloat(d[1])* 2.55,parseFloat(d[2])*2.55,parseFloat(d[3])*2.55);if(d=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*,\s*(0|1|0?\.[0-9]+)\s*\)/.exec(b))return(new e).setRGB(parseFloat(d[1]),parseFloat(d[2]),parseFloat(d[3]),parseFloat(d[4]));if(d=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*(0|1|0?\.[0-9]+)\s*\)/.exec(b))return(new e).setRGB(parseFloat(d[1])*2.55,parseFloat(d[2])*2.55,parseFloat(d[3])*2.55,parseFloat(d[4])); if(d=/hsl\(\s*([0-9]+(?:\.[0-9]+)?)\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(b))return(new e).setHSL(parseFloat(d[1]),parseFloat(d[2]),parseFloat(d[3]));if(d=/hsla\(\s*([0-9]+(?:\.[0-9]+)?)\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*(0|1|0?\.[0-9]+)\s*\)/.exec(b))return(new e).setHSL(parseFloat(d[1]),parseFloat(d[2]),parseFloat(d[3]),parseFloat(d[4]));b=g.trim(b).toLowerCase();if(e.namedColors[b])return(new e).setName(b);return(new e).setRGB(0, 0,0)};e.fromRGB=function(b,d,a){return(new e).setRGB(b,d,a)};e.fromHSL=function(b,d,a){return(new e).setHSL(b,d,a)};e.namedColors={black:[0,0,0],darkgreen:[0,100,0],navy:[0,0,128],darkred:[139,0,0],midnightblue:[25,25,112],mediumblue:[0,0,205],forestgreen:[34,139,34],saddlebrown:[139,69,19],darkolivegreen:[85,107,47],firebrick:[178,34,34],brown:[165,42,42],red:[255,0,0],teal:[0,128,128],seagreen:[46,139,87],darkmagenta:[139,0,139],olivedrab:[107,142,35],sienna:[160,82,45],crimson:[220,20,60],limegreen:[50, 205,50],dimgrey:[105,105,105],orangered:[255,69,0],darkgoldenrod:[184,134,11],chocolate:[210,105,30],mediumseagreen:[60,179,113],mediumvioletred:[199,21,133],darkviolet:[148,0,211],lawngreen:[124,252,0],steelblue:[70,130,180],springgreen:[0,255,127],slategrey:[112,128,144],indianred:[205,92,92],royalblue:[65,105,225],slateblue:[106,90,205],mediumspringgreen:[0,250,154],darkorchid:[153,50,204],lightslategrey:[119,136,153],yellowgreen:[154,205,50],cadetblue:[95,158,160],goldenrod:[218,165,32],orange:[255, 165,0],deeppink:[255,20,147],tomato:[255,99,71],dodgerblue:[30,144,255],deepskyblue:[0,191,255],coral:[255,127,80],mediumslateblue:[123,104,238],gold:[255,215,0],rosybrown:[188,143,143],greenyellow:[173,255,47],mediumaquamarine:[102,205,170],palevioletred:[219,112,147],darkkhaki:[189,183,107],mediumorchid:[186,85,211],mediumturquoise:[72,209,204],cornflowerblue:[100,149,237],salmon:[250,128,114],turquoise:[64,224,208],sandybrown:[244,164,96],darksalmon:[233,150,122],darkgrey:[169,169,169],yellow:[255, 255,0],lightgreen:[144,238,144],tan:[210,180,140],lightsalmon:[255,160,122],hotpink:[255,105,180],burlywood:[222,184,135],orchid:[218,112,214],palegreen:[152,251,152],skyblue:[135,206,235],lightskyblue:[135,206,250],lightsteelblue:[176,196,222],plum:[221,160,221],violet:[238,130,238],khaki:[240,230,140],lightblue:[173,216,230],thistle:[216,191,216],powderblue:[176,224,230],lightgrey:[211,211,211],palegoldenrod:[238,232,170],wheat:[245,222,179],pink:[255,192,203],paleturquoise:[175,238,238],peachpuff:[255, 218,185],gainsboro:[220,220,220],moccasin:[255,228,181],bisque:[255,228,196],blanchedalmond:[255,235,205],antiquewhite:[250,235,215],papayawhip:[255,239,213],mistyrose:[255,228,225],lightgoldenrodyellow:[250,250,210],linen:[250,240,230],cornsilk:[255,248,220],oldlace:[253,245,230],lightyellow:[255,255,224],whitesmoke:[245,245,245],seashell:[255,245,238],lavenderblush:[255,240,245],aliceblue:[240,248,255],floralwhite:[255,250,240],mintcream:[245,255,250],ghostwhite:[248,248,255],snow:[255,250,250], white:[255,255,255]};e.UIColors={};for(var n=["ActiveBorder","ActiveCaption","AppWorkspace","Background","ButtonFace","ButtonHighlight","ButtonShadow","ButtonText","CaptionText","GrayText","Highlight","HighlightText","InactiveBorder","InactiveCaption","InactiveCaptionText","InfoBackground","InfoText","Menu","MenuText","Scrollbar","ThreeDDarkShadow","ThreeDFace","ThreeDHighlight","ThreeDLightShadow","ThreeDShadow","Window","WindowFrame","WindowText"],o=n.length,j=g("<div/>");o;){j.css("color",n[--o]); e.UIColors[n[o]]=j.css("color")}g.extend(e.namedColors,e.UIColors);g.Color=e;var m;try{j.css("color","rgba(1,2,3,0.5)");g.support.rgba=j.css("color").indexOf("rgba")===0}catch(p){g.support.rgba=false}try{m=j.css("color","rgb(2,2,2)").css("color");j.css("color","hsl(2,2%,2%)");g.support.hsl=j.css("color")!==m}catch(q){g.support.hsl=false}try{m=j.css("color","rgb(2,2,2)").css("color");j.css("color","hsla(2,2%,2%,0.5)");g.support.hsla=j.css("color")!==m}catch(r){g.support.hsla=false}e.pick=function(b, d){var a;do{if(b==document)break;a=g.css(b,d);if(a!==""&&a!="transparent"||g.nodeName(b,"body"))break;d="backgroundColor"}while(b=b.parentNode);if(a=="transparent")a="#FFFFFF";return e.parse(a||"#FFFFFF")};e.step=function(b){if(b.state===0){b.type=String(b.end).match(/^\w+/);b.type=b.type?b.type[0]:"rgb";if((b.type=="rgba"||b.type=="hsla")&&!g.support.rgba){b.ignore=true;return}if(b.type=="hsl"&&!g.support.hsl)b.type="rgb";b.start=e.pick(b.elem,b.prop);b.end=e.parse(String(b.end));if(b.start!==undefined&& b.end!==undefined){b.start=b.start.toArray("rgba");b.end=b.end.toArray("rgba")}b.color=new e}if(!(b.ignore||!b.start||!b.end||!b.color)){var d=b.color.setRGB(b.pos*(b.end[0]-b.start[0])+b.start[0],b.pos*(b.end[1]-b.start[1])+b.start[1],b.pos*(b.end[2]-b.start[2])+b.start[2],b.pos*(b.end[3]-b.start[3])+b.start[3]).getString(b.type);if(d)b.elem.style[b.prop]=d}};if(!g.cssHooks)g.cssHooks={};g.each(["backgroundColor","borderColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor", "color","outlineColor"],function(b,d){g.fx.step[d]=e.step;g.cssHooks[d]={step:1,set:function(a,c){var f=String(c).match(/^\w+/);f=f?f[0]:"rgb";(f=="rgba"||f=="hsla")&&!g.support.rgba||(a.style[d]=f=="hsl"&&!g.support.hsl?e.parse(c).getString("rgb"):c)}}});g.cssHooks.borderColor.get=function(b,d){if(d)return jQuery.css(b,"borderTopColor");return b.style[attr]}})(jQuery);
