


var jscolor={dir:"",bindClass:"color",binding:true,preloading:true,install:function(){jscolor.addEvent(window,"load",jscolor.init)},init:function(){if(jscolor.binding)jscolor.bind();if(jscolor.preloading)jscolor.preload()},getDir:function(){if(!jscolor.dir){var $=jscolor.detectDir();jscolor.dir=$!=false?$:"jscolor/"}return jscolor.dir},detectDir:function(){var _=location.href,$=document.getElementsByTagName("base");for(var C=0;C<$.length;C++)if($[C].href)_=$[C].href;$=document.getElementsByTagName("script");for(C=0;C<$.length;C++)if($[C].src&&/(^|\/)jscolor\.js([?#].*)?$/i.test($[C].src)){var A=new jscolor.URI($[C].src),B=A.toAbsolute(_);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"),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)}}},preload:function(){for(var $ in jscolor.imgRequire)jscolor.loadImage($)},images:{pad:[181,101],sld:[16,101],cross:[15,15],arrow:[7,11]},imgRequire:{},imgLoaded:{},requireImage:function($){jscolor.imgRequire[$]=true},loadImage:function($){if(!jscolor.imgLoaded[$]){jscolor.imgLoaded[$]=new Image();jscolor.imgLoaded[$].src=jscolor.getDir()+$}},fetchElement:function($){return typeof($)=="string"?document.getElementById($):$},addEvent:function(_,$,A){if(_.addEventListener)return _.addEventListener($,A,false);else if(_.attachEvent)return _.attachEvent("on"+$,A);else return false},fireEvent:function(A,_){if(!A)return false;else if(document.createEventObject){var $=document.createEventObject();return A.fireEvent("on"+_,$)}else if(document.createEvent){$=document.createEvent("HTMLEvents");$.initEvent(_,true,true);return A.dispatchEvent($)}else if(A["on"+_])return A["on"+_]();else return false},getElementPos:function(A){var $=A,_=A,C=0,B=0;if($.offsetParent)do{C+=$.offsetLeft;B+=$.offsetTop}while($=$.offsetParent);while((_=_.parentNode)&&_.nodeName!="BODY"){C-=_.scrollLeft;B-=_.scrollTop}return[C,B]},getElementSize:function($){return[$.offsetWidth,$.offsetHeight]},getMousePos:function($){if(!$)$=window.event;if(typeof $.pageX=="number")return[$.pageX,$.pageY];else if(typeof $.clientX=="number")return[$.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,$.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(_){this.scheme=null;this.authority=null;this.path="";this.query=null;this.fragment=null;this.parse=function(_){var $=_.match(/^(([A-Za-z][0-9A-Za-z+.-]*)(:))?((\/\/)([^\/?#]*))?([^?#]*)((\?)([^#]*))?((#)(.*))?/);this.scheme=$[3]?$[2]:null;this.authority=$[5]?$[6]:null;this.path=$[7];this.query=$[9]?$[10]:null;this.fragment=$[12]?$[13]:null;return this};this.toString=function(){var $="";if(this.scheme!=null)$=$+this.scheme+":";if(this.authority!=null)$=$+"//"+this.authority;if(this.path!=null)$=$+this.path;if(this.query!=null)$=$+"?"+this.query;if(this.fragment!=null)$=$+"#"+this.fragment;return $};this.toAbsolute=function(B){var B=new jscolor.URI(B),A=this,_=new jscolor.URI;if(B.scheme==null)return false;if(A.scheme!=null&&A.scheme.toLowerCase()==B.scheme.toLowerCase())A.scheme=null;if(A.scheme!=null){_.scheme=A.scheme;_.authority=A.authority;_.path=$(A.path);_.query=A.query}else{if(A.authority!=null){_.authority=A.authority;_.path=$(A.path);_.query=A.query}else{if(A.path==""){_.path=B.path;if(A.query!=null)_.query=A.query;else _.query=B.query}else{if(A.path.substr(0,1)=="/")_.path=$(A.path);else{if(B.authority!=null&&B.path=="")_.path="/"+A.path;else _.path=B.path.replace(/[^\/]+$/,"")+A.path;_.path=$(_.path)}_.query=A.query}_.authority=B.authority}_.scheme=B.scheme}_.fragment=A.fragment;return _};function $(_){var A="";while(_)if(_.substr(0,3)=="../"||_.substr(0,2)=="./")_=_.replace(/^\.+/,"").substr(1);else if(_.substr(0,3)=="/./"||_=="/.")_="/"+_.substr(3);else if(_.substr(0,4)=="/../"||_=="/.."){_="/"+_.substr(4);A=A.replace(/\/?[^\/]*$/,"")}else if(_=="."||_=="..")_="";else{var $=_.match(/^\/?[^\/]*/)[0];_=_.substr($.length);A=A+$}return A}if(_)this.parse(_)},color:function(W,N){this.required=true;this.adjust=true;this.hash=false;this.caps=true;this.valueElement=W;this.styleElement=W;this.hsv=[0,0,1];this.rgb=[1,1,1];this.pickerOnfocus=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 V in N)this[V]=N[V];this.hidePicker=function(){if(_())I()};this.showPicker=function(){if(!_()){var D=jscolor.getElementPos(W),A=jscolor.getElementSize(W),I=jscolor.getViewPos(),F=jscolor.getViewSize(),J=[2*this.pickerBorder+4*this.pickerInset+2*this.pickerFace+jscolor.images.pad[0]+2*jscolor.images.arrow[0]+jscolor.images.sld[0],2*this.pickerBorder+2*this.pickerInset+2*this.pickerFace+jscolor.images.pad[1]],C,$,B;switch(this.pickerPosition.toLowerCase()){case"left":C=1;$=0;B=-1;break;case"right":C=1;$=0;B=1;break;case"top":C=0;$=1;B=-1;break;default:C=0;$=1;B=1;break}var E=(A[$]+J[$])/2,H=[-I[C]+D[C]+J[C]>F[C]?(-I[C]+D[C]+A[C]/2>F[C]/2&&D[C]+A[C]-J[C]>=0?D[C]+A[C]-J[C]:D[C]):D[C],-I[$]+D[$]+A[$]+J[$]-E+E*B>F[$]?(-I[$]+D[$]+A[$]/2>F[$]/2&&D[$]+A[$]-E-E*B>=0?D[$]+A[$]-E-E*B:D[$]+A[$]-E+E*B):(D[$]+A[$]-E+E*B>=0?D[$]+A[$]-E+E*B:D[$]+A[$]-E-E*B)];G(H[C],H[$])}};this.importColor=function(){if(!T)this.exportColor();else if(!this.adjust){if(!this.fromString(T.value,R)){O.style.backgroundColor=O.jscStyle.backgroundColor;O.style.color=O.jscStyle.color;this.exportColor(R|X)}}else if(!this.required&&/^\s*$/.test(T.value)){T.value="";O.style.backgroundColor=O.jscStyle.backgroundColor;O.style.color=O.jscStyle.color;this.exportColor(R|X)}else if(this.fromString(T.value));else this.exportColor()};this.exportColor=function($){if(!($&R)&&T){var A=this.toString();if(this.caps)A=A.toUpperCase();if(this.hash)A="#"+A;T.value=A}if(!($&X)&&O){O.style.backgroundColor="#"+this.toString();O.style.color=0.213*this.rgb[0]+0.715*this.rgb[1]+0.072*this.rgb[2]<0.5?"#FFF":"#000"}if(!($&U)&&_())Y();if(!($&P)&&_())C()};this.fromHSV=function(B,A,$,_){B<0&&(B=0)||B>6&&(B=6);A<0&&(A=0)||A>1&&(A=1);$<0&&($=0)||$>1&&($=1);this.rgb=M(B==null?this.hsv[0]:(this.hsv[0]=B),A==null?this.hsv[1]:(this.hsv[1]=A),$==null?this.hsv[2]:(this.hsv[2]=$));this.exportColor(_)};this.fromRGB=function(C,$,A,_){C<0&&(C=0)||C>1&&(C=1);$<0&&($=0)||$>1&&($=1);A<0&&(A=0)||A>1&&(A=1);var D=B(C==null?this.rgb[0]:(this.rgb[0]=C),$==null?this.rgb[1]:(this.rgb[1]=$),A==null?this.rgb[2]:(this.rgb[2]=A));if(D[0]!=null)this.hsv[0]=D[0];if(D[2]!=0)this.hsv[1]=D[1];this.hsv[2]=D[2];this.exportColor(_)};this.fromString=function(_,$){var A=_.match(/^\W*([0-9A-F]{3}([0-9A-F]{3})?)\W*$/i);if(!A)return false;else{if(A[1].length==6)this.fromRGB(parseInt(A[1].substr(0,2),16)/255,parseInt(A[1].substr(2,2),16)/255,parseInt(A[1].substr(4,2),16)/255,$);else this.fromRGB(parseInt(A[1].charAt(0)+A[1].charAt(0),16)/255,parseInt(A[1].charAt(1)+A[1].charAt(1),16)/255,parseInt(A[1].charAt(2)+A[1].charAt(2),16)/255,$);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 B(B,_,A){var C=Math.min(Math.min(B,_),A),$=Math.max(Math.max(B,_),A),D=$-C;if(D==0)return[null,0,$];var E=B==C?3+(A-_)/D:(_==C?5+(B-A)/D:1+(_-B)/D);return[E==6?0:E,D/$,$]}function M(D,A,_){if(D==null)return[_,_,_];var E=Math.floor(D),$=E%2?D-E:1-(D-E),C=_*(1-A),B=_*(1-A*$);switch(E){case 6:case 0:return[_,B,C];case 1:return[B,_,C];case 2:return[C,_,B];case 3:return[C,B,_];case 4:return[B,C,_];case 5:return[_,C,B]}}function I(){delete jscolor.picker.owner;document.getElementsByTagName("body")[0].removeChild(jscolor.picker.boxB)}function G(N,L){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 M=0,B=4;M<jscolor.images.sld[1];M+=B){var _=document.createElement("div");_.style.height=B+"px";_.style.fontSize="1px";_.style.lineHeight="0";jscolor.picker.sld.appendChild(_)}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 G=jscolor.picker;Z=[N+Q.pickerBorder+Q.pickerFace+Q.pickerInset,L+Q.pickerBorder+Q.pickerFace+Q.pickerInset];D=[null,L+Q.pickerBorder+Q.pickerFace+Q.pickerInset];G.box.onmouseup=G.box.onmouseout=function(){W.focus()};G.box.onmousedown=function(){K=true};G.box.onmousemove=function($){F&&H($);J&&E($)};G.padM.onmouseup=G.padM.onmouseout=function(){if(F){F=false;jscolor.fireEvent(T,"change")}};G.padM.onmousedown=function($){F=true;H($)};G.sldM.onmouseup=G.sldM.onmouseout=function(){if(J){J=false;jscolor.fireEvent(T,"change")}};G.sldM.onmousedown=function($){J=true;E($)};G.box.style.width=4*Q.pickerInset+2*Q.pickerFace+jscolor.images.pad[0]+2*jscolor.images.arrow[0]+jscolor.images.sld[0]+"px";G.box.style.height=2*Q.pickerInset+2*Q.pickerFace+jscolor.images.pad[1]+"px";G.boxB.style.position="absolute";G.boxB.style.clear="both";G.boxB.style.left=N+"px";G.boxB.style.top=L+"px";G.boxB.style.zIndex=Q.pickerZIndex;G.boxB.style.border=Q.pickerBorder+"px solid";G.boxB.style.borderColor=Q.pickerBorderColor;G.boxB.style.background=Q.pickerFaceColor;G.pad.style.width=jscolor.images.pad[0]+"px";G.pad.style.height=jscolor.images.pad[1]+"px";G.padB.style.position="absolute";G.padB.style.left=Q.pickerFace+"px";G.padB.style.top=Q.pickerFace+"px";G.padB.style.border=Q.pickerInset+"px solid";G.padB.style.borderColor=Q.pickerInsetColor;G.padM.style.position="absolute";G.padM.style.left="0";G.padM.style.top="0";G.padM.style.width=Q.pickerFace+2*Q.pickerInset+jscolor.images.pad[0]+jscolor.images.arrow[0]+"px";G.padM.style.height=G.box.style.height;G.padM.style.cursor="crosshair";G.sld.style.overflow="hidden";G.sld.style.width=jscolor.images.sld[0]+"px";G.sld.style.height=jscolor.images.sld[1]+"px";G.sldB.style.position="absolute";G.sldB.style.right=Q.pickerFace+"px";G.sldB.style.top=Q.pickerFace+"px";G.sldB.style.border=Q.pickerInset+"px solid";G.sldB.style.borderColor=Q.pickerInsetColor;G.sldM.style.position="absolute";G.sldM.style.right="0";G.sldM.style.top="0";G.sldM.style.width=jscolor.images.sld[0]+jscolor.images.arrow[0]+Q.pickerFace+2*Q.pickerInset+"px";G.sldM.style.height=G.box.style.height;try{G.sldM.style.cursor="pointer"}catch(I){G.sldM.style.cursor="hand"}switch($){case 0:var A="hs.png";break;case 1:A="hv.png";break}G.padM.style.background="url('"+jscolor.getDir()+"cross.gif') no-repeat";G.sldM.style.background="url('"+jscolor.getDir()+"arrow.gif') no-repeat";G.pad.style.background="url('"+jscolor.getDir()+A+"') 0 0 no-repeat";Y();C();jscolor.picker.owner=Q;document.getElementsByTagName("body")[0].appendChild(G.boxB)}function Y(){switch($){case 0:var E=1;break;case 1:E=2;break}var H=Math.round((Q.hsv[0]/6)*(jscolor.images.pad[0]-1)),F=Math.round((1-Q.hsv[E])*(jscolor.images.pad[1]-1));jscolor.picker.padM.style.backgroundPosition=(Q.pickerFace+Q.pickerInset+H-Math.floor(jscolor.images.cross[0]/2))+"px "+(Q.pickerFace+Q.pickerInset+F-Math.floor(jscolor.images.cross[1]/2))+"px";var A=jscolor.picker.sld.childNodes;switch($){case 0:var D=M(Q.hsv[0],Q.hsv[1],1);for(var G=0;G<A.length;G++)A[G].style.backgroundColor="rgb("+(D[0]*(1-G/A.length)*100)+"%,"+(D[1]*(1-G/A.length)*100)+"%,"+(D[2]*(1-G/A.length)*100)+"%)";break;case 1:var D,B,C=[Q.hsv[2],0,0],G=Math.floor(Q.hsv[0]),_=G%2?Q.hsv[0]-G:1-(Q.hsv[0]-G);switch(G){case 6:case 0:D=[0,1,2];break;case 1:D=[1,0,2];break;case 2:D=[2,0,1];break;case 3:D=[2,1,0];break;case 4:D=[1,2,0];break;case 5:D=[0,2,1];break}for(G=0;G<A.length;G++){B=1-1/(A.length-1)*G;C[1]=C[0]*(1-B*_);C[2]=C[0]*(1-B);A[G].style.backgroundColor="rgb("+(C[D[0]]*100)+"%,"+(C[D[1]]*100)+"%,"+(C[D[2]]*100)+"%)"}break}}function C(){switch($){case 0:var _=2;break;case 1:_=1;break}var A=Math.round((1-Q.hsv[_])*(jscolor.images.sld[1]-1));jscolor.picker.sldM.style.backgroundPosition="0 "+(Q.pickerFace+Q.pickerInset+A-Math.floor(jscolor.images.arrow[1]/2))+"px"}function _(){return jscolor.picker&&jscolor.picker.owner==Q}function S(){if(T==W)Q.importColor();if(Q.pickerOnfocus)Q.hidePicker()}function A(){if(T!=W)Q.importColor()}function H(_){var A=jscolor.getMousePos(_),C=A[0]-Z[0],B=A[1]-Z[1];switch($){case 0:Q.fromHSV(C*(6/(jscolor.images.pad[0]-1)),1-B/(jscolor.images.pad[1]-1),null,P);break;case 1:Q.fromHSV(C*(6/(jscolor.images.pad[0]-1)),null,1-B/(jscolor.images.pad[1]-1),P);break}}function E(_){var A=jscolor.getMousePos(_),B=A[1]-Z[1];switch($){case 0:Q.fromHSV(null,null,1-B/(jscolor.images.sld[1]-1),U);break;case 1:Q.fromHSV(null,1-B/(jscolor.images.sld[1]-1),null,U);break}}var Q=this,$=this.pickerMode.toLowerCase()=="hvs"?1:0,K=false,T=jscolor.fetchElement(this.valueElement),O=jscolor.fetchElement(this.styleElement),F=false,J=false,Z,D,R=1<<0,X=1<<1,U=1<<2,P=1<<3;jscolor.addEvent(W,"focus",function(){if(Q.pickerOnfocus)Q.showPicker()});jscolor.addEvent(W,"blur",function(){if(!K)setTimeout(function(){K||S();K=false},0);else K=false});if(T){var L=function(){Q.fromString(T.value,R)};jscolor.addEvent(T,"keyup",L);jscolor.addEvent(T,"input",L);jscolor.addEvent(T,"blur",A);T.setAttribute("autocomplete","off")}if(O)O.jscStyle={backgroundColor:O.style.backgroundColor,color:O.style.color};switch($){case 0:jscolor.requireImage("hs.png");break;case 1:jscolor.requireImage("hv.png");break}jscolor.requireImage("cross.gif");jscolor.requireImage("arrow.gif");this.importColor()}};jscolor.install()