/*
	COPYRIGHT NOTICE

	NOTE: This page, its contents and code are copyright 2006, Bob Comperini, bob@fly-ul.com
	you may NOT copy or redistribute this code without my written authorization. You are authorized 
	to link to this page, with my written permission.
*/

var Model = "Sport";
var ColorScheme = "Classic";
var SelectedC = new Array(14);
var C = new Array(14);
var ShowBorders = "1";

function InitColors ()
{
	SelectedC[1] = "#FFFFFF";
	SelectedC[2] = "#FFFFFF";
	SelectedC[3] = "#FFFFFF";
	SelectedC[4] = "#FFFFFF";
	SelectedC[5] = "#FFFFFF";
	SelectedC[6] = "#FFFFFF";
	SelectedC[7] = "#FFFFFF";
	SelectedC[8] = "#FFFFFF";
	SelectedC[9] = "#FFFFFF";
	SelectedC[10] = "#FFFFFF";
	SelectedC[11] = "#FFFFFF";
	SelectedC[12] = "#FFFFFF";
	SelectedC[13] = "#FFFFFF";
	C[1] = "#FFFFFF";
	C[2] = "#FFFFFF";
	C[3] = "#FFFFFF";
	C[4] = "#FFFFFF";
	C[5] = "#FFFFFF";
	C[6] = "#FFFFFF";
	C[7] = "#FFFFFF";
	C[8] = "#FFFFFF";
	C[9] = "#FFFFFF";
	C[10] = "#FFFFFF";
	C[11] = "#FFFFFF";
	C[12] = "#FFFFFF";
	C[13] = "#FFFFFF";
}

function ResetColors()
{
	if (confirm ("Reset all colors to white?"))
	{
		document.Options.SelectC1.selectedIndex = 0;
		document.Options.SelectC2.selectedIndex = 0;
		document.Options.SelectC3.selectedIndex = 0;
		document.Options.SelectC4.selectedIndex = 0;
		document.Options.SelectC5.selectedIndex = 0;
		document.Options.SelectC6.selectedIndex = 0;
		document.Options.SelectC7.selectedIndex = 0;
		document.Options.SelectC8.selectedIndex = 0;
		document.Options.SelectC9.selectedIndex = 0;
		document.Options.SelectC10.selectedIndex = 0;
		document.Options.SelectC11.selectedIndex = 0;
		document.Options.SelectC12.selectedIndex = 0;
		document.Options.SelectC13.selectedIndex = 0;
		InitColors ();
		DRAW();
	}
}


function UpdateColorSelects ()
{
	if (Model == "GT400" || Model == "GT500")
		document.Options.SelectC3.disabled = 0;
	else
		document.Options.SelectC3.disabled = 1;

	if (Model == "GT500")
	{
		document.Options.SelectC4.disabled = 0;
		document.Options.SelectC12.disabled = 0;
	}
	else
	{
		document.Options.SelectC4.disabled = 1;
		document.Options.SelectC12.disabled = 1;
	}

	document.Options.SelectC5.disabled = 1;
	document.Options.SelectC6.disabled = 1;
	document.Options.SelectC7.disabled = 1;
	document.Options.SelectC8.disabled = 1;
	document.Options.SelectC9.disabled = 1;
	document.Options.SelectC10.disabled = 1;
	document.Options.SelectC11.disabled = 1;
	document.Options.SelectC13.disabled = 1;

	if (ColorScheme == "Multi")
	{
		if (Model == "Sport")
		{
			document.Options.SelectC3.disabled = 0;
			document.Options.SelectC4.disabled = 0;
			document.Options.SelectC5.disabled = 0;
			document.Options.SelectC6.disabled = 0;
			document.Options.SelectC7.disabled = 0;
			document.Options.SelectC8.disabled = 0;
			document.Options.SelectC9.disabled = 0;
			document.Options.SelectC10.disabled = 0;
			document.Options.SelectC11.disabled = 0;
			document.Options.SelectC12.disabled = 0;
			document.Options.SelectC13.disabled = 0;
		}
		else if (Model == "SportII")
		{
			document.Options.SelectC3.disabled = 0;
			document.Options.SelectC4.disabled = 0;
			document.Options.SelectC5.disabled = 0;
			document.Options.SelectC6.disabled = 0;
			document.Options.SelectC7.disabled = 0;
		}
		else if (Model == "SportIIS")
		{
			document.Options.SelectC3.disabled = 0;
			document.Options.SelectC4.disabled = 0;
			document.Options.SelectC5.disabled = 0;
			document.Options.SelectC6.disabled = 0;
			document.Options.SelectC7.disabled = 0;
			document.Options.SelectC8.disabled = 0;
			document.Options.SelectC9.disabled = 0;
			document.Options.SelectC10.disabled = 0;
		}
		else if (Model == "Sprint")
		{
			document.Options.SelectC3.disabled = 0;
			document.Options.SelectC4.disabled = 0;
			document.Options.SelectC5.disabled = 0;
			document.Options.SelectC6.disabled = 0;
			document.Options.SelectC7.disabled = 0;
			document.Options.SelectC8.disabled = 0;
		}
		else if (Model == "GT400" || Model == "GT500")
		{
			document.Options.SelectC3.disabled = 0;
			document.Options.SelectC4.disabled = 0;
			document.Options.SelectC5.disabled = 0;
			document.Options.SelectC6.disabled = 0;
			document.Options.SelectC7.disabled = 0;
			document.Options.SelectC8.disabled = 0;
			document.Options.SelectC9.disabled = 0;
			document.Options.SelectC10.disabled = 0;
			document.Options.SelectC11.disabled = 0;
			document.Options.SelectC12.disabled = 0;
		}
	}
}

function ColorIsUnique (ThisColor)
{
	var Unique = 1;

	for (var i=ThisColor-1; i>=1; i--)
	{
		if (C[ThisColor] == C[i])
		{
			Unique = 0;
			break;
		}
	}
	return (Unique);
}

function CountUniqueColors ()
{

	var UniqueColors = 1;

	if (Model == "Sprint")
		HighestColor = 8;
	else if (Model == "Sport")
		HighestColor = 13;
	else if (Model == "SportII")
		HighestColor = 7;
	else if (Model == "SportIIS")
		HighestColor = 10;
	else if (Model == "GT400" || Model == "GT500")
		HighestColor = 12;
	for (var i=2; i<=HighestColor; i++)
	{
		if (ColorIsUnique (i))
			UniqueColors ++;
	}

	return (UniqueColors);
}

function DrawCost ()
{
	var Msg = "";
	var TotalCost = 0;
	var UniqueColors = 0;

	// Is the main color a custom color?
	if (	C[1] == "#9C9C9C" || // Gray
		C[1] == "#25DB27" || // Neon Green
		C[1] == "#039AA3" || // Turquiose
		C[1] == "#FF441E")   // Dayglow Orange
	{
		Msg += 'Custom main color: $100, ';
		TotalCost += 100;
	}

	if (ColorScheme == "Multi")
	{
		// Count unique colors
		UniqueColors = CountUniqueColors ();

		if (Model == "GT400")
			UniqueColors -= 3;
		else if (Model == "GT500")
			UniqueColors -= 4;
		else
			UniqueColors -= 2;

		if (UniqueColors > 0)
		{
			Msg += UniqueColors + ' additional colors: $' + UniqueColors*100;
			TotalCost += UniqueColors * 100;
		}
	}

	if (TotalCost > 0)
	{
		c.setColor("#FF0000");
		Msg += ' <B>Total: $' + TotalCost + '</B>';
		c.drawStringRect(Msg, 0, 3, 640, "center");
	}
}

function DrawNumber (Item, Number, x,y)
{
	Item.setStroke(1); 
	Item.setColor("#FFFFFF");
	Item.fillRect (x, y, 18,13); 
	Item.setColor("#000000");
	Item.drawRect (x, y, 18,13); 
	Item.drawStringRect(Number, x, y, 18, "center"); 
}

function DrawMXTailGroup (StabColor,ElColor,TopRudderColor, BottomRudderColor, SportIISBottomColor)
{
	// Stabilizer
	t.setStroke(2); 

	t.setColor(C[StabColor]);
	var XPoints = new Array(10, 110, 210, 310, 310, 10, 10);
	var YPoints = new Array(40,  15,  15,  40,  70, 70, 40);

	t.fillPolygon (XPoints, YPoints);
	t.setColor("#000000"); // black
	t.drawPolygon (XPoints, YPoints);

	// Elevator
	var LeftX = new Array(10, 145, 145, 117, 10, 10);
	var RightX = new Array(175, 310, 310, 203, 175, 175);
	var Y = new Array( 75,  75,  88, 101,  88,  75);

	t.setColor(C[ElColor]);
	t.fillPolygon (LeftX,Y);
	t.fillPolygon (RightX,Y);

	t.setColor("#000000"); // black
	t.drawPolygon (LeftX,Y);
	t.drawPolygon (RightX,Y);
	t.drawStringRect("<B>Stabilizer And Elevator</B>", 10, 110, 310, "center"); 

	// Rudder
	var TopRudderX = new Array(345, 400, 397, 357, 330, 345);
	var TopRudderY = new Array( 10,  10,  55,  67,  67,  10);
	t.setColor(C[TopRudderColor]);
	t.fillPolygon (TopRudderX,TopRudderY);

	var BottomRudderX = new Array(357, 397, 395, 377, 360, 357);
	var BottomRudderY = new Array( 67,  55, 100, 120, 120,  67);
	t.setColor(C[BottomRudderColor]);
	t.fillPolygon (BottomRudderX,BottomRudderY);

	if (SportIISBottomColor && ColorScheme == "Multi")
	{
		var SportIISRudderX = new Array(395, 377, 360, 359,395);
		var SportIISRudderY = new Array(100, 120, 120, 107,100);
		t.setColor(C[SportIISBottomColor]);
		t.fillPolygon (SportIISRudderX,SportIISRudderY);
	}

	t.setColor("#000000");
	t.setStroke(1); 
	if (ShowBorders == "1")
	{
		t.drawLine(357, 67, 397, 55); 

		if (SportIISBottomColor && ColorScheme == "Multi")
			t.drawLine(359, 107, 395, 100); 
	}

	var FullRudderX = new Array(345, 400, 395, 377, 360, 357, 330, 345);
	var FullRudderY = new Array( 10,  10, 100, 120, 120,  67,  67,  10);
	t.setStroke(2); 
	t.drawPolygon (FullRudderX, FullRudderY);

	t.drawStringRect("<B>Rudder</B>", 365, 110, 100, "center");

	if (ColorScheme == "Multi")
	{
		DrawNumber (t,StabColor,50,45);
		DrawNumber (t,ElColor,50,78);
		DrawNumber (t,TopRudderColor,365,30);
		DrawNumber (t,BottomRudderColor,365,80);
	}

	if (SportIISBottomColor && ColorScheme == "Multi")
		DrawNumber (t,SportIISBottomColor,338,113);
}

function DrawGTTailGroup (StabColor, ElColor, RudderColor, Rudder2, Rudder3, Rudder4, Rudder5)
{
	// Stabilizer
	t.setStroke(2); 

	t.setColor(C[StabColor]);

	var LeftSX = new Array(  42, 135, 147, 147,  42,  42);
	var RightSX = new Array(272, 179, 167, 167, 272, 272);

	var SY = new Array(45,  15,  15,  58, 58, 45);

	t.fillPolygon (LeftSX, SY);
	t.fillPolygon (RightSX, SY);

	t.setColor("#000000");
	t.drawPolygon (LeftSX, SY);
	t.drawPolygon (RightSX, SY);

	// Elevator
	var LeftEX = new Array(42, 147, 147, 119, 42, 42);
	var RightEX = new Array(272, 167, 167, 195, 272, 272);
	var EY = new Array( 63,  63,  88, 101,  75,  63);

	t.setColor(C[ElColor]);
	t.fillPolygon (LeftEX,EY);
	t.fillPolygon (RightEX,EY);

	t.setColor("#000000");
	t.drawPolygon (LeftEX,EY);
	t.drawPolygon (RightEX,EY);
	t.drawStringRect("<B>Stabilizer And Elevator</B>", 10, 110, 310, "center"); 

	// Rudder
	var RudderX = new Array (285,390,435,420,370,370,285,285);
	var RudderY = new Array ( 85, 10, 12, 80,120, 95, 95, 85);

	t.setColor(C[1]);
	t.fillPolygon (RudderX,RudderY);

	if (Model == "GT400")
	{
		t.setColor(C[Rudder2]);
		t.fillPolygon (
			new Array (356,430,430,348,356),
			new Array (36,25,40,40,36));

		t.setColor(C[Rudder3]);
		t.fillPolygon (
			new Array (348,430,425,346,348),
			new Array (40,40,55,44,40));

		t.setColor(C[12]);
		t.fillPolygon (
			new Array (360,433,430,356,360),
			new Array (32,21,25,36,32));
		t.fillPolygon (
			new Array (346,425,425,342,346),
			new Array (44,55,60,48,44));
	}
	else
	{
		t.setColor(C[Rudder2]);

		t.fillPolygon (
			new Array (285,432,430,285),
			new Array (90,20,35,90));

		t.setColor(C[Rudder3]);
		t.fillPolygon (
			new Array (285,430,424,285),
			new Array (90,35,60,90));

		t.setColor(C[Rudder4]);
		t.fillPolygon (
			new Array (285,424,421,285),
			new Array (90,60,75,90));

		t.setColor(C[Rudder5]);
		t.fillPolygon (
			new Array (285,420,420,370,370,285,285),
			new Array (90,75,80,120,95,96,90));

		t.setColor(C[12]);
		t.fillPolygon (
			new Array (285,433,432,285,285),
			new Array (87,15,20,90,87));
		t.fillPolygon (
			new Array (285,420,420,285,285),
			new Array (90,75,79,94,90));

		t.setColor("#000000");
		if (ShowBorders == "1")
		{
			t.setStroke (1);
			t.drawLine(285, 87, 433, 15);
			t.drawLine(285, 94, 420, 79);
		}

		DrawNumber (t,12,450,5);
		DrawNumber (t,12,450,75);
		t.setStroke(Stroke.DOTTED); 
		t.drawLine(450, 10, 434, 18);
		t.drawLine(450,80, 420, 77);
	}

	// Rudder outline
	t.setColor("#000000");
	t.setStroke (2);
	t.drawPolygon (RudderX,RudderY);

	if (ShowBorders == "1")
	{
		t.setStroke(1); 
		t.drawLine(371, 120, 371, 55);
		t.drawLine(371,  55, 329, 55);
	}

	t.setStroke(2); 
	if (Model == "GT400")
	{
		if (ShowBorders == "1")
		{
			t.drawLine(430,  25, 356,  36);
			t.drawLine(425,  55, 346,  44);

			t.setStroke(1); 
			t.drawLine(430,  40, 348,  40);
		}

		DrawNumber (t,Rudder2,450,25);
		DrawNumber (t,Rudder3,450,45);

		t.setStroke(Stroke.DOTTED); 
		t.drawLine(450, 33,410, 35);
		t.drawLine(450, 53,410, 45);
	}
	else
	{
		if (ShowBorders == "1")
		{
			t.drawLine(285, 90, 432, 20);
			t.drawLine(285, 90, 420, 75);

			t.setStroke(1); 
			t.drawLine(285, 90, 430, 35);
			t.drawLine(285, 90, 423, 60);
		}

		DrawNumber (t,Rudder2,450,23);
		DrawNumber (t,Rudder3,450,40);
		DrawNumber (t,Rudder4,450,57);
		t.setStroke(Stroke.DOTTED); 
		t.drawLine(449, 29,431, 29);
		t.drawLine(449, 46,429, 46);
		t.drawLine(449, 65,423, 65);
	}

	t.drawStringRect("<B>Rudder</B>", 285, 105, 100, "center");

	if (ColorScheme == "Multi")
	{
		DrawNumber (t,StabColor,100,40);
		DrawNumber (t,ElColor,100,73);

		if (Model == "GT400")
		{
			DrawNumber (t,RudderColor,325,58);
			DrawNumber (t,12,300,20);
			t.setStroke(Stroke.DOTTED); 
			t.drawLine(320, 25, 360, 30);
			t.drawLine(320, 25, 350, 48);

			if (ShowBorders == "1")
			{
				t.setStroke(1);
				t.drawLine(433,  21, 360,  32);
				t.drawLine(425,  60, 342,  48);
			}
		}
		else
		{
			DrawNumber (t,RudderColor,325,18);
			DrawNumber (t,Rudder5,410,100);

			t.setStroke(Stroke.DOTTED); 
			t.drawLine(343, 28, 365, 35);
			t.drawLine(411, 101, 390, 92);
		}
	}
}

function DrawMXAilerons (Num)
{
	// Ailerons
	var LeftX = new Array( 10, 260, 232,  10,  10);
	var RightX = new Array(620, 360, 388, 620, 620);
	var Y = new Array(126, 126, 156, 144, 126);

	w.setColor(C[Num]);
	w.setStroke(2); 
	w.fillPolygon (LeftX,Y);
	w.fillPolygon (RightX,Y);

	w.setColor("#000000"); // black
	w.drawPolygon (LeftX,Y);
	w.drawPolygon (RightX,Y);
	
	if (ColorScheme == "Multi")
		DrawNumber (w,Num,35,130);
}

function DrawGTAilerons (Aileron,Flap)
{
	// Ailerons
	var LeftAX = new Array(  10, 160, 160,  10,  10);
	var RightAX = new Array(620, 460, 460, 620, 620);
	var AY = new Array(126, 126, 150, 144, 126);

	w.setColor(C[Aileron]);
	w.setStroke(2); 
	w.fillPolygon (LeftAX,AY);
	w.fillPolygon (RightAX,AY);

	w.setColor("#000000");
	w.drawPolygon (LeftAX,AY);
	w.drawPolygon (RightAX,AY);

	// Flaps
	var LeftFX = new Array( 165, 260, 260, 165, 165);
	var RightFX = new Array(455, 360, 360, 455, 455);
	var FY = new Array(126, 126, 156, 150, 126);

	w.setColor(C[Flap]);
	w.setStroke(2); 
	w.fillPolygon (LeftFX,FY);
	w.fillPolygon (RightFX,FY);

	w.setColor("#000000");
	w.drawPolygon (LeftFX,FY);
	w.drawPolygon (RightFX,FY);

	if (ColorScheme == "Multi")
	{
		DrawNumber (w,Aileron,135,130);
		DrawNumber (w,Flap,235,130);
	}
}


function DrawSportII()
{
	w.setColor(C[1]); // Wing color
	w.fillRect(10, 10, 610, 110);

	// Diamond
	w.setColor(C[2]); // diamond color

	var XPoints = new Array(30, 310, 600, 310);
	var YPoints = new Array(60, 40, 60, 90);
	w.fillPolygon (XPoints, YPoints);

	w.setColor("#000000");
	w.setStroke(2); 
	if (ShowBorders == "1")
		w.drawPolygon (XPoints, YPoints);

	// Border of wing
	w.drawRect(10,10,610,110);

	if (ShowBorders == "1")
	{
		w.setStroke(1); 
		w.drawLine(310, 10, 310, 120); 
	}

	if (ColorScheme == "Multi")
	{
		DrawNumber (w,1,170,25);
		DrawNumber (w,2,170,55);
	}
}

function DrawSprint()
{
	w.setColor(C[1]); // Wing color
	w.fillRect(10, 10, 610, 35);

	w.setColor(C[3]);
	w.fillRect(10, 70, 610, 50);

	// Stripe
	w.setColor(C[2]); // Stripe color
	w.fillRect(10, 35, 610, 35);

	if (ShowBorders == "1")
	{
		w.setStroke(1); 
		w.setColor("#000000");
		w.drawRect(10, 35, 610, 35);
	}

	// Border of wing
	w.setStroke(2); 
	w.setColor("#000000");
	w.drawRect(10, 10, 610, 110);

	if (ShowBorders == "1")
	{
		w.setStroke(1); 
		w.drawLine(310, 10, 310, 120); 
	}

	if (ColorScheme == "Multi")
	{
		DrawNumber (w, 1, 25,15);
		DrawNumber (w, 2, 25,45);
		DrawNumber (w, 3, 25,90);
	}
}


function DrawSport ()
{
	w.setColor (C[8]);
	w.fillRect(10, 10, 18, 110);
	w.fillRect(602, 10, 18, 110);

	w.setColor (C[7]);
	w.fillRect(28, 10, 60, 110);
	w.fillRect(542, 10, 60, 110);

	w.setColor (C[6]);
	w.fillRect(88, 10, 21, 110);
	w.fillRect(521, 10, 21, 110);

	w.setColor (C[5]);
	w.fillRect(109, 10, 21, 110);
	w.fillRect(500, 10, 21, 110);

	w.setColor (C[4]);
	w.fillRect(130, 10, 21, 110);
	w.fillRect(479, 10, 21, 110);

	w.setColor (C[3]);
	w.fillRect(151, 10, 60, 110);
	w.fillRect(419, 10, 60, 110);

	w.setColor (C[2]);
	w.fillRect(211, 10, 60, 110);
	w.fillRect(359, 10, 60, 110);

	w.setColor (C[1]);
	w.fillRect(271, 10, 88, 110);

	// Stripe borders
	if (ShowBorders == "1")
	{
		w.setColor("#000000");
		w.setStroke(1); 

		w.drawLine(28, 10, 28, 120);
		w.drawLine(88, 10, 88, 120);
		if (ColorScheme == "Multi")
		{
			w.drawLine(109, 10, 109, 120);
			w.drawLine(130, 10, 130, 120);
		}
		w.drawLine(151, 10, 151, 120);
		w.drawLine(211, 10, 211, 120);
		w.drawLine(271, 10, 271, 120);

		w.drawLine(359, 10, 359, 120);
		w.drawLine(419, 10, 419, 120);
		w.drawLine(479, 10, 479, 120);

		if (ColorScheme == "Multi")
		{
			w.drawLine(500, 10, 500, 120);
			w.drawLine(521, 10, 521, 120);
		}

		w.drawLine(542, 10, 542, 120);
		w.drawLine(602, 10, 602, 120);
	}

	// Border of wing
	w.setStroke(2); 
	w.setColor("#000000"); // black border
	w.drawRect(10, 10, 610, 110);

	if (ColorScheme == "Multi")
	{
		DrawNumber (w, 1, 305,20);
		DrawNumber (w, 2, 230,20);
		DrawNumber (w, 3, 170,20);
		DrawNumber (w, 4, 89, 20);
		DrawNumber (w, 5, 110,20);
		DrawNumber (w, 6, 131,20);
		DrawNumber (w, 7, 50,20);
		DrawNumber (w, 8,  9,20);
	}
}

function DrawSportIIS ()
{
	w.setColor(C[1]);
	w.fillRect(10, 10, 18, 110);
	w.fillRect(602, 10, 18, 110);

	w.setColor(C[2]);
	w.fillRect(28, 10, 574, 45);

	w.setColor(C[3]);
	w.fillRect(28, 45, 574, 45);

	w.setColor(C[4]);
	w.fillRect(28, 70, 574, 50);

	if (ShowBorders == "1")
	{
		w.setStroke(1); 
		w.setColor("#000000");
		w.drawLine(28, 10, 28, 120);
		w.drawLine(602, 10, 602, 120);

		w.drawLine(28, 45, 602, 45);
		w.drawLine(28, 70, 602, 70);

		w.drawLine(310, 10, 310, 120); // center
	}

	// Border of wing
	w.setStroke(2); 
	w.setColor("#000000"); // black border
	w.drawRect(10, 10, 610, 110);

	if (ColorScheme == "Multi")
	{
		DrawNumber (w, 1, 11,20);
		DrawNumber (w, 2, 45,20);
		DrawNumber (w, 3, 45,50);
		DrawNumber (w, 4, 45,85);
	}
}

function DrawGT ()
{

	if (Model == "GT400")
	{
		w.setColor(C[1]);
		w.fillPolygon (
			new Array (10,300,300,10,10), 
			new Array (45,10,35,70,45));
		w.fillPolygon (
			new Array (620,320,320,620,620), 
			new Array (45,10,35,70,45));

		w.setColor(C[12]);
		w.fillPolygon (
			new Array (10,300,300,10,10), 
			new Array (70,35,39,73,70));
		w.fillPolygon (
			new Array (620,320,320,620,620), 
			new Array (70,35,39,73,70));

		w.setColor(C[2]);
		w.fillPolygon (
			new Array (10,300,300,10,10), 
			new Array (73,39,62,79,73));
		w.fillPolygon (
			new Array (620,320,320,620,620), 
			new Array (73,39,62,79,73));

		w.setColor(C[3]);
		w.fillPolygon (
			new Array (10,300,300,10,10), 
			new Array (79,62,90,85,79));
		w.fillPolygon (
			new Array (620,320,320,620,620), 
			new Array (79,62,90,85,79));

		w.setColor(C[12]);
		w.fillPolygon (
			new Array (10,300,300,10,10), 
			new Array (85,90,95,88,85));
		w.fillPolygon (
			new Array (620,320,320,620,620), 
			new Array (85,90,95,88,85));

		w.setColor(C[4]);
		w.fillPolygon (
			new Array (10,300,300,10,10), 
			new Array (88,95,120,120,88));
		w.fillPolygon (
			new Array (620,320,320,620,620), 
			new Array (88,95,120,120,88));

		if (ShowBorders == "1")
		{
			w.setColor("#000000");

			if (ColorScheme == "Multi")
			{
				w.setStroke(1); 
				w.drawLine(10, 70, 300, 35);
				w.drawLine(620, 70, 320, 35);

				w.drawLine(10, 88, 300, 95);
				w.drawLine(620, 88, 320, 95);
			}

			w.setStroke(2); 
			w.drawLine(10, 73, 300, 39);
			w.drawLine(10, 79, 300, 62);
			w.drawLine(10, 85, 300, 90);
			w.drawLine(620, 73, 320, 39);
			w.drawLine(620, 79, 320, 62);
			w.drawLine(620, 85, 320, 90);
		}	
	}
	else
	{
		w.setColor(C[1]);
		w.fillPolygon (
			new Array (10,300,300,10,10), 
			new Array (45,10,30,63,45));
		w.fillPolygon (
			new Array (620,320,320,620,620), 
			new Array (45,10,30,63,45));

		w.setColor(C[12]);
		w.fillPolygon (
			new Array (10,300,300,10,10), 
			new Array (63,30,37,70,63));
		w.fillPolygon (
			new Array (620,320,320,620,620), 
			new Array (63,30,37,70,63));

		w.setColor(C[2]);
		w.fillPolygon (
			new Array (10,300,300,10,10), 
			new Array (70,37,58,78,70));
		w.fillPolygon (
			new Array (620,320,320,620,620), 
			new Array (70,37,58,78,70));

		w.setColor(C[3]);
		w.fillPolygon (
			new Array (10,300,300,10,10),
			new Array (78,58,79,85,78));
		w.fillPolygon (
			new Array (620,320,320,620,620), 
			new Array (78,58,79,85,78));

		w.setColor(C[4]);
		w.fillPolygon (
			new Array (10,300,300,10,10), 
			new Array (85,79,100,95,85));
		w.fillPolygon (
			new Array (620,320,320,620,620), 
			new Array (85,79,100,95,85));

		w.setColor(C[12]);
		w.fillPolygon (
			new Array (10,300,300,10,10), 
			new Array (95,100,107,102,95));
		w.fillPolygon (
			new Array (620,320,320,620,620), 
			new Array (95,100,107,102,95));

		w.setColor(C[5]);
		w.fillPolygon (
			new Array (10,300,300,10,10), 
			new Array (102,107,120,120,102));
		w.fillPolygon (
			new Array (620,320,320,620,620), 
			new Array (102,107,120,120,102));

		if (ShowBorders == "1")
		{
			w.setColor ("#000000");

			w.setStroke(1); 
			w.drawLine(10, 63, 300, 30);
			w.drawLine(620, 63, 320, 30);
			w.drawLine(10, 102, 300, 107);
			w.drawLine(620, 102, 320, 107);

			w.setStroke(2); 
			w.drawLine(10, 70, 300, 37);
			w.drawLine(10, 78, 300, 58);
			w.drawLine(10, 85, 300, 79);
			w.drawLine(10, 95, 300, 100);

			w.drawLine(620, 70, 320, 37);
			w.drawLine(620, 78, 320, 58);
			w.drawLine(620, 85, 320, 79);
			w.drawLine(620, 95, 320, 100);
		}
	}

	// Border of wing
	w.setColor("#000000"); // black border
	w.setStroke(2); 
	w.drawLine(10, 45, 300, 10);
	w.drawLine(300, 10, 300, 120);
	w.drawLine(300, 120, 10, 120);
	w.drawLine(10, 120, 10, 45);

	w.drawLine(620, 45, 320, 10);
	w.drawLine(320, 10, 320, 120);
	w.drawLine(320, 120,620, 120);
	w.drawLine(620, 120,620, 45);

	if (Model == "GT400")
	{
		DrawNumber (w, 2, 275,46);
		DrawNumber (w, 3, 275,70);
	}
	else
	{
		DrawNumber (w, 2, 275,43);
		DrawNumber (w, 3, 275,64);
		DrawNumber (w, 4, 275,84);
		DrawNumber (w, 12,0,20);
		w.setStroke(Stroke.DOTTED); 
		w.drawLine(5, 33,0, 70);
		w.drawLine(0, 70,10, 67);
		w.drawLine(0, 70,10, 100);
	}

	if (ColorScheme == "Classic")
	{
		if (Model == "GT400")
			w.drawStringRect("Classic color scheme includes main color and 2 additional stripe colors (#2, #3)", 10, 165, 610, "center");
		else
			w.drawStringRect("Classic color scheme includes main color and 4 additional stripe colors (#2, #3, #4, #12)", 10, 165, 610, "center");
	}
	else
	{
		if (Model == "GT400")
		{
			DrawNumber (w, 1, 275,20);
			DrawNumber (w, 4, 275,101);
			DrawNumber (w, 12,0,20);
			w.setStroke(Stroke.DOTTED); 
			w.drawLine(5, 33,0, 70);
			w.drawLine(0, 70,10, 71);
			w.drawLine(0, 70,10, 87);
		}
		else
		{
			DrawNumber (w, 1, 275,15);
			DrawNumber (w, 5, 275,106);
		}
	}
}

function DrawPylon ()
{
	// fill
	p.setColor (C[2]);
	p.fillPolygon (
		new Array (18,108,118,17,18),
		new Array (70,52,70,76,70));

	p.setColor (C[3]);
	p.fillPolygon (
		new Array (17,118,130,16,17),
		new Array (76,70,88,82,76));

	p.setColor (C[7]);
	p.fillPolygon (
		new Array (30,130,105,108,18,30),
		new Array (10, 12, 48, 52,70,10));

	p.setColor (C[8]);
	p.fillPolygon (
		new Array (16,129,140, 10,16),
		new Array (82, 88,102,100,82));

	if (ColorScheme == "Multi")
	{
		p.setColor (C[12]);
		p.fillPolygon (
			new Array (19,106,108,18,19),
			new Array (66,47,52,70,66));
		p.fillPolygon (
			new Array (16,129,133,15,16),
			new Array (82,88,93,87,82));

		p.setColor ("#000000");

		if (ShowBorders == "1")
		{
			p.setStroke(1);
			p.drawLine (19,66,106,47);
			p.drawLine (15,87,133,93);
		}

		DrawNumber (p, 7, 90, 20);
		DrawNumber (p, 8, 125, 110);
		DrawNumber (p, 12, 0,30);

		p.setStroke(Stroke.DOTTED); 
		p.drawLine(140, 77,110, 77);
		p.drawLine(126, 109,100, 95);

		p.drawLine(5, 35, 5, 75);
		p.drawLine(5, 75, 15,70);
		p.drawLine(5, 75, 15, 85);
	}

	// outline
	p.setColor ("#000000");
	p.setStroke(2); 
	p.drawLine( 30,  10, 130,  12);
	p.drawLine(130,  12, 105,  48);
	p.drawLine(105,  48, 140, 102);
	p.drawLine(140, 102,  10, 100);
	p.drawLine( 10, 100,  30,  10);

	if (ShowBorders == "1")
	{
		p.drawLine( 18, 70,  108,  52);
		p.drawLine( 16, 82,  129,  88);

		p.setStroke(1); 
		p.drawLine( 17, 76,  118,  70);
	}

	DrawNumber (p, 2, 140,50);
	DrawNumber (p, 3, 140,70);

	p.setStroke(Stroke.DOTTED); 
	p.drawLine(140, 57,100, 62);
	p.drawLine(140, 77,110, 77);

	p.drawStringRect("<B>Pylon Cover</B>", 20, 110, 100, "center"); 
}

function DRAW()
{
	if (jg_n4 || window.opera && !document.defaultView)
	{
		alert('In Netscape 4 and Opera < version 7, the functionality\n"Draw into a canvas, even after the page has fully loaded" isn\'t available.\nThese browsers can only draw directly into the document\nwhile the page is parsed.');
		return;
	}

	if (w)
	{
		w.clear();

		C[1] = SelectedC[1];
		C[2] = SelectedC[2];

		if (ColorScheme == "Multi")
		{
			C[3] = SelectedC[3];
			C[4] = SelectedC[4];
			C[5] = SelectedC[5];
			C[6] = SelectedC[6];
			C[7] = SelectedC[7];
			C[8] = SelectedC[8];
			C[9] = SelectedC[9];
			C[10] = SelectedC[10];
			C[11] = SelectedC[11];
			C[12] = SelectedC[12];
			C[13] = SelectedC[13];
		}
		else
		{
			C[3] = C[1];
			C[4] = C[1];
			C[5] = C[1];
			C[6] = C[1];
			C[7] = C[1];
			C[8] = C[1];
			C[9] = C[1];
			C[10] = C[1];
			C[11] = C[1];
			C[12] = C[1];
			C[13] = C[1];

			if (Model == "Sport")
			{
				C[4] = C[2];
				C[5] = C[2];
				C[6] = C[2];
				C[12] = C[2];
				C[2] = C[1]
			}
			else if (Model == "SportII")
			{
				C[6] = C[2];
			}
			else if (Model == "SportIIS")
			{
				C[8] = C[2];
				C[3] = C[2];
				C[2] = C[1];
			}
			else if (Model == "Sprint")
			{
				C[7] = C[2];
			}
			else if (Model == "GT400")
			{
				C[3] = SelectedC[3];
			}
			else if (Model == "GT500")
			{
				C[3] = SelectedC[3];
				C[4] = SelectedC[4];
				C[12] = SelectedC[12];
			}
		}

		w.setColor("#000000");
		w.drawStringRect("<B>Wing And<BR>Ailerons</B>", 10, 130, 610, "center"); 

		var AileronColor,StabColor,ElColor;
		var TopRudderColor, BottomRudderColor, OptionalColor;

		if (Model=="SportII")
		{
			DrawSportII();
			AileronColor = 3;
			StabColor = 4;
			ElColor = 5;
			TopRudderColor = 6;
			BottomRudderColor = 7;
		}
		else if (Model=="Sport")
		{
			DrawSport ();
			AileronColor = 9;
			StabColor = 10;
			ElColor = 11;
			TopRudderColor = 12;
			BottomRudderColor = 13;
		}
		else if (Model=="SportIIS")
		{
			DrawSportIIS ();
			AileronColor = 5;
			StabColor = 6;
			ElColor = 7;
			TopRudderColor = 8;
			BottomRudderColor = 9;
			OptionalColor = 10;
		}
		else if (Model=="Sprint")
		{
			DrawSprint()
			AileronColor = 4;
			StabColor = 5;
			ElColor = 6;
			TopRudderColor = 7;
			BottomRudderColor = 8;
		}
		else if (Model=="GT400")
		{
			AileronColor = 5;
			OptionalColor = 6;
			StabColor = 10;
			ElColor = 9;
		}
		else if (Model=="GT500")
		{
			AileronColor = 6;
			OptionalColor = 7;
			StabColor = 10;
			ElColor = 11;
		}

		if (Model == "GT400" || Model == "GT500")
		{
			DrawGT ();
			DrawGTAilerons (AileronColor,OptionalColor);
		}
		else
			DrawMXAilerons (AileronColor);

		w.paint();

		if (t)
		{
			t.clear();
			if (Model == "GT400")
				DrawGTTailGroup (StabColor,ElColor,11,2,3,0,0);
			else if (Model == "GT500")
				DrawGTTailGroup (StabColor,ElColor,8,2,3,4,9);
			else
				DrawMXTailGroup (StabColor,ElColor,TopRudderColor, BottomRudderColor, OptionalColor);
			t.paint();

		}

		if (p)
		{
			p.clear();
			if (Model == "GT400")
				DrawPylon ();
			p.paint ();
		}
	}

	if (c)
	{
		c.clear();
		DrawCost ();
		c.paint ();
	}
}

InitColors ();
var w = new jsGraphics("Wing");
var t = new jsGraphics("Tail");
var p = new jsGraphics("Pylon");
var c = new jsGraphics("Cost");
w.setPrintable(true);
t.setPrintable(true);
p.setPrintable(true);
c.setPrintable(true);
DRAW();

