function baseConverter(number,ob,nb){number=number+"";number=number.toUpperCase();var list="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dec=0;for(var i=0;i<=number.length;i++){dec+=(list.indexOf(number.charAt(i)))*(Math.pow(ob,(number.length-i-1)));}
number="";var magnitude=Math.floor((Math.log(dec))/(Math.log(nb)));for(var i=magnitude;i>=0;i--){var amount=Math.floor(dec/Math.pow(nb,i));number=number+list.charAt(amount);dec-=amount*(Math.pow(nb,i));}
if(number.length==0)number=0;return number;}
function toHSV(rgbColor){rgbColor=rgbColor.replace('#','');red=baseConverter(rgbColor.substr(0,2),16,10);green=baseConverter(rgbColor.substr(2,2),16,10);blue=baseConverter(rgbColor.substr(4,2),16,10);if(red.length==0)red=0;if(green.length==0)green=0;if(blue.length==0)blue=0;red=red/255;green=green/255;blue=blue/255;maxValue=Math.max(red,green,blue);minValue=Math.min(red,green,blue);var hue=0;if(maxValue==minValue){hue=0;saturation=0;}else{if(red==maxValue){hue=(green-blue)/(maxValue-minValue)/1;}else if(green==maxValue){hue=2+(blue-red)/1/(maxValue-minValue)/1;}else if(blue==maxValue){hue=4+(red-green)/(maxValue-minValue)/1;}
saturation=(maxValue-minValue)/maxValue;}
hue=hue*60;valueBrightness=maxValue;if(valueBrightness/1<0.5){}
if(valueBrightness/1>=0.5){}
returnArray=[hue,saturation,valueBrightness];return returnArray;}
function toRgb(hue,saturation,valueBrightness){Hi=Math.floor(hue/60);if(hue==360)Hi=0;f=hue/60-Hi;p=(valueBrightness*(1-saturation)).toPrecision(2);q=(valueBrightness*(1-(f*saturation))).toPrecision(2);t=(valueBrightness*(1-((1-f)*saturation))).toPrecision(2);switch(Hi){case 0:red=valueBrightness;green=t;blue=p;break;case 1:red=q;green=valueBrightness;blue=p;break;case 2:red=q;green=valueBrightness;blue=t;break;case 3:red=p;green=q;;blue=valueBrightness;break;case 4:red=t;green=p;blue=valueBrightness;break;case 5:red=valueBrightness;green=p;blue=q;break;}
if(saturation==0){red=valueBrightness;green=valueBrightness;blue=valueBrightness;}
red*=255;green*=255;blue*=255;red=Math.round(red);green=Math.round(green);blue=Math.round(blue);red=baseConverter(red,10,16);green=baseConverter(green,10,16);blue=baseConverter(blue,10,16);red=red+"";green=green+"";blue=blue+"";while(red.length<2){red="0"+red;}
while(green.length<2){green="0"+green;}
while(blue.length<2){blue="0"+""+blue;}
rgbColor="#"+red+""+green+""+blue;return rgbColor.toUpperCase();}
function findColorByDegrees(rgbColor,degrees){rgbColor=rgbColor.replace('#','');myArray=toHSV(rgbColor);myArray[0]+=degrees;if(myArray[0]>=360)myArray[0]-=360;if(myArray[0]<0)myArray[0]+=360;return toRgb(myArray[0],myArray[1],myArray[2]);}
function findColorByBrightness(rgbColor,brightness){rgbColor=rgbColor.replace('#','');myArray=toHSV(rgbColor);myArray[2]+=brightness/100;if(myArray[2]>1)myArray[2]=1;if(myArray[2]<0)myArray[2]=0;myArray[1]+=brightness/100;if(myArray[1]>1)myArray[1]=1;if(myArray[1]<0)myArray[1]=0;return toRgb(myArray[0],myArray[1],myArray[2]);}