﻿function hsv2rgb(h,s,v)
	{   
		var r, g, b;   
		var RGB = new Array();   
		if(s==0)
		{   
		RGB['red']=RGB['green']=RGB['blue']=Math.round(v*255);   
		}
		else
		{   
			// h must be < 1   
			var var_h = h * 6;   
			if (var_h==6) var_h = 0;   
			//Or ... var_i = floor( var_h )   
			var var_i = Math.floor( var_h );   
			var var_1 = v*(1-s);   
			var var_2 = v*(1-s*(var_h-var_i));   
			var var_3 = v*(1-s*(1-(var_h-var_i)));  
			switch(var_i)
			{ 
			case 0:    
				var_r = v;    
				var_g = var_3;
				var_b = var_1;
				break;
			case 1:    
				var_r = var_2;
				var_g = v;   
				var_b = var_1;
				break; 
			case 2:   
				var_r = var_1;
				var_g = v;
				var_b = var_3;
				break; 
			case 3:   
				var_r = var_1;
				var_g = var_2;
				var_b = v;   
				break;
			case 4:   
				var_r = var_3;   
				var_g = var_1;   
				var_b = v;  
				break; 
			default:    
				var_r = v;   
				var_g = var_1;   
				var_b = var_2;
				break;
			}   
			//rgb results = 0 ÷ 255     
			RGB['red']=Math.round(var_r * 255);   
			RGB['green']=Math.round(var_g * 255);   
			RGB['blue']=Math.round(var_b * 255);   
		}
		for(key in RGB)
		{
		RGB[key]=RGB[key].toString(16);
		if(RGB[key].length<2) RGB[key]='0'+RGB[key];
		}
		var toret='#'+RGB['red']+''+RGB['green']+''+RGB['blue'] ;
		return toret;
	}
