Color Coding for Original Planets Nu Client

Color codes planets and ships by race on Planets.nu map

Du musst eine Erweiterung wie Tampermonkey, Greasemonkey oder Violentmonkey installieren, um dieses Skript zu installieren.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

Sie müssten eine Skript Manager Erweiterung installieren damit sie dieses Skript installieren können

(Ich habe schon ein Skript Manager, Lass mich es installieren!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name          Color Coding for Original Planets Nu Client
// @description   Color codes planets and ships by race on Planets.nu map
// @include       http://planets.nu/home
// @include       http://planets.nu/games/*
// @version 2.00
// @namespace https://greasyfork.org/users/2860
// ==/UserScript==

// 1. Color codes planets and ships by race on Planets.nu map
// 2. v0.5 - now activates or deactivates from Settings screen!
// 3. v0.7 - now activates or deactivates default color for user from Settings screen
// 4. v0.81 - now saves settings for the user to a cookie, when changed from the Settings Screen
// 5. v0.90 - First 11 race colors, unknown planets, and unoccupied planets now configurable from Settings Screen!
// 6. v1.0 - Fully functional! Uses color gradient for all planets. Displays color gradiant on Settings Screen (FF only, will tackle Chrome later)
// 7. v1.1 - Chrome and FF color preview. Gradient colors for standard game races, info, and unknown
// 8. v1.2 - Redraws colors on maps after any setting changes. Different sized circles around planets for Own Ships, Ally, and Enemy. Own ships will always have correct color
// 9. v1.3 - rewrote Settings changes to play nicely with other mods. 
// 10.v1.4 - added in support for users changing colors beyond race 11 (settings page does not refresh, so hit the settings button again to see the changes).
// 11.v1.5,1.51 - added support for new play.planets.nu client
// 12.v1.6 - New note colors that match the mod.
// 13.v1.61 - added support for new planets urls
// 14.v1.7 - Adds planets v3 API support
// 15.v1.81 - Now shows ship names with explosions (formerly a separate script). Fixed colors in the diplomacy screen color picker (if you ever want to use this with the mod).
// 17.v1.9.2 - Removed play.planets.nu code. This is now in a new mod.
// 18 v2.0 - Modifies mouse-over text for minefields so you can tell if web or regular minefield

function wrapper () { // wrapper for injection
       //var colors = ["white", "Green", "Crimson", "HotPink", "Lime", "Magenta", "Yellow", "Purple", "Gray", "Cyan", "Blue", "mediumslateblue", "sienna", "skyblue", "tomato","wheat", "lightcoral", "darkslategray", "teal", "firebrick", "olive", "mediumpurple", "lime", "indigo", "tan", "yellowgreen", "goldenrod", "aliceblue", "olivedrab", "orangered"];

       var colorsA =["#F0F8FF","#32CD32","#CD5C5C","#FFC0CB","#98FB98","#C0C0C0","#FFFF00","#EE82EE","#D3D3D3","#B0E0E6","#87CEFA","#7B68EE","#F4A460","#D2B48C","#FF6347","#F5DEB3","#F08080","#2F4F4F","#008080","#B22222","#808000","#9370DB","#00FF00","#4B0082","#D2B48C","#9ACD32", "#DAA520","#F0F8FF","#6B8E23","#FF4500"];
       var colorsA2 =["#FFFFFF","#006400","#FF0000","#FF69B4","#00FA9A","#6A5ACD","#FFD700","#9400D3","#808080","#00CED1","#4169E1","#7B68EE","#A0522D","#87CEEB","#FF6347","#F5DEB3","#F08080","#2F4F4F","#008080","#B22222","#808000","#9370DB","#00FF00","#4B0082","#D2B48C","#9ACD32", "#DAA520","#F0F8FF","#6B8E23","#FF4500"];

	
    var modInfo="#F4A460";//chocolate
    var modInfo2="#D2691E";//chocolate

    var modUnknown="#FFF8DC"; //Tan
    var modUnknown2="#D2B48C"; //Tan
    var	modRace=12;	
	
		       

// Fed - White
// Lizard - Green
// Birds - Crimson
// Fascists - Pink
// Privateers - Lime
// Cyborg - Magenta
// Crystals - Yellow
// Empire - Purple
// Robots - Gray
// Rebels - Aqua	
// Colonies - Blue 

var activeColorMod=null;//default true
var defaultMyColor=null;//default true
var useCustomColor=false;//have we checked Cookie
var firstLoad=true;


var oldDrawMap = vgapMap.prototype.drawMap;



vgapMap.prototype.drawMap = function () {


	//check Color Mod Settings
	checkColorModSettings();
	if ((activeColorMod==false)||(vgaPlanets.prototype.version>=3))
		{
		oldDrawMap.apply(this,arguments);
		}
	else 
	//VERSION 1.19 code
		{
       //no canvas
        if (this.mapImg)
            return;

        //we've moved and need to recreate the canvas
        if ((this.canvasCenterX != this.centerX || this.canvasCenterY != this.centerY) && this.zoom >= 20)
            this.createCanvasArray();

        //grab the visible canvases
        var startLeft = Math.floor((this.left * -1) / this.canvasSize) * this.canvasSize;
        var startTop = Math.floor((this.top * -1) / this.canvasSize) * this.canvasSize;
        var maxAccross = Math.ceil($(window).width() / this.canvasSize) + 1;
        var maxDown = Math.ceil($(window).height() / this.canvasSize) + 1;
        var visible = new Array();
        var leftOffset = startLeft;
        for (var i = 0; i < maxAccross; i++) {
            var topOffset = startTop;
            for (var j = 0; j < maxDown; j++) {
                var canvas = this.canvasArray[leftOffset + "-" + topOffset];
                if (canvas)
                    visible.push(canvas);
                topOffset += this.canvasSize;
            }
            leftOffset += this.canvasSize;
        }

        var sets = vgap.accountsettings;
        for (var can = 0; can < visible.length; can++) {
            //var visible = true;
            //            if ((this.left + leftOffset + this.canvasSize) < 0)
            //                visible = false;
            //            if ((this.top + topOffset + this.canvasSize) < 0)
            //                visible = false;
            //            if ((this.left + leftOffset) > $(window).width())
            //                visible = false;
            //            if ((this.top + topOffset) > $(window).height())
            //                visible = false;

            var canvas = visible[can];
            if (!canvas.rendered) {

                var leftOffset = canvas.leftOffset;
                var topOffset = canvas.topOffset;
                canvas.rendered = true;

                var ctx = canvas.getContext("2d");

                //nebulas
                if (vgap.nebulas) {
                    for (var i = 0; i < vgap.nebulas.length; i++) {
                        var neb = vgap.nebulas[i];
                        var mapX = this.screenX(neb.x) - leftOffset;
                        var mapY = this.screenY(neb.y) - topOffset;
                        var rad = neb.radius * this.zoom;
                        var green = 200 + (neb.gas * 10);
                        var blue = 200 - (neb.gas * 10);

                        var grad = ctx.createRadialGradient(mapX, mapY, 0, mapX, mapY, rad);
                        grad.addColorStop(0, "rgba(0, " + green + ", " + blue + ", " + neb.intensity / 400 + ")");
                        grad.addColorStop(1, "rgba(0, " + green + ", " + blue + ", 0)");
                        ctx.fillStyle = grad;

                        ctx.beginPath();
                        ctx.arc(mapX, mapY, rad, 0, Math.PI * 2, false);
                        ctx.closePath();
                        ctx.fill();
                    }
                }
                //stars
                if (vgap.stars) {
                    for (var i = 0; i < vgap.stars.length; i++) {

                        var star = vgap.stars[i];
                        var mapX = this.screenX(star.x) - leftOffset;
                        var mapY = this.screenY(star.y) - topOffset;
                        var rad = star.radius * this.zoom;

                        //var color = "orange";
                        var color = "red";
                        if (star.temp > 3000 && star.temp <= 6000)
                            color = "orange";
                        if (star.temp > 6000 && star.temp <= 10000)
                            color = "brown";
                        if (star.temp > 10000 && star.temp <= 20000)
                            color = "white";
                        if (star.temp > 20000)
                            color = "powderblue";

                        //radiation
                        var radColor = "orange";
                        var opacity = Math.max(0.4 * star.temp / 65000, 0.2);

                        var effectRad = Math.sqrt(star.mass) * this.zoom;
                        var grad = ctx.createRadialGradient(mapX, mapY, 0, mapX, mapY, effectRad);
                        grad.addColorStop(0, colorToRGBA(color, opacity));
                        grad.addColorStop(1, colorToRGBA(color, 0));
                        ctx.fillStyle = grad;

                        ctx.beginPath();
                        ctx.arc(mapX, mapY, effectRad, 0, Math.PI * 2, false);
                        ctx.closePath();
                        ctx.fill();

                        //center blank
                        //                        var img = new Image();
                        //                        img.src = "/_library/theme/images/starbacking.jpg";
                        //                        var pattern = ctx.createPattern(img, "repeat");
                        //                        ctx.fillStyle = pattern;

                        //                        ctx.beginPath();
                        //                        ctx.arc(mapX, mapY, rad, 0, Math.PI * 2, false);
                        //                        ctx.closePath();
                        //                        ctx.fill();

                        //circle
                        var grad = ctx.createRadialGradient(mapX, mapY, 0, mapX, mapY, rad);
                        grad.addColorStop(0, colorToRGBA(color, 0.25));
                        grad.addColorStop(1, colorToRGBA(color, 0.05));
                        ctx.fillStyle = grad;

                        ctx.beginPath();
                        ctx.arc(mapX, mapY, rad, 0, Math.PI * 2, false);
                        ctx.closePath();
                        ctx.fill();

                        //diamond
                        var halfRad = rad / 4;
                        var grad = ctx.createRadialGradient(mapX, mapY, 0, mapX, mapY, halfRad);
                        grad.addColorStop(0, colorToRGBA(color, 1));
                        grad.addColorStop(1, colorToRGBA(color, 0));
                        ctx.fillStyle = grad;
                        ctx.beginPath();
                        ctx.moveTo(mapX - halfRad, mapY);
                        ctx.lineTo(mapX, mapY - halfRad);
                        ctx.lineTo(mapX + halfRad, mapY);
                        ctx.lineTo(mapX, mapY + halfRad);
                        ctx.closePath();
                        ctx.fill();
                    }
                }

                //minefields
                for (var i = 0; i < vgap.minefields.length; i++) {
                    var minefield = vgap.minefields[i];

                    var color;

		   if (activeColorMod==false)
			{
		    	if (minefield.isweb)
                        	color = sets.webmines;
                    	else if (minefield.ownerid == vgap.player.id)
                        	color = sets.mymines;
                    	else if (vgap.allied(minefield.ownerid))
                        	color = sets.allymines;
                    	else if (minefield.ownerid != vgap.player.id)
                        	color = sets.enemymines;
			}
		else 
		        {
			if ((defaultMyColor==true)&&(minefield.ownerid == vgap.player.id))
                        	color = sets.mymines;
 		  	else //use new colors
				color=colorsA2[minefield.ownerid-1];
			}

                    var mapX = this.screenX(minefield.x) - leftOffset;
                    var mapY = this.screenY(minefield.y) - topOffset;
                    var rad = minefield.radius * this.zoom;

                    var grad = ctx.createRadialGradient(mapX, mapY, 0, mapX, mapY, rad);

              	if ((activeColorMod==true) && (minefield.isweb==false))
			{
                    	grad.addColorStop(0, colorToRGBA(color, 0.4));
                    	grad.addColorStop(1, colorToRGBA(color, 0.2));
                	}
                if ((activeColorMod==true) && (minefield.isweb==true))
                 	{
                    	grad.addColorStop(0.9, colorToRGBA(color, 0.15));
                    	grad.addColorStop(1, colorToRGBA(color, 0.3));
                 	}
		if (activeColorMod==false)
			{
			grad.addColorStop(0, colorToRGBA(color, 0.4));
                        grad.addColorStop(1, colorToRGBA(color, 0.2));
			}

                    ctx.fillStyle = grad;

                    ctx.strokeStyle = colorToRGBA(color, 0.2);
                    ctx.lineWidth = 2;
                    ctx.beginPath();
                    ctx.arc(mapX, mapY, rad, 0, Math.PI * 2, false);
                    ctx.closePath();
                    ctx.fill();
                    ctx.stroke();

                }

                //ions
                for (var i = 0; i < vgap.ionstorms.length; i++) {
                    var storm = vgap.ionstorms[i];

                    var mapX = this.screenX(storm.x) - leftOffset;
                    var mapY = this.screenY(storm.y) - topOffset;
                    var rad = storm.radius * this.zoom;

                    var opacity = storm.voltage / 400;
                    if (opacity > 1)
                        opacity = 1;
                    if (opacity < 0.1)
                        opacity = 0.1;
                    var color = vgap.accountsettings.ionstorms;

                    var grad = ctx.createRadialGradient(mapX, mapY, 0, mapX, mapY, rad);
                    grad.addColorStop(0, colorToRGBA(color, opacity));
                    if (vgap.settings.nuionstorms)
                        grad.addColorStop(1, colorToRGBA(color, 0));
                    else
                        grad.addColorStop(1, colorToRGBA(color, 0.05));
                    ctx.fillStyle = grad;

                    ctx.strokeStyle = colorToRGBA(color, 0.05);
                    ctx.lineWidth = 2;
                    ctx.beginPath();
                    ctx.arc(mapX, mapY, rad, 0, Math.PI * 2, false);
                    ctx.closePath();
                    ctx.fill();
                    if (!vgap.settings.nuionstorms)
                        ctx.stroke();
                }



                //Debris Disk stroke
                if (this.zoom >= 5) {
                    for (var i = 0; i < vgap.planets.length; i++) {
                        var planet = vgap.planets[i];

                        //draw rings
                        if (planet.debrisdisk > 1) {

                            var mapX = this.screenX(planet.x) - leftOffset;
                            var mapY = this.screenY(planet.y) - topOffset;

                            var rad = planet.debrisdisk * this.zoom;
                            //var color = "#ffff00";
                            var color = "#ffffff";
                            ctx.strokeStyle = colorToRGBA(color, 0.1);
                            ctx.lineWidth = 2;

                            ctx.beginPath();
                            ctx.arc(mapX, mapY, rad, 0, Math.PI * 2, false);
                            ctx.closePath();
                            ctx.stroke();
                        }
                    }
                    for (var i = 0; i < vgap.planets.length; i++) {
                        var planet = vgap.planets[i];

                        //draw centers
                        if (planet.debrisdisk > 1) {

                            var mapX = this.screenX(planet.x) - leftOffset;
                            var mapY = this.screenY(planet.y) - topOffset;

                            //blank centers (for overlapping circles)
                            var rad = planet.debrisdisk * this.zoom - 2;
                            //var img = new Image();
                            //img.src = "/_library/theme/images/starbacking.jpg";
                            //var pattern = ctx.createPattern(img, "repeat");
                            //ctx.fillStyle = pattern;
                            ctx.fillStyle = "#111111";

                            ctx.beginPath();
                            ctx.arc(mapX, mapY, rad, 0, Math.PI * 2, false);
                            ctx.closePath();
                            ctx.fill();

                        }
                    }
                }


                //planets
                for (var i = 0; i < vgap.planets.length; i++) {

                    var planet = vgap.planets[i];

                    var mapX = this.screenX(planet.x) - leftOffset;
                    var mapY = this.screenY(planet.y) - topOffset;

                    //if on this canvas
                    if (mapX > -200 && mapX < (this.canvasSize + 200)) {

                        //draw warp well
                        if (this.zoom >= 40 && planet.debrisdisk == 0) {

                            ctx.fillStyle = "#000000";
                            ctx.strokeStyle = "#333333";
                            ctx.lineWidth = 1;
                            for (var x = (planet.x - 3); x <= planet.x + 3; x++) {
                                for (var y = (planet.y - 3); y <= planet.y + 3; y++) {
                                    if (this.getDist(x, y, planet.x, planet.y) <= 3) {
                                        var mX = this.screenX(x) - leftOffset;
                                        var mY = this.screenY(y) - topOffset;
                                        var rad = this.zoom / 2;
                                        ctx.fillRect(mX - rad, mY - rad, rad * 2, rad * 2);
                                        ctx.strokeRect(mX - rad, mY - rad, rad * 2, rad * 2);
                                    }
                                }
                            }
                        }

                        var rad = 6;
                        if (planet.debrisdisk > 0)
                            rad = 1;

                        if (this.zoom < 1)
                            rad = Math.ceil(rad * this.zoom);
                        else
                            rad = Math.ceil(rad * Math.pow(this.zoom, 0.4));

                        var grad = ctx.createLinearGradient(mapX - rad, mapY - rad, mapX + rad, mapY + rad);
	if (planet.ownerid == vgap.player.id) {
                            //mine
			    if ((activeColorMod==false) || (defaultMyColor==true))
				{
                            	grad.addColorStop(0, sets.myplanetfrom);
                            	grad.addColorStop(1, sets.myplanetto);
				}
			    else
				{
                            	grad.addColorStop(0, colorsA[planet.ownerid-1]);
                            	grad.addColorStop(1, colorsA2[planet.ownerid-1]);
				}
	
                        }
			else if (planet.ownerid == 0) {
                            if (planet.infoturn > 0) {
                                //info
			    	if (activeColorMod==false)
				{
                                grad.addColorStop(0, sets.infoplanetfrom);
                                grad.addColorStop(1, sets.infoplanetto);
				}
			    else
				{
				grad.addColorStop(0, modInfo);
                                grad.addColorStop(1, modInfo2);
				}
                            }
                            else {
                                //unknown
				if (activeColorMod==false)
				{
                                grad.addColorStop(0, sets.unknownplanetfrom);
                                grad.addColorStop(1, sets.unknownplanetto);
				}
			    else
				{
                                grad.addColorStop(0, modUnknown);
                                grad.addColorStop(1, modUnknown2);
				}
                            }
                        }
                        else {
                            //ally
                            if (vgap.allied(planet.ownerid)) {
				if (activeColorMod==false)
				{
                                grad.addColorStop(0, sets.allyplanetfrom);
                                grad.addColorStop(1, sets.allyplanetto);
				}
				else
				{
                            	grad.addColorStop(0, colorsA[planet.ownerid-1]);
                            	grad.addColorStop(1, colorsA2[planet.ownerid-1]);
				}
                            }
                            else {
                                //enemy
				if (activeColorMod==false)
				{
                                grad.addColorStop(0, sets.enemyplanetfrom);
                                grad.addColorStop(1, sets.enemyplanetto);
				}
				else
				{
                            	grad.addColorStop(0, colorsA[planet.ownerid-1]);
                            	grad.addColorStop(1, colorsA2[planet.ownerid-1]);
				}
                            }
                        }

                        ctx.fillStyle = grad;

                        var note = vgap.getNote(planet.id, 1);
                        if (note != null && note.color != "")
                            ctx.fillStyle = "#" + note.color;

                        var starbase = vgap.getStarbase(planet.id);
                        if (starbase != null) {
                            ctx.fillRect(mapX - rad, mapY - rad, rad * 2, rad * 2);
                        }
                        else {
                            ctx.beginPath();
                            ctx.arc(mapX, mapY, rad, 0, Math.PI * 2, false);
                            ctx.closePath();
                            ctx.fill();
                        }

                        var shipsAt = vgap.shipsAt(planet.x, planet.y);
                        var myShip = false;
                        var enemyShip = false;
                        var allyShip = false;
			var color;
			for (var j = 0; j < shipsAt.length; j++) {
			    var number=shipsAt[j].ownerid;
                            color=colorsA2[number-1];
                            if (shipsAt[j].ownerid == vgap.player.id)
                                myShip = true;
                            else if (vgap.allied(shipsAt[j].ownerid))
                               allyShip = true;
                            else
                                enemyShip = true;
                        }

                        if (myShip) {
                            if ((activeColorMod==false)||(defaultMyColor==true))
				ctx.strokeStyle = sets.myshipfrom;
                            else
				ctx.strokeStyle =colorsA2[vgap.player.id-1];
			    ctx.lineWidth = 1;
                            ctx.beginPath();
                            ctx.arc(mapX, mapY, rad + 2, 0, Math.PI * 2, false);
                            ctx.closePath();
                            ctx.stroke();
                        }
                        if (allyShip) {
                            if (activeColorMod==false)
				ctx.strokeStyle = sets.allyshipfrom;
 			    else
				ctx.strokeStyle = color;
                            ctx.lineWidth = 1;
                            ctx.beginPath();
                            ctx.arc(mapX, mapY, rad + 4, 0, Math.PI * 2, false);
                            ctx.closePath();
                            ctx.stroke();
                        }
                        if (enemyShip) {
                            if (activeColorMod==false)
				ctx.strokeStyle = sets.enemyshipfrom;
			    else	
			   	ctx.strokeStyle = color;
                            ctx.lineWidth = 1;
                            ctx.beginPath();
                            ctx.arc(mapX, mapY, rad + 6, 0, Math.PI * 2, false);
                            ctx.closePath();
                            ctx.stroke();
                        }
                    }
                }


                //Debris Disk Fill
                for (var i = 0; i < vgap.planets.length; i++) {
                    var planet = vgap.planets[i];

                    //draw centers
                    if (planet.debrisdisk > 1) {

                        var mapX = this.screenX(planet.x) - leftOffset;
                        var mapY = this.screenY(planet.y) - topOffset;

                        //fill centers
                        var rad = planet.debrisdisk * this.zoom;
                        //var color = "#ffff00";
                        //var color2 = "#ff6600";
                        var color = "#ffff99";
                        var color2 = "#ffff99";

                        grad = ctx.createRadialGradient(mapX, mapY, 0, mapX, mapY, rad);
                        grad.addColorStop(0, colorToRGBA(color, 0.15));
                        grad.addColorStop(0.4, colorToRGBA(color, 0.075));
                        grad.addColorStop(0.5, colorToRGBA(color2, 0.075));
                        grad.addColorStop(1, colorToRGBA(color2, 0));
                        ctx.fillStyle = grad;

                        ctx.beginPath();
                        ctx.arc(mapX, mapY, rad, 0, Math.PI * 2, false);
                        ctx.closePath();
                        ctx.fill();

                    }
                }


                //ships in space
                for (var i = 0; i < vgap.ships.length; i++) {
                    var ship = vgap.ships[i];
                    var planet = vgap.planetAt(ship.x, ship.y);
                    if (planet == null) {
                        var mapX = this.screenX(ship.x) - leftOffset;
                        var mapY = this.screenY(ship.y) - topOffset;
                        var rad = 3;
                        if (ship.mass < 800)
                            rad = 2;
                        //                if (ship.mass < 300)
                        //                    rad = 1;

                        if (this.zoom < 1)
                            rad = Math.ceil(rad * this.zoom);
                        else
                            rad = Math.ceil(rad * Math.pow(this.zoom, 0.3));
                        ////                        if (this.zoom > 10)
                        ////                            rad = Math.ceil(rad * this.zoom / 10);

                        var grad = ctx.createLinearGradient(mapX - rad, mapY - rad, mapX + rad, mapY + rad);

                       if (ship.ownerid == vgap.player.id) {
                            //mine
			    if ((activeColorMod==false)||(defaultMyColor==true))
			    {
                            grad.addColorStop(0, sets.myshipfrom);
                            grad.addColorStop(1, sets.myshipto);
		            } 
			    else 
			    {
                            grad.addColorStop(0,colorsA[ship.ownerid-1]);
                            grad.addColorStop(1,colorsA2[ship.ownerid-1]);
			    }
                        }
                        else {
                            //ally
                            if (vgap.allied(ship.ownerid)) {

			    	if (activeColorMod==false)
			    	{
                                 	grad.addColorStop(0, sets.allyshipfrom);
                                  	grad.addColorStop(1, sets.allyshipto);
		            	} 
			       else 
			        {
                                	grad.addColorStop(0,colorsA[ship.ownerid-1]);
                            		grad.addColorStop(1,colorsA2[ship.ownerid-1]);
			    	}
                            }
                            else {
                                //enemy
			    	if (activeColorMod==false)
			    	{
                                	grad.addColorStop(0, sets.enemyshipfrom);
                                	grad.addColorStop(1, sets.enemyshipto);
		            	} 
			       else 
			        {
                                	grad.addColorStop(0,colorsA[ship.ownerid-1]);
                            		grad.addColorStop(1,colorsA2[ship.ownerid-1]);
			    	}
                            }
                        }

                        ctx.fillStyle = grad;

                        var note = vgap.getNote(ship.id, 2);
                        if (note != null && note.color != "")
                            ctx.fillStyle = "#" + note.color;

                        ctx.beginPath();
                        ctx.arc(mapX, mapY, rad, 0, Math.PI * 2, false);
                        ctx.closePath();
                        ctx.fill();
                    }
                }
            }
            //            topOffset += this.canvasSize;
            //            if (topOffset >= (4000 * this.zoom)) {
            //                topOffset = 0;
            //                leftOffset += this.canvasSize;
            //            }
        }
        this.canvasRendered = true;
 

		}
	};

var oldDrawWaypoints = vgapMap.prototype.drawWaypoints;

vgapMap.prototype.drawWaypoints = function () {
	if ((activeColorMod==false)||(vgaPlanets.prototype.version>=3))
		{
		oldDrawWaypoints.apply(this,arguments);
		}
	else 
		{
     var sets = vgap.accountsettings;
        this.waypoints.remove();
        this.waypoints = this.paper.set();
        for (var i = 0; i < vgap.ships.length; i++) {
            //waypoint
            var ship = vgap.ships[i];
            if (ship.ownerid != vgap.player.id) {
                if (ship.heading != -1 && ship.warp != 0) {
                    var color;
		    if (activeColorMod==false)
		    	color = sets.enemyshipto;
		    else
		    	color=colorsA2[ship.ownerid-1];
                    if (vgap.allied(ship.ownerid))
                        if (activeColorMod==false)
                       		color = sets.allyshipto;
		    	else
				color=colorsA2[ship.ownerid-1];	
                    var speed = vgap.getSpeed(ship.warp, ship.hullid);

                    var x2 = ship.x + Math.round(Math.sin(Math.toRad(ship.heading)) * speed);
                    var y2 = ship.y + Math.round(Math.cos(Math.toRad(ship.heading)) * speed);
                    ship.targetx = x2;
                    ship.targety = y2;
//		    if (ship.iscloaked)
//			this.waypoints.push(this.paper.path("M" + this.screenX(ship.x) + " " + this.screenY(ship.y) + "L" + this.screenX(x2) + " " + this.screenY(y2)).attr({ stroke: color, //"stroke-width": "1", "stroke-dasharray": "-", "stroke-opacity": 0.5 }));
//		    else
                    	this.waypoints.push(this.paper.path("M" + this.screenX(ship.x) + " " + this.screenY(ship.y) + "L" + this.screenX(x2) + " " + this.screenY(y2)).attr({ stroke: color, "stroke-width": "2", "stroke-opacity": 0.5 }));
                }
            }
            else {

                if (vgap.isChunnelling(ship)) {
                    var targetId = parseInt(ship.friendlycode, 10);
                    var target = vgap.getShip(targetId);
                    this.waypoints.push(this.paper.path("M" + this.screenX(ship.x) + " " + this.screenY(ship.y) + "L" + this.screenX(target.x) + " " + this.screenY(target.y)).attr({ stroke: "cyan", "stroke-width": "3", "stroke-dasharray": "-", "stroke-opacity": 0.5 }));
                }
                else {
	            var params;
			if ((activeColorMod==false) || (defaultMyColor==true))
			//	if (ship.iscloaked)
			//		params = { stroke: sets.myshipto, "stroke-width": "2","stroke-dasharray": "-", "stroke-opacity": 0.5 };
			//	else
					params = { stroke: sets.myshipto, "stroke-width": "2", "stroke-opacity": 0.5 };
			else 
			//	if (ship.iscloaked)
			//		params = { stroke: colorsA2[ship.ownerid-1], "stroke-width": "2","stroke-dasharray": "-", "stroke-opacity": 0.5 };
			//	else
					params = { stroke: colorsA2[ship.ownerid-1], "stroke-width": "2", "stroke-opacity": 0.5 };
                    if (vgap.isHyping(ship))
                        params = { stroke: "beige", "stroke-dasharray": ".", "stroke-width": "2", "stroke-opacity": 0.5 };

                    var path = vgap.getPath(ship);
                    for (var j = 0; j < path.length; j++) {
                        this.waypoints.push(this.paper.path("M" + this.screenX(path[j].x1) + " " + this.screenY(path[j].y1) + "L" + this.screenX(path[j].x2) + " " + this.screenY(path[j].y2)).attr(params));
                    }
                }
            }
        }
}
    };


var oldShow = geoSimpleColorPicker.prototype.show;


geoSimpleColorPicker.prototype.show = function (targetId, callback) {
       	if (activeColorMod==false)
		{
		oldShow.apply(this,arguments);
		}
	else 
		{
        this.picker = $("<div style='position:absolute;background-color:#000;padding:4px;z-index:999;'></div>").hide().appendTo("body");
        this.target = $("#" + targetId);
       
        this.callback = callback;
        
        //colors table
        var objX = new Array('00', '33', '66', '99', 'CC', 'FF');
        html = '<table bgcolor="#000" border="0" cellpadding="0" cellspacing="0" style="padding:2px;"><tr>';
        var br = 1;
        for (o = 0; o < 6; o++) {
            html += '</tr><tr>';
            for (y = 0; y < 6; y++) {
                if (y == 3) { html += '</tr><tr>'; }
                for (x = 0; x < 6; x++) {
                    var grid = objX[o] + objX[y] + objX[x];
                    html += '<td><div title="#' + grid + '" onclick="colorPicker.selectColor(\'' + grid + '\');" style="cursor:pointer;margin: 1px;width:20px;height:20px;background-color:#' + grid + '"></div></td>';
                }
            }
        }
        html += '</tr></table>';

        //greys table
        var objX = new Array('0', '3', '6', '9', 'C', 'F');
        html += '<table bgcolor="#000" border="0" cellpadding="0" cellspacing="0" style="padding:2px;"><tr>';
        var br = 0;
        for (y = 0; y < 6; y++) {
            for (x = 0; x < 6; x++) {
                if (br == 18) {
                    br = 0;
                    html += '</tr><tr>';
                }
                br++;
                var grid = objX[y] + objX[x] + objX[y] + objX[x] + objX[y] + objX[x];
                html += '<td><div title="#' + grid + '" onclick="colorPicker.selectColor(\'' + grid + '\');" style="cursor:pointer;margin: 1px;width:20px;height:20px;background-color:#' + grid + '"></div></td>';
            }
        }
        html += "</tr></table>";
        
        html += '<table bgcolor="#000" border="0" cellpadding="0" cellspacing="0" style="padding:2px;"><tr>';
        var br = 0;
        for (y = 0; y < 2; y++) {
            for (x = 0; x < 10; x++) {
                if (br == 10) {
                    br = 0;
                    html += '</tr><tr>';
                }
                br++;
                var grid;
                if (y==0)
                {
                    if (colorsA[x].charAt(0)=='#')
                        grid = colorsA[x].substring(1,colorsA.length);
                    else
                        grid = colorsA[x];
                }
                else
                { 
                    if (colorsA2[x].charAt(0)=='#')
                        grid = colorsA2[x].substring(1,colorsA2.length);
                    else
                        grid = colorsA2[x];
                }
                html += '<td><div title="#' + grid + '" onclick="colorPicker.selectColor(\'' + grid + '\');" style="cursor:pointer;margin: 1px;width:20px;height:20px;background-color:#' + grid + '"></div></td>';
            }
        }
        html += '<table bgcolor="#000" border="0" cellpadding="0" cellspacing="0" style="padding:2px;"><tr>';
        html += '<td><div title="clear" onclick="colorPicker.selectColor(\'clear\');" style="cursor:pointer;margin: 1px;width:80px;height:20px;text-align:center;border: solid 1px #fff;color: #fff;">CLEAR</div></td>';        
        html += "</tr></table>";
        this.picker.css("left", this.target.offset().left);
        this.picker.css("top", this.target.offset().top + this.target.height() + 10);
        this.picker.html(html);
	if (vgaPlanets.prototype.version>=3)
	$(".cpselect").tclick(function () { colorPicker.selectColor($(this).data("color")); });
        this.picker.show();
    }
    
};

var oldMineText = vgapMap.prototype.mineText;

    vgapMap.prototype.mineText = function (x, y) {
			
	if ((activeColorMod==false)||(vgaPlanets.prototype.version>=3))
		{
		oldMineText.apply(this,arguments);
		}
		else
		{
        var txt = "";
        for (var i = 0; i < vgap.minefields.length; i++) {
            var minefield = vgap.minefields[i];
            if (this.getDist(minefield.x, minefield.y, x, y) <= minefield.radius) {
                txt += "<div class='ItemSelectionBox minCorrection'><span>";
                if (minefield.ownerid == vgap.player.id)
						if (minefield.isweb)
							txt += "Your Web Minefield ";
						else
							txt += "Your Minefield ";
                else {
                    var player = vgap.getPlayer(minefield.ownerid);
                    var race = vgap.getRace(player.raceid);
					if (minefield.isweb)
						txt += race.adjective + " (" + player.username + ") Web Minefield ";
					else
						txt += race.adjective + " (" + player.username + ") Minefield ";
                }
                txt += "Id:" + minefield.id + "</span>";
                txt += "<table class='CleanTable'>";
                txt += "<tr><td> Radius: </td><td> " + gsv(minefield.radius) + " </td><td>&nbsp;Mines: </td><td> " + gsv(minefield.units) + " </td></tr>";
                txt += "<tr><td> Friendly: </td><td> " + gsv(minefield.friendlycode) + " </td></tr>";
                txt += "</table></div>";
            }
        }
        return txt;
		}
    };

var oldShowSettings = vgapDashboard.prototype.showSettings;

vgapDashboard.prototype.showSettings = function () {


var new_html="";
	new_html += "<br><h3>Custom Settings for Color Mod</h3>";
	new_html += "<div style='width:250px;'></div>";
	new_html += "<div id='Test'><table>";
	new_html += "<tr><td><div id='LaunchSim' onclick='vgapDashboard.prototype.resetColorModColors();' title='Default is: Active.'>Reset all custom color settings </div></td>";
        new_html += "<td><div id='LaunchSim' onclick='vgapDashboard.prototype.changeDefaultMyColor();' title='Default is: Active.'>Use default colors for My Race Only</div></td>";
        new_html += "<td><div id='LaunchSim' onclick='vgapDashboard.prototype.changeColorMod();' title='Default is: Active.'>Activate or Deactivate Color Mod</div></td></tr></table>";
	
	new_html += "<div id='AccountSettings2'><table>";
  	new_html += "<tr><th>Color Settings</th></tr>";

        //html += this.renderSetColorMod("Race 1", "test");
	new_html += "<tr><td>" + "Race 1" + "</td><td><input type='text' id='Race1' onchange='SaveRace();' value='" + colorsA[0] + "'/></td><td><input type='text' id='Race1A' onchange='SaveRace();' value='" + colorsA2[0] + "'/></td><td><input style='background: -webkit-gradient(linear,left top, right bottom, color-stop(0, " + colorsA[0] + "), color-stop(1, " + colorsA2[0] + ")); background: -moz-linear-gradient(top left," + colorsA[0] + " 0%, " + colorsA2[0] + " 100%)' type='text' id='IgnoreRace1' value='     '/></td></tr>";
	new_html  += "<tr><td>" + "Race 2" + "</td><td><input type='text' id='Race2' onchange='SaveRace();' value='" + colorsA[1] + "'/></td><td><input type='text' id='Race2A' onchange='SaveRace();' value='" + colorsA2[1] + "'/></td><td><input style='background: -webkit-gradient(linear,left top, right bottom, color-stop(0, " + colorsA[1] + "), color-stop(1, " + colorsA2[1] + ")); background: -moz-linear-gradient(top left," + colorsA[1] + " 0%, " + colorsA2[1] + " 100%)' type='text' id='IgnoreRace1' value='     '/></td></tr>";
	new_html += "<tr><td>" + "Race 3" + "</td><td><input type='text' id='Race3' onchange='SaveRace();' value='" + colorsA[2] + "'/></td><td><input type='text' id='Race3A' onchange='SaveRace();' value='" + colorsA2[2] + "'/></td><td><input style='background: -webkit-gradient(linear,left top, right bottom, color-stop(0, " + colorsA[2] + "), color-stop(1, " + colorsA2[2] + ")); background: -moz-linear-gradient(top left," + colorsA[2] + " 0%, " + colorsA2[2] + " 100%)' type='text' id='IgnoreRace3' value='     '/></td></tr>";
	new_html += "<tr><td>" + "Race 4" + "</td><td><input type='text' id='Race4' onchange='SaveRace();' value='" + colorsA[3] + "'/></td><td><input type='text' id='Race4A' onchange='SaveRace();' value='" + colorsA2[3] + "'/></td><td><input style='background: -webkit-gradient(linear,left top, right bottom, color-stop(0, " + colorsA[3] + "), color-stop(1, " + colorsA2[3] + ")); background: -moz-linear-gradient(top left," + colorsA[3] + " 0%, " + colorsA2[3] + " 100%)' type='text' id='IgnoreRace4 value='     '/></td></tr>";
	new_html += "<tr><td>" + "Race 5" + "</td><td><input type='text' id='Race5' onchange='SaveRace();' value='" + colorsA[4] + "'/></td><td><input type='text' id='Race5A' onchange='SaveRace();' value='" + colorsA2[4] + "'/></td><td><input style='background: -webkit-gradient(linear,left top, right bottom, color-stop(0, " + colorsA[4] + "), color-stop(1, " + colorsA2[4] + ")); background: -moz-linear-gradient(top left," + colorsA[4] + " 0%, " + colorsA2[4] + " 100%)' type='text' id='IgnoreRace5' value='     '/></td></tr>";
	new_html += "<tr><td>" + "Race 6" + "</td><td><input type='text' id='Race6' onchange='SaveRace();' value='" + colorsA[5] + "'/></td><td><input type='text' id='Race6A' onchange='SaveRace();' value='" + colorsA2[5] + "'/></td><td><input style='background: -webkit-gradient(linear,left top, right bottom, color-stop(0, " + colorsA[5] + "), color-stop(1, " + colorsA2[5] + ")); background: -moz-linear-gradient(top left," + colorsA[5] + " 0%, " + colorsA2[5] + " 100%)' type='text' id='IgnoreRace6 value='     '/></td></tr>";
	new_html += "<tr><td>" + "Race 7" + "</td><td><input type='text' id='Race7' onchange='SaveRace();' value='" + colorsA[6] + "'/></td><td><input type='text' id='Race7A' onchange='SaveRace();' value='" + colorsA2[6] + "'/></td><td><input style='background: -webkit-gradient(linear,left top, right bottom, color-stop(0, " + colorsA[6] + "), color-stop(1, " + colorsA2[6] + ")); background: -moz-linear-gradient(top left," + colorsA[6] + " 0%, " + colorsA2[6] + " 100%)' type='text' id='IgnoreRace7' value='     '/></td></tr>";
	new_html += "<tr><td>" + "Race 8" + "</td><td><input type='text' id='Race8' onchange='SaveRace();' value='" + colorsA[7] + "'/></td><td><input type='text' id='Race8A' onchange='SaveRace();' value='" + colorsA2[7] + "'/></td><td><input style='background: -webkit-gradient(linear,left top, right bottom, color-stop(0, " + colorsA[7] + "), color-stop(1, " + colorsA2[7] + ")); background: -moz-linear-gradient(top left," + colorsA[7] + " 0%, " + colorsA2[7] + " 100%)' type='text' id='IgnoreRace8 value='     '/></td></tr>";
	new_html += "<tr><td>" + "Race 9" + "</td><td><input type='text' id='Race9' onchange='SaveRace();' value='" + colorsA[8] + "'/></td><td><input type='text' id='Race9A' onchange='SaveRace();' value='" + colorsA2[8] + "'/></td><td><input style='background: -webkit-gradient(linear,left top, right bottom, color-stop(0, " + colorsA[8] + "), color-stop(1, " + colorsA2[8] + ")); background: -moz-linear-gradient(top left," + colorsA[8] + " 0%, " + colorsA2[8] + " 100%)' type='text' id='IgnoreRace9' value='     '/></td></tr>";
	new_html += "<tr><td>" + "Race 10" + "</td><td><input type='text' id='Race10' onchange='SaveRace();' value='" + colorsA[9] + "'/></td><td><input type='text' id='Race10A' onchange='SaveRace();' value='" + colorsA2[9] + "'/></td><td><input style='background: -webkit-gradient(linear,left top, right bottom, color-stop(0, " + colorsA[9] + "), color-stop(1, " + colorsA2[9] + ")); background: -moz-linear-gradient(top left, " + colorsA[9] + " 0%, " + colorsA2[9] + " 100%)' type='text' id='IgnoreRace10 value='     '/></td></tr>";
	new_html += "<tr><td>" + "Race 11" + "</td><td><input type='text' id='Race11' onchange='SaveRace();' value='" + colorsA[10] + "'/></td><td><input type='text' id='Race11A' onchange='SaveRace();' value='" + colorsA2[10] + "'/></td><td><input style='background: -webkit-gradient(linear,left top, right bottom, color-stop(0, " + colorsA[10] + "), color-stop(1, " + colorsA2[10] + ")); background: -moz-linear-gradient(top left, " + colorsA[10] + " 0%, " + colorsA2[10] + " 100%)' type='text' id='IgnoreRace11' value='     '/></td></tr>";
	new_html += "<tr><td>" + "Unoccupied" + "</td><td><input type='text' id='ModInfo' onchange='SaveRace();' value='" + modInfo + "'/></td><td><input type='text' id='ModInfo2' onchange='SaveRace();' value='" + modInfo2 + "'/></td><td><input style='background: -webkit-gradient(linear,left top, right bottom, color-stop(0, " + modInfo + "), color-stop(1, " + modInfo2 + ")); background: -moz-linear-gradient(top left, " + modInfo + " 0%, " + modInfo2 + " 100%)' type='text' id='IgnoreInfo value='     '/></td></tr>";
	new_html += "<tr><td>" + "Unknown" + "</td><td><input type='text' id='ModUnknown' onchange='SaveRace();' value='" + modUnknown + "'/></td><td><input type='text' id='ModUnknown2' onchange='SaveRace();' value='" + modUnknown2 + "'/></td><td><input style='background: -webkit-gradient(linear,left top, right bottom, color-stop(0, " + modUnknown + "), color-stop(1, " + modUnknown2 + ")); background: -moz-linear-gradient(top left, " + modUnknown + " 0%, " + modUnknown2 + " 100%)' type='text' id='IgnoreUnknown value='     '/></td></tr>";
	new_html += "<tr><td><input type='text' id='ModRace' onchange='SaveRaceNum();' value='" + modRace + "'/></td><td><input type='text' id='ModRace2' onchange='SaveRace();' value='" + colorsA[modRace-1] + "'/></td><td><input type='text' id='ModRace3' onchange='SaveRace();' value='" + colorsA2[modRace-1] + "'/></td><td><input style='background: -webkit-gradient(linear,left top, right bottom, color-stop(0, " + colorsA[modRace-1] + "), color-stop(1, " + colorsA2[modRace-1] + ")); background: -moz-linear-gradient(top left, " + colorsA[modRace-1] + " 0%, " + colorsA2[modRace-1] + " 100%)' type='text' id='IgnoreRaceMod value='     '/></td></tr>";
	
	//html += "<tr><td>Test</td>" + "<td>Test2</td>" + "<td><input style='background: -moz-linear-gradient(top left, #ccffff 0%, #00ffff 100%); background: -webkit-gradient(linear, left top, right bottom, color-stop(0, #000000), color-stop(1, #ffffff))' type='text' id='IgnoreMe2' value='     '/></tr></td>";	
	//html += "<tr><td>Test2</td>" + "<td>Test3</td>" + "<td><input style='background: -webkit-gradient(linear, left top, right bottom, color-stop(0, #000000), color-stop(1, #ffffff)) background: -moz-linear-gradient(top left, #ccffff 0%, #00ffff 100%)' type='text' id='IgnoreMe' value='     '/></tr></td>";	
	//html += "<tr><td>Test</td>" + "<td>Test2</td>" + "<td><input style='background: -webkit-gradient(linear, left top, right bottom, color-stop(0, #000000), color-stop(1, #ffffff))' type='text' id='IgnoreMe2' value='     '/></tr></td>";	
    
	 //html += "<tr><td><input style='background: -webkit-gradient(linear, left top, right bottom, from(#ccc), to(#000)); background: -moz-linear-gradient(top,  #ccc,  #000);' type='text' id='IgnoreMe' value='     '</td></tr>";
	 //html += "<tr><td><input style='background: -moz-linear-gradient(top,  #ccc,  #000); background: -webkit-gradient(linear, left top, right bottom, from(#ccc), to(#000)); ' type='text' id='IgnoreMe' value='     '</td></tr>";  

	new_html += "</table></div>";
	
	if (vgaPlanets.prototype.version>=3)
	{
		this.customSettingsContent.push(new_html);
	}
	oldShowSettings.apply(this,arguments);

	if (vgaPlanets.prototype.version<3)
	{
		$('[onclick="vgap.resetTurn();"]').after(new_html);
        	this.pane.jScrollPane();
	}
	if (vgaPlanets.prototype.version>=3)
	{
		this.customSettingsContent.pop();
	}

		
};

SaveRaceNum=function(){
modRace=$("#ModRace").val();//melee race specified
};

SaveRace=function(){

	var i;
	
	if (modRace>11)
		{
		colorsA[modRace-1]=$("#ModRace2").val();
		colorsA2[modRace-1]=$("#ModRace3").val();	
		var String3="Race"+(modRace);
		set_cookie(String3,colorsA[modRace-1],2029,1,1);
		set_cookie(String3+"A",colorsA2[modRace-1],2029,1,1);
		}
	for (i=0;i<11;i++)
	{
		var String="#Race"+(i+1);
		var String2="Race"+(i+1);
		colorsA[i]= $(String).val();
		set_cookie(String2,colorsA[i],2029,1,1);
		colorsA2[i]=$(String+"A").val();
		set_cookie(String2+"A",colorsA2[i],2029,1,1);
	}
	
	modInfo= $("#ModInfo").val();
	modUnknown= $("#ModUnknown").val();
	
	modInfo2= $("#ModInfo2").val();
	modUnknown2= $("#ModUnknown2").val();


	set_cookie("ModInfo",modInfo,2099,1,1);
	set_cookie("ModUnknown",modUnknown,2029,1,1);

	set_cookie("ModInfo2",modInfo2,2014,1,1);
	set_cookie("ModUnknown2",modUnknown2,2029,1,1);
	
if (vgaPlanets.prototype.version<3)
	vgap.map.updateZoom();
else
	{	
	vgap.loadWaypoints();
        vgap.shipScreen.screen.refresh();
	}
	vgap.map.draw();
};

set_cookie=function( name, value, exp_y, exp_m, exp_d, path, domain, secure )
//name=cookie name (required)
//value=cookie value (required)
//exp_y,M,d is expiration year, month, day (if blank cookie will delete when browser closes)
//path=path within site this applies to (can be blank)
//domain=apply only to websites in this domain (can be blank)
//secure=use SSL (leave blank)	

{
  var cookie_string = name + "=" + escape ( value );

  if ( exp_y )
  {
    var expires = new Date ( exp_y, exp_m, exp_d );
    cookie_string += "; expires=" + expires.toGMTString();
  }

  if ( path )
        cookie_string += "; path=" + escape ( path );

  if ( domain )
        cookie_string += "; domain=" + escape ( domain );
  
  if ( secure )
        cookie_string += "; secure";
  
  document.cookie = cookie_string;
};

get_cookie =function( cookie_name )
{
  var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );

  if ( results )
    return ( unescape ( results[2] ) );
  else
    return null;
};

vgapDashboard.prototype.saveToCookie = function(){
//alert("In Function save");
  // set a new cookie
if (defaultMyColor==true)
{
set_cookie("defaultMyColor",1,2029,1,1);
//alert("set to true!!");
}
else{
set_cookie("defaultMyColor",0,2029,1,1);
//alert("set to false!!");
}
    
if (activeColorMod==true)
    set_cookie("activeColorMod",1,2029,1,1);
else 
    set_cookie("activeColorMod",0,2029,1,1);

};


vgapDashboard.prototype.changeColorMod = function(){
 	if (activeColorMod==true) 
	{
	activeColorMod=false;
	alert("The Race Specific Color Mod is now Deactived.");
	}
	else 
	{
	activeColorMod=true;
	alert("The Race Specific Color Mod is now Active.");
  	}
    	vgapDashboard.prototype.saveToCookie()
	vgap.map.updateZoom();
	vgap.map.draw();
};


vgapDashboard.prototype.resetColorModColors = function(){
    alert("Resetting all colors to Mod defaults");

   colorsA =["#F0F8FF","#32CD32","#CD5C5C","#FFC0CB","#98FB98","#C0C0C0","#FFFF00","#EE82EE","#D3D3D3","#B0E0E6","#87CEFA","#7B68EE","#F4A460","#D2B48C","#FF6347","#F5DEB3","#F08080","#2F4F4F","#008080","#B22222","#808000","#9370DB","#00FF00","#4B0082","#D2B48C","#9ACD32", "#DAA520","#F0F8FF","#6B8E23","#FF4500"];
   colorsA2 =["#FFFFFF","#006400","#FF0000","#FF69B4","#00FA9A","#6A5ACD","#FFD700","#9400D3","#808080","#00CED1","#4169E1","#7B68EE","#A0522D","#87CEEB","#FF6347","#F5DEB3","#F08080","#2F4F4F","#008080","#B22222","#808000","#9370DB","#00FF00","#4B0082","#D2B48C","#9ACD32", "#DAA520","#F0F8FF","#6B8E23","#FF4500"];
   
    modInfo="#F4A460";//chocolate
    modInfo2="#D2691E";//chocolate

    modUnknown="#FFF8DC"; //Tan
    modUnknown2="#D2B48C"; //Tan	
    vgapDashboard.prototype.saveToCookie();
    vgap.map.updateZoom();
    vgap.map.draw();

};

vgapDashboard.prototype.changeDefaultMyColor = function(){
 	if (defaultMyColor==true) 
	{
 	alert("Mod is no longer using Default colors for your race.");
	defaultMyColor=false;
	}
	else 
	{
	alert("Mod will now use Default color (aqua/green) for your race.");
	defaultMyColor=true;
	}
	vgapDashboard.prototype.saveToCookie();
	vgap.map.updateZoom();
	vgap.map.draw();
};

checkColorModSettings = function(){
//Color Mod settings
//if null, then its unset - check the cookie
//if cookie doesn't exist, set to default.
	if (activeColorMod==null)
	{
		var checkActive=null;
		checkActive=get_cookie("activeColorMod");
		if (checkActive==null)
			{
			activeColorMod=true;//no cookie,  set to default
			}
		else if (checkActive==1)
			{
			activeColorMod=true;
			}
		else 
			{
			activeColorMod=false;
			}
	}

    
    if (defaultMyColor==null)
	{
		var checkColor=null;
		checkColor=get_cookie("defaultMyColor");
		if (checkColor==null)
			{
			defaultMyColor=true;//no cookie,  set to default
			}
		else if (checkColor==1)
			{
			defaultMyColor=true;
			}
		else 
			{
			defaultMyColor=false;
			}
	}

    if (useCustomColor==false)
	//have not checked cookies yet
	{
	var i;
	var checkColor=null;

	for (i=0;i<30;i++)
	{
		var String="Race"+(i+1);
		checkColor=get_cookie(String);
		if (checkColor) 
			colorsA[i]=checkColor;
		checkColor=null;
		checkColor=get_cookie(String+"A");
		if (checkColor) colorsA2[i]=checkColor;
		checkColor=null;
	}

	checkColor=get_cookie("ModInfo");
	if (checkColor) modInfo=checkColor;
	checkColor=null;
	checkColor=get_cookie("ModUnknown");
	if (checkColor) modUnknown=checkColor;
	checkColor=null;

	checkColor=get_cookie("ModInfo2");
	if (checkColor) modInfo2=checkColor;
	checkColor=null;
	checkColor=get_cookie("ModUnknown2");
	if (checkColor) modUnknown2=checkColor;	
	//set var so we know cookies have been checked
	useCustomColor=true;
	} 
};


} //wrapper for injection




var script = document.createElement("script");
script.type = "application/javascript";
script.textContent = "(" + wrapper + ")();";

document.body.appendChild(script);