package sonnet;

//import java.applet.*;
//import javax.swing.SwingUtilities;
//import javax.swing.UIManager;
//import java.awt.Toolkit;
import java.applet.Applet;
import java.awt.*;
import java.awt.image.*;
import javax.swing.JFrame;
//import javax.swing.JPanel;





/*
v/ Kabala - Unknown Artist
v/ Grand Unified Theory - Paul Oakenfold - Perfecto Presents Another World CD 1.mp3
v/ Supreme Matrix Theory - Paul Oakenfold - Perfecto Presents Another World II.mp3
v/ Cyberology - Ken Ishii Discography
v/ HealPacks - super furry animals - juxtaposed with u.mp3
v/ Sky Net - Paul Oakenfold - Essential Mix in China.mp3 + Paul Oakenfold - Miami Part 2.mp3
v/ Infinite Number Theorem - Sasha Discography
v/ Poisonoloy - Robert Miles Discography
v/ FountainOfYouth.info - (2006-01-01) Radio 1 Essential Mix - Sasha.mp3
v/ Shill: Sherri Kane the Confuser - Massive Attack
v/ Nuclear War - E:\MP3s\Game Music\Fallout 1 - A Post Nuclear Role-Playing Game Soundtrack\01 - Ink Spots - Maybe (fallout theme).mp3 And The Rest
v/ E-Democracy - E:\MP3s\Game Music\DeusEX\  25:23
v/ Grand Windmill - Paul Oakenfold - Global Underground NYC.mp3  54:09
Progenitor Aliens - E:\MP3s\Anbrok\01-anbrok_-_anbrok_sessions_051.mp3  240:01
v/ Jewlluminati History - Infected Mushrooom Discography
My Life Story - Silence - Skin (Valentino Kanzyani Mix).mp3   E:\MP3s\Anbrok\02-anbrok_-_anbrok_sessions_050_progressive_yearmix.mp3  4:08 + 89:55
How The War Was Won - E:\MP3s\Robs Music\CD 4\01 Track 1.mp3 -> 13  79:14
Peace De La NanoRenasance - E:\MP3s\Robs Music\CD 3\04 Track 4.mp3     (2005-11-06 00-59) The Essential Mix BBC Radio 1- M.A.N.D.Y.mp3  2:39 + 122:37
How The Government Caused 911 - Rammstein  91:47
Sky Command - Nine Inch Nails Discography + All Quake Songs + E:\MP3s\Juno Reactor - The Remixes (1993-2003)\Juno Reactor & Don Davis - Mona Lisa Overdrive.mp3
139:53 + 28:47 + 180:06 + 4:45
Book Of The Law Explained - Hybrid Discography  587:11
My Previous Incarnations - Red Yellow Blue With Green Text BlackGreen.css - DJ Mystik - Lost in trance.mp3  2:54
Mental Health Gulag - Underworld  189:23
Elven Alliance.com - Lords of Acid  72:02
v/ MainPage - KMFDM + DJ Beck - Super Mix(feat.303Infinity,ATC,ATB,Alya,DJScott,BT,Prodigy,RobertMiles,PetShopBoys,Okenfold,DJ.mp3
Avatars and Pictures - Bt Discography 436:14
v/ Supreme Magic Spell Book - OMD - Secret (12 inch mix).mp3
v/ Magic Gizmos - C:\Users\Alex\Desktop\1st Drawr\BackgroundRecordings\Deadmau5 From MP3 Player\[2006] Get Scraped  66:14
v/ Illuminati's Greatest Secret - DeadMause on MP3 Player   198:10
All Sizes Are 1422x860
2351 Left 32.327 Gigs Left To Do
 */


public class Sonnet extends Applet
{
	static int initialScreenSizeX = 1440, initialScreenSizeY = 900;//862
	static Dimension Dim = new Dimension(initialScreenSizeX, initialScreenSizeY);
	//Below Was BufferedImage
	static BufferedImage I;// = new Image(Dim.width, Dim.height);
	static int borderSizeX = Dim.width/12, borderSizeY = Dim.height/6;
	static int choice = 0;//0 is SkyNet Pyramid, 1 is Full Spectral Rainbow, 2 is Y and Sonnet
	static final int numberOfColorsInTheRainbow = 7;//asdf
	static final double[] red = {193,0,0};
	static final double[] orange = {255,134,0};
	static final double[] yellow = {246,252,15};
	static final double[] green = {0,133,50};
	static final double[] teal = {3,224,149};
	static final double[] blue = {0,0,192};
	static final double[] purple = {122,0,178};
	static final double[] black = {0,0,0};
	static final double[] white = {255,255,255};
	static final double[] brown = {131,103,71};
	static final double[] bronze = {152,123,46};
	static final double[] silver = {193,192,192};
	static final double[] gold = {205,191,44};
	static final double[] lime = {126,193,33};
	static final double[] pink = {255,64,143};

	//public class Display extends Sonnet
	//{
		public void main(String[] args)// throws InterruptedException
		{
			//Dim = this.getSize();
			I = new BufferedImage(Dim.width, Dim.height, BufferedImage.TYPE_INT_ARGB);
			//Applet f = new Applet("Sonnet");
			
			Graphics g = I.getGraphics();
			//f.add("Center", g.getClass());
			//Sonnet.I.setRGB(x, y, rgb);// + 22 on Y in example for some reason
			//f.setExtendedState(JFrame.MAXIMIZED_BOTH);
			//f.setResizable(true); // THEN  resizable = false
			//Sonnet.I.setVisible(true);
			//f.setDefaultCloseOperation(Applet.EXIT_ON_CLOSE);
			int x = 0, y = 0, xSlider = 0, xMinusxSlider = 0, cxMx = 0, ySlider = 0, yMinusySlider = 0, cyMy = 0, a = 0, b = 0;//cxMx Corrected xMinusSlider for determining color
			int color = 0;
			double[] RGB2 = {0,0,0};
			Color colorAccessor = new Color(), colorAccessor2 = new Color(), colorAccessor3 = new Color();
			double colorInterval = Dim.width / ( numberOfColorsInTheRainbow - 1 );
			int cx = Math.round( (Dim.width + 1  ) / 2 - 1 );
			int cy = Math.round( (Dim.height + 1 ) / 2 - 1 );
			double totalAngleUnits = 0;
			//double spectralBrightnessMultiplyer = 1/2;
			boolean fractalOn = false;
			boolean TrispectralRainbow = false;
			//Dimension DimLast = Dim;
			//Thread.sleep(4000);
			while (choice != 4)
			{
				if (choice == 0)
				{
					//Dimension DimLast = Dim;
					Dim.width = I.getWidth();
					Dim.height = I.getHeight();
					//Dim.height = Dim.height - 60;//Use only For Circular Rainbow
					colorInterval = Dim.width / ( numberOfColorsInTheRainbow - 1 );
					//colorInterval = Dim.height / ( 2 * ( numberOfColorsInTheRainbow - 1 ) );
					if (TrispectralRainbow == true)
						colorInterval = colorInterval / 3;//For Trispectral Rainbow.
					for (xSlider = 0; xSlider < 1444; xSlider++)//-144 Use cy And < Dim.height Instead of Dim.height For Circular Rainbow //Start At -144 For Videos And Pictures
					{
						Dim.width = I.getWidth();
						Dim.height = I.getHeight();
						//Dim.height = Dim.height - 60;//Use only For Circular Rainbow
						colorInterval = Dim.width / ( numberOfColorsInTheRainbow - 1 );
						//cx = Math.round( (Dim.width + 1  ) / 2 - 1 );
						//cy = Math.round( (Dim.height + 1 ) / 2 - 1 );
						//ySlider =  xSlider * Dim.height / Dim.width;
						for (x = 0; x < Dim.width; x++)
						{
							if (fractalOn == true)
							{
								for (y = 0; y < Dim.height; y++)//Comment Out Here For Rainbow Slider
								{//Comment Out Here For Rainbow Slider
									yMinusySlider = y - ySlider;//Comment Out Here For Rainbow Slider
									//yMinusySlider = y;//For Testing Only!
									//Comment Out Below For Rainbow Slider
									//if ( yMinusySlider < 0)// To Test Moving Rainbow From Left To Right
									//	cyMy = yMinusySlider + Dim.height;// To Test Moving Rainbow From Left To Right
									//else cyMy = yMinusySlider;// To Test Moving Rainbow From Left To Right

									if ( ( x - Dim.width / 2 ) != 0)// && y != 0
									{
										a = - ( x - Dim.width / 2 ) - ( y - Dim.height / 2 ) * Dim.height / ( x - Dim.width / 2 ) * (int)Math.pow(xSlider , 1.44) / Dim.height;
										while ( a < 0 )
											a = (int)(a + 6 * colorInterval);
										while ( a > 6 * colorInterval )
											a = (int)(a - 6 * colorInterval);
										if ( a < colorInterval )//For Normal Rainbow Use This Instead Of The Others
											color = colorAccessor2.set(colorAccessor3.ColorSlider(colorInterval, a, red, orange).RGB).get();
										else if ( a < ( 2 * colorInterval ) )
											color.ColorSlider(colorInterval, a - colorInterval, orange, yellow);
										else if ( a < ( 3 * colorInterval ) )		
											color.ColorSlider(colorInterval, a - 2 * colorInterval, yellow, green);
										else if ( a < ( 4 * colorInterval ) )
											color.ColorSlider(colorInterval, a - 3 * colorInterval, green, teal);
										else if ( a < ( 5 * colorInterval ) )
											color.ColorSlider(colorInterval, a - 4 * colorInterval, teal, blue);
										else
											color.ColorSlider(colorInterval, a - 5 * colorInterval, blue, purple);
									}
									else color = 0;
									Sonnet.I.setRGB(x, y, color);
								}
								
							}
							else
							{
								xMinusxSlider = x - xSlider;// To Test Moving Rainbow From Left To Right
								//xMinusxSlider = x;//For Testing Only!
								if ( xMinusxSlider < 0 )// To Test Moving Rainbow From Left To Right
									cxMx = xMinusxSlider + Dim.width;// To Test Moving Rainbow From Left To Right
								else cxMx = xMinusxSlider;// To Test Moving Rainbow From Left To Right
								//Comment Out Above For Rainbow Slider

								/*if ( cxMx < colorInterval ) // Cyberology - Ken Ishii Discography
    					color.ColorSlider(colorInterval, cxMx, yellow, blue);
	  				else
	  					color.ColorSlider(colorInterval, cxMx - colorInterval, blue, purple);//*/

								/*if ( cxMx < colorInterval ) // HealPacks - super furry animals - juxtaposed with u.mp3
    					color.ColorSlider(colorInterval, cxMx, yellow, red);
	  				else
	  					color.ColorSlider(colorInterval, cxMx - colorInterval, red, purple);//*/

								/*if ( cxMx < colorInterval ) // Sky Net - Paul Oakenfold - Essential Mix in China.mp3 + Paul Oakenfold - Miami Part 2.mp3    					color.ColorSlider(colorInterval, cxMx, red, silver);
    					color.ColorSlider(colorInterval, cxMx, red, silver);
    				else if ( cxMx < ( 2 * colorInterval ) )	
    					color.ColorSlider(colorInterval, cxMx - colorInterval, silver, gold);
    				else		
    					color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, gold, blue);//*/

								//color.ColorSlider(colorInterval, cxMx, green, purple);//Infinite Number Theorem

								/*if ( cxMx < colorInterval ) // Fountain of Youth
    					color.ColorSlider(colorInterval, cxMx, red, black);
    				else
    					color.ColorSlider(colorInterval, cxMx - colorInterval, blue, purple);//*/



								/*if ( cxMx < colorInterval ) // Shill
    					color.ColorSlider(colorInterval, cxMx, red, black);
    				else
    					color.ColorSlider(colorInterval, cxMx - colorInterval, black, red);//*/

								/*if ( cxMx < colorInterval ) // Grand Windmill
    					color.ColorSlider(colorInterval, cxMx, bronze, silver);
    				else if ( cxMx < ( 2 * colorInterval ) )	
    					color.ColorSlider(colorInterval, cxMx - colorInterval, silver, gold);
    				else		
    					color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, gold, black);//*/

								/*if ( cxMx < colorInterval ) // Poisonology
    					color.ColorSlider(colorInterval, cxMx, green, green);
    				else if ( cxMx < ( 2 * colorInterval ) )	
    					color.ColorSlider(colorInterval, cxMx - colorInterval, green, blue);
    				else if ( cxMx < ( 3 * colorInterval ) )	
    					color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, blue, green);
    				else if ( cxMx < ( 4 * colorInterval ) )	
    					color.ColorSlider(colorInterval, cxMx - 3 * colorInterval, green, green);//*/

								/*if ( cxMx < colorInterval ) // Nuclear War
    					color.ColorSlider(colorInterval, cxMx, red, green);
					else if ( cxMx < ( 2 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - colorInterval, green, black);
					else if ( cxMx < ( 3 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, black, white);
					else if ( cxMx < ( 4 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - 3 * colorInterval, white, black);
					else if ( cxMx < ( 5 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - 4 * colorInterval, black, green);
					else
						color.ColorSlider(colorInterval, cxMx - 5 * colorInterval, green, red);//*/

								/*if ( cxMx < colorInterval ) // E-Democracy
    					color.ColorSlider(colorInterval, cxMx, green, gold);
					else if ( cxMx < ( 2 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - colorInterval, gold, red);
					else if ( cxMx < ( 3 * colorInterval ) )		
						color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, red, purple);
					else if ( cxMx < ( 4 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - 3 * colorInterval, purple, white);
    				else if ( cxMx < ( 5 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 4 * colorInterval, white, black);
    				else if ( cxMx < ( 6 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 5 * colorInterval, black, orange);
    				else if ( cxMx < ( 7 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 6 * colorInterval, orange, yellow);
    				else if ( cxMx < ( 8 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 7 * colorInterval, yellow, blue);
    				else if ( cxMx < ( 9 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 8 * colorInterval, blue, silver);
    				else if ( cxMx < ( 10 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 9 * colorInterval, silver, brown);
    				else
    					color.ColorSlider(colorInterval, cxMx - 10 * colorInterval, brown, bronze);//*/





								/*if ( cxMx < colorInterval ) // Main Page - KMFDM +  + DJ Beck - Super Mix(feat.303Infinity,ATC,ATB,Alya,DJScott,BT,Prodigy,RobertMiles,PetShopBoys,Okenfold,DJ.mp3
    					color.ColorSlider(colorInterval, cxMx, red, green);
					else if ( cxMx < ( 2 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - colorInterval, green, blue);
					else		
						color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, blue, red);//*/

								/*if ( cxMx < colorInterval ) // BAD!!! Main Page - KMFDM
    					color.ColorSlider(colorInterval, cxMx, red, bronze);
					else if ( cxMx < ( 2 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - colorInterval, bronze, silver);
					else if ( cxMx < ( 3 * colorInterval ) )		
						color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, silver, gold);
					else if ( cxMx < ( 4 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - 3 * colorInterval, gold, green);
    				else if ( cxMx < ( 5 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 4 * colorInterval, green, green);
    				else if ( cxMx < ( 6 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 5 * colorInterval, green, gold);
    				else if ( cxMx < ( 7 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 6 * colorInterval, gold, silver);
    				else if ( cxMx < ( 8 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 7 * colorInterval, silver, bronze);
    				else if ( cxMx < ( 9 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 8 * colorInterval, bronze, blue);
    				else
    					color.ColorSlider(colorInterval, cxMx - 9 * colorInterval, blue, blue);//*/



								/*if ( cxMx < colorInterval ) // Jewlluminati History
    					color.ColorSlider(colorInterval, cxMx, blue, red);
    				else
    					color.ColorSlider(colorInterval, cxMx - colorInterval, red, blue);//*/

								/*if ( cxMx < colorInterval ) // My Life Story
    					color.ColorSlider(colorInterval, cxMx, green, red);
					else
						color.ColorSlider(colorInterval, cxMx - colorInterval, red, green);//*/



								/*if ( cxMx < colorInterval ) // Sky Command
    					color.ColorSlider(colorInterval, cxMx, red, orange);
					else if ( cxMx < ( 2 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - colorInterval, orange, yellow);
					else if ( cxMx < ( 3 * colorInterval ) )		
						color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, yellow, lime);
					else
						color.ColorSlider(colorInterval, cxMx - 3 * colorInterval, lime, green);//*/




								if ( cxMx < colorInterval )//For Normal Rainbow Use This Instead Of The Others
									color.ColorSlider(colorInterval, cxMx, red, orange);
								else if ( cxMx < ( 2 * colorInterval ) )
									color.ColorSlider(colorInterval, cxMx - colorInterval, orange, yellow);
								else if ( cxMx < ( 3 * colorInterval ) )		
									color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, yellow, green);
								else if ( cxMx < ( 4 * colorInterval ) )
									color.ColorSlider(colorInterval, cxMx - 3 * colorInterval, green, teal);
								else if ( cxMx < ( 5 * colorInterval ) )
									color.ColorSlider(colorInterval, cxMx - 4 * colorInterval, teal, blue);
								else
									color.ColorSlider(colorInterval, cxMx - 5 * colorInterval, blue, purple);//*/


								/*if ( cxMx <= ( 6 * colorInterval ) )
    				{
    					if ( cxMx < colorInterval )	
        					color.ColorSlider(colorInterval, cxMx, 0.5, red, orange);
    					else if ( cxMx < ( 2 * colorInterval ) )
    						color.ColorSlider(colorInterval, cxMx - colorInterval, 0.5, orange, yellow);
    					else if ( cxMx < ( 3 * colorInterval ) )		
    						color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, 0.5, yellow, green);
    					else if ( cxMx < ( 4 * colorInterval ) )
    						color.ColorSlider(colorInterval, cxMx - 3 * colorInterval, 0.5, green, teal);
        				else if ( cxMx < ( 5 * colorInterval ) )
        					color.ColorSlider(colorInterval, cxMx - 4 * colorInterval, 0.5, teal, blue);
        				else
        					color.ColorSlider(colorInterval, cxMx - 5 * colorInterval, 0.5, blue, purple);
    				}
    				else if ( cxMx <= ( 12 * colorInterval ) )
    				{
    					if ( cxMx < ( 7 * colorInterval ) )	
        					color.ColorSlider(colorInterval, cxMx - 6 * colorInterval, red, orange);
    					else if ( cxMx < ( 8 * colorInterval ) )
    						color.ColorSlider(colorInterval, cxMx - 7 * colorInterval, orange, yellow);
    					else if ( cxMx < ( 9 * colorInterval ) )		
    						color.ColorSlider(colorInterval, cxMx - 8 * colorInterval, yellow, green);
    					else if ( cxMx < ( 10 * colorInterval ) )
    						color.ColorSlider(colorInterval, cxMx - 9 * colorInterval, green, teal);
        				else if ( cxMx < ( 11 * colorInterval ) )
        					color.ColorSlider(colorInterval, cxMx - 10 * colorInterval, teal, blue);
        				else
        					color.ColorSlider(colorInterval, cxMx - 11 * colorInterval, blue, purple);
    				}
    				else
    				{
    					if ( cxMx < ( 13 * colorInterval ) )	
        					color.ColorSlider(colorInterval, cxMx - 12 * colorInterval, 2, red, orange);
    					else if ( cxMx < ( 14 * colorInterval ) )
    						color.ColorSlider(colorInterval, cxMx - 13 * colorInterval, 2, orange, yellow);
    					else if ( cxMx < ( 15 * colorInterval ) )		
    						color.ColorSlider(colorInterval, cxMx - 14 * colorInterval, 2, yellow, green);
    					else if ( cxMx < ( 16 * colorInterval ) )
    						color.ColorSlider(colorInterval, cxMx - 15 * colorInterval, 2, green, teal);
        				else if ( cxMx < ( 17 * colorInterval ) )
        					color.ColorSlider(colorInterval, cxMx - 16 * colorInterval, 2, teal, blue);
        				else
        					color.ColorSlider(colorInterval, cxMx - 17 * colorInterval, 2, blue, purple);
    				}//*/

								//GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER!
								//GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER!
								//GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER!
								//GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER! GO HERE FOR RAINBOW SLIDER!
								for ( y = 0; y < Dim.height; y++)
									Sonnet.I.setRGB(x, y, color);
								//g.drawLine(0, 0, x, Dim.height);//(double[])red.get());//For Sideways Rainbow Works On My Machine. 
							}
							//if (x < Dim.height) //For Diagonal Rainbow Works On My Machine.
							//	for (y = x; y >= 0; y--)
							//		wr.setPixel( x - y, y, color.RGB);
							//else
							//	for (y = Dim.height - 1; y >= 0; y--)
							//		wr.setPixel( x - y, y, color.RGB);//*/

							/*for (int r = 0; r <= cy; r++)//For Normal Rainbow Use This Instead Of The Other 3
    				{
    					xMinusSlider = r - Slider;
						//xMinusSlider = r;
						if ( xMinusSlider < 0)
							cxMx = xMinusSlider + cy;
						else cxMx = xMinusSlider;

						color.ColorSlider(colorInterval, cxMx, green, purple);

						/*if ( cxMx <= ( 6 * colorInterval ) )
	    				{
	    					if ( cxMx < colorInterval )	
	        					color.ColorSlider(colorInterval, cxMx, red, orange);
	    					else if ( cxMx < ( 2 * colorInterval ) )
	    						color.ColorSlider(colorInterval, cxMx - colorInterval, orange, yellow);
	    					else if ( cxMx < ( 3 * colorInterval ) )		
	    						color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, yellow, green);
	    					else if ( cxMx < ( 4 * colorInterval ) )
	    						color.ColorSlider(colorInterval, cxMx - 3 * colorInterval, green, teal);
	        				else if ( cxMx < ( 5 * colorInterval ) )
	        					color.ColorSlider(colorInterval, cxMx - 4 * colorInterval, teal, blue);
	        				else
	        					color.ColorSlider(colorInterval, cxMx - 5 * colorInterval, blue, purple);
	        			}//*/
							/*totalAngleUnits = Math.round( ( r * ( 2 * Math.PI ) - 1 ) * Math.PI );//  * Math.PI  Seems To Be Wrong But Is Necessary With Math Inaccuracy!
    					if ( r==0 )
    						wr.setPixel(cx, cy, color.RGB);
    					for (int a = 0; a <= totalAngleUnits; a++)//a = angle interval so that all angles are included
    					{
    						wr.setPixel( (int)Math.round( cx + Math.cos( ( a/totalAngleUnits ) * 2 * Math.PI ) * r ),
    								     (int)Math.round( cy + Math.sin( ( a/totalAngleUnits ) * 2 * Math.PI ) * r ), color.RGB);
    						//wr.setPixel( (int)Math.round( cx - Math.cos( ( a/totalAngleUnits ) * 2 * Math.PI ) * r ), (int)Math.round( cy + Math.sin( ( a/totalAngleUnits ) * 2 * Math.PI ) * r ), color.RGB);
    						//wr.setPixel( (int)Math.round( cx + Math.cos( ( a/totalAngleUnits ) * 2 * Math.PI ) * r ), (int)Math.round( cy - Math.sin( ( a/totalAngleUnits ) * 2 * Math.PI ) * r ), color.RGB);
    						//wr.setPixel( (int)Math.round( cx - Math.cos( ( a/totalAngleUnits ) * 2 * Math.PI ) * r ), (int)Math.round( cy - Math.sin( ( a/totalAngleUnits ) * 2 * Math.PI ) * r ), color.RGB);
    					}
    				}//*/
							//}//Comment Out Here For Rainbow Slider
						}
						g.drawImage (I, 0, 0, null);
						//f.invalidate();
						//f.revalidate();
						//f.repaint();
					}
					//choice = 1;
				}
				else if (choice == 1)
				{
					//Dim = f.getSize();

					//Thread.sleep(1000);
					choice = 2;
				}
				else if (choice == 2)
				{
					//Dim = f.getSize();

					//Thread.sleep(1000);
					choice = 4;
				}
			}
		}
	}
//}


//System.exit(0);

/*public class MainCanvas extends Canvas
{
    public void paint(Graphics g)
    {
        g.drawImage(Sonnet.I, 0, 0, Color.red, null);
        //Dim = getSize();
        //g.drawOval(0, 0, Dim.width, Dim.height);
    }
}
/*for (int i = 0; i < screenSizeX; ++i)
for(int j = 0; j < screenSizeY; ++j)
	I.setRGB(i, j, 0x000000); // Black Background
for (int j = 0; j<45; ++j)
I.setRGB(j, j, 0); // Scratch upper left corner
if(1>0)
{
	int x = screenSizeX - borderSizeX, y = screenSizeY - borderSizeY;
	int[] a = new int[y*x*3]; // 96 bit pixels
	for(int j = 0; j<y; ++j)
		for(int i = 0; i<x; ++i)
		{
			int z = 3*(j*x + i);
			a[z] = i; a[z+1] = j; a[z+2] = 128;
		}
		wr.setPixels(20, 20, x, y, a);
	}
	else
	{
		int[] a = new int[3];
		a[2] = 128;
		for(int j = 0; j<screenSizeY-40; ++j)
		{
			a[1] = j;
			for(int i = 0; i<screenSizeX-40; ++i)
			{
			a[0] = i;
			wr.setPixel(20+i, 20+j, a);
		}
	}
}
for(int q = 0; q < args.length; ++q)
        {
           int z = args[q].lastIndexOf('.');
           if (z > 0) try
           {
        	   ImageIO.write(
                I, args[q].substring(z+1),
                new File(args[q]));
           }
           catch (IOException e)
           {
            	  System.err.println("image not saved.");
           }

        }
 */

