
							//VBox root = new VBox();
							//root.getChildren().addAll(addressBar, goButton, stateLabel, progressBar, browser);
							//scene[0] = new Scene(stackPane[0]);
							//primaryStage.setScene(scene[0]);



							//primaryStage.setFullScreen(true);
							//primaryStage.show();

							//WritableImage origionalTextPicture = new WritableImage( dimension.width, dimension.height );
							//Image origionalBrowserImage = new Image("http://www.nanofirm.org/scimagorder.com/Pictures/Pixies%20Text.png");//browser.snapshot(sP, origionalTextPicture);//new Image("http://www.nanofirm.org/scimagorder.com/Pictures/Pixies%20Text.png");//
							//Image origionalBrowserImage = new Image("http://www.nanofirm.org/scimagorder.com/Pictures/Test.png");//browser.snapshot(sP, origionalTextPicture);//new Image("http://www.nanofirm.org/scimagorder.com/Pictures/Pixies%20Text.png");//
							//stackPane[0].getChildren().add(browser);

							//scene[0] = new Scene(stackPane[0]);
							//primaryStage.setScene(scene[0]);

							//primaryStage.setFullScreen(true);
							//primaryStage.show();
							//JUST THIS DISPLAYS BROWSER!!!!!






							//origionalTextPicture = scene[0].snapshot(null);

							//Image origionalBrowserImage = scene[0].snapshot(null);//browser.snapshot(sP, origionalTextPicture);
							//Image origionalBrowserImage = new Image("http://www.nanofirm.org/scimagorder.com/Pictures/FatLevels.png");
					
							///TEST
							origionalBrowserImage = browser.snapshot(sP, bufferPicure);//new Image("http://www.nanofirm.org/scimagorder.com/Pictures/Pixies%20Text.png");
							///TEST
					
							//stackPane[(int)(fRateDivisor * xSlider/fullAngle) + 1].getChildren().add(browser);
							
							PixelReader origionalpr = origionalBrowserImage.getPixelReader();
							origionalpr = stackPane[0].getScene().snapshot(bufferPicure).getPixelReader();
							PixelWriter origionalpw = bufferPicure.getPixelWriter();
							ImageView origionalImageView = new ImageView();
							origionalImageView.setImage(origionalBrowserImage);
							





							//scene[0].setRoot(browser);

							//stackPane[0].getChildren().add(origionalImageView);
							//stackPane[0].getChildren().add(browser);


							/*File tempFile;
				//WebDriver driver=new FirefoxDriver();

				// Maximize the window
				driver.manage().window().maximize();

				// Pass the url
				driver.get("http://www.pixies.zone/PixiesTest.html");

				// Take screenshot and store as a file format
				File src= ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
				try {// now copy the  screenshot to desired location using copyFile //method
					FileUtils.copyFile(src, new File("C:/TempImage.png"));
				}

				catch (IOException e)
				{
					System.out.println(e.getMessage());

				}// */


							WritableImage writableImage = origionalTextPicture;
							PixelReader pr = writableImage.getPixelReader();
							PixelWriter pw = writableImage.getPixelWriter();
							ImageView imageView = new ImageView();
							imageView.setImage(writableImage);

							ColorSlider black = new ColorSlider( new double[]{0,0,0} );

							ColorSlider color = black;

							ColorSlider white = new ColorSlider( new double[]{255,255,255} );
							ColorSlider skyblue = new ColorSlider( new double[]{134,206,249} );
							ColorSlider pink = new ColorSlider( new double[]{255,64,143} );
							ColorSlider blue = new ColorSlider( new double[]{0,0,192} );
							ColorSlider red = new ColorSlider( new double[]{193,0,0} );
							ColorSlider purple = new ColorSlider( new double[]{122,0,178} );
							ColorSlider orange = new ColorSlider( new double[]{255,134,0} );
							ColorSlider green = new ColorSlider( new double[]{0,133,50} );
							ColorSlider yellow = new ColorSlider( new double[]{246,252,15} );
							ColorSlider teal = new ColorSlider( new double[]{3,224,149} );
							ColorSlider bronze = new ColorSlider( new double[]{152,123,46} );
							ColorSlider silver = new ColorSlider( new double[]{193,192,192} );
							ColorSlider gold = new ColorSlider( new double[]{205,191,44} );
							ColorSlider lime = new ColorSlider( new double[]{126,193,33} );
							ColorSlider brown = new ColorSlider( new double[]{131,103,71} );

							int pixiePink = (int)(255 * 16777216) + (int)(255 * 65536) + (int)(0 * 256) + 255;

							int numberOfColorsInTheRainbow = 7;//asdf Always Worry About This!

							Dimension HalfedDim = new Dimension();
							HalfedDim.width = Math.round( ( Dim.width + 1 ) / 2 - 1 );
							HalfedDim.height = Math.round( ( Dim.height + 1 ) / 2 - 1 );
							int x = 0, y = 0, xMinusxSlider = 0, yMinusxSlider = 0, cxMx = 0, ySlider = 0, yMinusySlider = 0, cyMy = 0,  b = 0, xSliderFactor = 1, xSliderBackAndFourth = 1, fixedOfabcd = 4, numOfabcd = 4, colorIntervalDivisor = 1, aCounter = 0, bCounter = 0, cCounter = 0;//cxMx Corrected xMinusSlider for determining color
							double xSlider = 0, a = 0, colorInterval = Dim.width / ( numberOfColorsInTheRainbow - 1 ), numberOfClockHands = 16, abcd = 0, abc = 0, rCheck = 0, aAngle = 0, bAngle = 0, newx = 0, newy = 0, abc2 = 0, aIncrementAngle = 0, bIncrementAngle = 0, aTan = 0;
							boolean TrispectralRainbow = false;
							if (TrispectralRainbow == true)
								colorInterval = colorInterval / 3;//For Trispectral Rainbow.
							double colorDisplacement = 0;//For Rainbow Disk And 0 Rainbow Clock
							double radialDistance = Math.pow(Math.pow(HalfedDim.width + 1, 2) + Math.pow(HalfedDim.height + 1, 2), 0.5);
							double angle1 = 0, angle2 = 0, angle3 = 0, angle4 = 0, aAngleCheck = 0;
							double radius = 0;
							double fullAngle = Math.PI * radialDistance;
							double interval = fullAngle / fRateDivisor;//Last Division Determines The Frame Rate
							colorInterval = fullAngle / ( numberOfColorsInTheRainbow - 1 );//For Rainbow Clock And Spiral
							///double interval = radialDistance * 2 * Math.PI / 1444;//1444 Instead Of 14 Gets The Frame Rate To Have Contiguous Motion For Rainbow Clock
							//double fullAngle = 2 * Math.PI * radialDistance;//For Rainbow Clock
							//colorInterval = fullAngle / ( numberOfColorsInTheRainbow - 1 ) / numberOfClockHands;//For Rainbow Clock
							//for (xSlider = (int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHands / 2; xSlider < 1.5 * ( radialDistance * 2 * Math.PI / numberOfClockHands ); xSlider++)// < For Rainbow Clock, xSlider = (int)Math.round(colorDisplacement); For Rings -144 Use cy And < HalfedDim.height Instead of Dim.height For Circular Rainbow Use Dim.width < For Rainbow Slider And Fractal //Start At -144 For Videos And Pictures
							while ( xSlider < fullAngle )
							{//0.175979734764 * 
								//stackPane[(int)(fRateDivisor * (xSlider - interval)/fullAngle) + 1].getChildren().add(browser);
								//origionalpr = stackPane[(int)(fRateDivisor * (xSlider - interval)/fullAngle) + 1].getScene().snapshot(bufferPicure).getPixelReader();
								//Dim = f.getSize();//Dim = f.getContentPane().getSize();
								HalfedDim.width = Math.round( ( Dim.width + 1 ) / 2 - 1 );
								HalfedDim.height = Math.round( ( Dim.height + 1 ) / 2 - 1 );
								radialDistance = Math.pow(Math.pow(HalfedDim.width + 1, 2) + Math.pow(HalfedDim.height + 1, 2), 0.5);
								rCheck = HalfedDim.height / fixedOfabcd;
								numOfabcd = (int)Math.ceil(radialDistance / HalfedDim.height);
								//double[] angle = new double[numOfabcd], abcdefg = new double[numOfabcd];
								double angle = 0;
								colorDisplacement = 0;//For Rainbow Disk
								for (x = 0; x < Dim.width; x++)//Comment Out Here For Circular Rainbow
								{//Comment Out Here For Circular Rainbow
									for (y = 0; y < Dim.height; y++)
									{
										angle = Math.atan2( (x - HalfedDim.width + 1) , (y - Dim.height * 4 / 3 + 1 ) );// For Rising Sun + 1
										a = ( angle * /*Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 1)*/ Math.tan( angle ) /*+ Math.PI*/ )  * radialDistance / 4.46783504 + xSlider;// + Or - xSlider Determines Which Direction It Moves //For Infinite Number Theorem Good a = ( angle * /*Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 1)*/ Math.tan( angle ) + Math.PI )  * radialDistance / 4.46783504 - xSlider;  //a = ( angle /*Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 1)*/ Math.tan( angle ) + Math.PI )  * radialDistance / 4.46783504 - xSlider;//Use For Rainbow Spiral Multiply radialDistance By 10 To Increase The Number Of Spirals //Use This: "a = ( - angle + Math.PI ) * radialDistance;" Line For Rainbow Clock //a = ( - angle * Math.tan( angle ) + Math.PI ) * radialDistance - xSlider; For Infinite Number Theorem //a = ( - angle * Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 2) + Math.PI ) * radialDistance - xSlider; */
										radius = a * 10;
										// *///For Old Infinite Number Theorem Use Above
										//radius = a * 10;//For Rainbow Spiral And Clock
										//}
										while ( radius < colorDisplacement)//For Rainbow Ring
											radius = radius + fullAngle - colorDisplacement;//BAD COMMENT: For Rainbow Ring Take Out - 38
										while ( radius > fullAngle )//radius > fullAngle For Non Infinite Number Theorem
											radius = radius - fullAngle - colorDisplacement; //radius = radius - fullAngle; For Non Infinite Number Theorem //For Rainbow Clock Comment Out To Here. Here -- */
										if ( radius >= colorDisplacement && radius < (numberOfColorsInTheRainbow - 1) * colorInterval  + colorDisplacement)//For Purple Outside Ring
										{
											if ( origionalpr.getArgb(x, y) == pixiePink )
												if ( radius < colorInterval  + colorDisplacement)//For Normal Rainbow Use This Instead Of The Others
													color.ColorSliderFunction(colorInterval, radius - colorDisplacement, purple, blue);
												else if ( radius < ( 2 * colorInterval  + colorDisplacement) )
													color.ColorSliderFunction(colorInterval, radius - colorInterval - colorDisplacement, blue, teal);
												else if ( radius < ( 3 * colorInterval  + colorDisplacement) )		
													color.ColorSliderFunction(colorInterval, radius - 2 * colorInterval - colorDisplacement, teal, pink);
												else if ( radius < ( 4 * colorInterval  + colorDisplacement) )
													color.ColorSliderFunction(colorInterval, radius - 3 * colorInterval - colorDisplacement, pink, yellow);
												else if ( radius < ( 5 * colorInterval  + colorDisplacement) )
													color.ColorSliderFunction(colorInterval, radius - 4 * colorInterval - colorDisplacement, yellow, orange);
												else
													color.ColorSliderFunction(colorInterval, radius - 5 * colorInterval - colorDisplacement, orange, red);
											else//*/
												if ( radius < colorInterval  + colorDisplacement)//For Normal Rainbow Use This Instead Of The Others
													color.ColorSliderFunction(colorInterval, radius - colorDisplacement, red, orange);
												else if ( radius < ( 2 * colorInterval  + colorDisplacement) )
													color.ColorSliderFunction(colorInterval, radius - colorInterval - colorDisplacement, orange, yellow);
												else if ( radius < ( 3 * colorInterval  + colorDisplacement) )		
													color.ColorSliderFunction(colorInterval, radius - 2 * colorInterval - colorDisplacement, yellow, green);
												else if ( radius < ( 4 * colorInterval  + colorDisplacement) )
													color.ColorSliderFunction(colorInterval, radius - 3 * colorInterval - colorDisplacement, green, teal);
												else if ( radius < ( 5 * colorInterval  + colorDisplacement) )
													color.ColorSliderFunction(colorInterval, radius - 4 * colorInterval - colorDisplacement, teal, blue);
												else
													color.ColorSliderFunction(colorInterval, radius - 5 * colorInterval - colorDisplacement, blue, purple);//*
										}
										//Use To //*/ For Rainbow Clock
										/*double angle = ( Math.atan2( (x - HalfedDim.width + 1) , (y - HalfedDim.height + 1 ) ) + Math.PI ) * radialDistance + xSlider;
										if (angle < 0)
											angle = angle + fullAngle / numberOfClockHands;
										else
											while (angle > fullAngle / numberOfClockHands)
												angle = angle - fullAngle / numberOfClockHands;
										//angle = 0;//Testing Purposes Only.
										if ( angle < colorInterval)//For Normal Rainbow Use This Instead Of The Others
											color.ColorSliderFunction(colorInterval, angle, red, orange);
										else if ( angle < 2 * colorInterval )
											color.ColorSliderFunction(colorInterval, angle - colorInterval, orange, yellow);
										else if ( angle < 3 * colorInterval )		
											color.ColorSliderFunction(colorInterval, angle - 2 * colorInterval, yellow, green);
										else if ( angle < 4 * colorInterval )
											color.ColorSliderFunction(colorInterval, angle - 3 * colorInterval, green, teal);
										else if ( angle <  5 * colorInterval )
											color.ColorSliderFunction(colorInterval, angle - 4 * colorInterval, teal, blue);
										else
											color.ColorSliderFunction(colorInterval, angle - 5 * colorInterval, blue, purple);//*/
										//pw.setArgb(x, y, pixiePink);
										pw.setArgb( x, y, (int)(255 * 16777216 + (int)color.RGB[0] * 65536 + (int)color.RGB[1] * 256 + (int)color.RGB[2]));//setArgb
									}
								}
								imageView.setImage(writableImage);

								stackPane[(int)(fRateDivisor * xSlider/fullAngle) + 1] = new StackPane();
								System.out.println((int)(fRateDivisor * xSlider/fullAngle) + 1);
								//stackPane[(int)(fRateDivisor * xSlider/fullAngle) + 1].getChildren().add(browser);
								//stackPane[(int)(fRateDivisor * xSlider/fullAngle) + 1].getChildren().remove(0);
								stackPane[(int)(fRateDivisor * xSlider/fullAngle) + 1].getChildren().add(imageView);
								scene[(int)(fRateDivisor * xSlider/fullAngle) + 1] = new Scene(stackPane[(int)(fRateDivisor * xSlider/fullAngle) + 1]);
								//origionalBrowserImage = stackPane[(int)(fRateDivisor * xSlider/fullAngle) + 1].getScene().snapshot(bufferPicure);
								//primaryStage.setFullScreen(true);
								//primaryStage.show();
								
								

								primaryStage.setScene(scene[(int)(fRateDivisor * xSlider/fullAngle) + 1]);

								System.out.println(Dim);

								primaryStage.setFullScreen(true);

								primaryStage.show();

								if (xSlider == (int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHands / 2)
								{
									File outputFile = new File("C:/TestImage.png");
									BufferedImage bImage = SwingFXUtils.fromFXImage(scene[(int)(fRateDivisor * xSlider/fullAngle) + 1].snapshot(null), null);
									try {
										ImageIO.write(bImage, "png", outputFile);
									} catch (IOException e) {
										throw new RuntimeException(e);
									}
								}
								//enc.encodeImage( SwingFXUtils.fromFXImage(scene[(int)(fRateDivisor * xSlider/fullAngle) + 1].snapshot(null), null ) );
								//enc.encodeImage( SwingFXUtils.fromFXImage( imageView.getImage(), null ) );


								xSlider = xSlider + interval;
								System.out.println(Dim);
								//}
								//Thread.sleep(2000);}
								//catch (Exception ex) {ex.printStackTrace();}

							}
							//enc.finish();
							//encFinished = true;
						//}
					/*webEngine.getLoadWorker().stateProperty().addListener(
					        new ChangeListener<State>() {
					            public void changed(ObservableValue ov, State oldState, State newState) {
					                if (newState == State.SUCCEEDED) {
					                    primaryStage.setTitle(webEngine.getLocation());
					                }
					            }
					        });*/
					/*browser.getEngine().getLoadWorker().stateProperty().addListener(
							  (ObservableValue<? extends worker.State> observable,
							    worker.State oldValue,
							    worker.State newValue) -> {
							    if( newValue != worker.State.SUCCEEDED ) {
							      return;
							    }

							    // Your logic here
							  } );*/

					//if (worker.State.SUCCEEDED == true)
					//{


					//}
					/*scene.setOnKeyReleased(new EventHandler<KeyEvent>()
					{
						@Override
						public void handle(KeyEvent event)
						{
							if ( event.isAltDown() == true)
							{
								switch (event.getCode())
								{
									case ENTER: primaryStage.setFullScreen(!primaryStage.isFullScreen()); break;
								}
							}
						}
					});//*/
					//browser.snapshot(sP, origionalTextPicture);