package rainbowPackage;

//import javafx.scene.paint.Paint.*;
import javafx.scene.image.PixelReader;
//import rainbowPackage.VibrantColors;
//import rainbowPackage.VibrantColorCombos;
//import rainbowPackage.RainbowSoftColorCodesSets;
//import javafx.scene.image.PixelWriter;
import javafx.scene.paint.Color;
import java.awt.Dimension;

public final class RainbowSoft2D //RainbowSoft2D Houses A Series Of RainbowVideo.java Videos Or RainbowColorCodeSchemes.java For Frames

//FOR RainbowColorCodeSchemes.java! To Use RainbowSoftColorCodes And Access RainbowPattern2D.java Classes. This Class RainbowSoft2D Deals With Color Coding On 1 Layers To Make A Frame For RainbowVideo.java Which Accesses
{//This Class
	public double[] rgb = {0,0,0}, argb = {0,0,0,1};
	public Color fxColor = Color.BEIGE, tempColor = Color.OLIVE;//returnImmediatlyColor = fxColor.LAVENDER;
	public Color[] fxColorArray = { Color.PINK, Color.SKYBLUE };
	//public ArrayReverser arrayReverser = new ArrayReverser();
	public ColorArrayReverser colorArrayReverser = new ColorArrayReverser();
	//public ColorSlider tempColorSlider = new ColorSlider();
	public TransparencySlider transparencySlider = new TransparencySlider( VibrantColors.Black );
	public double colorBeingChecked = 0, opacityBeingChecked = 1;
	public ColorFader tempColorFader = new ColorFader();
	public ColorTooSimilar colorTooSimilarFunction = new ColorTooSimilar();
	//public RainbowSoftColorCodesSets rainbowSoftColorCodesSets = new RainbowSoftColorCodesSets();
	public double ColorBeingChecked = 0, OpacityBeingChecked = 1, sliderValue = 0, originalFormulaValue = 0, numberOfTransitions = 0, coreVariableStill = 0, coreTranisitionVariable = 0, eightColorDiamondsIndexStill = 0, eightColorDiamondsIndexMoving = 0, eightColorDiamondsIndex = 0;
	public RainbowSoftColor rainbowSoftColor = new RainbowSoftColor( new double[]{0,0,0,1} );
	public RainbowPattern2D pattern2D = new RainbowPattern2D( new double[]{0,0,0,1} );
	public DisplayType displayType = new DisplayType();
	public ColorDecide colorDecide = new ColorDecide();
	public Dimension halfedDim = new Dimension();
	public boolean someTargetColorInTheCenterHit = false, greenBlueGreenUsed = false;// wheelTipsHit = false, someTargetColorHit = true, greenBlueGreenUsed = false, otherBrowserColorHit = false, makePixelTransparent = false, aColorBarHit = false, aWheelDiamondHit = false;
	static final int maxIndexOfHorizontalColorBars = 17, maxIndexOfVerticalColorBars = 3;
	int colorBarIndex = 0, colorBarCheck = 0, colorBarDistance = 0;
	boolean returnImmediately = false, laterReversed = false, someTargetColorHit = true, browserHit = false; //reversalOfBackgroundEffectsSlave = true;

	public RainbowSoft2D( Color FXColor )//Creates Class And Sets Color With JavaFX Color Class //
	{
		fxColor = FXColor;
		rainbowSoftColor = new RainbowSoftColor( FXColor );
		rgb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255 };
		argb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255, FXColor.getOpacity() };
	}
	public RainbowSoft2D( double[] ARGB )//Creates Class And Sets Color With ARGB //
	{
		for  (int z = 0; z <= 2; z++)
		{
			rgb[z] = ColorValueFitter(ARGB[z]);
			argb[z] = ColorValueFitter(ARGB[z]);
		}
		if ( ARGB.length == 3 )
		{
			argb = new double[4];
			for  (int z = 0; z <= 2; z++)
				argb[z] = ColorValueFitter(rgb[z]);
			ARGB[3] = 1;
		}
		else
			argb[3] = OpacityValueFitter(ARGB[3]);
		rainbowSoftColor = new RainbowSoftColor( argb );
		fxColor = rainbowSoftColor.ToFXColor();
	}
	public RainbowSoft2D()//Creates Class And Sets Color To Opake Black //
	{
		rgb = new double[]{0,0,0};
		argb = new double[]{0,0,0,1};
		rainbowSoftColor = new RainbowSoftColor( rgb );
		fxColor = rainbowSoftColor.ToFXColor();
	}
	public Color ToFXColor()//Returns Color In JavaFX
	{
		fxColor = rainbowSoftColor.ToFXColor();
		//return VibrantColors.Red.ToFXColor();//TESTING ONLY
		return fxColor;
	}
	public Color ToFXColor( double[] ARGB )//Changes Class To ARGB Value And Returns Color In JavaFX //
	{
		for  (int z = 0; z <= 2; z++)
		{
			rgb[z] = ColorValueFitter(ARGB[z]);
			argb[z] = ColorValueFitter(ARGB[z]);
		}
		if ( ARGB.length == 3 )
		{
			argb = new double[4];
			for  (int z = 0; z <= 2; z++)
				argb[z] = ColorValueFitter(rgb[z]);
			ARGB[3] = 1;
		}
		else
			argb[3] = OpacityValueFitter(ARGB[3]);
		rainbowSoftColor = new RainbowSoftColor( argb );
		fxColor = rainbowSoftColor.ToFXColor();
		return fxColor;
	}

	public Color RainbowClock(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, int x, int y, double RepeatFactor, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, PixelReader BrowserPR, /*PixelWriter BrowserPW,*/ Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect )//Basic Example Of How Colors Change Then Go Through Final String Based Choice ReProcessing. Figure This Function Entirely Before Moving On If Analyzing RainbowSoft2D.
	{
		pattern2D.set( VibrantColors.HalfGrey );
		rainbowSoftColor.set( VibrantColors.HalfGrey );
		halfedDim.width = (int)Math.round( Dim.width / 2. );//Check Into If This Is Right
		halfedDim.height = (int)Math.round( Dim.height / 2. );//Check Into If This Is Right
		someTargetColorHit = true; browserHit = false;
		laterReversed = Reversed; //reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, VibrantColors.Black, VibrantColors.Black, BrowserPR.getColor( x, y ), laterReversed ) );//reversalOfBackgroundEffectsSlave ) );//DisplayTypeDeterminer ( TypeOfDisplay, VibrantColors.Black, VibrantColors.Black, BrowserPR.getColor( x, y ), displayType.laterReversed, reversalOfBackgroundEffectsSlave ) );   //DisplayTypeDeterminer ( TypeOfDisplay, VibrantColors.Black, BrowserPR.getColor( x, y ), laterReversed )
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.rgb;
		argb = rainbowSoftColor.argb;
		fxColor = rainbowSoftColor.ToFXColor();
		//browserHit = false;//UnComment For No Browser Fade In As Well As Use Just Below transparencySlider.
		if ( displayType.returnImmediately )
			//if ( browserHit )
			//{ //transparencySlider.set( new double[]{ 255. * BrowserPR.getColor( x, y ).getRed(), 255. * BrowserPR.getColor( x, y ).getGreen(), 255. * BrowserPR.getColor( x, y ).getBlue(), tempTransparencySlider.OpacityValueFitterCapper( 1.5 * LocationOfColorMovement / RepeatFactor ) } );//new double[]{ 255. * VibrantColors.Magenta.getRed(), 255. * VibrantColors.Magenta.getGreen(), 255. * VibrantColors.Magenta.getBlue(), 1. - LocationOfColorMovement / RepeatFactor }
			//return //transparencySlider.ToFXColor(); }
			//else
			return fxColor;
		if ( displayType.laterReversed != Reversed )
		{
			//transparencySlider.TransparencySliderFunction( RepeatFactor, LocationOfColorMovement, VibrantColors.Magenta, VibrantColors.ClearMagenta );
			//transparencySlider.set( VibrantColors.Magenta );
			/*if ( LocationOfColorMovement / RepeatFactor < 0.5)//UnComment Below To colorDecide.NextColorDecide To Get Text Fade In Back And Fourth
				transparencySlider.set( new double[]{ 255. * BrowserPR.getColor( x, y ).getRed(), 255. * BrowserPR.getColor( x, y ).getGreen(), 255. * BrowserPR.getColor( x, y ).getBlue(), tempTransparencySlider.OpacityValueFitterCapper ( 1 - 6 * LocationOfColorMovement / RepeatFactor ) } );//1. - LocationOfColorMovement / RepeatFactor } );//new double[]{ 255. * VibrantColors.Magenta.getRed(), 255. * VibrantColors.Magenta.getGreen(), 255. * VibrantColors.Magenta.getBlue(), 1. - LocationOfColorMovement / RepeatFactor }
			else
				transparencySlider.set( new double[]{ 255. * BrowserPR.getColor( x, y ).getRed(), 255. * BrowserPR.getColor( x, y ).getGreen(), 255. * BrowserPR.getColor( x, y ).getBlue(), tempTransparencySlider.OpacityValueFitterCapper ( 2 * LocationOfColorMovement / RepeatFactor - 1 ) } );
			BrowserPW.setColor( x, y, transparencySlider.ToFXColor() );// */
			pattern2D.RainbowClockVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, RepeatFactor, VibrantColorCombos.RainbowFXcolorsWPinkCenter, false );//Simple Double Slider 1 Rotation Rainbow Clock
			//System.out.println( "arrayReverser.Length(): " + arrayReverser.Length() );
			//tempTransparencySlider.CombineColors( pattern2D.ToFXColor(), transparencySlider.ToFXColor() );
			return colorDecide.NextColorDecide ( VibrantColors.Black, VibrantColors.Black, pattern2D.ToFXColor(), BrowserPR.getColor( x, y ) /*tempTransparencySlider.ToFXColor()*/, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else
		{
			//System.out.println( "laterReversed != Reversed: " + ( laterReversed != Reversed ) );
			pattern2D.RainbowClockVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement,  x - halfedDim.width, y - halfedDim.height, RepeatFactor, VibrantColorCombos.RainbowFXcolorsReverseNoPink, displayType.laterReversed );//Simple Double Slider 1 Rotation Rainbow Clock Reversed
			return colorDecide.NextColorDecide ( VibrantColors.Black, VibrantColors.Black, pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
	}

	public Color Buddhism(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double SliderInterval, double FullSliderRunThrough, int x, int y, double RepeatFactor, double LengthOfColorBar, double SpiralFactor, double NumberOfSpirals, double SuckInExponentialness, double SuckInDivisor, double HalfSreenDiagionalLength, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, PixelReader BasisPR, PixelReader BackgroundBasisPR, PixelReader BrowserPR, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect )
	{//SliderInterval May Not Be Needed
		pattern2D.set( VibrantColors.HalfGrey );
		rainbowSoftColor.set( VibrantColors.HalfGrey );
		halfedDim.width = (int)Math.round( Dim.width / 2. );//Check Into If This Is Right
		halfedDim.height = (int)Math.round( Dim.height / 2. );//Check Into If This Is Right
		//double radialDistance = Math.pow(Math.pow(halfedDim.width + 1, 2) + Math.pow(halfedDim.height + 1, 2), 0.5);//, rainbowIntervalVariable = 0;
		//double fullAngle = Math.PI * radialDistance;
		//double colorDisplacement = 0;
		//double chrysanthemumRadius = 60;
		//double radialVariableDistance = 0;//Comment Out For  Ghetto Many Rainbow Clocks
		//double angleVariableStill = 0;//Use For Rainbow Spiral Multiply radialDistance By 10 To Increase The Number Of Spirals
		//double radiusVariableStill = 0;//radialVariableDistance + colorDisplacement + angle;//Remove + angle And Add xSlider To Make Rainbow Clock
		//double angleVariableTransitioning = 0;//Use For Rainbow Spiral Multiply radialDistance By 10 To Increase The Number Of Spirals
		//double radiusVariableTransitioning = 0;//radialVariableDistance + colorDisplacement + angle;//Remove + angle And Add xSlider To Make Rainbow Clock
		int outerRingThickness = 72 * Dim.height / 1080; int middleRingThickness = 20 * Dim.height / 1080; int innerRingThickness = 18 * Dim.height / 1080;// int outerRingRadius = 293; int middleRingRadius = 88; int innerRingRadius = 66;


		//boolean someTargetColorInTheCenterHit = false, wheelTipsHit = false;//greenBlueGreenUsed = false, otherBrowserColorHit = false,	makePixelTransparent = false, aWheelDiamondHit = false;
		//aColorBarHit = false;
		//System.out.println("x: " + x + " y: " + y + " BasisPR.getColor( x, y ): " + BasisPR.getColor( x, y ) );
		//int transparentNum = 0;

		Color BrowserPRcolor = BrowserPR.getColor( x, y );

		someTargetColorHit = true; //browserHit = false;
		laterReversed = Reversed; //reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, BasisPR.getColor( x, y ), BackgroundBasisPR.getColor( x, y ), BrowserPRcolor, Reversed ) );//, reversalOfBackgroundEffectsSlave ) );
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.rgb;
		argb = rainbowSoftColor.argb;
		fxColor = rainbowSoftColor.ToFXColor();
		if ( displayType.returnImmediately )
			return fxColor;

		//System.out.println("Got To Buddhism Basis Pixel If-Tree. x: " + x + " y: " + y + " fxColor: " + fxColor );
		//System.out.println("x: " + x + " y: " + y);
		for ( colorBarIndex = 0; colorBarIndex <= maxIndexOfHorizontalColorBars; colorBarIndex++)
		{
			//System.out.println("x: " + x + " y: " + y + " BasisPR.getColor( x, y ): " + BasisPR.getColor( x, y ) + " Color: " + RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(colorBarIndex) );
			//tempTransparencySlider = RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(colorBarIndex);
			//System.out.println("x: " + x + " y: " + y + " BasisPR.getColor( x, y ): " + BasisPR.getColor( x, y ));
			//System.out.println("colorBarIndex: " + colorBarIndex);
			//System.out.println("RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(colorBarIndex): " + RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(colorBarIndex) );
			//System.out.println("RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(colorBarIndex).ToARGBcolorNum(): " + RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(colorBarIndex).ToARGBcolorNum());
			//System.out.println( fxColor == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(colorBarIndex) );
			if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(colorBarIndex).getOpacity() && 
					fxColor.getRed() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(colorBarIndex).getRed() &&
					fxColor.getGreen() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(colorBarIndex).getGreen() &&
					fxColor.getBlue() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(colorBarIndex).getBlue() )//Left Side Bars
			{
				//System.out.println("x: " + x + " y: " + y + " fxColor: " + fxColor + " Color: " + RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(colorBarIndex) );
				colorBarDistance = 0;
				for ( colorBarCheck = x; colorBarCheck >= 0; colorBarCheck--)
				{
					if ( BackgroundBasisPR.getColor( colorBarCheck, y ).getOpacity() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(colorBarIndex).getOpacity() &&
							BackgroundBasisPR.getColor( colorBarCheck, y ).getRed() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(colorBarIndex).getRed() &&
							BackgroundBasisPR.getColor( colorBarCheck, y ).getGreen() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(colorBarIndex).getGreen() &&
							BackgroundBasisPR.getColor( colorBarCheck, y ).getBlue() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(colorBarIndex).getBlue() )
						colorBarDistance++;
					else
						break;
				}
				if ( colorBarIndex == 17 )
					colorBarDistance = colorBarDistance + 8 * Dim.width / 1920;//For Cool Flippy Single Bar Color Changing Effect Square LengthOfColorBar
				if ( !displayType.laterReversed )
					pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, - LengthOfColorBar * coreVariableStill / FullSliderRunThrough, - LengthOfColorBar * coreTranisitionVariable / FullSliderRunThrough, colorBarDistance, LengthOfColorBar * RepeatFactor / ColorsFactor, BrightnessMultiplyer, Gradations, VibrantColorCombos.RainbowFXcolorsWPinkCenter, OpacityBefore, OpacityAfter, Adjusted );

				else 
					pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, - LengthOfColorBar * coreVariableStill / FullSliderRunThrough, - LengthOfColorBar * coreTranisitionVariable / FullSliderRunThrough, colorBarDistance, LengthOfColorBar * RepeatFactor / ColorsFactor, BrightnessMultiplyer, Gradations, VibrantColorCombos.RainbowFXcolorsReverseNoPink, OpacityBefore, OpacityAfter, Adjusted );
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				//rainbowSoftColor = new RainbowSoftColor(  VibrantColors.Red );//TESTING ONLY
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackRed(colorBarIndex).getOpacity() && 
					fxColor.getRed() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackRed(colorBarIndex).getRed() &&
					fxColor.getGreen() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackRed(colorBarIndex).getGreen() &&
					fxColor.getBlue() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackRed(colorBarIndex).getBlue() )//Right Side Bars
			{
				colorBarDistance = 0;
				for ( colorBarCheck = x; colorBarCheck <= Dim.width; colorBarCheck++)
				{
					if ( BackgroundBasisPR.getColor( colorBarCheck, y ).getOpacity() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackRed(colorBarIndex).getOpacity() && 
							BackgroundBasisPR.getColor( colorBarCheck, y ).getRed() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackRed(colorBarIndex).getRed() &&
							BackgroundBasisPR.getColor( colorBarCheck, y ).getGreen() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackRed(colorBarIndex).getGreen() &&
							BackgroundBasisPR.getColor( colorBarCheck, y ).getBlue() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackRed(colorBarIndex).getBlue() )
						colorBarDistance++;
					else
						break;
				}
				if ( colorBarIndex == 17 )
					colorBarDistance = colorBarDistance + 8 * Dim.width / 1920;
				if ( !displayType.laterReversed )
					pattern2D.SimpleRainbow( LengthOfColorBar * ColorsFactor / RepeatFactor, LengthOfColorBar * coreVariableStill / FullSliderRunThrough, LengthOfColorBar * coreTranisitionVariable / FullSliderRunThrough, colorBarDistance, LengthOfColorBar * RepeatFactor / ColorsFactor, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.SimpleRainbowReverse( LengthOfColorBar * ColorsFactor / RepeatFactor, LengthOfColorBar * coreVariableStill / FullSliderRunThrough, LengthOfColorBar * coreTranisitionVariable / FullSliderRunThrough, colorBarDistance, LengthOfColorBar * RepeatFactor / ColorsFactor, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}
		//System.out.println("Got Past blackRed");
		for ( colorBarIndex = 0; colorBarIndex <= maxIndexOfVerticalColorBars; colorBarIndex++)
		{
			if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackGreen(colorBarIndex).getOpacity() && 
					fxColor.getRed() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackGreen(colorBarIndex).getRed() &&
					fxColor.getGreen() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackGreen(colorBarIndex).getGreen() &&
					fxColor.getBlue() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackGreen(colorBarIndex).getBlue() )//Top Side Bars
			{
				colorBarDistance = 0;
				for ( colorBarCheck = y; colorBarCheck >= 0; colorBarCheck--)
				{
					if ( BackgroundBasisPR.getColor( x, colorBarCheck ).getOpacity() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackGreen(colorBarIndex).getOpacity() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getRed() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackGreen(colorBarIndex).getRed() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getGreen() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackGreen(colorBarIndex).getGreen() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getBlue() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackGreen(colorBarIndex).getBlue() )
						colorBarDistance++;
					else
						break;
				}
				if ( !displayType.laterReversed )
					pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, - LengthOfColorBar * coreVariableStill / FullSliderRunThrough, LengthOfColorBar * coreTranisitionVariable / FullSliderRunThrough, colorBarDistance, LengthOfColorBar * RepeatFactor / ColorsFactor, BrightnessMultiplyer, Gradations, VibrantColorCombos.RainbowFXcolorsWPinkCenter, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, - LengthOfColorBar * coreVariableStill / FullSliderRunThrough, LengthOfColorBar * coreTranisitionVariable / FullSliderRunThrough, colorBarDistance, LengthOfColorBar * RepeatFactor / ColorsFactor, BrightnessMultiplyer, Gradations, VibrantColorCombos.RainbowFXcolorsReverseNoPink, OpacityBefore, OpacityAfter, Adjusted );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackPurple(colorBarIndex).getOpacity() && 
					fxColor.getRed() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackPurple(colorBarIndex).getRed() &&
					fxColor.getGreen() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackPurple(colorBarIndex).getGreen() &&
					fxColor.getBlue() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackPurple(colorBarIndex).getBlue() )//Bottom Bars

			{
				colorBarDistance = 0;
				for ( colorBarCheck = y; colorBarCheck <= Dim.height; colorBarCheck++)
				{
					if ( BackgroundBasisPR.getColor( x, colorBarCheck ).getOpacity() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackPurple(colorBarIndex).getOpacity() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getRed() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackPurple(colorBarIndex).getRed() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getGreen() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackPurple(colorBarIndex).getGreen() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getBlue() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackPurple(colorBarIndex).getBlue() )
						colorBarDistance++;
					else
						break;
				}
				if ( !displayType.laterReversed )
					pattern2D.SimpleRainbow( LengthOfColorBar * ColorsFactor / RepeatFactor, LengthOfColorBar * coreVariableStill / FullSliderRunThrough, LengthOfColorBar * coreTranisitionVariable / FullSliderRunThrough, colorBarDistance, LengthOfColorBar * RepeatFactor / ColorsFactor, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.SimpleRainbowReverse( LengthOfColorBar * ColorsFactor / RepeatFactor, LengthOfColorBar * coreVariableStill / FullSliderRunThrough, LengthOfColorBar * coreTranisitionVariable / FullSliderRunThrough, colorBarDistance, LengthOfColorBar * RepeatFactor / ColorsFactor, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}
		//System.out.println("Got Pale");
		if ( fxColor.getOpacity() == VibrantColors.OxylBlue.getOpacity() &&
				fxColor.getRed() == VibrantColors.OxylBlue.getRed() &&
				fxColor.getGreen() == VibrantColors.OxylBlue.getGreen() &&
				fxColor.getBlue() == VibrantColors.OxylBlue.getBlue() )
		{
			pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 2 * RepeatFactor ), Math.PI * coreVariableStill / 2 - Math.PI / 2, Math.PI * coreTranisitionVariable / 2 - Math.PI / 2, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 2 * ColorsFactor ), displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelRods().getOpacity() && 
				fxColor.getRed() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelRods().getRed() &&
				fxColor.getGreen() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelRods().getGreen() &&
				fxColor.getBlue() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelRods().getBlue() )
		{
			pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 8 * RepeatFactor ), Math.PI * coreVariableStill / 4 - Math.PI / 4, Math.PI * coreTranisitionVariable / 4 - Math.PI / 4, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 8 * ColorsFactor ), displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			//CHECK FOR FIX FROM FwaFlagLogoSplash
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelDiamonds().getOpacity() && 
				fxColor.getRed() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelDiamonds().getRed() &&
				fxColor.getGreen() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelDiamonds().getGreen() &&
				fxColor.getBlue() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelDiamonds().getBlue() )
		{
			if ( ( y - halfedDim.height ) < - halfedDim.height / 10)
			{
				if ( ( x - halfedDim.width ) < halfedDim.height / 10 && ( x - halfedDim.width ) > - halfedDim.height / 10 ) 
					eightColorDiamondsIndexStill = 1;
				else if ( ( x - halfedDim.width ) + ( y - halfedDim.height ) < halfedDim.height / 10 && ( x - halfedDim.width ) + ( y - halfedDim.height ) > - halfedDim.height / 10 )
					eightColorDiamondsIndexStill = 2;
				else if ( ( x - halfedDim.width ) - ( y - halfedDim.height ) < halfedDim.height / 10 && ( x - halfedDim.width ) - ( y - halfedDim.height ) > - halfedDim.height / 10 )
					eightColorDiamondsIndexStill = 8;
			}
			else if ( ( y - halfedDim.height ) > halfedDim.height / 10)
			{
				if ( ( x - halfedDim.width ) < halfedDim.height / 10 && ( x - halfedDim.width ) > - halfedDim.height / 10)
					eightColorDiamondsIndexStill = 5;
				else
					if ( ( x - halfedDim.width ) - ( y - halfedDim.height ) < halfedDim.height / 10 && ( x - halfedDim.width ) - ( y - halfedDim.height ) > - halfedDim.height / 10 )	
						eightColorDiamondsIndexStill = 4;
					else
						if ( ( x - halfedDim.width ) + ( y - halfedDim.height ) < halfedDim.height / 10 && ( x - halfedDim.width ) + ( y - halfedDim.height ) > - halfedDim.height / 10 )
							eightColorDiamondsIndexStill = 6;
			}
			else
				if ( x - halfedDim.width > 0 )
					eightColorDiamondsIndexStill = 3;
				else
					if ( x - halfedDim.width < 0 )
						eightColorDiamondsIndexStill = 7;
			eightColorDiamondsIndexMoving = eightColorDiamondsIndexStill;
			eightColorDiamondsIndexStill = eightColorDiamondsIndexStill - 8 * LocationOfStillMovement / FullSliderRunThrough;
			eightColorDiamondsIndexMoving = eightColorDiamondsIndexMoving - 8 * LocationOfColorMovement / FullSliderRunThrough;
			while ( eightColorDiamondsIndexStill < 0 )
				eightColorDiamondsIndexStill = eightColorDiamondsIndexStill + 8;
			while ( eightColorDiamondsIndexStill > 8 )
				eightColorDiamondsIndexStill = eightColorDiamondsIndexStill - 8;
			while ( eightColorDiamondsIndexMoving < 0 )
				eightColorDiamondsIndexMoving = eightColorDiamondsIndexMoving + 8;
			while ( eightColorDiamondsIndexMoving > 8 )
				eightColorDiamondsIndexMoving = eightColorDiamondsIndexMoving - 8;
			eightColorDiamondsIndex = ( eightColorDiamondsIndexStill + eightColorDiamondsIndexMoving ) / 2;//CHECK ME MAY BE - Instead Of +
			while ( eightColorDiamondsIndex < 0 )
				eightColorDiamondsIndex = eightColorDiamondsIndex + 8;
			while ( eightColorDiamondsIndex >= 8 )
				eightColorDiamondsIndex = eightColorDiamondsIndex - 8;
			eightColorDiamondsIndex = (int)Math.floor( eightColorDiamondsIndex );
			if ( BrowserPRcolor.getOpacity() == VibrantColors.Magenta.getOpacity() && 
					BrowserPRcolor.getRed() == VibrantColors.Magenta.getRed() && 
					BrowserPRcolor.getGreen() == VibrantColors.Magenta.getGreen() && 
					BrowserPRcolor.getBlue() == VibrantColors.Magenta.getBlue() )//shitBrownNum )
			{
				rainbowSoftColor = new RainbowSoftColor( RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelDiamondsArray( (int)( 7 - eightColorDiamondsIndex ) ) );
				/*rgb = rainbowSoftColor.rgb;
				argb = rainbowSoftColor.argb;
				fxColor = rainbowSoftColor.ToFXColor();// */
				pattern2D.set( rainbowSoftColor.ToFXColor() );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				//pw.setArgb( x, y, magentaNum );
			}
			else
			{
				rainbowSoftColor = new RainbowSoftColor( RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelDiamondsArray( (int)( eightColorDiamondsIndex ) ) );
				/*rgb = rainbowSoftColor.rgb;
				argb = rainbowSoftColor.argb;
				fxColor = rainbowSoftColor.ToFXColor();
				return fxColor;// */
				pattern2D.set( rainbowSoftColor.ToFXColor() );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				//pw.setArgb( x, y, wheelDiamondsArrayNum[eightColorDiamondsIndex] );
			}
		}
		else if ( fxColor.getOpacity() == VibrantColors.NeonGreen.getOpacity() && 
				fxColor.getRed() == VibrantColors.NeonGreen.getRed() &&
				fxColor.getGreen() == VibrantColors.NeonGreen.getGreen() &&
				fxColor.getBlue() == VibrantColors.NeonGreen.getBlue() )
		{
			if ( !displayType.laterReversed )
				rainbowSoftColor = new RainbowSoftColor( VibrantColors.OxylBlue );
			else
				rainbowSoftColor = new RainbowSoftColor( VibrantColors.NeonGreen );
			/*rgb = rainbowSoftColor.rgb;
			argb = rainbowSoftColor.argb;
			fxColor = rainbowSoftColor.ToFXColor();
			return fxColor;// */
			pattern2D.set( rainbowSoftColor.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelEnds().getOpacity() && 
				fxColor.getRed() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelEnds().getRed() &&
				fxColor.getGreen() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelEnds().getGreen() &&
				fxColor.getBlue() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelEnds().getBlue() )
		{
			//wheelTipsHit = true;
			if ( ( coreVariableStill + coreTranisitionVariable ) / 2 <= FullSliderRunThrough - 8.468 * SliderInterval )//CHECK ME FOR WORKING PROPERLY MAY NEED '-'
			{
				/*if ( BrowserPRcolor.getOpacity() == VibrantColors.Magenta.getOpacity() && 
						BrowserPRcolor.getRed() == VibrantColors.Magenta.getRed() && 
						BrowserPRcolor.getGreen() == VibrantColors.Magenta.getGreen() && 
						BrowserPRcolor.getBlue() == VibrantColors.Magenta.getBlue() )//shitBrownNum )// */
				if ( !displayType.laterReversed )
					rainbowSoftColor = new RainbowSoftColor( VibrantColors.Red );
				else
					rainbowSoftColor = new RainbowSoftColor( VibrantColors.Green );
				/*//rgb = rainbowSoftColor.rgb;
				//argb = rainbowSoftColor.argb;
				fxColor = rainbowSoftColor.ToFXColor();
				return fxColor;// */
				pattern2D.set( rainbowSoftColor.ToFXColor() );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else
			{
				/*if ( BrowserPRcolor.getOpacity() == VibrantColors.Magenta.getOpacity() && 
						BrowserPRcolor.getRed() == VibrantColors.Magenta.getRed() && 
						BrowserPRcolor.getGreen() == VibrantColors.Magenta.getGreen() && 
						BrowserPRcolor.getBlue() == VibrantColors.Magenta.getBlue() )//shitBrownNum )// */
				if ( !displayType.laterReversed )
					rainbowSoftColor = new RainbowSoftColor( VibrantColors.Green );
				else
					rainbowSoftColor = new RainbowSoftColor( VibrantColors.Red );
				/*rgb = rainbowSoftColor.rgb;
				argb = rainbowSoftColor.argb;
				fxColor = rainbowSoftColor.ToFXColor();
				return fxColor;// */
				pattern2D.set( rainbowSoftColor.ToFXColor() );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}
		else if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelOuterRing().getOpacity() && 
				fxColor.getRed() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelOuterRing().getRed() &&
				fxColor.getGreen() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelOuterRing().getGreen() &&
				fxColor.getBlue() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelOuterRing().getBlue() )
		{
			//pattern2D.RainbowDiskGradated( outerRingThickness * ColorsFactor / RepeatFactor, outerRingThickness * coreVariableStill / FullSliderRunThrough, outerRingThickness * coreTranisitionVariable / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, outerRingThickness, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			pattern2D.RainbowDiskGradated( outerRingThickness * ColorsFactor / RepeatFactor, outerRingThickness * coreVariableStill / FullSliderRunThrough, outerRingThickness * coreTranisitionVariable / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, outerRingThickness, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelMiddleRing().getOpacity() &&
				fxColor.getRed() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelMiddleRing().getRed() &&
				fxColor.getGreen() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelMiddleRing().getGreen() &&
				fxColor.getBlue() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelMiddleRing().getBlue() )
		{
			pattern2D.RainbowDiskGradated( middleRingThickness * ColorsFactor / RepeatFactor, middleRingThickness * coreVariableStill / FullSliderRunThrough, middleRingThickness * coreTranisitionVariable / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, middleRingThickness, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );

		}
		else if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelInnerRing().getOpacity() && 
				fxColor.getRed() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelInnerRing().getRed() &&
				fxColor.getGreen() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelInnerRing().getGreen() &&
				fxColor.getBlue() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelInnerRing().getBlue() )
		{
			pattern2D.RainbowDiskGradated( innerRingThickness * ColorsFactor / RepeatFactor, innerRingThickness * coreVariableStill / FullSliderRunThrough, innerRingThickness * coreTranisitionVariable / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, innerRingThickness, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );

		}
		else if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelTips().getOpacity() && 
				fxColor.getRed() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelTips().getRed() &&
				fxColor.getGreen() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelTips().getGreen() &&
				fxColor.getBlue() == RainbowSoftColorCodesSets.BuddhismSchemeSet.wheelTips().getBlue() )
		{
			//pattern2D.RainbowClockGradated( ColorsFactor / RepeatFactor, - coreVariableStill, - coreTranisitionVariable, x - halfedDim.width, y - halfedDim.height, RepeatFactor, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			//return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 8 * RepeatFactor ), - Math.PI * coreVariableStill / 4 - Math.PI / 4, - Math.PI * coreTranisitionVariable / 4 - Math.PI / 4, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 8 * ColorsFactor ), displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			//CHECK FOR FIX FROM FwaFlagLogoSplash
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );

		}
		else
			if ( Math.pow(Math.pow(x - halfedDim.width, 2) + Math.pow( y  - halfedDim.height + 1, 2), 0.5) <= 47 * Dim.height / 1080 )
			{
				pattern2D.RainbowSpiralGradated(HalfSreenDiagionalLength * ColorsFactor / RepeatFactor, HalfSreenDiagionalLength * LocationOfStillMovement / FullSliderRunThrough, HalfSreenDiagionalLength * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, HalfSreenDiagionalLength * RepeatFactor / ColorsFactor, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				//pattern2D.SimpleRainbowReverse( LengthOfColorBar * ColorsFactor / RepeatFactor, coreVariableStill, coreTranisitionVariable, colorBarDistance, LengthOfColorBar * RepeatFactor / ColorsFactor, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		//else
		//	someTargetColorInTheCenterHit = false;
		//End Of Basis Image Switch System
		/*if (otherBrowserColorHit == true)
			return ( BrowserPRcolor );
		else
			if (makePixelTransparent == true)
				return ( fxColor.TRANSPARENT );*/
		//if ( aWheelDiamondHit == true )	
		//else if ( wheelTipsHit == true)
		//else
		//{
		someTargetColorHit = false;
		if ( displayType.laterReversed != Reversed )
		{
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			/*
					// tempColor = fxColor;
					fxColor = colorDecide.NextColorDecide ( fxColor, pattern2D.ToFXColor(), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
					if ( ! ( fxColor.getOpacity() == InitialColorContrastingChoice.getOpacity() &&
							fxColor.getRed() == InitialColorContrastingChoice.getRed() &&
							fxColor.getGreen() == InitialColorContrastingChoice.getGreen() &&
							fxColor.getBlue() == InitialColorContrastingChoice.getBlue() )
							&& ! ( fxColor.getOpacity() == ColorTooSimilarReplacementColor.getOpacity() &&
							fxColor.getRed() == ColorTooSimilarReplacementColor.getRed() &&
							fxColor.getGreen() == ColorTooSimilarReplacementColor.getGreen() &&
							fxColor.getBlue() == ColorTooSimilarReplacementColor.getBlue() )
							&& InvertBasisFromBackground )
						{
							fxColor = fxColor.invert();
							rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
							rgb = rainbowSoftColor.rgb;
							argb = rainbowSoftColor.argb;
							fxColor = rainbowSoftColor.ToFXColor();
							return fxColor;
						}
						else
							if ( !rainbowSoftColor.ColorTooSimilarFunction( InitialColorContrastingChoice, fxColor, ColorDifference ) )//BrowserPR.getColor( x, y ) , 
							{
								rainbowSoftColor = new RainbowSoftColor( InitialColorContrastingChoice );
								rgb = rainbowSoftColor.rgb;
								argb = rainbowSoftColor.argb;
								fxColor = rainbowSoftColor.ToFXColor();
								return fxColor;
							}
							else
							{
								rainbowSoftColor = new RainbowSoftColor( ColorTooSimilarReplacementColor );
								rgb = rainbowSoftColor.rgb;
								argb = rainbowSoftColor.argb;
								fxColor = rainbowSoftColor.ToFXColor();
								return fxColor;
							}// */
			//rainbowSoftColor.set(fxColor);
			//rgb = rainbowSoftColor.rgb;
			//argb = rainbowSoftColor.argb;
			//fxColor = rainbowSoftColor.ToFXColor();
			//return fxColor;
		}
		else if ( !someTargetColorHit )
		{
			/*rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * BasisPR.getColor( x, y ).getRed(), 255 * BasisPR.getColor( x, y ).getGreen(), 255 * BasisPR.getColor( x, y ).getBlue(), BasisPR.getColor( x, y ).getOpacity() } );
			rgb = rainbowSoftColor.rgb;
			argb = rainbowSoftColor.argb;
			fxColor = rainbowSoftColor.ToFXColor();// */
			//return fxColor;// */
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), rainbowSoftColor.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		//}
		//System.out.println("Got Past Buddhism Basis Pixel If-Tree");
		///pattern2D.SimpleRainbow(ColorsFactor / SliderInterval, coreVariable, coreTranisitionVariable, LengthOfColorBar, RepeatFactor / SliderInterval);
		rainbowSoftColor.set( VibrantColors.Maroon );// = new RainbowSoftColor( new double[] { 255 * BasisPR.getColor( x, y ).getRed(), 255 * BasisPR.getColor( x, y ).getGreen(), 255 * BasisPR.getColor( x, y ).getBlue(), BasisPR.getColor( x, y ).getOpacity() } );
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.rgb;
		argb = rainbowSoftColor.argb;
		fxColor = rainbowSoftColor.ToFXColor();// */
		return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), rainbowSoftColor.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
	}


	public Color MagiElite(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double SpiralFactor, double ShrunkenFactor, double NumberOfSpirals, double HalfSreenDiagionalLength, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, PixelReader BasisPR, PixelReader BackgroundBasisPR, PixelReader BrowserPR, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect )
	{
		pattern2D.set( VibrantColors.HalfGrey );
		rainbowSoftColor.set( VibrantColors.HalfGrey );
		final double chrysanthemumRadius = 0.055555555555555 * Dim.height, chrysanthemumInnerRadius = 0.0083333333333333 * Dim.height, chrysanthemumYDisplacement = 0.0231481481481481 * Dim.height;//, chrysanthemumNumberOfPedals = 16;

		//boolean someTargetColorInTheCenterHit = false, greenBlueGreenUsed = false;
		halfedDim.width = (int)Math.round( Dim.width / 2. );//Check Into If This Is Right
		halfedDim.height = (int)Math.round( Dim.height / 2. );//Check Into If This Is Right

		someTargetColorHit = true; //browserHit = false;
		laterReversed = Reversed; //reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, BasisPR.getColor( x, y ), BackgroundBasisPR.getColor( x, y ), BrowserPR.getColor( x, y ), laterReversed ) );//, reversalOfBackgroundEffectsSlave ) );
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.rgb;
		argb = rainbowSoftColor.argb;
		fxColor = rainbowSoftColor.ToFXColor();
		if ( displayType.returnImmediately )
			return fxColor;

		if ( Math.pow( Math.pow( x - halfedDim.width, 2) + Math.pow( y  - halfedDim.height + chrysanthemumYDisplacement, 2), 0.5 ) <= chrysanthemumRadius )
		{//902 //1019
			someTargetColorInTheCenterHit = true;
			if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.black6().getOpacity() &&
					fxColor.getRed() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.black6().getRed() &&
					fxColor.getGreen() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.black6().getGreen() &&
					fxColor.getBlue() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.black6().getBlue() )
			{
				pattern2D.RainbowDiskGradated(0.175979734764 * chrysanthemumRadius * ColorsFactor / RepeatFactor, 0.175979734764 * chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, 0.175979734764 * chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough,  x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, 0.175979734764 * chrysanthemumRadius, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );//Figure Out What To Use Instead Of ColorsFactor
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white1().getOpacity() &&
					fxColor.getRed() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white1().getRed() &&
					fxColor.getGreen() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white1().getGreen() &&
					fxColor.getBlue() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white1().getBlue() )
			{
				pattern2D.RainbowSpiralGradated( ( 2 * chrysanthemumRadius ) * ColorsFactor / RepeatFactor, ( 2 * chrysanthemumRadius ) * LocationOfStillMovement / FullSliderRunThrough, ( 2 * chrysanthemumRadius ) * LocationOfColorMovement / FullSliderRunThrough, ( x - halfedDim.width ) / 3., ( y - halfedDim.height + chrysanthemumYDisplacement ) / 3., 2 * chrysanthemumRadius, SpiralFactor, NumberOfSpirals, 2 * chrysanthemumRadius, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white2().getOpacity() &&
					fxColor.getRed() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white2().getRed() &&
					fxColor.getGreen() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white2().getGreen() &&
					fxColor.getBlue() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white2().getBlue() )
			{
				if ( !displayType.laterReversed )
					pattern2D.SimpleRainbow( ( 2 * chrysanthemumRadius ) * ColorsFactor / RepeatFactor, - 2 * chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, - 2 * chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - 0.469791666666666 * Dim.width, 2 * chrysanthemumRadius, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.SimpleRainbowReverse( ( 2 * chrysanthemumRadius ) * ColorsFactor / RepeatFactor, - 2 * chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, - 2 * chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - 0.469791666666666 * Dim.width, 2 * chrysanthemumRadius, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white3().getOpacity() &&
					fxColor.getRed() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white3().getRed() &&
					fxColor.getGreen() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white3().getGreen() &&
					fxColor.getBlue() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white3().getBlue() )
			{
				pattern2D.RainbowCheapFractalGradated( ( 2 * chrysanthemumRadius ) * ColorsFactor / RepeatFactor, ( 2 * chrysanthemumRadius ) * LocationOfStillMovement / FullSliderRunThrough, ( 2 * chrysanthemumRadius ) * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, 2 * chrysanthemumRadius, 2 * chrysanthemumRadius, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white4().getOpacity() &&
					fxColor.getRed() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white4().getRed() &&
					fxColor.getGreen() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white4().getGreen() &&
					fxColor.getBlue() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white4().getBlue() )
			{
				pattern2D.RainbowSpiralGradated( ( 2 * chrysanthemumRadius ) * ColorsFactor / RepeatFactor, ( 2 * chrysanthemumRadius ) * LocationOfStillMovement / FullSliderRunThrough, ( 2 * chrysanthemumRadius ) * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, 2 * chrysanthemumRadius, ShrunkenFactor, NumberOfSpirals, HalfSreenDiagionalLength, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else
				if ( fxColor.getOpacity() == VibrantColors.SimpleBlue.getOpacity() &&
				fxColor.getRed() == VibrantColors.SimpleBlue.getRed() &&
				fxColor.getGreen() == VibrantColors.SimpleBlue.getGreen() &&
				fxColor.getBlue() == VibrantColors.SimpleBlue.getBlue() )
				{//951 To 969
					pattern2D.RainbowDiskGradated( chrysanthemumInnerRadius * ColorsFactor / RepeatFactor, 88 * chrysanthemumInnerRadius * LocationOfStillMovement / ( FullSliderRunThrough / 10 ), 88 * chrysanthemumInnerRadius * LocationOfColorMovement / ( FullSliderRunThrough / 10 ), x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumInnerRadius, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
					return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				else
				{
					someTargetColorInTheCenterHit = false;
					if ( fxColor.getOpacity() == VibrantColors.SkyBlue.getOpacity() &&
							fxColor.getRed() == VibrantColors.SkyBlue.getRed() &&
							fxColor.getGreen() == VibrantColors.SkyBlue.getGreen() &&
							fxColor.getBlue() == VibrantColors.SkyBlue.getBlue() )
					{
						pattern2D.RainbowSpiralGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
						return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
					}
				}	
		}//if ( someTargetColorInTheCenterHit == false )
		else if ( fxColor.getOpacity() == VibrantColors.OxylBlue.getOpacity() &&
				fxColor.getRed() == VibrantColors.OxylBlue.getRed() &&
				fxColor.getGreen() == VibrantColors.OxylBlue.getGreen() &&
				fxColor.getBlue() == VibrantColors.OxylBlue.getBlue() )
		{
			pattern2D.RainbowStrobeGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, halfedDim, FullSliderRunThrough, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.SkyBlue.getOpacity() &&
				fxColor.getRed() == VibrantColors.SkyBlue.getRed() &&
				fxColor.getGreen() == VibrantColors.SkyBlue.getGreen() &&
				fxColor.getBlue() == VibrantColors.SkyBlue.getBlue() )
		{
			pattern2D.RainbowSpiralGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.Magenta.getOpacity() &&
				fxColor.getRed() == VibrantColors.Magenta.getRed() &&
				fxColor.getGreen() == VibrantColors.Magenta.getGreen() &&
				fxColor.getBlue() == VibrantColors.Magenta.getBlue() )
		{
			pattern2D.RainbowDiskGradated( - 0.1759797347638206 * halfedDim.height * ColorsFactor / RepeatFactor, 0.175979734764 * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, 0.175979734764 * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 0.0545 * halfedDim.height, x - halfedDim.width,  y - halfedDim.height, 0.1759797347638206 * halfedDim.height, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );//Figure Out What To Use Instead Of ColorsFactor
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.NeonGreen.getOpacity() &&
				fxColor.getRed() == VibrantColors.NeonGreen.getRed() &&
				fxColor.getGreen() == VibrantColors.NeonGreen.getGreen() &&
				fxColor.getBlue() == VibrantColors.NeonGreen.getBlue() )
		{
			//angle = 0;//Testing Purposes Only.
			pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / RepeatFactor, 2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, 2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width,  y - halfedDim.height, 2 * Math.PI, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.HalfGrey.getOpacity() &&
				fxColor.getRed() == VibrantColors.HalfGrey.getRed() &&
				fxColor.getGreen() == VibrantColors.HalfGrey.getGreen() &&
				fxColor.getBlue() == VibrantColors.HalfGrey.getBlue() )
		{
			//angle = 0;//Testing Purposes Only.
			pattern2D.RainbowClockGradated( -2. * Math.PI * ColorsFactor / RepeatFactor, -2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, -2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width,  y - halfedDim.height, 2 * Math.PI, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.DarkPink.getOpacity() &&
				fxColor.getRed() == VibrantColors.DarkPink.getRed() &&
				fxColor.getGreen() == VibrantColors.DarkPink.getGreen() &&
				fxColor.getBlue() == VibrantColors.DarkPink.getBlue() )//neonGreenNum)
		{//pw.setArgb( x, y, (int)(255 * 16777216 + (int)color.RGB[0] * 65536 + (int)color.RGB[1] * 256 + (int)color.RGB[2]));//setArgb // */
			greenBlueGreenUsed = true;
			if ( !displayType.laterReversed )
				pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / ( 15. * RepeatFactor ), 2. * Math.PI * LocationOfStillMovement / ( 15. * FullSliderRunThrough ), 2. * Math.PI * LocationOfColorMovement / ( 15. * FullSliderRunThrough ), x - halfedDim.width,  y - halfedDim.height, 2. * Math.PI / ( 15. ), VibrantColorCombos.GreenBlueGreenFXcolors, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / ( 15. * RepeatFactor ), 2. * Math.PI * LocationOfStillMovement / ( 15. * FullSliderRunThrough ), 2. * Math.PI * LocationOfColorMovement / ( 15. * FullSliderRunThrough ), x - halfedDim.width,  y - halfedDim.height, 2. * Math.PI / ( 15. ), VibrantColorCombos.GreenBlueGreenFXcolorsReverse, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			//pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / RepeatFactor, 2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, 2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width,  y - halfedDim.height, 2 * Math.PI, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.Pink.getOpacity() &&
				fxColor.getRed() == VibrantColors.Pink.getRed() &&
				fxColor.getGreen() == VibrantColors.Pink.getGreen() &&
				fxColor.getBlue() == VibrantColors.Pink.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !displayType.laterReversed )
				pattern2D.SimpleRainbow( 0.3270833333333333 * Dim.width * ColorsFactor / RepeatFactor, - 0.3270833333333333 * Dim.width * LocationOfStillMovement / FullSliderRunThrough, - 0.3270833333333333 * Dim.width * LocationOfColorMovement / FullSliderRunThrough, x - 0.341666666666666 * Dim.width, 0.3270833333333333 * Dim.width, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				pattern2D.SimpleRainbowReverse( 0.3270833333333333 * Dim.width * ColorsFactor / RepeatFactor, - 0.3270833333333333 * Dim.width * LocationOfStillMovement / FullSliderRunThrough, - 0.3270833333333333 * Dim.width * LocationOfColorMovement / FullSliderRunThrough, x - 0.341666666666666 * Dim.width, 0.3270833333333333 * Dim.width, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else
		{
			someTargetColorHit = false;
			if ( displayType.laterReversed != Reversed )
				//{
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			/*
											// tempColor = fxColor;
											fxColor = colorDecide.NextColorDecide ( fxColor, pattern2D.ToFXColor(), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
											if ( ! ( fxColor.getOpacity() == InitialColorContrastingChoice.getOpacity() &&
													fxColor.getRed() == InitialColorContrastingChoice.getRed() &&
													fxColor.getGreen() == InitialColorContrastingChoice.getGreen() &&
													fxColor.getBlue() == InitialColorContrastingChoice.getBlue() )
													&& ! ( fxColor.getOpacity() == ColorTooSimilarReplacementColor.getOpacity() &&
													fxColor.getRed() == ColorTooSimilarReplacementColor.getRed() &&
													fxColor.getGreen() == ColorTooSimilarReplacementColor.getGreen() &&
													fxColor.getBlue() == ColorTooSimilarReplacementColor.getBlue() )
													&& InvertBasisFromBackground )
												{
													fxColor = fxColor.invert();
													rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
													rgb = rainbowSoftColor.rgb;
													argb = rainbowSoftColor.argb;
													fxColor = rainbowSoftColor.ToFXColor();
													return fxColor;
												}
												else
													if ( !rainbowSoftColor.ColorTooSimilarFunction( InitialColorContrastingChoice, fxColor, ColorDifference ) )//BrowserPR.getColor( x, y ) , 
													{
														rainbowSoftColor = new RainbowSoftColor( InitialColorContrastingChoice );
														rgb = rainbowSoftColor.rgb;
														argb = rainbowSoftColor.argb;
														fxColor = rainbowSoftColor.ToFXColor();
														return fxColor;
													}
													else
													{
														rainbowSoftColor = new RainbowSoftColor( ColorTooSimilarReplacementColor );
														rgb = rainbowSoftColor.rgb;
														argb = rainbowSoftColor.argb;
														fxColor = rainbowSoftColor.ToFXColor();
														return fxColor;
													}// */
			//}
			else
			{
				/*rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * BasisPR.getColor( x, y ).getRed(), 255 * BasisPR.getColor( x, y ).getGreen(), 255 * BasisPR.getColor( x, y ).getBlue(), BasisPR.getColor( x, y ).getOpacity() } );
				rgb = rainbowSoftColor.rgb;
				argb = rainbowSoftColor.argb;
				fxColor = rainbowSoftColor.ToFXColor();
				return fxColor;// */
				pattern2D.set( rainbowSoftColor.ToFXColor() );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), rainbowSoftColor.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}//End Of Basis Image Switch System
		/*if ( greenBlueGreenUsed == false )
			if ( someTargetColorHit == true)//numberOfClockHandsForOrderOfMagi  //greenBlueGreenUsed
			{
				//	if ( coreVariable >= colorDisplacementVariable && coreVariable < (numberOfColorsInTheRainbow - 1) * colorIntervalVariable  + colorDisplacement)//For Purple Outside Ring
				//{//Retain Below If Else And Use New Variable Names And Equate Them With If Switch Below New Variable Name Comment Above // Make html Text Flip shitBrownNum Color!
				if ( BrowserPR.getColor( x, y ) == VibrantColors.Magenta.ToFXColor() )//shitBrownNum )//BrowserPR.getArgb(x, y) == magentaNum )// == magecoreVariable// == webBlackNum
					if ( coreVariable < colorIntervalVariable  + colorDisplacement)//For Normal Rainbow Use This Instead Of The Others
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - colorDisplacement, purple, blue);
					else if ( coreVariable < ( 2 * colorIntervalVariable  + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - colorIntervalVariable - colorDisplacement, blue, teal);
					else if ( coreVariable < ( 3 * colorIntervalVariable  + colorDisplacement) )		
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 2 * colorIntervalVariable - colorDisplacement, teal, pink);
					else if ( coreVariable < ( 4 * colorIntervalVariable  + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 3 * colorIntervalVariable - colorDisplacement, pink, yellow);
					else if ( coreVariable < ( 5 * colorIntervalVariable  + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 4 * colorIntervalVariable - colorDisplacement, yellow, orange);
					else
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 5 * colorIntervalVariable - colorDisplacement, orange, red);
				else//
					if ( coreVariable < colorIntervalVariable  + colorDisplacement)//For Normal Rainbow Use This Instead Of The Others
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - colorDisplacement, red, orange);
					else if ( coreVariable < ( 2 * colorIntervalVariable  + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - colorIntervalVariable - colorDisplacement, orange, yellow);
					else if ( coreVariable < ( 3 * colorIntervalVariable  + colorDisplacement) )		
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 2 * colorIntervalVariable - colorDisplacement, yellow, green);
					else if ( coreVariable < ( 4 * colorIntervalVariable  + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 3 * colorIntervalVariable - colorDisplacement, green, teal);
					else if ( coreVariable < ( 5 * colorIntervalVariable  + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 4 * colorIntervalVariable - colorDisplacement, teal, blue);
					else
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 5 * colorIntervalVariable - colorDisplacement, blue, purple);//
				pw.setArgb( x, y, (int)(255 * 16777216 + (int)color.RGB[0] * 65536 + (int)color.RGB[1] * 256 + (int)color.RGB[2]));//setArgb
			}
			else
				if ( BrowserPR.getColor( x, y ) != VibrantColors.Magenta )//shitBrownNum )
					pw.setArgb( x, y, BasisPR.getColor( x, y ) );
				else
					pw.setArgb( x, y, neonGreen);//shitBrownNum);//pr.getColor( x, y ) );// */

		//pattern2D.SimpleRainbow(ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor);
		//rainbowSoftColor.RainbowSoftColorRainbowFunction(Math.abs( ColorsFactor ), sliderValue);//1st Square In SimpleDiagnosticsClass.java
		rainbowSoftColor.set( VibrantColors.Maroon );// = new RainbowSoftColor( new double[] { 255 * BasisPR.getColor( x, y ).getRed(), 255 * BasisPR.getColor( x, y ).getGreen(), 255 * BasisPR.getColor( x, y ).getBlue(), BasisPR.getColor( x, y ).getOpacity() } );
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.rgb;
		argb = rainbowSoftColor.argb;
		fxColor = rainbowSoftColor.ToFXColor();
		return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), rainbowSoftColor.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );// */
	}


	public Color FwaLogoSplash(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double HalfSreenDiagionalLength, double XScaleFactor, double YScaleFactor, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, PixelReader BasisPR, PixelReader BackgroundBasisPR, PixelReader BrowserPR, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect )
	{
		pattern2D.set( VibrantColors.HalfGrey );
		rainbowSoftColor.set( VibrantColors.HalfGrey );
		double ringSize = 0.175979734764;//50 833 = 783  47 1835 = 1788

		Dimension halfedDim = new Dimension();
		halfedDim.width = (int)Math.round( Dim.width / 2. );//Check Into If This Is Right
		halfedDim.height = (int)Math.round( Dim.height / 2. );//Check Into If This Is Right

		someTargetColorHit = true; //browserHit = false;
		laterReversed = Reversed; //reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, BasisPR.getColor( x, y ), BackgroundBasisPR.getColor( x, y ), BrowserPR.getColor( x, y ), laterReversed ) );//reversalOfBackgroundEffectsSlave ) );
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.rgb;
		argb = rainbowSoftColor.argb;
		fxColor = rainbowSoftColor.ToFXColor();
		if ( displayType.returnImmediately )
			return fxColor;

		/*if ( tertiaryXslider < videoSequenceLoopQuantity / 3. )
		{



		}
		else if ( tertiaryXslider < 2. * videoSequenceLoopQuantity / 3. )
		{
			pattern2D.RainbowRingVaryated( ringSize * Dim.height / 2., 0, ( tertiaryXslider + 6. * ringSize * Dim.height ) * ringSize * Dim.height / ( 2. * videoSequenceLoopQuantity ),  ( x - Dim.width / 2. ) * Dim.height / 1788., ( y - Dim.height / 2. + 1. ) * Dim.height / 783., ringSize * Dim.height / 2., (1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2., VibrantColorCombos.RainbowFXcolorsWNeonGreenCenterReverse, false );
		}
		else
		{

		}// */


		if ( fxColor.getOpacity() == VibrantColors.White.getOpacity() &&
				fxColor.getRed() == VibrantColors.White.getRed() &&
				fxColor.getGreen() == VibrantColors.White.getGreen() &&
				fxColor.getBlue() == VibrantColors.White.getBlue() )
		{
			pattern2D.RainbowStrobeGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, halfedDim, HalfSreenDiagionalLength, VibrantColorCombos.RainbowFXcolorsReverseNoPink, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.Maroon.getOpacity() &&
				fxColor.getRed() == VibrantColors.Maroon.getRed() &&
				fxColor.getGreen() == VibrantColors.Maroon.getGreen() &&
				fxColor.getBlue() == VibrantColors.Maroon.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !displayType.laterReversed )
				pattern2D.SimpleCustomColor( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor , 1880. * XScaleFactor , BrightnessMultiplyer, Gradations, VibrantColorCombos.RainbowFXcolorsReverseNoPink, OpacityBefore, OpacityAfter, Adjusted );
			else
				pattern2D.SimpleCustomColor( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor , 1880. * XScaleFactor , BrightnessMultiplyer, Gradations, VibrantColorCombos.RainbowFXcolorsWPinkCenter, OpacityBefore, OpacityAfter, Adjusted );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.Lime.getOpacity() &&
				fxColor.getRed() == VibrantColors.Lime.getRed() &&
				fxColor.getGreen() == VibrantColors.Lime.getGreen() &&
				fxColor.getBlue() == VibrantColors.Lime.getBlue() )
		{//219 - 197 = 22 1040 / 783 = 0.7528846153846154 : - 16.56346153846154
			pattern2D.RainbowRingGradated( ringSize * Dim.height / 2. * ColorsFactor / RepeatFactor, ringSize * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, ringSize * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 29.22094508301405, ( x - ( Dim.width / 2. + 11. ) * XScaleFactor) * Dim.height / 1788., ( y - Dim.height / 2. + ( 1. - 8. ) ) * Dim.height / 783., ringSize * Dim.height / 2., (1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2., VibrantColorCombos.RainbowFXcolorsReverseNoPink, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );//Figure Out What To Use Instead Of ColorsFactor
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.Black.getOpacity() &&
				fxColor.getRed() == VibrantColors.Black.getRed() &&
				fxColor.getGreen() == VibrantColors.Black.getGreen() &&
				fxColor.getBlue() == VibrantColors.Black.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !displayType.laterReversed )//243 1679
				pattern2D.SimpleCustomColor( 1436. * XScaleFactor * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222. * XScaleFactor, 1436. * XScaleFactor , BrightnessMultiplyer, Gradations, VibrantColorCombos.BlackWhiteFX,  OpacityBefore, OpacityAfter, Adjusted );
			else
				pattern2D.SimpleCustomColor( 1436. * XScaleFactor * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222. * XScaleFactor, 1436. * XScaleFactor , BrightnessMultiplyer, Gradations, VibrantColorCombos.WhiteBlackFX, OpacityBefore, OpacityAfter, Adjusted );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.Magenta.getOpacity() &&
				fxColor.getRed() == VibrantColors.Magenta.getRed() &&
				fxColor.getGreen() == VibrantColors.Magenta.getGreen() &&
				fxColor.getBlue() == VibrantColors.Magenta.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !displayType.laterReversed )//400 1525
				pattern2D.SimpleCustomColor( 1125. * XScaleFactor * ColorsFactor / RepeatFactor, - 1125. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1125. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 381. * XScaleFactor, 1125. * XScaleFactor, BrightnessMultiplyer, Gradations, VibrantColorCombos.BlackWhiteFX,  OpacityBefore, OpacityAfter, Adjusted );
			else//10 23
				pattern2D.SimpleCustomColor( 1125. * XScaleFactor * ColorsFactor / RepeatFactor, - 1125. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1125. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 381. * XScaleFactor, 1125. * XScaleFactor, BrightnessMultiplyer, Gradations, VibrantColorCombos.WhiteBlackFX, OpacityBefore, OpacityAfter, Adjusted );
			transparencySlider.TransparencySliderFunction(1., .5, pattern2D.ToFXColor(), VibrantColors.Magenta );
			pattern2D.set( transparencySlider.ToFXColor() );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.Teal.getOpacity() &&
				fxColor.getRed() == VibrantColors.Teal.getRed() &&
				fxColor.getGreen() == VibrantColors.Teal.getGreen() &&
				fxColor.getBlue() == VibrantColors.Teal.getBlue() )
		{
			transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, VibrantColors.Green, VibrantColors.Pink );
			pattern2D.set( transparencySlider.ToFXColor() );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else
		{
			someTargetColorHit = false;
			if ( displayType.laterReversed != Reversed )
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}

		rainbowSoftColor.set( VibrantColors.Maroon );// = new RainbowSoftColor( new double[] { 255 * BasisPR.getColor( x, y ).getRed(), 255 * BasisPR.getColor( x, y ).getGreen(), 255 * BasisPR.getColor( x, y ).getBlue(), BasisPR.getColor( x, y ).getOpacity() } );
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.rgb;
		argb = rainbowSoftColor.argb;
		fxColor = rainbowSoftColor.ToFXColor();// */
		return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), rainbowSoftColor.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
	}


	public Color FwaFlagLogoSplash(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double HalfSreenDiagionalLength, double XScaleFactor, double YScaleFactor, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, PixelReader BasisPR, PixelReader BackgroundBasisPR, PixelReader BrowserPR, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect )
	{
		pattern2D.set( VibrantColors.HalfGrey );
		rainbowSoftColor.set( VibrantColors.HalfGrey );
		double ringSize = 0.175979734764;//50 833 = 783  47 1835 = 1788

		Dimension halfedDim = new Dimension();
		halfedDim.width = (int)Math.round( Dim.width / 2. );//Check Into If This Is Right
		halfedDim.height = (int)Math.round( Dim.height / 2. );//Check Into If This Is Right

		someTargetColorHit = true; //browserHit = false;
		laterReversed = Reversed; //reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		//rainbowSoftColor = new RainbowSoftColor( DisplayTypeDeterminer ( TypeOfDisplay, BasisPR.getColor( x, y ), BackgroundBasisPR.getColor( x, y ), BrowserPR.getColor( x, y ), laterReversed ) );// reversalOfBackgroundEffectsSlave ) );
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, BasisPR.getColor( x, y ), BackgroundBasisPR.getColor( x, y ), BrowserPR.getColor( x, y ), laterReversed ) );// reversalOfBackgroundEffectsSlave ) );
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.rgb;
		argb = rainbowSoftColor.argb;
		fxColor = rainbowSoftColor.ToFXColor();
		if ( displayType.returnImmediately )
			return fxColor;

		/*if ( tertiaryXslider < videoSequenceLoopQuantity / 3. )
		{



		}
		else if ( tertiaryXslider < 2. * videoSequenceLoopQuantity / 3. )
		{
			pattern2D.RainbowRingVaryated( ringSize * Dim.height / 2., 0, ( tertiaryXslider + 6. * ringSize * Dim.height ) * ringSize * Dim.height / ( 2. * videoSequenceLoopQuantity ),  ( x - Dim.width / 2. ) * Dim.height / 1788., ( y - Dim.height / 2. + 1. ) * Dim.height / 783., ringSize * Dim.height / 2., (1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2., VibrantColorCombos.RainbowFXcolorsWNeonGreenCenterReverse, false );
		}
		else
		{

		}// */


		if ( fxColor.getOpacity() == VibrantColors.White.getOpacity() &&
				fxColor.getRed() == VibrantColors.White.getRed() &&
				fxColor.getGreen() == VibrantColors.White.getGreen() &&
				fxColor.getBlue() == VibrantColors.White.getBlue() )
		{//RainbowStrobeGradated
			pattern2D.RainbowStrobeVaryated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, halfedDim, HalfSreenDiagionalLength, displayType.laterReversed );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.Maroon.getOpacity() &&
				fxColor.getRed() == VibrantColors.Maroon.getRed() &&
				fxColor.getGreen() == VibrantColors.Maroon.getGreen() &&
				fxColor.getBlue() == VibrantColors.Maroon.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !displayType.laterReversed )
				pattern2D.SimpleRainbow( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor , 1880. * XScaleFactor );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				pattern2D.SimpleRainbowReverse( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor , 1880. * XScaleFactor );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.Lime.getOpacity() &&
				fxColor.getRed() == VibrantColors.Lime.getRed() &&
				fxColor.getGreen() == VibrantColors.Lime.getGreen() &&
				fxColor.getBlue() == VibrantColors.Lime.getBlue() )
		{//219 - 197 = 22 1040 / 783 = 0.7528846153846154 : - 16.56346153846154//RainbowRingGradated
			pattern2D.RainbowRingVaryated( ringSize * Dim.height / 2. * ColorsFactor / RepeatFactor, ringSize * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, ringSize * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 29.22094508301405, ( x - Dim.width / 2. + 11.) * Dim.height / 3576., ( y - Dim.height / 2. + 1. - 8. ) * Dim.height / 1566., ringSize * Dim.height / 2., 0, 99999/*(1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2. */, displayType.laterReversed );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.Black.getOpacity() &&
				fxColor.getRed() == VibrantColors.Black.getRed() &&
				fxColor.getGreen() == VibrantColors.Black.getGreen() &&
				fxColor.getBlue() == VibrantColors.Black.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !displayType.laterReversed )//243 1679
				pattern2D.SimpleCustomColor( 1436. * XScaleFactor  * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222., 1436. * XScaleFactor , BrightnessMultiplyer, Gradations, VibrantColorCombos.BlackWhiteFX,  OpacityBefore, OpacityAfter, Adjusted );
			else
				pattern2D.SimpleCustomColor( 1436. * XScaleFactor  * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222., 1436. * XScaleFactor , BrightnessMultiplyer, Gradations, VibrantColorCombos.OxylBlueRedFX, OpacityBefore, OpacityAfter, Adjusted );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.Magenta.getOpacity() &&
				fxColor.getRed() == VibrantColors.Magenta.getRed() &&
				fxColor.getGreen() == VibrantColors.Magenta.getGreen() &&
				fxColor.getBlue() == VibrantColors.Magenta.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !displayType.laterReversed )//400 1525 //Math.PI / 2., 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., x - halfedDim.width, y - halfedDim.height, Math.PI / 2., false
				pattern2D.RainbowClockVaryated( Math.PI / 2., Math.PI * ( LocationOfStillMovement / FullSliderRunThrough ) / 2., - Math.PI * ( - LocationOfColorMovement / FullSliderRunThrough ) / 2., x - halfedDim.width, y - halfedDim.height, Math.PI / 2., VibrantColorCombos.RainbowFXcolors, displayType.laterReversed );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else//10 23 VibrantColorCombos.HalfGrayToDarkGreyFX
				pattern2D.RainbowClockVaryated( Math.PI / 2., Math.PI * ( LocationOfStillMovement / FullSliderRunThrough ) / 2., - Math.PI * ( - LocationOfColorMovement / FullSliderRunThrough ) / 2., x - halfedDim.width, y - halfedDim.height, Math.PI / 2., VibrantColorCombos.RainbowFXcolorsReverse /*VibrantColorCombos.HalfGrayToDarkGreyFX*/, !displayType.laterReversed );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.Teal.getOpacity() &&
				fxColor.getRed() == VibrantColors.Teal.getRed() &&
				fxColor.getGreen() == VibrantColors.Teal.getGreen() &&
				fxColor.getBlue() == VibrantColors.Teal.getBlue() )
		{
			if ( !displayType.laterReversed )
				transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, VibrantColors.Green, VibrantColors.Pink );
			else
				transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, VibrantColors.White, VibrantColors.NeonGreen );
			pattern2D.set( transparencySlider.ToFXColor() );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );

			/*
					//System.out.println( "After x: " + x +  " y: " + y + " Don't Use ColorFader Again" );
					//System.exit(0);
					if ( x == 648 && y == 788 )
					{
						tempColorFader = new ColorFader();
						tempColorFader.ColorFaderFunction( FullSliderRunThrough, LocationOfStillMovement / FullSliderRunThrough, VibrantColors.Green, VibrantColors.Pink );
					}
					pattern2D.set( tempColorFader.fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );// */
		}
		else if ( fxColor.getOpacity() == VibrantColors.NonHotPink.getOpacity() &&
				fxColor.getRed() == VibrantColors.NonHotPink.getRed() &&
				fxColor.getGreen() == VibrantColors.NonHotPink.getGreen() &&
				fxColor.getBlue() == VibrantColors.NonHotPink.getBlue() )
		{
			if ( !displayType.laterReversed )
				pattern2D.SimpleRainbow( Dim.width * ColorsFactor / RepeatFactor, - Dim.width * LocationOfStillMovement / FullSliderRunThrough, - Dim.width * LocationOfColorMovement / FullSliderRunThrough, x, Dim.width );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				pattern2D.SimpleRainbowReverse( Dim.width * ColorsFactor / RepeatFactor, - Dim.width * LocationOfStillMovement / FullSliderRunThrough, - Dim.width * LocationOfColorMovement / FullSliderRunThrough, x, Dim.width );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			//return VibrantColors.NeonGreen.ToFXColor();
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else
		{
			someTargetColorHit = false;
			if ( displayType.laterReversed != Reversed )
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}

		rainbowSoftColor.set( VibrantColors.Maroon );// = new RainbowSoftColor( new double[] { 255 * BasisPR.getColor( x, y ).getRed(), 255 * BasisPR.getColor( x, y ).getGreen(), 255 * BasisPR.getColor( x, y ).getBlue(), BasisPR.getColor( x, y ).getOpacity() } );
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.rgb;
		argb = rainbowSoftColor.argb;
		fxColor = rainbowSoftColor.ToFXColor();// */
		return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
	}


	public Color RainbowVideoTest(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double SpiralFactor, double NumberOfSpirals, double HalfSreenDiagionalLength, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, PixelReader BasisPR, PixelReader BackgroundBasisPR, PixelReader BrowserPR, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect )
	{
		pattern2D.set( VibrantColors.HalfGrey );
		rainbowSoftColor.set( VibrantColors.HalfGrey );
		pattern2D.RainbowDoubleExponentiator( FullSliderRunThrough * - ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, 4., -1, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		//rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
		rgb = rainbowSoftColor.rgb;
		argb = rainbowSoftColor.argb;
		fxColor = rainbowSoftColor.ToFXColor();
		return fxColor;
	}

	/*public Color DisplayTypeDeterminer ( String TypeOfDisplay, Color BasisColor, Color BrowserColor, boolean Reversed )//Maybe Make Separate Class File After Finishing DisplayTypeDeterminer But Use This Internal One For Now //[]Make Seperate RainbowSoft2D Class For Getting With Individual FXColors Input The Following; ?Custom (Color)? Or Naitive Color (White And Transparent) No Color Too Similar (Black And Transparent) Too Similar Choice Color And Choice Difference Also With Native FullScreen Functionality For "FullDisplay" , "FullDisplayNoTextShownAtAll" , "FullDisplayBasisText" , "FullDisplayBasisBackround" , "FullDisplayBasisOnly" , "NoDisplay" , "TextDisplayOnly" , "BackgroundDisplayOnly" , "BasisTextDisplayOnly" , "BasisBackroundDisplayOnly"
	{//"FullDisplay", "SimplyBrowserShowing", "FullDisplayNoTextShownAtAll", "FullDisplayBasisText", "FullDisplayBasisBackround", "FullDisplayBasisOnly", "BasisBackroundDisplayOnly", "TextDisplayAndBrowser", "TextDisplayOnly", "BasisTextDisplayOnly", "BasisTextDisplayOnWhite", "BasisTextDisplayOnBlack", "NoDisplay", "BlackScreen"
		/* //if ( ( BrowserColor.getOpacity() == VibrantColors.Magenta.getOpacity() && 
				BrowserColor.getRed() == VibrantColors.Magenta.getRed() && 
				BrowserColor.getGreen() == VibrantColors.Magenta.getGreen() && 
				BrowserColor.getBlue() == VibrantColors.Magenta.getBlue() ) ||
				( BrowserColor.getOpacity() == VibrantColors.OxylBlue0FF.getOpacity() && 
				BrowserColor.getRed() == VibrantColors.OxylBlue0FF.getRed() && 
				BrowserColor.getGreen() == VibrantColors.OxylBlue0FF.getGreen() && 
				BrowserColor.getBlue() == VibrantColors.OxylBlue0FF.getBlue() ) ||
				( BrowserColor.getOpacity() > 0. &&
				!(BrowserColor.getRed() == VibrantColors.White.getRed() && 
				BrowserColor.getGreen() == VibrantColors.White.getGreen() && 
				BrowserColor.getBlue() == VibrantColors.White.getBlue() ) ) )
			browserHit = true;// #/
		if ( TypeOfDisplay == "SimplyBrowserShowing" )
		{
			returnImmediately = true;
			return BrowserColor;
		}
		else if ( TypeOfDisplay == "FullDisplay" )
		{
			if ( BrowserColor.getOpacity() == VibrantColors.Magenta.getOpacity() && 
					BrowserColor.getRed() == VibrantColors.Magenta.getRed() && 
					BrowserColor.getGreen() == VibrantColors.Magenta.getGreen() && 
					BrowserColor.getBlue() == VibrantColors.Magenta.getBlue() )
			{
				returnImmediately = false;
				laterReversed = !Reversed;
				return BasisColor;
			}
			else if ( BrowserColor.getOpacity() == VibrantColors.OxylBlue0FF.getOpacity() && 
					BrowserColor.getRed() == VibrantColors.OxylBlue0FF.getRed() && 
					BrowserColor.getGreen() == VibrantColors.OxylBlue0FF.getGreen() && 
					BrowserColor.getBlue() == VibrantColors.OxylBlue0FF.getBlue() )
			{
				returnImmediately = true;
				return VibrantColors.OxylBlue0FF;
			}
			else if ( BrowserColor.getOpacity() > 0. &&
					!(BrowserColor.getRed() == VibrantColors.White.getRed() && 
					BrowserColor.getGreen() == VibrantColors.White.getGreen() && 
					BrowserColor.getBlue() == VibrantColors.White.getBlue() ) )
			{
				returnImmediately = true;
				return BrowserColor;
			}
			else {
				returnImmediately = false; laterReversed = Reversed;
				return BasisColor;
			}
		}
		else if ( ( TypeOfDisplay ==  "FullDisplayBasisBackround" || TypeOfDisplay == "TextDisplayAndBrowser" || TypeOfDisplay == "TextDisplayAndBrowserBlackShowingBackground" || TypeOfDisplay == "TextDisplayOnly"  || TypeOfDisplay == "TextDisplayOnlyWhiteShowingBackground" ) && ( ( BrowserColor.getOpacity() == VibrantColors.Magenta.getOpacity() && 
				BrowserColor.getRed() == VibrantColors.Magenta.getRed() && 
				BrowserColor.getGreen() == VibrantColors.Magenta.getGreen() && 
				BrowserColor.getBlue() == VibrantColors.Magenta.getBlue() ) ||
				( BrowserColor.getOpacity() == VibrantColors.OxylBlue0FF.getOpacity() && 
				BrowserColor.getRed() == VibrantColors.OxylBlue0FF.getRed() && 
				BrowserColor.getGreen() == VibrantColors.OxylBlue0FF.getGreen() && 
				BrowserColor.getBlue() == VibrantColors.OxylBlue0FF.getBlue() ) )  )
		{
			if ( BrowserColor.getOpacity() == VibrantColors.Magenta.getOpacity() && 
					BrowserColor.getRed() == VibrantColors.Magenta.getRed() && 
					BrowserColor.getGreen() == VibrantColors.Magenta.getGreen() && 
					BrowserColor.getBlue() == VibrantColors.Magenta.getBlue() )
			{
				returnImmediately = false; laterReversed = !Reversed;
				return BasisColor;
			}
			else
			{
				returnImmediately = true; return VibrantColors.OxylBlue0FF;
			}
		}
		else if ( TypeOfDisplay == "FullDisplayNoTextShownAtAll" )
		{
			returnImmediately = false; laterReversed = Reversed;
			return BasisColor;
		}
		else if ( TypeOfDisplay == "FullDisplayBasisBackround" )
		{
			returnImmediately = true;
			return BasisColor;
		}
		else if ( TypeOfDisplay == "TextDisplayAndBrowser" || TypeOfDisplay == "TextDisplayAndBrowserBlackShowingBackground" && BrowserColor.getOpacity() > 0.// && 
				//BrowserColor.getRed() != VibrantColors.White.getRed() && 
				//BrowserColor.getGreen() != VibrantColors.White.getGreen() && 
				//BrowserColor.getBlue() != VibrantColors.White.getBlue() )
				)
		{
			returnImmediately = true;
			return BrowserColor;
		}
		else if ( TypeOfDisplay == "TextDisplayOnly" || TypeOfDisplay == "TextDisplayOnlyWhiteShowingBackground" || TypeOfDisplay == "TextDisplayAndBrowser" || TypeOfDisplay == "TextDisplayAndBrowserBlackShowingBackground" || TypeOfDisplay == "BlackScreen" )
		{
			returnImmediately = true;
			if ( TypeOfDisplay == "TextDisplayAndBrowser" || TypeOfDisplay == "TextDisplayOnlyWhiteShowingBackground" )
				return VibrantColors.White;
			else
				return VibrantColors.Black;
		}
		else if ( TypeOfDisplay == "NoDisplay" )
		{
			returnImmediately = true;
			return Color.TRANSPARENT;
		}
		else if ( ( TypeOfDisplay == "FullDisplayBasisText" || TypeOfDisplay == "FullDisplayBasisOnly" || TypeOfDisplay == "BasisTextDisplayOnly" || TypeOfDisplay == "BasisTextDisplayOnWhite" || TypeOfDisplay == "BasisTextDisplayOnBlack" ) && 
				( ( BrowserColor.getOpacity() == VibrantColors.Magenta.getOpacity() && 
				BrowserColor.getRed() == VibrantColors.Magenta.getRed() && 
				BrowserColor.getGreen() == VibrantColors.Magenta.getGreen() && 
				BrowserColor.getBlue() == VibrantColors.Magenta.getBlue() ) ||
						( BrowserColor.getOpacity() == VibrantColors.OxylBlue0FF.getOpacity() && 
						BrowserColor.getRed() == VibrantColors.OxylBlue0FF.getRed() && 
						BrowserColor.getGreen() == VibrantColors.OxylBlue0FF.getGreen() && 
						BrowserColor.getBlue() == VibrantColors.OxylBlue0FF.getBlue() ) ) )
			if ( BrowserColor.getOpacity() == VibrantColors.Magenta.getOpacity() && 
			BrowserColor.getRed() == VibrantColors.Magenta.getRed() && 
			BrowserColor.getGreen() == VibrantColors.Magenta.getGreen() && 
			BrowserColor.getBlue() == VibrantColors.Magenta.getBlue() )
			{
				returnImmediately = true;
				return VibrantColors.Magenta;
			}
			else
			{
				returnImmediately = true;
				return VibrantColors.OxylBlue0FF;
			}
		else if ( TypeOfDisplay == "FullDisplayBasisText" )
		{ returnImmediately = false;
		laterReversed = Reversed;
		return BasisColor; }
		else if ( TypeOfDisplay == "BasisTextDisplayOnBlack" )
		{ returnImmediately = true;
		return VibrantColors.Black; }
		else if ( TypeOfDisplay == "BasisTextDisplayOnWhite" )
		{ returnImmediately = true;
		return VibrantColors.White; }
		else if ( TypeOfDisplay == "BasisTextDisplayOnly" )
		{ returnImmediately = true;
		return Color.TRANSPARENT; }
		else if ( TypeOfDisplay == "FullDisplayBasisOnly" || TypeOfDisplay == "BasisBackroundDisplayOnly" )
		{ returnImmediately = true;
		return BasisColor; }
		returnImmediately = false;
		return VibrantColors.ShitBrown;
	}// */

	/*public Color DisplayTypeDeterminer ( String TypeOfDisplay, Color BasisColor, Color BackgroundBasisColor, Color BrowserColor, boolean Reversed /*boolean ReversalOfBackgroundEffectsMaster,#/ )//Maybe Make Separate Class File After Finishing DisplayTypeDeterminer But Use This Internal One For Now //[]Make Seperate RainbowSoft2D Class For Getting With Individual FXColors Input The Following; ?Custom (Color)? Or Naitive Color (White And Transparent) No Color Too Similar (Black And Transparent) Too Similar Choice Color And Choice Difference Also With Native FullScreen Functionality For "FullDisplay" , "FullDisplayNoTextShownAtAll" , "FullDisplayBasisText" , "FullDisplayBasisBackround" , "FullDisplayBasisOnly" , "NoDisplay" , "TextDisplayOnly" , "BackgroundDisplayOnly" , "BasisTextDisplayOnly" , "BasisBackroundDisplayOnly"
	{//"FullDisplay", "BackgroundToBasisFullDisplay", "FullDisplayNoTextShownAtAll", "FullDisplayBasisText", "FullDisplayBackgroundToBasisNoTextShownAtAll", "BackgroundToBasisFullDisplayBasisText", "FullDisplayBasisBackround", "FullDisplayBackroundToBasis", "FullDisplayBasisOnly", "FullDisplayBackroundToBasisOnly", "BasisBackroundDisplayOnly", "BackroundToBasisOnly", "TextDisplayOnly", "BasisTextDisplayOnly", "BasisTextDisplayOnWhite", "BasisTextDisplayOnBlack", "NoDisplay", "BlackScreen"
		/*if ( ( BrowserColor.getOpacity() == VibrantColors.Magenta.getOpacity() && 
				BrowserColor.getRed() == VibrantColors.Magenta.getRed() && 
				BrowserColor.getGreen() == VibrantColors.Magenta.getGreen() && 
				BrowserColor.getBlue() == VibrantColors.Magenta.getBlue() ) ||
				( BrowserColor.getOpacity() == VibrantColors.OxylBlue0FF.getOpacity() && 
				BrowserColor.getRed() == VibrantColors.OxylBlue0FF.getRed() && 
				BrowserColor.getGreen() == VibrantColors.OxylBlue0FF.getGreen() && 
				BrowserColor.getBlue() == VibrantColors.OxylBlue0FF.getBlue() ) ||
				( BrowserColor.getOpacity() > 0. &&
				!(BrowserColor.getRed() == VibrantColors.White.getRed() && 
				BrowserColor.getGreen() == VibrantColors.White.getGreen() && 
				BrowserColor.getBlue() == VibrantColors.White.getBlue() ) ) )
			browserHit = true;// #/
		if ( TypeOfDisplay == "SimplyBrowserShowing" )
		{
			returnImmediately = true;
			return BrowserColor;
		}
		else if ( TypeOfDisplay == "FullDisplay" || TypeOfDisplay == "BackgroundToBasisFullDisplay" )
		{
			if ( BrowserColor.getOpacity() == VibrantColors.Magenta.getOpacity() && 
					BrowserColor.getRed() == VibrantColors.Magenta.getRed() && 
					BrowserColor.getGreen() == VibrantColors.Magenta.getGreen() && 
					BrowserColor.getBlue() == VibrantColors.Magenta.getBlue() )
			{
				returnImmediately = false; laterReversed = !Reversed; //reversalOfBackgroundEffectsSlave = false;
				return BackgroundBasisColor;
			}
			else if ( BrowserColor.getOpacity() == VibrantColors.OxylBlue0FF.getOpacity() && 
					BrowserColor.getRed() == VibrantColors.OxylBlue0FF.getRed() && 
					BrowserColor.getGreen() == VibrantColors.OxylBlue0FF.getGreen() && 
					BrowserColor.getBlue() == VibrantColors.OxylBlue0FF.getBlue() )
			{ returnImmediately = true; return VibrantColors.OxylBlue0FF; }
			else if ( BrowserColor.getOpacity() > 0. &&
					!(BrowserColor.getRed() == VibrantColors.White.getRed() && 
					BrowserColor.getGreen() == VibrantColors.White.getGreen() && 
					BrowserColor.getBlue() == VibrantColors.White.getBlue() ) )
			{ returnImmediately = true; return BrowserColor; }
			else
			{
				laterReversed = Reversed; returnImmediately = false;
				if ( TypeOfDisplay == "FullDisplay" )
					return BasisColor;
				else
				{
					//reversalOfBackgroundEffectsSlave = false;
					return BackgroundBasisColor;
				}
			}
		}
		else if ( TypeOfDisplay == "FullDisplayNoTextShownAtAll" )
		{
			returnImmediately = false;
			//reversalOfBackgroundEffectsSlave = false;
			laterReversed = Reversed;
			return BasisColor;
		}
		else if ( TypeOfDisplay == "FullDisplayBackgroundToBasisNoTextShownAtAll" )
		{
			returnImmediately = false;
			laterReversed = Reversed;
			return BackgroundBasisColor;
		}
		else if ( ( TypeOfDisplay == "FullDisplayBasisBackround" || TypeOfDisplay == "FullDisplayBackroundToBasis" || TypeOfDisplay == "FullDisplayBackroundToBasisOnly" || TypeOfDisplay == "TextDisplayAndBrowser" || TypeOfDisplay == "TextDisplayAndBrowserBlackShowingBackground" || TypeOfDisplay == "TextDisplayOnly" || TypeOfDisplay == "TextDisplayOnlyWhiteShowingBackground" )
				&& ( ( BrowserColor.getOpacity() == VibrantColors.Magenta.getOpacity() && 
				BrowserColor.getRed() == VibrantColors.Magenta.getRed() && 
				BrowserColor.getGreen() == VibrantColors.Magenta.getGreen() && 
				BrowserColor.getBlue() == VibrantColors.Magenta.getBlue() )
						|| ( BrowserColor.getOpacity() == VibrantColors.OxylBlue0FF.getOpacity() && 
						BrowserColor.getRed() == VibrantColors.OxylBlue0FF.getRed() && 
						BrowserColor.getGreen() == VibrantColors.OxylBlue0FF.getGreen() && 
						BrowserColor.getBlue() == VibrantColors.OxylBlue0FF.getBlue() ) )  )
			if ( BrowserColor.getOpacity() == VibrantColors.Magenta.getOpacity() && 
			BrowserColor.getRed() == VibrantColors.Magenta.getRed() && 
			BrowserColor.getGreen() == VibrantColors.Magenta.getGreen() && 
			BrowserColor.getBlue() == VibrantColors.Magenta.getBlue() )
			{
				returnImmediately = false;
				laterReversed = !Reversed;
				if ( TypeOfDisplay == "FullDisplayBackroundToBasis" )// || ReversalOfBackgroundEffectsMaster )
					return BackgroundBasisColor;
				else
				{	//reversalOfBackgroundEffectsSlave = false;
					return BasisColor; }
			}
			else
			{ returnImmediately = true; return VibrantColors.OxylBlue0FF; }
		else if ( TypeOfDisplay == "FullDisplayBasisBackround" )
		{ 
			returnImmediately = true;
			return BasisColor; }
		else if ( TypeOfDisplay == "FullDisplayBackroundToBasisOnly" )
		{
			returnImmediately = true;
			return BackgroundBasisColor; }
		else if ( TypeOfDisplay == "TextDisplayAndBrowser" || TypeOfDisplay == "TextDisplayAndBrowserBlackShowingBackground" && BrowserColor.getOpacity() > 0.// && 
				//BrowserColor.getRed() != VibrantColors.White.getRed() && 
				//BrowserColor.getGreen() != VibrantColors.White.getGreen() && 
				//BrowserColor.getBlue() != VibrantColors.White.getBlue() ) 
				)
		{
			returnImmediately = true;
			return BrowserColor;
		}
		else if ( TypeOfDisplay == "TextDisplayOnly" || TypeOfDisplay == "TextDisplayOnlyWhiteShowingBackground" || TypeOfDisplay == "TextDisplayAndBrowser" || TypeOfDisplay == "TextDisplayAndBrowserBlackShowingBackground" || TypeOfDisplay == "BlackScreen" )
		{
			returnImmediately = true;
			if ( TypeOfDisplay == "TextDisplayAndBrowser" || TypeOfDisplay == "TextDisplayOnlyWhiteShowingBackground" )
				return VibrantColors.White;
			else
				return VibrantColors.Black;
		}
		else if ( TypeOfDisplay == "NoDisplay" )
		{ returnImmediately = true;
		return Color.TRANSPARENT; }
		else if ( ( TypeOfDisplay == "FullDisplayBasisText" || TypeOfDisplay == "FullDisplayBasisOnly" || TypeOfDisplay == "BackgroundToBasisFullDisplayBasisText" || TypeOfDisplay == "BasisTextDisplayOnly" || TypeOfDisplay == "BasisTextDisplayOnWhite" || TypeOfDisplay == "BasisTextDisplayOnBlack" ) && 
				( ( BrowserColor.getOpacity() == VibrantColors.Magenta.getOpacity() && 
				BrowserColor.getRed() == VibrantColors.Magenta.getRed() && 
				BrowserColor.getGreen() == VibrantColors.Magenta.getGreen() && 
				BrowserColor.getBlue() == VibrantColors.Magenta.getBlue() ) 
						|| ( BrowserColor.getOpacity() == VibrantColors.OxylBlue0FF.getOpacity() && 
						BrowserColor.getRed() == VibrantColors.OxylBlue0FF.getRed() && 
						BrowserColor.getGreen() == VibrantColors.OxylBlue0FF.getGreen() && 
						BrowserColor.getBlue() == VibrantColors.OxylBlue0FF.getBlue() ) ) )
			if ( BrowserColor.getOpacity() == VibrantColors.Magenta.getOpacity() && 
			BrowserColor.getRed() == VibrantColors.Magenta.getRed() && 
			BrowserColor.getGreen() == VibrantColors.Magenta.getGreen() && 
			BrowserColor.getBlue() == VibrantColors.Magenta.getBlue() )
			{ returnImmediately = true; return VibrantColors.Magenta; }
			else
			{ returnImmediately = true; return VibrantColors.OxylBlue0FF; }
		else if ( TypeOfDisplay == "FullDisplayBasisText" )
		{ returnImmediately = false;
		//reversalOfBackgroundEffectsSlave = false;
		laterReversed = Reversed;
		return BasisColor; }
		else if ( TypeOfDisplay == "BasisTextDisplayOnBlack" )
		{ returnImmediately = true;
		return VibrantColors.Black; }
		else if ( TypeOfDisplay == "BasisTextDisplayOnWhite" )
		{ returnImmediately = true;
		return VibrantColors.White; }
		else if ( TypeOfDisplay == "BasisTextDisplayOnly" )
		{ returnImmediately = true;
		return Color.TRANSPARENT; }
		else if ( TypeOfDisplay == "FullDisplayBasisOnly" || TypeOfDisplay == "BasisBackroundDisplayOnly" )
		{ returnImmediately = true;
		return BasisColor; }
		else if ( TypeOfDisplay == "BackgroundToBasisFullDisplayBasisText" || TypeOfDisplay == "BackroundToBasisOnly" )
		{ returnImmediately = true;
		return BackgroundBasisColor; }
		returnImmediately = false;
		return VibrantColors.ShitBrown;
	}// */

	/*public Color colorDecide.NextColorDecide ( Color BasisColor, Color BackgroundBasisColor, Color PatternColor, Color BrowserColor, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean Reversed, boolean NextStepColorTooSimilarEffect, boolean InvertBasisFromBackground )
	{
		if ( someTargetColorHit )
		{
			if ( BasisColor.getOpacity() == BackgroundBasisColor.getOpacity() && 
					BasisColor.getRed() == BackgroundBasisColor.getRed() && 
					BasisColor.getGreen() == BackgroundBasisColor.getGreen() && 
					BasisColor.getBlue() == BackgroundBasisColor.getBlue() )
			{
				/*if ( browserHit && BrowserColor.getOpacity() == VibrantColors.Magenta.getOpacity() && 
						BrowserColor.getRed() == VibrantColors.Magenta.getRed() && 
						BrowserColor.getGreen() == VibrantColors.Magenta.getGreen() && 
						BrowserColor.getBlue() == VibrantColors.Magenta.getBlue() )
				{
					if ( !NextStepColorTooSimilarEffect )//!NextStepColorTooSimilarEffect For ShortCutting To Show Full Basis Below & Putting Browser Picture Over Anything And Stuff Like That Like An Emergency Auxiliary To Show Pixels. reversalOfBackgroundEffectsSlave Does Not Work When !NextStepColorTooSimilarEffect,
					{
						rainbowSoftColor = new RainbowSoftColor( PatternColor );
						rgb = rainbowSoftColor.rgb;
						argb = rainbowSoftColor.argb;
						fxColor = rainbowSoftColor.ToFXColor();// [#]/
						return PatternColor;
					}
					else if ( !rainbowSoftColor.ColorTooSimilarFunction( BrowserColor, PatternColor, ColorDifference ) )//&& reversalOfBackgroundEffectsSlave )
					{
						rainbowSoftColor = new RainbowSoftColor( PatternColor );
						rgb = rainbowSoftColor.rgb;
						argoftColor.argb;
						fxColor = rainbowSoftColor.ToFXColor();// [#]/
						return PatternColor;
					}
					else if( InvertBasisFromBackground  )//&& reversalOfBackgroundEffectsSlave )
					{
						rainbowSoftColor = new RainbowSoftColor( PatternColor );
						rgb = rainbowSoftColor.rgb;
						argb = rainbowSoftColor.argb;
						fxColor = rainbowSoftColor.ToFXColor();
						fxColor = fxColor.invert();//32 Bit Support Necessary To Maintain Cubical Cellular Modularity To Get This Reprocessed Through colorDecide.NextColorDecide Jump Past This then And Goto Next else
						rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
						rgb = rainbowSoftColor.rgb;
						argb = rainbowSoftColor.argb;
						fxColor = rainbowSoftColor.ToFXColor();// [#]/
						return fxColor;
					}
					else
					{
						rainbowSoftColor.RainbowSoftColorFunction(2, 1, BrowserColor, PatternColor );
						if ( !colorTooSimilarFunction.ColorTooSimilarFunction( InitialColorContrastingChoice, rainbowSoftColor.ToFXColor(), ColorDifference ) )
						{
							rainbowSoftColor = new RainbowSoftColor( InitialColorContrastingChoice );
							rgb = rainbowSoftColor.rgb;
							argb = rainbowSoftColor.argb;
							fxColor = rainbowSoftColor.ToFXColor();// [#]/
							return InitialColorContrastingChoice;
						}
						else
						{
							rainbowSoftColor = new RainbowSoftColor( ColorTooSimilarReplacementColor );
							rgb = rainbowSoftColor.rgb;
							argb = rainbowSoftColor.argb;
							fxColor = rainbowSoftColor.ToFXColor();// [#]/
							return ColorTooSimilarReplacementColor;
						}
					}
				}
				else// #/
				//{
				rainbowSoftColor = new RainbowSoftColor( PatternColor );
				rgb = rainbowSoftColor.rgb;
				argb = rainbowSoftColor.argb;
				fxColor = rainbowSoftColor.ToFXColor();// [#]/
				return PatternColor;
				//}
			}
			else if ( laterReversed == Reversed )
			{
				rainbowSoftColor = new RainbowSoftColor( BasisColor );
				rgb = rainbowSoftColor.rgb;
				argb = rainbowSoftColor.argb;
				fxColor = rainbowSoftColor.ToFXColor();// #/
				return BasisColor;
			}
			else if ( !NextStepColorTooSimilarEffect )//!NextStepColorTooSimilarEffect For ShortCutting To Show Full Basis Below & Putting Browser Picture Over Anything And Stuff Like That Like An Emergency Auxiliary To Show Pixels. reversalOfBackgroundEffectsSlave Does Not Work When !NextStepColorTooSimilarEffect,
			{
				rainbowSoftColor = new RainbowSoftColor( PatternColor );
				rgb = rainbowSoftColor.rgb;
				argb = rainbowSoftColor.argb;
				fxColor = rainbowSoftColor.ToFXColor();// #/
				return PatternColor;
			}
			else if ( !rainbowSoftColor.ColorTooSimilarFunction( BasisColor, PatternColor, ColorDifference ) )//&& reversalOfBackgroundEffectsSlave )
			{
				rainbowSoftColor = new RainbowSoftColor( PatternColor );
				rgb = rainbowSoftColor.rgb;
				argb = rainbowSoftColor.argb;
				fxColor = rainbowSoftColor.ToFXColor();// #/
				return PatternColor;
			}
			else if( InvertBasisFromBackground  )//&& reversalOfBackgroundEffectsSlave )
			{
				rainbowSoftColor = new RainbowSoftColor( PatternColor );
				rgb = rainbowSoftColor.rgb;
				argb = rainbowSoftColor.argb;
				fxColor = rainbowSoftColor.ToFXColor();
				fxColor = fxColor.invert();//32 Bit Support Necessary To Maintain Cubical Cellular Modularity To Get This Reprocessed Through colorDecide.NextColorDecide Jump Past This then And Goto Next else
				rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
				rgb = rainbowSoftColor.rgb;
				argb = rainbowSoftColor.argb;
				fxColor = rainbowSoftColor.ToFXColor();// #/
				return fxColor;
			}
			else
			{
				rainbowSoftColor.RainbowSoftColorFunction(2, 1, BasisColor, PatternColor );
				if ( !colorTooSimilarFunction.ColorTooSimilarFunction( InitialColorContrastingChoice, rainbowSoftColor.ToFXColor(), ColorDifference ) )
				{
					rainbowSoftColor = new RainbowSoftColor( InitialColorContrastingChoice );
					rgb = rainbowSoftColor.rgb;
					argb = rainbowSoftColor.argb;
					fxColor = rainbowSoftColor.ToFXColor();// #/
					return InitialColorContrastingChoice;
				}
				else
				{
					rainbowSoftColor = new RainbowSoftColor( ColorTooSimilarReplacementColor );
					rgb = rainbowSoftColor.rgb;
					argb = rainbowSoftColor.argb;
					fxColor = rainbowSoftColor.ToFXColor();// #/
					return ColorTooSimilarReplacementColor;
				}
			}
		}
		else
		{
			rainbowSoftColor = new RainbowSoftColor( BackgroundBasisColor );
			rgb = rainbowSoftColor.rgb;
			argb = rainbowSoftColor.argb;
			fxColor = rainbowSoftColor.ToFXColor();// #/
			return BackgroundBasisColor;
		}
		//rainbowSoftColor.set( VibrantColors.Maroon );
		//rgb = rainbowSoftColor.rgb;
		//argb = rainbowSoftColor.argb;
		//fxColor = rainbowSoftColor.ToFXColor();
		//return fxColor;// #/
	}// */

	public Color[] CustomColorsReverser ( Color[] FXcolorArray )//Reverses Custom Colors By Flipping Around Colors Like Rainbow Reversal Without Changing Any Colors Like Green In Rainbow To Pink In Reversed //
	{//!!Use ColorArrayReverser If Visual Clarity And Appeal Is Needed!!
		fxColorArray = new Color[FXcolorArray.length];
		for (int c = 0; c < FXcolorArray.length; c++)
			fxColorArray[c] = FXcolorArray[ FXcolorArray.length - c - 1 ];
		return fxColorArray;
	}
	public double ColorValueFitter ( double ColorToBeChecked )//30th Square DiagnosticsClass.java
	{
		colorBeingChecked = ColorToBeChecked;
		while ( colorBeingChecked < -4080 )
			colorBeingChecked = colorBeingChecked + 4080;
		while ( colorBeingChecked < 0 )
			colorBeingChecked = colorBeingChecked + 255;
		while ( colorBeingChecked > 4080 )
			colorBeingChecked = colorBeingChecked - 4080;
		while ( colorBeingChecked > 255 )
			colorBeingChecked = colorBeingChecked - 255;
		return Math.round(colorBeingChecked);
	}
	public double OpacityValueFitter ( double OpacityToBeChecked )//31st Square DiagnosticsClass.java
	{
		opacityBeingChecked = OpacityToBeChecked;
		while ( opacityBeingChecked < -16 )
			opacityBeingChecked = opacityBeingChecked + 16;
		while ( opacityBeingChecked < 0 )
			opacityBeingChecked = opacityBeingChecked + 1;
		while ( opacityBeingChecked > 16 )
			opacityBeingChecked = opacityBeingChecked - 16;
		while ( opacityBeingChecked > 1 )
			opacityBeingChecked = opacityBeingChecked - 1;
		return opacityBeingChecked;
	}
	public void set(double[] ARGB) { argb = ARGB; rgb[0] = ARGB[0]; rgb[1] = ARGB[1]; rgb[2] = ARGB[2]; fxColor = Color.rgb( (int)(ColorValueFitter(ARGB[0])), (int)(ColorValueFitter(ARGB[1])), (int)(ColorValueFitter(ARGB[2])), (int)(OpacityValueFitter(ARGB[3])) ); rainbowSoftColor = new RainbowSoftColor( ARGB ); }//Assigns Colors With ARGB //29th Square In SimpleDiagnosticsClass.java
	public void set(Color FXColor) { fxColor = FXColor; argb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255, FXColor.getOpacity() }; rgb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255 }; rainbowSoftColor = new RainbowSoftColor( argb ); }//Assigns Colors With FXColor //30th Square In SimpleDiagnosticsClass.java
	public Color get() { return fxColor; }//Returns Always Happen With Variable Output With ARGB Functionality //31st Square In SimpleDiagnosticsClass.java
}