var jscolor={bindAuto:true,bindClass:"color",dir:"",install:function(){jscolor.addEvent(window,"load",jscolor.init)},init:function(){if(jscolor.bindAuto){jscolor.bind()}},getDir:function(){if(!jscolor.dir){var a=jscolor.detectDir();jscolor.dir=a!=false?a:"jscolor/"}return jscolor.dir},detectDir:function(){var c=location.href;var d=document.getElementsByTagName("base");for(var a=0;a<d.length;a++){if(d[a].href){c=d[a].href}}var d=document.getElementsByTagName("script");for(var a=0;a<d.length;a++){if(d[a].src&&/(^|\/)jscolor\.js([?#].*)?$/i.test(d[a].src)){var f=new jscolor.URI(d[a].src);var b=f.toAbsolute(c);b.path=b.path.replace(/[^\/]+$/,"");delete b.query;delete b.fragment;return b.toString()}}return false},bind:function(){var matchClass=new RegExp("(^|\\s)("+jscolor.bindClass+")\\s*(\\{[^}]*\\})?","i");var e=document.getElementsByTagName("input");for(var i=0;i<e.length;i++){var m;if(!e[i].color&&e[i].className&&(m=e[i].className.match(matchClass))){var prop={};if(m[3]){try{eval("prop="+m[3])}catch(eInvalidProp){}}e[i].color=new jscolor.color(e[i],prop)}}},fetchElement:function(a){return typeof(a)=="string"?document.getElementById(a):a},addEvent:function(a,c,b){if(a.addEventListener){return a.addEventListener(c,b,false)}else{if(a.attachEvent){return a.attachEvent("on"+c,b)}else{return false}}},fireEvent:function(a,c){if(!a){return false}else{if(document.createEventObject){var b=document.createEventObject();return a.fireEvent("on"+c,b)}else{if(document.createEvent){var b=document.createEvent("HTMLEvents");b.initEvent(c,true,true);return a.dispatchEvent(b)}else{if(a["on"+c]){return a["on"+c]()}else{return false}}}}},getElementPos:function(c){var d=c,b=c;var a=0,f=0;if(d.offsetParent){do{a+=d.offsetLeft;f+=d.offsetTop}while(d=d.offsetParent)}while((b=b.parentNode)&&b.nodeName!="BODY"){a-=b.scrollLeft;f-=b.scrollTop}return[a,f]},getElementSize:function(a){return[a.offsetWidth,a.offsetHeight]},getMousePos:function(a){if(!a){var a=window.event}if(typeof a.pageX=="number"){return[a.pageX,a.pageY]}else{if(typeof a.clientX=="number"){return[a.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,a.clientY+document.body.scrollTop+document.documentElement.scrollTop]}}},getViewPos:function(){if(typeof window.pageYOffset=="number"){return[window.pageXOffset,window.pageYOffset]}else{if(document.body&&(document.body.scrollLeft||document.body.scrollTop)){return[document.body.scrollLeft,document.body.scrollTop]}else{if(document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop)){return[document.documentElement.scrollLeft,document.documentElement.scrollTop]}else{return[0,0]}}}},getViewSize:function(){if(typeof window.innerWidth=="number"){return[window.innerWidth,window.innerHeight]}else{if(document.body&&(document.body.clientWidth||document.body.clientHeight)){return[document.body.clientWidth,document.body.clientHeight]}else{if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){return[document.documentElement.clientWidth,document.documentElement.clientHeight]}else{return[0,0]}}}},URI:function(a){this.scheme=null;this.authority=null;this.path="";this.query=null;this.fragment=null;this.parse=function(d){var c=d.match(/^(([A-Za-z][0-9A-Za-z+.-]*)(:))?((\/\/)([^\/?#]*))?([^?#]*)((\?)([^#]*))?((#)(.*))?/);this.scheme=c[3]?c[2]:null;this.authority=c[5]?c[6]:null;this.path=c[7];this.query=c[9]?c[10]:null;this.fragment=c[12]?c[13]:null;return this};this.toString=function(){var c="";if(this.scheme!=null){c=c+this.scheme+":"}if(this.authority!=null){c=c+"//"+this.authority}if(this.path!=null){c=c+this.path}if(this.query!=null){c=c+"?"+this.query}if(this.fragment!=null){c=c+"#"+this.fragment}return c};this.toAbsolute=function(e){var e=new jscolor.URI(e);var d=this;var c=new jscolor.URI;if(e.scheme==null){return false}if(d.scheme!=null&&d.scheme.toLowerCase()==e.scheme.toLowerCase()){d.scheme=null}if(d.scheme!=null){c.scheme=d.scheme;c.authority=d.authority;c.path=b(d.path);c.query=d.query}else{if(d.authority!=null){c.authority=d.authority;c.path=b(d.path);c.query=d.query}else{if(d.path==""){c.path=e.path;if(d.query!=null){c.query=d.query}else{c.query=e.query}}else{if(d.path.substr(0,1)=="/"){c.path=b(d.path)}else{if(e.authority!=null&&e.path==""){c.path="/"+d.path}else{c.path=e.path.replace(/[^\/]+$/,"")+d.path}c.path=b(c.path)}c.query=d.query}c.authority=e.authority}c.scheme=e.scheme}c.fragment=d.fragment;return c};function b(e){var c="";while(e){if(e.substr(0,3)=="../"||e.substr(0,2)=="./"){e=e.replace(/^\.+/,"").substr(1)}else{if(e.substr(0,3)=="/./"||e=="/."){e="/"+e.substr(3)}else{if(e.substr(0,4)=="/../"||e=="/.."){e="/"+e.substr(4);c=c.replace(/\/?[^\/]*$/,"")}else{if(e=="."||e==".."){e=""}else{var d=e.match(/^\/?[^\/]*/)[0];e=e.substr(d.length);c=c+d}}}}}return c}if(a){this.parse(a)}},color:function(E,d){this.required=true;this.adjust=true;this.hash=true;this.caps=true;this.valueElement=E;this.styleElement=E;this.hsv=[0,1,0];this.rgb=[0,0,0];this.picker=true;this.pickerMode="HSV";this.pickerPosition="bottom";this.pickerFace=10;this.pickerFaceColor="ThreeDFace";this.pickerBorder=1;this.pickerBorderColor="ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight";this.pickerInset=1;this.pickerInsetColor="ThreeDShadow ThreeDHighlight ThreeDHighlight ThreeDShadow";this.pickerZIndex=10000;for(var u in d){this[u]=d[u]}this.hidePicker=function(){if(v()){g()}};this.showPicker=function(){if(!v()){var N=jscolor.getElementPos(E);var K=jscolor.getElementSize(E);var H=jscolor.getViewPos();var P=jscolor.getViewSize();var p=[2*this.pickerBorder+4*this.pickerInset+2*this.pickerFace+s+2*f+D,2*this.pickerBorder+2*this.pickerInset+2*this.pickerFace+t];var O,M,L;switch(this.pickerPosition.toLowerCase()){case"left":O=1;M=0;L=-1;break;case"right":O=1;M=0;L=1;break;case"top":O=0;M=1;L=-1;break;default:O=0;M=1;L=1;break}var J=(K[M]+p[M])/2;var I=[-H[O]+N[O]+p[O]>P[O]?(-H[O]+N[O]+K[O]/2>P[O]/2&&N[O]+K[O]-p[O]>=0?N[O]+K[O]-p[O]:N[O]):N[O],-H[M]+N[M]+K[M]+p[M]-J+J*L>P[M]?(-H[M]+N[M]+K[M]/2>P[M]/2&&N[M]+K[M]-J-J*L>=0?N[M]+K[M]-J-J*L:N[M]+K[M]-J+J*L):(N[M]+K[M]-J+J*L>=0?N[M]+K[M]-J+J*L:N[M]+K[M]-J-J*L)];j(I[O],I[M])}};this.importColor=function(){if(!a){this.exportColor()}else{if(!this.adjust){if(!this.fromString(a.value,y)){G.style.backgroundColor=G.jscStyle.backgroundColor;G.style.color=G.jscStyle.color;this.exportColor(y|F)}}else{if(!this.required&&/^\s*$/.test(a.value)){a.value="";G.style.backgroundColor=G.jscStyle.backgroundColor;G.style.color=G.jscStyle.color;this.exportColor(y|F)}else{if(this.fromString(a.value)){}else{this.exportColor()}}}}};this.exportColor=function(p){if(!(p&y)&&a){var H=this.toString();if(this.caps){H=H.toUpperCase()}if(this.hash){H="#"+H}a.value=H}if(!(p&F)&&G){G.style.backgroundColor="#"+this.toString();G.style.color=0.213*this.rgb[0]+0.715*this.rgb[1]+0.072*this.rgb[2]<0.5?"#FFF":"#000"}if(!(p&w)&&v()){r()}if(!(p&e)&&v()){C()}};this.fromHSV=function(J,I,H,p){J<0&&(J=0)||J>6&&(J=6);I<0&&(I=0)||I>1&&(I=1);H<0&&(H=0)||H>1&&(H=1);this.rgb=h(J==null?this.hsv[0]:(this.hsv[0]=J),I==null?this.hsv[1]:(this.hsv[1]=I),H==null?this.hsv[2]:(this.hsv[2]=H));this.exportColor(p)};this.fromRGB=function(K,J,p,H){K<0&&(K=0)||K>1&&(K=1);J<0&&(J=0)||J>1&&(J=1);p<0&&(p=0)||p>1&&(p=1);var I=z(K==null?this.rgb[0]:(this.rgb[0]=K),J==null?this.rgb[1]:(this.rgb[1]=J),p==null?this.rgb[2]:(this.rgb[2]=p));if(I[0]!=null){this.hsv[0]=I[0]}if(I[2]!=0){this.hsv[1]=I[1]}this.hsv[2]=I[2];this.exportColor(H)};this.fromString=function(I,H){var p=I.match(/^\W*([0-9A-F]{3}([0-9A-F]{3})?)\W*$/i);if(!p){return false}else{if(p[1].length==6){this.fromRGB(parseInt(p[1].substr(0,2),16)/255,parseInt(p[1].substr(2,2),16)/255,parseInt(p[1].substr(4,2),16)/255,H)}else{this.fromRGB(parseInt(p[1].charAt(0)+p[1].charAt(0),16)/255,parseInt(p[1].charAt(1)+p[1].charAt(1),16)/255,parseInt(p[1].charAt(2)+p[1].charAt(2),16)/255,H)}return true}};this.toString=function(){return((256|Math.round(255*this.rgb[0])).toString(16).substr(1)+(256|Math.round(255*this.rgb[1])).toString(16).substr(1)+(256|Math.round(255*this.rgb[2])).toString(16).substr(1))};function z(L,K,H){var M=Math.min(Math.min(L,K),H);var I=Math.max(Math.max(L,K),H);var p=I-M;if(p==0){return[null,0,I]}var J=L==M?3+(H-K)/p:(K==M?5+(L-H)/p:1+(K-L)/p);return[J==6?0:J,p/I,I]}function h(K,J,H){if(K==null){return[H,H,H]}var I=Math.floor(K);var L=I%2?K-I:1-(K-I);var p=H*(1-J);var M=H*(1-J*L);switch(I){case 6:case 0:return[H,M,p];case 1:return[M,H,p];case 2:return[p,H,M];case 3:return[p,M,H];case 4:return[M,p,H];case 5:return[H,p,M]}}function g(){delete jscolor.picker.owner;document.getElementsByTagName("body")[0].removeChild(jscolor.picker.boxB)}function j(H,O){if(!jscolor.picker){jscolor.picker={box:document.createElement("div"),boxB:document.createElement("div"),pad:document.createElement("div"),padB:document.createElement("div"),padM:document.createElement("div"),sld:document.createElement("div"),sldB:document.createElement("div"),sldM:document.createElement("div")};for(var L=0,N=4;L<t;L+=N){var I=document.createElement("div");I.style.height=N+"px";I.style.fontSize="1px";I.style.lineHeight="0";jscolor.picker.sld.appendChild(I)}jscolor.picker.sldB.appendChild(jscolor.picker.sld);jscolor.picker.box.appendChild(jscolor.picker.sldB);jscolor.picker.box.appendChild(jscolor.picker.sldM);jscolor.picker.padB.appendChild(jscolor.picker.pad);jscolor.picker.box.appendChild(jscolor.picker.padB);jscolor.picker.box.appendChild(jscolor.picker.padM);jscolor.picker.boxB.appendChild(jscolor.picker.box)}var M=jscolor.picker;o=[H+k.pickerBorder+k.pickerFace+k.pickerInset,O+k.pickerBorder+k.pickerFace+k.pickerInset];A=[null,O+k.pickerBorder+k.pickerFace+k.pickerInset];M.box.onmouseup=M.box.onmouseout=function(){E.focus()};M.box.onmousedown=function(){m=true};M.box.onmousemove=function(p){c&&x(p);n&&i(p)};M.padM.onmouseup=M.padM.onmouseout=function(){if(c){c=false;jscolor.fireEvent(a,"change")}};M.padM.onmousedown=function(p){c=true;x(p)};M.sldM.onmouseup=M.sldM.onmouseout=function(){if(n){n=false;jscolor.fireEvent(a,"change")}};M.sldM.onmousedown=function(p){n=true;i(p)};M.box.style.width=4*k.pickerInset+2*k.pickerFace+s+2*f+D+"px";M.box.style.height=2*k.pickerInset+2*k.pickerFace+t+"px";M.boxB.style.position="absolute";M.boxB.style.clear="both";M.boxB.style.left=H+"px";M.boxB.style.top=O+"px";M.boxB.style.zIndex=k.pickerZIndex;M.boxB.style.border=k.pickerBorder+"px solid";M.boxB.style.borderColor=k.pickerBorderColor;M.boxB.style.background=k.pickerFaceColor;switch(b){case 0:var K="hs.png";break;case 1:var K="hv.png";break}M.pad.style.width=s+"px";M.pad.style.height=t+"px";M.pad.style.background="url('"+jscolor.getDir()+K+"') 0 0 no-repeat";M.padB.style.position="absolute";M.padB.style.left=k.pickerFace+"px";M.padB.style.top=k.pickerFace+"px";M.padB.style.border=k.pickerInset+"px solid";M.padB.style.borderColor=k.pickerInsetColor;M.padM.style.position="absolute";M.padM.style.left="0";M.padM.style.top="0";M.padM.style.width=k.pickerFace+2*k.pickerInset+s+f+"px";M.padM.style.height=M.box.style.height;M.padM.style.cursor="crosshair";M.padM.style.background="url('"+jscolor.getDir()+"cross.gif') no-repeat";M.sld.style.overflow="hidden";M.sld.style.width=D+"px";M.sld.style.height=t+"px";M.sldB.style.position="absolute";M.sldB.style.right=k.pickerFace+"px";M.sldB.style.top=k.pickerFace+"px";M.sldB.style.border=k.pickerInset+"px solid";M.sldB.style.borderColor=k.pickerInsetColor;M.sldM.style.position="absolute";M.sldM.style.right="0";M.sldM.style.top="0";M.sldM.style.width=D+f+k.pickerFace+2*k.pickerInset+"px";M.sldM.style.height=M.box.style.height;M.sldM.style.background="url('"+jscolor.getDir()+"arrow.gif') no-repeat";try{M.sldM.style.cursor="pointer"}catch(J){M.sldM.style.cursor="hand"}r();C();jscolor.picker.owner=k;document.getElementsByTagName("body")[0].appendChild(M.boxB)}function r(){switch(b){case 0:var J=1;break;case 1:var J=2;break}var N=Math.round((k.hsv[0]/6)*(s-1));var M=Math.round((1-k.hsv[J])*(t-1));jscolor.picker.padM.style.backgroundPosition=(k.pickerFace+k.pickerInset+N-7)+"px "+(k.pickerFace+k.pickerInset+M-7)+"px";var p=jscolor.picker.sld.childNodes;switch(b){case 0:var L=h(k.hsv[0],k.hsv[1],1);for(var H=0;H<p.length;H++){p[H].style.backgroundColor="rgb("+(L[0]*(1-H/p.length)*100)+"%,"+(L[1]*(1-H/p.length)*100)+"%,"+(L[2]*(1-H/p.length)*100)+"%)"}break;case 1:var L,O,K=[k.hsv[2],0,0];var H=Math.floor(k.hsv[0]);var I=H%2?k.hsv[0]-H:1-(k.hsv[0]-H);switch(H){case 6:case 0:L=[0,1,2];break;case 1:L=[1,0,2];break;case 2:L=[2,0,1];break;case 3:L=[2,1,0];break;case 4:L=[1,2,0];break;case 5:L=[0,2,1];break}for(var H=0;H<p.length;H++){O=1-1/(p.length-1)*H;K[1]=K[0]*(1-O*I);K[2]=K[0]*(1-O);p[H].style.backgroundColor="rgb("+(K[L[0]]*100)+"%,"+(K[L[1]]*100)+"%,"+(K[L[2]]*100)+"%)"}break}}function C(){switch(b){case 0:var p=2;break;case 1:var p=1;break}var H=Math.round((1-k.hsv[p])*(t-1));jscolor.picker.sldM.style.backgroundPosition="0 "+(k.pickerFace+k.pickerInset+H-5)+"px"}function v(){return jscolor.picker&&jscolor.picker.owner==k}function q(){if(a==E){k.importColor()}if(k.picker){k.hidePicker()}}function l(){if(a!=E){k.importColor()}}function x(H){var J=jscolor.getMousePos(H);var p=J[0]-o[0];var I=J[1]-o[1];switch(b){case 0:k.fromHSV(p*(6/(s-1)),1-I/(t-1),null,e);break;case 1:k.fromHSV(p*(6/(s-1)),null,1-I/(t-1),e);break}}function i(p){var I=jscolor.getMousePos(p);var H=I[1]-o[1];switch(b){case 0:k.fromHSV(null,null,1-H/(t-1),w);break;case 1:k.fromHSV(null,1-H/(t-1),null,w);break}}var k=this;var b=this.pickerMode.toLowerCase()=="hvs"?1:0;var m=false;var a=jscolor.fetchElement(this.valueElement),G=jscolor.fetchElement(this.styleElement);var c=false,n=false;var o,A;var D=16,f=7,s=181,t=101;var y=1<<0,F=1<<1,w=1<<2,e=1<<3;jscolor.addEvent(E,"focus",function(){if(k.picker){k.showPicker()}});jscolor.addEvent(E,"blur",function(){if(!m){setTimeout(function(){m||q();m=false},0)}else{m=false}});if(a){var B=function(){k.fromString(a.value,y)};jscolor.addEvent(a,"keyup",B);jscolor.addEvent(a,"input",B);jscolor.addEvent(a,"blur",l);a.setAttribute("autocomplete","off")}if(G){G.jscStyle={backgroundColor:G.style.backgroundColor,color:G.style.color}}this.importColor()}};jscolor.install();
