function hexToR(a){return parseInt((cutHex(a)).substring(0,2),16)}function hexToG(a){return parseInt((cutHex(a)).substring(2,4),16)}function hexToB(a){return parseInt((cutHex(a)).substring(4,6),16)}function cutHex(a){return(a.charAt(0)=="#")?a.substring(1,7):a}function NeuralNet(g,a,f){var d=0;this.vals=new Array(g-1);for(var e=1;e<g;e++){var j=this.vals[e-1]=new Array(a[e]);for(var c=0;c<j.length;c++){var h=j[c]=new Array(a[e-1]+1);for(var b=0;b<h.length;b++){h[b]=f[d];d++}}}}NeuralNet.prototype.calculate=function(g){var d=new Array(this.vals.length+1);d[0]=g;for(var e=1;e<d.length;e++){var j=this.vals[e-1];var a=d[e-1];d[e]=new Array(j.length);for(var b=0;b<j.length;b++){var h=j[b];var f=0;var c;for(c=0;c<h.length-1;c++){f+=h[c]*a[c]}f+=h[c];f=1/(1+Math.pow(Math.E,-f));d[e][b]=f}}return d[d.length-1][0]};var colormatchGeneration=4;var masterNN=new NeuralNet(3,[18,4,1],[491.6114739961,107.6452489844,82.5035763468,741.4981981021,-702.9926128157,437.3216187924,-253.8267418984,560.1137081697,322.175589216,191.3897104844,-473.1349215245,230.8042509018,389.4456751317,-220.3305724054,415.1122941461,-437.4858451931,-690.2769757668,-70.7771472495,-222.2075287235,-192.398947578,249.6397373475,460.6033940009,-557.2950053209,164.3738787096,-711.7808701521,-950.413143891,-4.8465360177,34.7202654753,262.7865674563,99.7697372199,202.3317755834,-180.1238482888,-338.8261109285,-309.4317345506,747.4856725748,-144.1410309994,-79.1648989518,88.274142183,-70.458436648,208.3399647121,186.6216600911,393.688427397,-25.3014300287,-187.4150309892,880.4838419777,23.9420037656,201.691373934,303.1553269441,-74.5287639193,-66.7634272195,-86.1155896113,15.6382627286,203.9047680036,-890.1282032766,-16.4832456192,-204.4363577744,348.7937971435,-307.0254746631,116.8926920735,-71.2735916747,241.2009836783,-26.616723667,224.5658788491,579.5442774216,73.5455642043,-154.3540093825,343.601687279,-618.784362564,-660.2672750294,-253.1569257945,-89.347081594,-94.3513189639,-597.150354429,-149.0831725437,29.5438018021,-214.5985141081,-388.3398239893,234.3663841729,147.4154632719,122.398720801,-157.8645778652,0]);function checkColors(c,b){var a=masterNN.calculate(c.concat(b));return a}function hexToCM(j){var h=hexToR(j)/255;var f=hexToG(j)/255;var a=hexToB(j)/255;var d=[h,f,a];var c=rgbToHSV(d);var e=rgbToLAB(d);return d.concat(c,e)}function randHex(a){if(a==0){return""}else{var b="";var c=Math.floor(Math.random()*16);if(c<10){b+=c}else{b+=String.fromCharCode(55+c)}b+=randHex(a-1);return b}}function randomColor(){return"#"+randHex(6)}function randomColorMatch(e,c){var f,a;var d;for(d=0;d<100;d++){f=randomColor();a=hexToCM(f);var b=checkColors(e,a);if(c){if(b>0.5){return[f,a]}}else{if(b<0.5){return[f,a]}}}return false}function randomColorScheme(h,d,l,b,c){if(l===undefined){l=false}if(b===undefined){b=100}if(c===undefined){c=1}for(;b>=0;b--){if(h.length==d){return h}var m,o;var f,e;for(f=0;f<100;f++){m=randomColor();o=hexToCM(m);if(l){if(c>0&&h.length==0&&o[4]>0.2&&o[6]>5){continue}else{if(h.length>0&&h.length<c&&((o[4]>0.2&&o[6]>20)||(o[4]<=0.2&&h[0][1][4]>0.2)||(o[6]<=20&&h[0][1][6]>20))){continue}else{if(h.length>=c&&Math.abs(o[6]-h[0][1][6])<=60){continue}}}}var g=true;for(e=0;e<h.length;e++){var k=checkColors(h[e][1],o);if(k<=0.5){g=false;break}}if(g){var a=randomColorScheme(h.concat([[m,o]]),d,l,0,c);if(a!=false){return a}}}}return false}function randomPageColorScheme(b,a){if(b===undefined){b=3}return randomColorScheme([],b,true,100,a)}function assignPageColorScheme(b,a){if(a===undefined){a=1}if(b!=false){if(document.body===null){document.write("<style type='text/css'>\nbody{background-color:"+b[0][0]+";color:"+b[a][0]+";}\na:link{color:"+b[a+1][0]+";}\na:visited{color:"+b[a+1][0]+"}</style>")}else{document.body.style.backgroundColor=b[0][0];document.body.style.color=b[a][0];for(i=0;i<document.links.length;i++){document.links[i].style.color=b[a+1][0]}}}return b}function autoScheme(force,days,background,foreground){if(force===undefined){force=false}if(days===undefined){days=1}if(background===undefined){background=1}if(foreground===undefined){foreground=2}var cname="colorScheme";if(background!=1){cname+=background}cname+="=";var sch;var c_start=document.cookie.indexOf(cname);if(c_start==-1||force){sch=randomPageColorScheme(background+foreground,background);if(sch==false){return}var date=new Date();date.setDate(date.getDate()+days);var c=cname+"[";for(var i=0;i<sch.length;i++){if(i!=0){c+=","}c+='["'+sch[i][0]+'"]'}c+="]; expires="+date.toGMTString()+"; path=/";document.cookie=c}else{c_start+=cname.length;var c_end=document.cookie.indexOf(";",c_start);if(c_end==-1){c_end=document.cookie.length}sch=eval(document.cookie.substring(c_start,c_end))}assignPageColorScheme(sch,background);return sch}function rgbToHSV(c){var b=new Array(3);var a,d;if(c[0]>c[1]){if(c[0]>c[2]){a=c[0];if(c[1]>c[2]){d=c[2]}else{d=c[1]}}else{a=c[2];d=c[1]}}else{if(c[1]>c[2]){a=c[1];if(c[0]>c[2]){d=c[2]}else{d=c[0]}}else{a=c[2];d=c[0]}}b[2]=a;if(a!=0){b[1]=(a-d)/a}else{b[1]=0}if(b[1]!=0){if(a==c[0]){b[0]=(c[1]-c[2])/6/b[1]}else{if(a==c[1]){b[0]=(1/2)+(c[2]-c[0])/6/b[1]}else{b[0]=(2/3)+(c[0]-c[1])/6/b[1]}}}else{b[0]=0}return b}function rgbToXYZ(c){var b,a,d;b=c[0];a=c[1];d=c[2];if(b>0.04045){b=Math.pow((b+0.055)/1.055,2.4)}else{b=b/12.92}if(a>0.04045){a=Math.pow((a+0.055)/1.055,2.4)}else{a=a/12.92}if(d>0.04045){d=Math.pow((d+0.055)/1.055,2.4)}else{d=d/12.92}var g=b*0.4124+a*0.3576+d*0.1805;var f=b*0.2126+a*0.7152+d*0.0722;var e=b*0.0193+a*0.1192+d*0.9505;return[g,f,e]}function xyzToLAB(f){var j=f[0]/0.95047;var h=f[1]/1;var g=f[2]/1.08883;if(j>0.008856){j=Math.pow(j,1/3)}else{j=(7.787*j)+(16/116)}if(h>0.008856){h=Math.pow(h,1/3)}else{h=(7.787*h)+(16/116)}if(g>0.008856){g=Math.pow(g,1/3)}else{g=(7.787*g)+(16/116)}var d=(116*h)-16;var e=500*(j-h);var c=200*(h-g);return[d,e,c]}function rgbToLAB(a){return xyzToLAB(rgbToXYZ(a))};