// JavaScript Document


/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Conversion Function From HSV to RGB
/////////////////////////////////////////////////////////////////////////////////////////////////////////////

function HSVtoRGB(hue, saturation, value)
{

if ( saturation == 0 )                       //HSV values = 0 ÷ 1
	{
   		redFloat = value * 2.55;
   		greenFloat = value * 2.55;
   		blueFloat = value * 2.55;
	}
else
	{
  	 	var_h = (hue/360) * 6;					//convert hue angle to value between 0 and 1, then * 6
												//document.write('var_h' + var_h + ', ');
		
  	 	if ( var_h == 6 )     					//H must be < 1
			{
				var_h = 0;
			}	
		
  		var_i = var_h.toFixed(0);             //Or ... var_i = floor( var_h )
												//document.write('var_i' + var_i + ', ');
  		var_1 = value * ( 1 - (saturation/100) );
  		var_2 = value * ( 1 - (saturation/100) * ( var_h - var_i ) );
  		var_3 = value * ( 1 - (saturation/100) * ( 1 - ( var_h - var_i ) ) );

  		if ( var_i == 0 ) 
			{ 
				var_r = value; 
				var_g = var_3; 
				var_b = var_1;
			}
  		else if ( var_i == 1 ) 
			{ 
				var_r = var_2 ; 
				var_g = value ; 
				var_b = var_1;
			}
  		else if ( var_i == 2 ) 
			{ 
			var_r = var_1; 
			var_g = value; 
			var_b = var_3;
			}
  		else if ( var_i == 3 ) 
			{ 
			var_r = var_1 ; 
			var_g = var_2 ; 
			var_b = value ;
			}
  		else if ( var_i == 4 ) 
			{ 
			var_r = var_3 ; 
			var_g = var_1 ; 
			var_b = value;
			}
  		else  
			{ 
			var_r = value; 
			var_g = var_1 ; 
			var_b = var_2;}

   		redFloat = var_r * 2.55;                  //RGB results = 0 ÷ 255
   		greenFloat = var_g * 2.55;
   		blueFloat = var_b * 2.55;
	}

red=redFloat.toFixed(0);
green=greenFloat.toFixed(0);
blue=blueFloat.toFixed(0);

RGBstring = ("rgb(" + red + "," + green + "," + blue + ")");
return RGBstring;

}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Converts individual rgb values to an rgb string
/////////////////////////////////////////////////////////////////////////////////////////////////////////////

function RGBvalsToString(red, green, blue)
{
	RGBstring = ("rgb(" + red + "," + green + "," + blue + ")");
	return RGBstring;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Our primary random RGB generator 
//	note:  begins by generating HSV values,
//	then converts these to RGB prior to return
/////////////////////////////////////////////////////////////////////////////////////////////////////////////


function randomRGB(colorInt)
{
	var colorRGB = {};									// create object
	
	switch(colorInt)
	{
		
		case 0:  // GRAYSCALE:  H=0, S=0, V= 0 to 100
		
			// TOP BAND									      
   						
			var hue1 = 0;
			var saturation1 = 0;
			var value1 = parseInt(100*Math.random());
			
			colorRGB.band1 = HSVtoRGB(hue1, saturation1, value1);
			
			// BOTTOM BAND								      
   						
			var hue2 = 0;
			var saturation2 = 0;
			var value2 = parseInt(100*Math.random());
			
			colorRGB.band2 = HSVtoRGB(hue2, saturation2, value2);
			
			// TOP TEXT
			if (value1 < 50) 
			{
				var hueText1 = 0;
				var saturationText1 = 0;
				var valueText1 = 100;
			}
			
			else 
			{
				var hueText1 = 50;
				var saturationText1 = 50;
				var valueText1 = 0;		
			}
			colorRGB.text1 = HSVtoRGB(hueText1, saturationText1, valueText1);
			
			// BOTTOM TEXT
			if (value2 < 50) 
			{
				var hueText2 = 0;
				var saturationText2 = 0;
				var valueText2 = 100;
			}
			
			else 
			{
				var hueText2 = 50;
				var saturationText2 = 50;
				var valueText2 = 0;		
			}
			colorRGB.text2 = HSVtoRGB(hueText2, saturationText2, valueText2);
			
			break;
	
	 	case 1: // BRIGHT COLORS:  H= 0 to 100, S= 0 to 100, V= 95 to 100
		
			// TOP BAND									

			var hue1 = parseInt(100*Math.random());
			var saturation1 = parseInt(100*Math.random());
			var value1 = 95 + parseInt(5*Math.random());
			
			colorRGB.band1 = HSVtoRGB(hue1, saturation1, value1);
			
			// BOTTOM BAND								 
			
			var hue2 = parseInt(100*Math.random());
			var saturation2 = parseInt(100*Math.random());
			var value2 = 95 + parseInt(5*Math.random());
	
			colorRGB.band2 = HSVtoRGB(hue2, saturation2, value2);
			
			// TOP TEXT
			if (value1 < 50) 
			{
				var hueText1 = 0;
				var saturationText1 = 0;
				var valueText1 = 100;
			}
			
			else 
			{
				var hueText1 = 50;
				var saturationText1 = 50;
				var valueText1 = 0;		
			}
			colorRGB.text1 = HSVtoRGB(hueText1, saturationText1, valueText1);
			
			// BOTTOM TEXT
			if (value2 < 50) 
			{
				var hueText2 = 0;
				var saturationText2 = 0;
				var valueText2 = 100;
			}
			
			else 
			{
				var hueText2 = 50;
				var saturationText2 = 50;
				var valueText2 = 0;		
			}
			colorRGB.text2 = HSVtoRGB(hueText2, saturationText2, valueText2);
			
			break;

		case 2:	// LIGHT COLOR:  H= 0 to 100, S= 0 to 10, V= 100
		
			// TOP BAND					 
	
			var hue1 = parseInt(100*Math.random());
			var saturation1 = parseInt(20*Math.random());
			var value1 = 100;
			
			colorRGB.band1 = HSVtoRGB(hue1, saturation1, value1);
			
			// BOTTOM BAND								
			
			var hue2 = parseInt(100*Math.random());
			var saturation2 = parseInt(20*Math.random());
			var value2 = 100;
	
			colorRGB.band2 = HSVtoRGB(hue2, saturation2, value2);
			
			// TOP TEXT
			if (value1 < 50) 
			{
				var hueText1 = 0;
				var saturationText1 = 0;
				var valueText1 = 100;
			}
			
			else 
			{
				var hueText1 = 50;
				var saturationText1 = 50;
				var valueText1 = 0;		
			}
			colorRGB.text1 = HSVtoRGB(hueText1, saturationText1, valueText1);
			
			// BOTTOM TEXT
			if (value2 < 50) 
			{
				var hueText2 = 0;
				var saturationText2 = 0;
				var valueText2 = 100;
			}
			
			else 
			{
				var hueText2 = 50;
				var saturationText2 = 50;
				var valueText2 = 0;		
			}
			colorRGB.text2 = HSVtoRGB(hueText2, saturationText2, valueText2);
			
			break;

		case 3:	 // LIGHT GREEN:  H= 100 to 140, S= 0 to 100, V= 50 to 100
		
			// TOP BAND					 
	
			var hue1 = 100 + parseInt(40*Math.random());
			var saturation1 = parseInt(100*Math.random());
			var value1 = 50 + parseInt(50*Math.random());
			
			colorRGB.band1 = HSVtoRGB(hue1, saturation1, value1);
			
			// BOTTOM BAND								
			
			var hue2 = 100 + parseInt(40*Math.random());
			var saturation2 = parseInt(100*Math.random());
			var value2 = 50 + parseInt(50*Math.random());
	
			colorRGB.band2 = HSVtoRGB(hue2, saturation2, value2);
			
			// TOP TEXT
			if (value1 < 50) 
			{
				var hueText1 = 0;
				var saturationText1 = 0;
				var valueText1 = 100;
			}
			
			else 
			{
				var hueText1 = 50;
				var saturationText1 = 50;
				var valueText1 = 0;		
			}
			colorRGB.text1 = HSVtoRGB(hueText1, saturationText1, valueText1);
			
			// BOTTOM TEXT
			if (value2 < 50) 
			{
				var hueText2 = 0;
				var saturationText2 = 0;
				var valueText2 = 100;
			}
			
			else 
			{
				var hueText2 = 50;
				var saturationText2 = 50;
				var valueText2 = 0;		
			}
			colorRGB.text2 = HSVtoRGB(hueText2, saturationText2, valueText2);
			
			break;
			
		case 4:	// BRIGHT GREEN RGB BASED
		
			// TOP BAND									

			var red1 = parseInt(100*Math.random());
			var green1 = 155 + parseInt(100*Math.random());
			var blue1 = parseInt(100*Math.random());
			
			colorRGB.band1 = RGBvalsToString(red1, green1, blue1);
			
			// BOTTOM BAND								 
			
			var red2 = parseInt(75*Math.random());
			var green2 = 205 + parseInt(50*Math.random());
			var blue2 = parseInt(75*Math.random());
			
			colorRGB.band2 = RGBvalsToString(red2, green2, blue2);
			
			// TOP TEXT

			colorRGB.text1 = "rgb(0,0,0)";
			
			// BOTTOM TEXT
			
			colorRGB.text2 = "rgb(0,0,0)";
			
			break;
			
		case 5:	// TOTALLY RANDOM RGB COLORS
		
			// TOP BAND									

			var red1 = parseInt(128*Math.random());
			var green1 = parseInt(128*Math.random());
			var blue1 = parseInt(128*Math.random());
			
			colorRGB.band1 = RGBvalsToString(red1, green1, blue1);
			
			// BOTTOM BAND								 
			
			var red2 = red1+64;
			var green2 = green1+64;
			var blue2 = blue1+64;
			
			colorRGB.band2 = RGBvalsToString(red2, green2, blue2);
			
			// TOP TEXT

			colorRGB.text1 = "rgb(255,255,255)";
			
			// BOTTOM TEXT
			
			colorRGB.text2 = "rgb(0,0,0)";
			
			break;
			
		default:
			rand=Math.random();    						// grayscale: H=0, S=0, V= 0 to 100
			tempRandFloat=100*rand;
			tempRandInt=tempRandFloat.toFixed(0);
	
			var hue = 0;
			var saturation = 0;
			var value = tempRandInt;
			
			randomRGBstring = HSVtoRGB(hue, saturation, value);
			break;
	}
	return colorRGB;
}


function randomInteger()
{
var colorOptions = 6;					
var randomRaw = Math.random();
var randomAdjusted = colorOptions*randomRaw;
var randomString = parseInt (randomAdjusted);
var randomInt = Number (randomString);
return randomInt;
}

