//<script LANGUAGE="JavaScript">
<!--
//-----------------------------------------------------------------------------
// Written - Bill Pitman
// Version - 1.00  -  10/05/2009
//           Original
//           Version 1.01           -
//           Add in extra GPS options and extr Weather Options
//-----------------------------------------------------------------------------
//The following are used to Store the Calculated Totals
//Do Not Change
var TotalExVAT = 0.00;              //Total Price for the Current Selection
var TotalVAT   = 0.00;              //Total VAT for the Current Selection
var TotalIncVAT= 0.00;              //Total Including VAT
//-------------------------------------------------------
//Array of Selected - used to submit all
var MySelection = new Array();
var NextSelection = 0;
//-------------------------------------------------------
function rwkErr(szzPage, szzDescription)
//================================================================
// Standard Error message called by all functions in the error
// situation
//================================================================
{
var swkMsg = "An error has occurred:";
	try
	{
		//Set up the Error message
		swkMsg = swkMsg + '\n\n' + 'Page: ' + szzPage;
		swkMsg = swkMsg + '\n' + 'Error Description: ' + szzDescription;
		swkMsg = swkMsg + '\n\n' + 'Click OK to continue';
		//Display the error message
		alert (swkMsg);
	}
	catch(err)
	{
		alert("Error calling the Error Function" + err.description);
	}
}
function rwkNumberFormat(dzzNumberToFormat, szzCurrencySymbol, lzzDecimalPlaces)
//================================================================
// FUNCTION rwkFormat
//
// Parameters dzzNumberToFormat - Number as a decimal
//            szzCurrencySymbol - 
//            lzzDecimalPlaces  - Number of Decimal Places
//
// Processing Returns the Number with the Currency Symbol in front
// and the correct number of Decimals
//================================================================
{
var owknum = new Number(dzzNumberToFormat);
var swkNumber;
var swkReturn;
var swkSpaceInFront=' ';
		try
		{
			//Format the Space infront - the idea is to align correctly on the right
			if (dzzNumberToFormat < 10)
			{
         swkSpaceInFront = '    ';
			}
			else
			{
          if (dzzNumberToFormat < 100)
          {
              swkSpaceInFront = '   ';
					}
					else
					{
							if (dzzNumberToFormat < 1000)
							{
                  swkSpaceInFront = '  ';
							}
							else
							{
									if (dzzNumberToFormat < 10000)
									{
                      swkSpaceInFront = ' ';
									}
									else
									{
                      swkSpaceInFront = '';
									}
							}
					}
			}
			
			//Format the number
			swkNumber = owknum.toFixed(lzzDecimalPlaces);
			swkReturn = szzCurrencySymbol + swkSpaceInFront + swkNumber;
			//Return the Formated number as a string
			return swkReturn;
		}
		catch(err)
		{
	    rwkErr('Error in Number Format', err.description);
		}
}
function rwkRound(dzzValue, lzzDecimals)
//================================================================
// The maths.round(x) - returns to the nearest Integer
// This will round to the specified Decimal Points
//================================================================
{
var dwkTemp1;
var dwkTemp2;
var dwkReturn;
	try
	{
		switch (lzzDecimals)
		{
     case 0:
          dwkTemp1 = dzzValue;
          dwkReturn =  Math.round(dwkTemp);
          break;
     case 1:
          dwkTemp1 = (dzzValue * 10);
          dwkTemp2 =  Math.round(dwkTemp1);
          dwkReturn = (dwkTemp2/10);
          break;
     case 2:
          dwkTemp1 = (dzzValue * 100);
          dwkTemp2 =  Math.round(dwkTemp1);
          dwkReturn = (dwkTemp2/100);
          break;
     case 3:
          dwkTemp1 = (dzzValue * 1000);
          dwkTemp2 =  Math.round(dwkTemp1);
          dwkReturn = (dwkTemp2/1000);
          break;
     case 4:
          dwkTemp1 = (dzzValue * 10000);
          dwkTemp2 =  Math.round(dwkTemp1);
          dwkReturn = (dwkTemp2/10000);
          break;
     case 5:
          dwkTemp1 = (dzzValue * 100000);
          dwkTemp2 =  Math.round(dwkTemp1);
          dwkReturn = (dwkTemp2/100000);
          break;
     case 6:
          dwkTemp1 = (dzzValue * 1000000);
          dwkTemp2 =  Math.round(dwkTemp1);
          dwkReturn = (dwkTemp2/1000000);
          break;
     case 7:
          dwkTemp1 = (dzzValue * 10000000);
          dwkTemp2 =  Math.round(dwkTemp1);
          dwkReturn = (dwkTemp2/10000000);
          break;
     case 8:
          dwkTemp1 = (dzzValue * 100000000);
          dwkTemp2 =  Math.round(dwkTemp1);
          dwkReturn = (dwkTemp2/100000000);
          break;
     case 9:
          dwkTemp1 = (dzzValue * 1000000000);
          dwkTemp2 =  Math.round(dwkTemp1);
          dwkReturn = (dwkTemp2/1000000000);
          break;
     default:
          dwkTemp1 = (dzzValue * 10000000000);
          dwkTemp2 =  Math.round(dwkTemp1);
          dwkReturn = (dwkTemp2 / 10000000000);
          break;
		}
		return dwkReturn;
	}
	catch(err)
	{
	    rwkErr('Round', err.description);
	}
}
function rwkGetVAT(dzzValue)
//================================================================
// Returns the VAT for the Passed Value
//================================================================
{
var dwkTemp = dzzValue * VATRate;
	try
	{
	return rwkRound(dwkTemp, 2);
	}
		catch(err)
	{
    rwkErr('GetVAT', err.description);
	}
}
function rwkAddVAT(dzzValue)
//================================================================
// Returns the VAT for the Passed Value
//================================================================
{
var dwkTemp = (dzzValue * VATRate);
var dwkTemp2;
	try
	{
		dwkTemp2 = (dzzValue + rwkRound(dwkTemp,2));
		return dwkTemp2;
	}
	catch(err)
	{
	    rwkErr('AddVAT', err.description);
	}
}
function rwkColumn1( szzDesc1, szzDesc2)
//================================================================
// Function rwkColumn 1
// HTML to start and End the Cell
//
// Parameters - szzDesc1 - The Main Title can have included HTML
//              szzDesc2 - The Sub Heading will be done at a smaller
//              Font may include HTML
// returns - generated HTML
//================================================================
{
var swkReturn;
	try
	{
		//Column 1 - Description
		//Start the Cell
		swkReturn = '<td WIDTH="209">';
		//Set the Cell Font Colour
		swkReturn = swkReturn + '  <font COLOR="#000000" SIZE="2">';
		//Display the Main Description (line 1)
		swkReturn = swkReturn + '    <b>' + szzDesc1 + '</b>';
		swkReturn = swkReturn + '  </font>';
		//Throw a new line
		swkReturn = swkReturn + '  <br>'
		//Set font and colour for the sub Description
		swkReturn = swkReturn + '  <font SIZE="1" COLOR="#0000FF">';
		swkReturn = swkReturn + '   ' + szzDesc2;
		swkReturn = swkReturn + '  </font>';
		//End the Cell
		swkReturn = swkReturn + '</td>';
		//Return the HTML
		return swkReturn;
	}
	catch(err)
	{
	  rwkErr('Column1 Description', err.description);
	}
}
function rwkColumn2or3(dzzValue)
//================================================================
// Function rwkColumn2or3
// HTML to start and End a Cell
//
// dzzValue - the Passed Price to display
//
//================================================================
{
var swkReturn;
		try
		{
		  swkReturn = '';
			//Start the Cell
			swkReturn = swkReturn + '<td WIDTH="70" ALIGN="CENTER">';
			//Set the Colour and Fint Size
			swkReturn = swkReturn + '  <font SIZE="2" COLOR="#0000FF">';
			//Put in the Value
			swkReturn = swkReturn +     dzzValue;
			swkReturn = swkReturn + '  </font>';
			//Close the Cell
			swkReturn = swkReturn + '</td>';
			//Return the HTML
			return swkReturn;
		}
		catch(err)
		{
		    rwkErr('Column2 or 3 Prices', err.description);
		}
	}
function rwkColumnNA()
//================================================================
// Function rwkColumnNA
// HTML to start and End a Cell
// with the characters NA (Not applicable) for use in USD VAT
//
//================================================================
{
var swkReturn;
		try
		{
		  swkReturn = '';
			//Start the Cell
			swkReturn = swkReturn + '<td WIDTH="70" ALIGN="CENTER">';
			//Set the Colour and Fint Size
			swkReturn = swkReturn + '  <font SIZE="2" COLOR="#0000FF">';
			//Put in the Value
			swkReturn = swkReturn + '   N/A';
			swkReturn = swkReturn + '  </font>';
			//Close the Cell
			swkReturn = swkReturn + '</td>';
			//Return the HTML
			return swkReturn;
		}
		catch(err)
		{
		    rwkErr('ColumnNA', err.description);
		}
	}
function rwkColumn4(szzFormID, szzExtraStuff, szzDescription, szzProductCode, dzzPrice, dzzVAT)
//================================================================
// Function rwkColumn4
//
// Parameters - szzExtraStuff - HTML to put at the front of the
//                              Cell column
//            - szzDescription - Product Description shown on the
//                               Invoice
//            - szzProductCode - ProductCode used by PayPal
//            - dzzPrice - Price of the Item in the PayPal
//            - dzzVAT   - VAT value to use   !Bill This Could Be calculated!!
//================================================================
{
var swkReturn;
var swkOnsubmitValidation;
		try
		{
			swkReturn = '';
			//Start th eCell
			swkReturn = swkReturn + '<td WIDTH="328">';
			// Start up the Form
			swkReturn = swkReturn + '  <form ID="' + szzFormID + '" TARGET="paypal" ACTION="https://www.paypal.com/cgi-bin/webscr" METHOD="post"';
			// For cetain Buttons it will be necessary to vlidate the Data entered before posting
			// Eg for a Chart - is there a chart number
			//    for an upgrade from Navplanner has the Serial number been entered
			swkOnsubmitValidation = '';
			switch (szzFormID)
			{
			       case 'UpgradeFromNavPlanner':
			            //Add the Validation Function Here - is tehre a Serial Numebr Entered?
			            swkOnsubmitValidation = ' onSubmit="return rwkValidateSerialNo()"';
			            break;
			       case 'NavGoldXL3':
			            //Add the Validation here - is there a chart number entered?
			            swkOnsubmitValidation = ' onsubmit="return rwkValidateChartNumber()"';
			            break;
			       default:
             			swkOnsubmitValidation = '';
			}
			// Add the Closing Chevron
			swkReturn = swkReturn + swkOnsubmitValidation + '>';
	    // Put in the Extra Stuff
	    swkReturn = swkReturn + szzExtraStuff;
	    // Now all the PayPal Stuff
	    swkReturn = swkReturn + '    <input name="cmd" value="_cart" type="hidden">';
      swkReturn = swkReturn + '    <input name="business" value="UVP5NRCM42H3W" type="hidden">';
      swkReturn = swkReturn + '    <input name="lc" value="GB" type="hidden">';
      //Item Description
      swkReturn = swkReturn + '    <input name="item_name" value="' + szzDescription + '" type="hidden">';
      //Item Product Code
      swkReturn = swkReturn + '    <input name="item_number" value="' + szzProductCode + '" type="hidden">';
      //Price Ex Vat
      swkReturn = swkReturn + '    <input name="amount" value="' + dzzPrice + '" type="hidden">';
      //Currency
      swkReturn = swkReturn + '    <input name="currency_code" value="' + CurrencyString[Currency] + '" type="hidden">';
      swkReturn = swkReturn + '    <input name="button_subtype" value="products" type="hidden">';
      swkReturn = swkReturn + '    <input name="cn" value="Add special instructions to the seller" type="hidden">';
      //Shipping Type
      swkReturn = swkReturn + '    <input name="no_shipping" value="2" type="hidden">';
      swkReturn = swkReturn + '    <input name="rm" value="1" type="hidden">';
      //Return Page 
      swkReturn = swkReturn + '    <input name="return" value="' + PCPReturnPage + '" type="hidden">';
      //Return Page if Cancel
      swkReturn = swkReturn + '    <input name="cancel_return" value="' + PCPCancelPage + '" type="hidden">';
      //Weight
      swkReturn = swkReturn + '    <input name="weight" value="0.1" type="hidden">';
      swkReturn = swkReturn + '    <input name="weight_unit" value="kgs" type="hidden">';
      swkReturn = swkReturn + '    <input name="add" value="1" type="hidden">';
      swkReturn = swkReturn + '    <input name="bn" value="PP-ShopCartBF:btn_cart_SM.gif:NonHosted" type="hidden">';
      swkReturn = swkReturn + '    <input src="https://www.paypal.com/en_GB/i/btn/btn_cart_SM.gif" name="submit" alt="PayPal - The safer, easier way to pay online." border="0" type="image">';
      swkReturn = swkReturn + '    <img alt="" src="https://www.paypal.com/en_GB/i/scr/pixel.gif" border="0" width="1" height="1">';
	    //End The Form
	    swkReturn = swkReturn + '  </form>';
	    //End The Cell
	    swkReturn = swkReturn + ' </td>';
			// Return teh HTML
			return swkReturn;
		}
		catch(err)
		{
		    rwkErr('Column4 PayPal Stuff', err.description);
		}
}
function rwkSoftWareRow(lzzOption)
//================================================================
// FUNCTION rwkSoftWareRow
// Parameters lzzOption - used to select the Line to return
//            1 - PC Plotter 5000
//            2 - Upograde to PC Plotter 5000 from NavPlanner
//
// Process:   Selects the correct Option (switch)
//            Starts the Row
//            Sets up the First cell (Col1) - Description
//            Sets up the second Cell (Col2) - Price
//            Sets up the third cell (Col3) - Price Inc VAT
//            Sets up the HTML for any Extra Stuff to show with the PayPal Button
//            Sets up the Fourth cell (col4)
//            Ends the Row
//================================================================
{
var swkReturn;
var swkPayPalExtraStuff;
var swkCostWithCurrency;
		try
		{
			//Start the Row
			swkReturn = '<tr ALIGN="LEFT" VALIGN="TOP">';
			//Now set up for the option
			switch (lzzOption)
			{
			case 2:  // Upgrade From NavPlanner
					//Column 1 - Description
					swkReturn = swkReturn + rwkColumn1('Upgrade to PC Plotter 5000', 'from Navionics Navplanner');
					//Column 2 Price Ex VAT
					swkCostWithCurrency = rwkNumberFormat(UpgradeToPCPPrice[Currency] ,CurrencySymbol[Currency] ,2);
					swkReturn = swkReturn + rwkColumn2or3(swkCostWithCurrency);
					//Column 3 Price Inc VAT
					if (UseVAT[Currency] == 0)
					{
						swkReturn = swkReturn + rwkColumnNA();
					}
					else
					{
					  swkCostWithCurrency = rwkNumberFormat(rwkAddVAT(UpgradeToPCPPrice[Currency]) ,CurrencySymbol[Currency] ,2);
					  swkReturn = swkReturn + rwkColumn2or3(swkCostWithCurrency);
					}
		    		//Extra Stuff to go before the PayPal Stuff in the same Cell
	    		swkPayPalExtraStuff = '';
	    		swkPayPalExtraStuff = swkPayPalExtraStuff + '    <table>';
	    		swkPayPalExtraStuff = swkPayPalExtraStuff + '      <tr>';
	    		swkPayPalExtraStuff = swkPayPalExtraStuff + '        <td>';
	    		swkPayPalExtraStuff = swkPayPalExtraStuff + '          <input TYPE="hidden" NAME="on0" VALUE="Order only accepted with NavPlanner serial number">';
	    		swkPayPalExtraStuff = swkPayPalExtraStuff + '          <font SIZE="-2">Order only accepted with NavPlanner serial number</font>';
	    		swkPayPalExtraStuff = swkPayPalExtraStuff + '        </td>';
	    		swkPayPalExtraStuff = swkPayPalExtraStuff + '        <td>';
	    		swkPayPalExtraStuff = swkPayPalExtraStuff + '          <input TYPE="hidden" NAME="add2" VALUE="1">';
	    		swkPayPalExtraStuff = swkPayPalExtraStuff + '          <input TYPE="text" NAME="os0" MAXLENGTH="200">';
	    		swkPayPalExtraStuff = swkPayPalExtraStuff + '        </td>';
	    		swkPayPalExtraStuff = swkPayPalExtraStuff + '      </tr>';
	    		swkPayPalExtraStuff = swkPayPalExtraStuff + '    </table>';
	    		//Column 4 - PayPal Stuff
	    		swkReturn = swkReturn + rwkColumn4('UpgradeFromNavPlanner' ,swkPayPalExtraStuff,'Upgrade from Navplanner','PCPUpgradeFromNavplanner', UpgradeToPCPPrice[Currency], rwkGetVAT(UpgradeToPCPPrice));
	    		MySelection[NextSelection] = 'UpgradeFromNavPlanner';
	    		NextSelection = NextSelection + 1;
	    		break;
	    		//
			default: //1 PCPlotter 5000
					//
					//Column 1 - Description
					swkReturn = swkReturn + rwkColumn1 ('PC Plotter 5000', '(includes CD, USB card reader and  key).<br>For AIS receivers, see below.');
					//Column 2 - Ex VAT
					swkCostWithCurrency = rwkNumberFormat(PCP5000Price[Currency] ,CurrencySymbol[Currency] ,2);
					swkReturn = swkReturn + rwkColumn2or3(swkCostWithCurrency);
					//Column 3 - Inc VAT
					if (UseVAT[Currency] == 0)
					{
						swkReturn = swkReturn + rwkColumnNA();
					}
					else
					{
					  swkCostWithCurrency = rwkNumberFormat(rwkAddVAT(PCP5000Price[Currency]) ,CurrencySymbol[Currency] ,2);
						swkReturn = swkReturn + rwkColumn2or3(swkCostWithCurrency);
					}
						//Extra Stuff
					swkPayPalExtraStuff = '';
					//Column 4 - PayPal Stuff
	        swkReturn = swkReturn + rwkColumn4('PCP5000AndReader', swkPayPalExtraStuff,'PCP5000 (Inc Card Reader)','PCP5000+Reader', PCP5000Price[Currency], rwkGetVAT(PCP5000Price[Currency]));
	    		MySelection[NextSelection] = 'PCP5000AndReader';
	    		NextSelection = NextSelection + 1;
			}
			//End the row
			swkReturn = swkReturn + '</tr>';
			// Return the HTML
			return swkReturn;
		}
		catch(err)
		{
		    rwkErr('Software Row, Option(' + lzzOption + ')', err.description);
		}
}
function rwkChartRow(lzzOption)
//================================================================
// FUNCTION rwkChartRow
// Parameters lzzOption - used to select the Line to return
//            28XG - Chart 28XG
//            23XG - Chart 23XG
//            46XG - Chart 46XG
//           9999 - chart required but will need to select
//================================================================
{
var swkReturn;
var swkExtraStuff;
var swkChartCode;
var swkCostWithCurrency;
		try
		{
			//Set up the Specified Chart Code
			switch (lzzOption)
			{
			case '28XG':
	        swkChartCode = '28XG';
	        break;
			case '23XG':
	        swkChartCode = '23XG';
	        break;
			case '46XG':
					swkChartCode = '46XG';
					break;
			default: //None Specified
					swkChartCode = '';
			}
			//Write the HTML Code that will return the required Row in the Contents Table
			//Start the Row
			swkReturn = '<tr ALIGN="LEFT" VALIGN="TOP">';
			//Column 1 - Description
			swkReturn = swkReturn + rwkColumn1 ('Navionics GOLD Chart XL3/9', '(NOTE: Charts can only be returned for exchange if faulty. No refunds given.)');
			//Column 2 - Price Ex VAT
			swkCostWithCurrency = rwkNumberFormat(NavionicsChartXL3Price[Currency] ,CurrencySymbol[Currency] ,2);
			swkReturn = swkReturn + rwkColumn2or3(swkCostWithCurrency);
			//Column 3 - Price inc VAT
			if (UseVAT[Currency] == 0)
			{
				swkReturn = swkReturn + rwkColumnNA();
			}
			else
			{
				swkCostWithCurrency = rwkNumberFormat(rwkAddVAT(NavionicsChartXL3Price[Currency]) ,CurrencySymbol[Currency] ,2);
				swkReturn = swkReturn + rwkColumn2or3(swkCostWithCurrency);
			}
			//Extra Stuff to go infront of the PayPal button
			swkExtraStuff = '';
			swkExtraStuff = swkExtraStuff + '      <table WIDTH="324">';
			swkExtraStuff = swkExtraStuff + '        <tr>';
			swkExtraStuff = swkExtraStuff + '          <td>';
			swkExtraStuff = swkExtraStuff + '            <font COLOR="#999999">';
			swkExtraStuff = swkExtraStuff + '              <input TYPE="hidden" NAME="on0" VALUE="Cartridge Type">';
			swkExtraStuff = swkExtraStuff + '              <font SIZE="-2">';
			swkExtraStuff = swkExtraStuff + '                Cartridge Type';
			swkExtraStuff = swkExtraStuff + '              </font>';
			swkExtraStuff = swkExtraStuff + '            </font>';
			swkExtraStuff = swkExtraStuff + '          </td>';
			swkExtraStuff = swkExtraStuff + '          <td>';
			swkExtraStuff = swkExtraStuff + '            <select NAME="os0">';
			swkExtraStuff = swkExtraStuff + '              <option VALUE="CF  (Compact Flash)">CF (Compact Flash)';
			swkExtraStuff = swkExtraStuff + '              <option VALUE="SD  (Secure Digital)">SD (Secure Digital)';
			swkExtraStuff = swkExtraStuff + '              <option VALUE="MMC (MultiMedia Card)">MMC (MultiMedia Card)';
			swkExtraStuff = swkExtraStuff + '            </select> ';
			swkExtraStuff = swkExtraStuff + '          </td>';
			swkExtraStuff = swkExtraStuff + '        </tr>';
			swkExtraStuff = swkExtraStuff + '        <tr>';
			swkExtraStuff = swkExtraStuff + '          <td>';
			swkExtraStuff = swkExtraStuff + '            <font COLOR="#999999">';
			swkExtraStuff = swkExtraStuff + '              <input TYPE="hidden" NAME="on1" VALUE="Chart Number">';
			swkExtraStuff = swkExtraStuff + '              <font SIZE="-2">';
			swkExtraStuff = swkExtraStuff + '                Chart Number<br>';
			swkExtraStuff = swkExtraStuff + '              </font>';
			swkExtraStuff = swkExtraStuff + '            </font>';
			swkExtraStuff = swkExtraStuff + '          </td>';
			swkExtraStuff = swkExtraStuff + '          <td>';
			swkExtraStuff = swkExtraStuff + '            <input TYPE="text" NAME="os1" MAXLENGTH="200"';
			swkExtraStuff = swkExtraStuff + ' VALUE="' + swkChartCode + '">';
			swkExtraStuff = swkExtraStuff + '            <font COLOR="#999999" SIZE="2">';
			swkExtraStuff = swkExtraStuff + '              <a HREF="http://www.navionics.com/GoldCatalog.asp" TARGET="_blank">';
			swkExtraStuff = swkExtraStuff + '                Find Chart Code';
			swkExtraStuff = swkExtraStuff + '              </a>';
			swkExtraStuff = swkExtraStuff + '            </font>';
			swkExtraStuff = swkExtraStuff + '          </td>';
			swkExtraStuff = swkExtraStuff + '        </tr>';
			swkExtraStuff = swkExtraStuff + '      </table>';
			//Column 4 - PayPal stuff Catridge Format and Chart Selection box
    	swkReturn = swkReturn + rwkColumn4('NavGoldXL3', swkExtraStuff,'Navionics Gold chart XL3','NavGoldXL3', NavionicsChartXL3Price[Currency], rwkGetVAT(NavionicsChartXL3Price[Currency]));
  		MySelection[NextSelection] = 'NavGoldXL3';
  		NextSelection = NextSelection + 1;
			//End the row
			swkReturn = swkReturn + '</tr>';
			//Return The HTML as a String
			return swkReturn;
		}
		catch(err)
		{
			rwkErr('ChartRow (' + lzzOption + ')', err.description);
		}
}
function rwkGPSRow(lzzOption)
//================================================================
// FUNCTION rwkGPSRow
// Parameters lzzOption - used to select the Line to return
//
//================================================================
{
var swkReturn;
var swkExtraStuff;
var swkCostWithCurrency;
		try
		{
			 //Start the Row
			 swkReturn = '<tr ALIGN="LEFT" VALIGN="TOP">';
			 //Column 1 - Description
			 swkReturn = swkReturn + rwkColumn1('Evermore SA-920', 'Sirf III GPS<br>(USB-6m cable)');
			 //Column 2 - Price Ex VAT
			 swkCostWithCurrency = rwkNumberFormat(EvermoreSA920Price[Currency] ,CurrencySymbol[Currency] ,2);
			 swkReturn = swkReturn + rwkColumn2or3(swkCostWithCurrency);
			 //Column 3 - Price INC VAT
			 if (UseVAT[Currency] == 0)
			 {
		  		swkReturn = swkReturn + rwkColumnNA();
			 }
			 else
			 {
  		 	  swkCostWithCurrency = rwkNumberFormat(rwkAddVAT(EvermoreSA920Price[Currency]) ,CurrencySymbol[Currency] ,2);
			    swkReturn = swkReturn + rwkColumn2or3(swkCostWithCurrency);
			 }
			 //Extra Stuff
			 swkExtraStuff = '';
			 //Column 4 - PayPal Stuff
			 swkReturn = swkReturn + rwkColumn4('SA920USB', swkExtraStuff,'Evermore SA-920 GPS (USB)','SA-920 USB', EvermoreSA920Price[Currency], rwkGetVAT(EvermoreSA920Price[Currency]));
  		MySelection[NextSelection] = 'SA920USB';
  		NextSelection = NextSelection + 1;
			 //End the row
			 swkReturn = swkReturn + '</tr>';
			 //Return the HTML
			 return swkReturn;
		}
		catch(err)
		{
			rwkErr('GPSRow (' + lzzOption + ')', err.description);
		}
}
function rwkAISRow(lzzOption)
//================================================================
// FUNCTION rwkAISRow
// Parameters lzzOption - used to select the Line to return
//
//================================================================
{
var swkReturn;
var swkExtraStuff;
var swkCostWithCurrency;
		try
		{
			 //Start the Row
			 swkReturn = '<tr ALIGN="LEFT" VALIGN="TOP">';
			 //Column 1 - Description
			 swkReturn = swkReturn + rwkColumn1('Comar AIS-2-USB', 'Plugs directly into PC and just needs an antenna and UHF Socket to BNC plug adapter.');
			 //Column 2 - Price Ex VAT
			 swkCostWithCurrency = rwkNumberFormat(ComarAIS2USBPrice[Currency] ,CurrencySymbol[Currency] ,2);
			 swkReturn = swkReturn + rwkColumn2or3(swkCostWithCurrency);
			 //Column 3 - Price INC VAT
			 if (UseVAT[Currency] == 0)
			 {
		  		swkReturn = swkReturn + rwkColumnNA();
			 }
			 else
			 {
			   swkCostWithCurrency = rwkNumberFormat(rwkAddVAT(ComarAIS2USBPrice[Currency]) ,CurrencySymbol[Currency] ,2);
			   swkReturn = swkReturn + rwkColumn2or3(swkCostWithCurrency);
			 }
			 //Extra Stuff
			 swkExtraStuff = '';
			 //Column 4 - PayPal Stuff
			 swkReturn = swkReturn + rwkColumn4('AISComarAIS2USB',swkExtraStuff,'AIS Comar AIS-2-USB','AIS Comar AIS-2-USB', ComarAIS2USBPrice[Currency], rwkGetVAT(ComarAIS2USBPrice[Currency]));
  		 MySelection[NextSelection] = 'AISComarAIS2USB';
  		 NextSelection = NextSelection + 1;
			 //End the row
			 swkReturn = swkReturn + '</tr>';
			 //Return the HTML
			 return swkReturn;
		}
		catch(err)
		{
			rwkErr('AISRow (' + lzzOption + ')', err.description);
		}
}
function rwkAISMulti(lzzOption)
//================================================================
// FUNCTION rwkAISMulti
// Parameters lzzOption - used to allow selecttion of opeions later
//
//   Comar AIS-Multi (rrp £260) USB and NMEA and includes an antenna splitter in the unit.
//
//================================================================
{
var swkReturn;
var swkExtraStuff;
var swkCostWithCurrency;
		try
		{
			 //Start the Row
			 swkReturn = '<tr ALIGN="LEFT" VALIGN="TOP">';
			 //Column 1 - Description
			 swkReturn = swkReturn + rwkColumn1('Comar AIS-Multi', '(rrp £260) USB and NMEA and includes an antenna splitter in the unit.');
			 //Column 2 - Price Ex VAT
			 swkCostWithCurrency = rwkNumberFormat(ComarAISMultiPrice[Currency] ,CurrencySymbol[Currency] ,2);
			 swkReturn = swkReturn + rwkColumn2or3(swkCostWithCurrency);
			 //Column 3 - Price INC VAT
			 if (UseVAT[Currency] == 0)
			 {
		  		swkReturn = swkReturn + rwkColumnNA();
			 }
			 else
			 {
			   swkCostWithCurrency = rwkNumberFormat(rwkAddVAT(ComarAISMultiPrice[Currency]) ,CurrencySymbol[Currency] ,2);
			   swkReturn = swkReturn + rwkColumn2or3(swkCostWithCurrency);
			 }
			 //Extra Stuff
			 swkExtraStuff = '';
			 //Column 4 - PayPal Stuff
			 swkReturn = swkReturn + rwkColumn4('ComarAISMULTI', swkExtraStuff,'AIS Comar AIS-MULTI','ComarAIS-MULTI', ComarAISMultiPrice[Currency], rwkGetVAT(ComarAISMultiPrice[Currency]));
  		 MySelection[NextSelection] = 'ComarAISMULTI';
  		 NextSelection = NextSelection + 1;
			 //End the row
			 swkReturn = swkReturn + '</tr>';
			 //Return the HTML
			 return swkReturn;
		}
		catch(err)
		{
			 rwkErr('Comar AIS-Multi (' + lzzOption + ')', err.description);
		}
}
function rwkAerialSplitterRow(lzzOption)
//================================================================
// FUNCTION rwkAerialSplitterRow
// Parameters lzzOption - used to select the Line to return
//
//================================================================
{
var swkReturn;
var swkExtraStuff;
var swkCostWithCurrency;
		try
		{
			 //Start the Row
			 swkReturn = '<tr ALIGN="LEFT" VALIGN="TOP">';
			 //Column 1 - Description
			 swkReturn = swkReturn + rwkColumn1('Comar ASR100', 'Receive only splitter');
			 //Column 2 - Price Ex VAT
			 swkCostWithCurrency = rwkNumberFormat(ComarASR100Price[Currency] ,CurrencySymbol[Currency] ,2);
			 swkReturn = swkReturn + rwkColumn2or3(swkCostWithCurrency);
			 //Column 3 - Price INC VAT
			 if (UseVAT[Currency] == 0)
			 {
		  		swkReturn = swkReturn + rwkColumnNA();
			 }
			 else
			 {
			   swkCostWithCurrency = rwkNumberFormat(rwkAddVAT(ComarASR100Price[Currency]) ,CurrencySymbol[Currency] ,2);
			   swkReturn = swkReturn + rwkColumn2or3(swkCostWithCurrency);
			 }
			 //Extra Stuff
			 swkExtraStuff = '';
			 //Column 4 - PayPal Stuff
			 swkReturn = swkReturn + rwkColumn4('ComarASR100', swkExtraStuff,'Comar ASR100 Antenna Splitter','Comar ASR100 Antenna Splitter', ComarASR100Price[Currency], rwkGetVAT(ComarASR100Price[Currency]));
  		 MySelection[NextSelection] = 'ComarASR100';
  		 NextSelection = NextSelection + 1;
			 //End the row
			 swkReturn = swkReturn + '</tr>';
			 //Return the HTML
			 return swkReturn;
		}
		catch(err)
		{
			 rwkErr('AerialSplitterRow (' + lzzOption + ')', err.description);
		}
}
function rwkPostAndPacking(lzzOption)
//================================================================
// FUNCTION rwkPostAndPacking
// Parameters lzzOption - used to select the Line to return
//            1 - UK Free
//            9 - Rest of the World
//================================================================
{
var swkReturn;
var swkExtraStuff;
var swkCostWithCurrency;
		try
		{
			 //Start the Row
			 swkReturn = '<tr ALIGN="LEFT" VALIGN="TOP">';
			 //Set up the correct HTML for the required row
			 switch (lzzOption)
			 {
			 case 1: // UK - Free
			 		 //Column 1 - Description
					 swkReturn = swkReturn + rwkColumn1('Postage & Packaging', 'PC Plotter 5000 + other items on the same order - within UK');
					 //Column 2 - Price Ex VAT
			     swkCostWithCurrency = rwkNumberFormat(PandPPrice[Currency] ,CurrencySymbol[Currency] ,2);
			     swkReturn = swkReturn + rwkColumn2or3(swkCostWithCurrency);
				   //swkReturn = swkReturn + rwkColumn2or3(PandPPrice[Currency]);
					 //Column 3 - Price INC VAT
			     if (UseVAT[Currency] == 0)
			     {
		  		    swkReturn = swkReturn + rwkColumnNA();
			     }
			     else
			     {
			       swkCostWithCurrency = rwkNumberFormat(rwkAddVAT(PandPPrice[Currency]) ,CurrencySymbol[Currency] ,2);
			       swkReturn = swkReturn + rwkColumn2or3(swkCostWithCurrency);
					 }
				   //swkReturn = swkReturn + rwkColumn2or3(rwkAddVAT(PandPPrice[Currency]));
					 //Extra Stuff
					 swkExtraStuff = '';
					 //Column 4 - PayPal Stuff
					 swkReturn = swkReturn + rwkColumn4('PCPPostageFree', swkExtraStuff,'Postage Free','PCPPostageFree', PandPPrice[Currency], rwkGetVAT(PandPPrice[Currency]));
		  		 MySelection[NextSelection] = 'PCPPostageFree';
		  		 NextSelection = NextSelection + 1;
					 //
					 break;
			 default: //9 Rest of the World
					 //
			 		 //Column 1 - Description
					 swkReturn = swkReturn + rwkColumn1('Postage & Packaging ', 'on all orders going outside UK');
					 //Column 2 - Price Ex VAT
			     swkCostWithCurrency = rwkNumberFormat(PandPRoWPrice[Currency] ,CurrencySymbol[Currency] ,2);
			     swkReturn = swkReturn + rwkColumn2or3(swkCostWithCurrency);
				   //swkReturn = swkReturn + rwkColumn2or3(PandPRoWPrice[Currency]);
					 //Column 3 - Price INC VAT
			     if (UseVAT[Currency] == 0)
			     {
		  		    swkReturn = swkReturn + rwkColumnNA();
			     }
			     else
			     {
					     swkCostWithCurrency = rwkNumberFormat(rwkAddVAT(PandPRoWPrice[Currency]) ,CurrencySymbol[Currency] ,2);
			         swkReturn = swkReturn + rwkColumn2or3(swkCostWithCurrency);
			     }
				   //swkReturn = swkReturn + rwkColumn2or3(rwkAddVAT(PandPRoWPrice[Currency]));
					 //Extra Stuff
					 swkExtraStuff = '';
					 //Column 4 - PayPal Stuff
					 swkReturn = swkReturn + rwkColumn4('PCPPostageAbroad', swkExtraStuff,'Postage outside UK','PCPPostageAbroad', PandPRoWPrice[Currency], rwkGetVAT(PandPRoWPrice[Currency]));
		  		 MySelection[NextSelection] = 'PCPPostageAbroad';
		  		 NextSelection = NextSelection + 1;
			 }
			 //End the row
			 swkReturn = swkReturn + '</tr>';
			 //Return the HTML
			 return swkReturn;
		}
		catch(err)
		{
			 rwkErr('Post & Packing Row (' + lzzOption + ')', err.description);
		}
}
function rwkContentTableHeading()
//================================================================
// Returns the Full Row to go in the Table
// 4 Columns Wide
//================================================================
{
var swkReturn
		try
		{
				//Start a new Row in the Container
				swkReturn = '<tr>';
				//1st Column of Container Row
				swkReturn = swkReturn + '  <td  BGCOLOR="#333333" WIDTH="1">&nbsp;</td>';
				//2nd Column of Container Row
				swkReturn = swkReturn + '  <td BGCOLOR="#FFFFFF" ALIGN="LEFT" VALIGN="TOP">';
				//Start the Content Table - which will be inside the Conainer Cell Column 2
				swkReturn = swkReturn + '    <table WIDTH="760" BORDER="0" CELLSPACING="0" CELLPADDING="3" BORDERCOLOR="#666666" ALIGN="LEFT">';
				//1st Row of the Content Table - will have 4 Columns
				swkReturn = swkReturn + '      <tr ALIGN="LEFT" VALIGN="BOTTOM" BGCOLOR="#CCCCCC">';
				//Column 1 (Description)
				swkReturn = swkReturn + '        <td  VALIGN="BOTTOM">';
				swkReturn = swkReturn + '          <font SIZE="2" FACE="Arial, Helvetica, sans-serif" COLOR="#FFFFFF">';
				swkReturn = swkReturn + '            <b>Description</b>';
				swkReturn = swkReturn + '          </font>';
				swkReturn = swkReturn + '        </td>';
				//Column 2 (Price EX VAT))
				swkReturn = swkReturn + '        <td ALIGN="CENTER"  VALIGN="BOTTOM">';
				swkReturn = swkReturn + '          <font FACE="Arial, Helvetica, sans-serif" SIZE="1" COLOR="#FFFFFF">';
				swkReturn = swkReturn + '            <b>Price<br>Ex VAT (' + CurrencySymbol[Currency] + ')</b>';
				swkReturn = swkReturn + '          </font>';
				swkReturn = swkReturn + '        </td>';
				//Column 3 (Price Inc VAT)
				swkReturn = swkReturn + '        <td ALIGN="CENTER"  VALIGN="BOTTOM">';
				swkReturn = swkReturn + '          <font FACE="Arial, Helvetica, sans-serif" SIZE="1" COLOR="#FFFFFF">';
				swkReturn = swkReturn + '            <b>Price<br>Inc VAT (' + CurrencySymbol[Currency] + ')</b>';
				swkReturn = swkReturn + '          </font>';
				swkReturn = swkReturn + '        </td>';
				//Column 4 (PayPal Stuff and other instructions)
				swkReturn = swkReturn + '        <td ALIGN="RIGHT"  VALIGN="BOTTOM">';
				swkReturn = swkReturn + '          <form TARGET="paypal" ACTION="https://www.paypal.com/cgi-bin/webscr" METHOD="post">';
				swkReturn = swkReturn + '            <input TYPE="hidden" NAME="cmd" VALUE="_cart">';
				swkReturn = swkReturn + '            <input TYPE="hidden" NAME="business" VALUE="accounts@futuredata.com">';
				swkReturn = swkReturn + '            <input TYPE="image" SRC="https://www.paypal.com/en_GB/i/btn/view_cart_02.gif" BORDER="0" NAME="submit" ALT="Make payments with PayPal - its fast, free and secure!" ALIGN="BOTTOM">';
				swkReturn = swkReturn + '            <input TYPE="hidden" NAME="display" VALUE="1"><br>';
				//swkReturn = swkReturn + '            <font SIZE="2" FACE="Arial, Helvetica, sans-serif">';
				//swkReturn = swkReturn + '              <b>Before </b><font COLOR="#FFFFFF">Check Out - </font><b>Add Postage &amp; Packing</b>';
				//swkReturn = swkReturn + '            </font>';
				swkReturn = swkReturn + '          </form>';
				swkReturn = swkReturn + '        </td>';
				//End the Row in the Content Table
				swkReturn = swkReturn + '</tr>';
				//Return the HTML
				return swkReturn
		}
		catch(err)
		{
			 rwkErr('Content table Heading', err.description);
		}
}
function rwkContentTableEnd()
//================================================================
// Returns the Ending of the Content Table
//================================================================
{
var swkReturn;
		try
		{
				//Start the LAST row in the Content Table
				swkReturn = '<tr ALIGN="LEFT" VALIGN="TOP" BGCOLOR="#CCCCCC">';
				// Content Column 1
				swkReturn = swkReturn + '<td>';
				//swkReturn = swkReturn + '  <font SIZE="2" FACE="Arial, Helvetica, sans-serif" COLOR="#FFFFFF">';
				//swkReturn = swkReturn + '    <b>Description</b>';
				//swkReturn = swkReturn + '  </font>';
				swkReturn = swkReturn + '</td>';
				// Content Column 2
				swkReturn = swkReturn + '<td ALIGN="CENTER">';
				//swkReturn = swkReturn + '  <font FACE="Arial, Helvetica, sans-serif" SIZE="1" COLOR="#FFFFFF">';
				//swkReturn = swkReturn + '    <b>Price<br>Ex VAT (' + CurrencySymbol[Currency] + ')</b>';
				//swkReturn = swkReturn + '  </font>';
				swkReturn = swkReturn + '</td>';
				// Content Column 3
				swkReturn = swkReturn + '<td ALIGN="CENTER">';
				//swkReturn = swkReturn + '  <font FACE="Arial, Helvetica, sans-serif" SIZE="1" COLOR="#FFFFFF">';
				//swkReturn = swkReturn + '    <b>Price<br>Inc VAT (' + CurrencySymbol[Currency] + ')</b>';
				//swkReturn = swkReturn + '  </font>';
				swkReturn = swkReturn + '</td>';
				// Content Column 4
				swkReturn = swkReturn + '<td ALIGN="RIGHT">';
				//swkReturn = swkReturn + '  <form TARGET="paypal" ACTION="https://www.paypal.com/cgi-bin/webscr" METHOD="post">';
				//swkReturn = swkReturn + '    <input TYPE="hidden" NAME="cmd" VALUE="_cart">';
				//swkReturn = swkReturn + '    <input TYPE="hidden" NAME="business" VALUE="accounts@futuredata.com">';
				//swkReturn = swkReturn + '    <input TYPE="image" SRC="https://www.paypal.com/en_GB/i/btn/view_cart_02.gif" BORDER="0" NAME="submit" ALT="Make payments with PayPal - its fast, free and secure!" ALIGN="TOP">';
				//swkReturn = swkReturn + '    <input TYPE="hidden" NAME="display" VALUE="1">';
				//swkReturn = swkReturn + '    <font SIZE="2" FACE="Arial, Helvetica, sans-serif">';
				//swkReturn = swkReturn + '      <br><b>Before </b><font COLOR="#FFFFFF">Check Out - </font>';
				//swkReturn = swkReturn + '      <b>Add Postage &amp; Packing</b>';
				//swkReturn = swkReturn + '    </font>';
				//swkReturn = swkReturn + '  </form>';
				swkReturn = swkReturn + '</td>';
				//Finish off the Last Row of the Content Table
				swkReturn = swkReturn + '</tr>';
				//Finish of the Content Table
				swkReturn = swkReturn + '</table>';
				//Close the Container Cell
				swkReturn = swkReturn + '</td>';
				//Add the Right Container Cell
				swkReturn = swkReturn + '<td WIDTH="5" BGCOLOR="#333333">&nbsp;</td>';
				//Finish off the Container Row
				swkReturn = swkReturn + '</tr>';
				//Return the HTML
				return swkReturn;
		}
		catch(err)
		{
			  rwkErr('Content table End', err.description);
		}
}
function rwkContentTableHTML(lzzProduct)
//================================================================
// This is where all the Prices and Descriptions are saved
//
// Parameters:   szzProduct (Product Description)
// Returns:      HTML for a Single Row within the Table (4 Columns)
// -------------------------------------------------------------------------
// lzzProduct
// -------------------------------------------------------------------------
// SWR01	(Software)          PC Plotter 5000
// UPG01  Upgrade							Upgrade to PC Plotter 5000
// 28XG|23XG|46XG|9999      	Navionics GOLD Chart XL3/9 28XG|23XG|46XG\Other
// GPS01  GPS                 Evermore SA-920
// AIS01  AIS                 Comar AIS-2-USB
// ASP01  AerialSplitter      Comar ASR100 
// AIS02  AIS and Splitter    Comar AIS multi both AIS receiver and Aerial Splitter (ComarAISMultiPrice)
// PAP01  Post & Packing(UK)  Postage & Packaging
// PAP09  Post & Packing      Postage & Packaging
//        (Rest of the World)
// START  The Start of the Contents Table and Headings
// TOTAL  Prints a Totals Row
// END    The End of the Contents Table and the Headings
// DEFAULT ''
//================================================================
{
var swkHTML;
		try
		{
				swkHTML = '';
				//Call the Appropriate Function
				switch(lzzProduct)
				{
				case 'SWR01':
				     swkHTML = rwkSoftWareRow(1); //PCPlotter 5000
				     break;
				case 'UPG01':
				     swkHTML = rwkSoftWareRow(2); //Upgrade
				     break;
				case '28XG': //28XG
				     swkHTML = rwkChartRow('28XG'); // Chart
				     break;
				case '23XG': //23XG
				     swkHTML = rwkChartRow('23XG'); // Chart
				     break;
				case '46XG': //46XG
				     swkHTML = rwkChartRow('46XG'); // Chart
				     break;
				case '9999': //Not Specified
				     swkHTML = rwkChartRow('9999'); // Chart
				     break;
				case 'GPS01':
				     swkHTML = rwkGPSRow(); // GPS
				     break;
				case 'AIS01':
				     swkHTML = rwkAISRow(); // AIS
				     break;
				case 'AIS02': //AIS and Aerial Splitter
				     swkHTML = rwkAISMulti(); //AIS Receiver and Aerial Splitter
		     		 //swkHTML = rwkAISRow(); // AIS
		     		 //swkHTML = swkHTML + rwkAerialSplitterRow(); // Aerial Splitter
		     		 break;
				case 'ASP01':
				     swkHTML = rwkAerialSplitterRow(); //Aerial Splitter
				     break;
				case 'PAP01':
				     swkHTML = rwkPostAndPacking(1); // Post and Packing UK
				     break;
				case 'PAP09':
				     swkHTML = rwkPostAndPacking(2); // Post and Packing Rest of the World
				     break;
				case 'Start':
				     swkHTML = rwkContentTableHeading(); // Content Table start and Headings
				     break;
				case 'Total':
						 swkHTML = rwkTotals('Order');
						 break;
				case 'End':
				     swkHTML = rwkContentTableEnd();
				     break;
				default: // Return Nothing
						 swkHTML = '';
				}
				return swkHTML
		}
		catch(err)
		{
			  rwkErr('Content table HTML', err.description);
		}
}
function rwkProcessSelections()
//================================================================
// Function rwkProcessSelections
// Returns: The HTML to draw the selected rows within the Content Table
//
//================================================================
{
var swkReturn;
var swkTemp;
		try
		{
  		  //Initialise the Selection count
	  	  NextSelection = 0;
		    MySelection = new Array;
		    //Set the Currency
		    
				//Default Response
				swkReturn = '';
				//Software
				swkTemp = rwkHasNavPlanner('Order');
				swkReturn = swkReturn + rwkContentTableHTML(swkTemp);
				//Charts
				swkTemp = rwkOnBoardChartPlotter('Order');
				if (swkTemp != '')    //'' means no charts thanks
				{
				  swkReturn = swkReturn + rwkContentTableHTML(swkTemp);
				}
				//GPS
				swkTemp = rwkHasGPS('Order');
				if (swkTemp != '')
				{
				   swkReturn = swkReturn + rwkContentTableHTML(swkTemp);
				}
				//AIS
				swkTemp = rwkWantsAIS('Order');
				if (swkTemp != '')
				{
				   swkReturn = swkReturn + rwkContentTableHTML(swkTemp);
				}
				//Post and Package
				swkTemp = rwkUKDelivery('Order');
				swkReturn = swkReturn + rwkContentTableHTML(swkTemp);
				//Return the HTML that has been generated
				return swkReturn;
		}
		catch(err)
		{
			  rwkErr('Process Selections', err.description);
		}
}
function rwkContainerTableStart()
//================================================================
// Writes the Start of the Container Table Heading
// Opens the Table and sets the width etc
// Writes the first Row - with included picture
// Writes the Second Row -
//================================================================
{
var swkReturn;
		try
		{
				//Open the Table
		    swkReturn = '<table WIDTH="760" BORDER="0" CELLSPACING="0" CELLPADDING="0" ALIGN="CENTER">';
				//Start Row 1
		    swkReturn = swkReturn + '<tr>';
				// Col 1 - 3
				swkReturn = swkReturn + '<td COLSPAN="3">';
				swkReturn = swkReturn + '<a NAME="Top"></a>';
				swkReturn = swkReturn + '<img SRC="Images/PCP_header_short.jpg" WIDTH="760" ALT="PC Plotter" ALIGN="MIDDLE" >';
				swkReturn = swkReturn + '</td>';
				//End Row 1
				swkReturn = swkReturn + '</tr>';
				//
//-------------------------------------------------------------------------------------
//				//Start Row 2
//		    swkReturn = swkReturn + '<tr>';
//		    // Col 1 - 3
//				swkReturn = swkReturn + '<td COLSPAN="3">';
//				swkReturn = swkReturn + '&nbsp;';
//				swkReturn = swkReturn + '</td>';
//				//End Row 2
//				swkReturn = swkReturn + '</tr>';
//-------------------------------------------------------------------------------------
				//
				return swkReturn;
		}
		catch(err)
		{
			  rwkErr('Container table start', err.description);
		}
}
function rwkContainerTableEnd()
//================================================================
// Closes the Third row of the Table
// Adds a Final Row
// Closes the table
//================================================================
{
var swkReturn
		try
		{
				//Define ROW
				swkReturn = '<tr BGCOLOR="#333333">';
				//Column 1
				swkReturn = swkReturn + '<td WIDTH="6">';
				swkReturn = swkReturn + '&nbsp;';
				swkReturn =swkReturn + '</td>';
				//Column 2
				swkReturn = swkReturn + '<td WIDTH="749" ALIGN="RIGHT">';
				swkReturn = swkReturn + '<font size="2" COLOR="#FFFFFF"><b><A HREF="javascript:window.close()">Close</A></b></font>';
				swkReturn =swkReturn + '</td>';
				//Column 3
				swkReturn = swkReturn + '<td WIDTH="5">';
				swkReturn = swkReturn + '&nbsp;';
				swkReturn =swkReturn + '</td>';
				//End Row
				swkReturn = swkReturn + '</tr>';
				//End table
				swkReturn = swkReturn + '</table>';
				//Return
				return swkReturn;
		}
		catch(err)
		{
			  rwkErr('Container table end', err.description);
		}
}
function rwkProcessPrices(szzOption, bzzShowCurrency)
//================================================================
// Function: -  rwkProcessPrices
// Parameters: - szzOption    UpGrade
//                            SoftWare
//                            Chart
//                            GPS
//                            AIS
//                            Splitter
//                            PostUK
//                            PostRoW
//                            Zero
// Returns: - Msg String with Price for display in Suggestions
// Processing: - Adds the Selected Option prices to the Totals (Price/VAT/PriceIncVAT)
//================================================================
{
var swkMsg;
var dwkTemp;
var swkPriceWithCurrency;
var swkCurrencySymbol = CurrencySymbol[Currency];
		try
		{
		   //Set the Currency Symbol to '' if bzzShowCurrency=0
		   if (bzzShowCurrency == 0)
		   {
					swkCurrencySymbol = '';
			 }
		   //
				switch (szzOption)
				{
				case 'Upgrade':
				        TotalExVAT = TotalExVAT + UpgradeToPCPPrice[Currency];
				        TotalVAT = TotalVAT+ rwkGetVAT(UpgradeToPCPPrice[Currency]);
				        TotalIncVAT = TotalIncVAT + rwkAddVAT(UpgradeToPCPPrice[Currency]);
				        //Convert the Price to show Currency
				        swkPriceWithCurrency = rwkNumberFormat(UpgradeToPCPPrice[Currency], swkCurrencySymbol, 2);
				        //swkMsg = '('  + swkPriceWithCurrency + '+VAT)';
				        swkMsg = swkPriceWithCurrency;
				        break;
				case 'Software':
				        TotalExVAT = TotalExVAT + PCP5000Price[Currency];
				        TotalVAT = TotalVAT+ rwkGetVAT(PCP5000Price[Currency]);
				        TotalIncVAT = TotalIncVAT + rwkAddVAT(PCP5000Price[Currency]);
				        //Convert the Price to show Currency
				        swkPriceWithCurrency = rwkNumberFormat(PCP5000Price[Currency], swkCurrencySymbol, 2);
				        //swkMsg = '('  + swkPriceWithCurrency + '+VAT)';
				        swkMsg = swkPriceWithCurrency;
				        break;
				case 'Chart':
				        TotalExVAT = TotalExVAT + NavionicsChartXL3Price[Currency];
				        TotalVAT = TotalVAT+ rwkGetVAT(NavionicsChartXL3Price[Currency]);
				        TotalIncVAT = TotalIncVAT + rwkAddVAT(NavionicsChartXL3Price[Currency]);
				        //Convert the Price to show Currency
				        swkPriceWithCurrency = rwkNumberFormat(NavionicsChartXL3Price[Currency], swkCurrencySymbol, 2);
				        //swkMsg = '('  + swkPriceWithCurrency + '+VAT)';
				        swkMsg = swkPriceWithCurrency;
				        break;
				case 'GPS':
				        TotalExVAT = TotalExVAT + EvermoreSA920Price[Currency];
				        TotalVAT = TotalVAT+ rwkGetVAT(EvermoreSA920Price[Currency]);
				        TotalIncVAT = TotalIncVAT + rwkAddVAT(EvermoreSA920Price[Currency]);
				        //Convert the Price to show Currency
				        swkPriceWithCurrency = rwkNumberFormat(EvermoreSA920Price[Currency], swkCurrencySymbol, 2);
				        //swkMsg = '('  + swkPriceWithCurrency + '+VAT)';
				        swkMsg = swkPriceWithCurrency;
				        break;
				case 'GPS_Mouse':
				        TotalExVAT = TotalExVAT + PortableGPSPrice[Currency];
				        TotalVAT = TotalVAT+ rwkGetVAT(PortableGPSPrice[Currency]);
				        TotalIncVAT = TotalIncVAT + rwkAddVAT(PortableGPSPrice[Currency]);
				        //Convert the Price to show Currency
				        swkPriceWithCurrency = rwkNumberFormat(PortableGPSPrice[Currency], swkCurrencySymbol, 2);
				        //swkMsg = '('  + swkPriceWithCurrency + '+VAT)';
				        swkMsg = swkPriceWithCurrency;
				        break;				        
				case 'AIS':
				        TotalExVAT = TotalExVAT + ComarAIS2USBPrice[Currency];
				        TotalVAT = TotalVAT+ rwkGetVAT(ComarAIS2USBPrice[Currency]);
				        TotalIncVAT = TotalIncVAT + rwkAddVAT(ComarAIS2USBPrice[Currency]);
				        //Convert the Price to show Currency
				        swkPriceWithCurrency = rwkNumberFormat(ComarAIS2USBPrice[Currency], swkCurrencySymbol, 2);
				        //swkMsg = '('  + swkPriceWithCurrency + '+VAT)';
				        swkMsg = swkPriceWithCurrency;
				        break;
				case 'Splitter':
				        TotalExVAT = TotalExVAT + ComarASR100Price[Currency];
				        TotalVAT = TotalVAT+ rwkGetVAT(ComarASR100Price[Currency]);
				        TotalIncVAT = TotalIncVAT + rwkAddVAT(ComarASR100Price[Currency]);
				        //Convert the Price to show Currency
				        swkPriceWithCurrency = rwkNumberFormat(ComarASR100Price[Currency], swkCurrencySymbol, 2);
				        //swkMsg = '('  + swkPriceWithCurrency + '+VAT)';
				        swkMsg = swkPriceWithCurrency;
				        break;
				case 'AISAndSplitter':
                dwkTemp = ComarAISMultiPrice[Currency];
				        TotalExVAT = TotalExVAT + dwkTemp;
				        TotalVAT = TotalVAT+ rwkGetVAT(dwkTemp);
				        TotalIncVAT = TotalIncVAT + rwkAddVAT(dwkTemp);
				        //Convert the Price to show Currency
				        swkPriceWithCurrency = rwkNumberFormat(dwkTemp, swkCurrencySymbol, 2);
				        //swkMsg = '('  + swkPriceWithCurrency + '+VAT)';
				        swkMsg = swkPriceWithCurrency;
				        break;
				case 'PostUK':
				        TotalExVAT = TotalExVAT + PandPPrice[Currency];
				        TotalVAT = TotalVAT+ rwkGetVAT(PandPPrice[Currency]);
				        TotalIncVAT = TotalIncVAT + rwkAddVAT(PandPPrice[Currency]);
				        //Convert the Price to show Currency
				        swkPriceWithCurrency = rwkNumberFormat(PandPPrice[Currency], swkCurrencySymbol, 2);
				        //swkMsg = '('  + swkPriceWithCurrency + '+VAT)';
				        swkMsg = swkPriceWithCurrency;
				        break;
				case 'PostRoW':
				        TotalExVAT = TotalExVAT + PandPRoWPrice[Currency];
				        TotalVAT = TotalVAT+ rwkGetVAT(PandPRoWPrice[Currency]);
				        TotalIncVAT = TotalIncVAT + rwkAddVAT(PandPRoWPrice[Currency]);
				        //Convert the Price to show Currency
				        swkPriceWithCurrency = rwkNumberFormat(PandPRoWPrice[Currency], swkCurrencySymbol, 2);
				        //swkMsg = '('  + swkPriceWithCurrency + '+VAT)';
				        swkMsg = swkPriceWithCurrency;
				        break;
				case 'Zero':
				        //Zero the totals
				        TotalExVAT = 0;
				        TotalVAT = 0;
				        TotalIncVAT = 0;
				        swkMsg = '';
				        break;
				default:
				        swkMsg = '';
				}
				//return the message
				return swkMsg;
		}
		catch(err)
		{
		 rwkErr('Price Processing for (' + szzOption + ')', err.description);
		}
}
function rwkHasNavPlanner(szzOption)
//================================================================
// Function rwkHasNavPlanner
// Parameters szzOption - 'Suggest' |'Quote' | 'Order'
//                         Suggest - will return a Verbal Suggestion
//                         Order - Returns UPG01 - Has Navplanner
//                                         SWR01 - No NavPlanner
//================================================================
{
var swkMsg;
var swkReturn;  //Used for the Quotation Row
		try
		{
			 //Loop through the Radio Buttons and get teh checked button
				for (var i = 0; i < frmWhatDoINeed.rdNavPlanner.length; i++)
				{
					if(frmWhatDoINeed.rdNavPlanner[i].checked)
					{
						break;
					}
				}
				// Set up the Return value
				if (i == 0)
				{
					 switch (szzOption)
      		 {
      		 case 'Order':
					 		 swkMsg = rwkProcessPrices('Upgrade');
							 return 'UPG01';
							 break;
					 case 'Quote':
					 		 swkMsg = rwkProcessPrices('Upgrade');
					 		 //Write this as a 2 Cell Row in a Table
					     //return "Upgrade from NavPlanner to PC Plotter 5000 (CD + Security Key)" + swkMsg;
							 swkReturn = '<tr>';
							 swkReturn = swkReturn + '<td>Upgrade from NavPlanner to PC Plotter 5000 (CD + Security Key)</td>';
							 swkReturn = swkReturn + '<td ALIGN="RIGHT" WIDTH="109">' + swkMsg + '</td>';
					     swkReturn = swkReturn + '</tr>';
					     return swkReturn;
					     break;
      		 default: //Suggest
					 		 swkMsg = rwkProcessPrices('Upgrade',0);
               return "Upgrade from NavPlanner to PC Plotter 5000 (CD + Security Key)" + swkMsg;
					 }
				}
				else
				{
					 switch (szzOption)
      		 {
      		 case 'Order':
					 		 swkMsg = rwkProcessPrices('Software');
							 return 'SWR01';
							 break;
					 case 'Quote':
					 		 swkMsg = rwkProcessPrices('Software');
					     //return "PC Plotter 5000 (CD + Security Key + Card Reader)" + swkMsg;
							 swkReturn = '<tr>';
							 swkReturn = swkReturn + '<td>PC Plotter 5000 (CD + Security Key + Card Reader)</td>';
							 swkReturn = swkReturn + '<td ALIGN="RIGHT" WIDTH="109">' + swkMsg + '</td>';
					     swkReturn = swkReturn + '</tr>';
					     return swkReturn;
					     break;
      		 default: //Suggest
					 		 swkMsg = rwkProcessPrices('Software',0);
               return "PC Plotter 5000 (CD + Security Key + Card Reader)" + swkMsg;
					 }
				}
		}
		catch(err)
		{
			  rwkErr('Has Navplanner Processing', err.description);
		}
}
function rwkOnBoardChartPlotter(szzOption)
//================================================================
// Function rwkOnBoardChartPlotter
// Parameters szzOption - 'Suggest'|'Quote'|'Order'
//                         Suggest and Quote  - will return a Verbal Suggestion
//                         Order - Returns '' - No Charts Required
//                                         '28XG'
//                                         '23XG'
//                                         '46XG'
//                                         '9999' - Customer to specify the chart
//================================================================
{
var swkMsg;
var bwkShowPrices;
var swkReturn;
   try
   {
			 //Loop through getting the checked radio button
				for (var i = 0; i < frmWhatDoINeed.rdOnBoardChartPlotter.length; i++)
				{
					if(frmWhatDoINeed.rdOnBoardChartPlotter[i].checked)
					{
						break;
					}
				}
				//Set up the Show Prices Flag
				if (szzOption == 'Suggest')
				{
           bwkShowPrices = 0;
				}
				else
				{
           bwkShowPrices = 1;
				}
				//Write out what is required
				switch (i)
				{
				case 0: //  Already Has Charts
					 if (szzOption == 'Order')
					 {
							 return '';
					 }
					 else
					 {
					     if (szzOption == 'Suggest')
					     {
					     	   return "No Charts";
							 }
							 else
							 {
									return '<tr><td>No Charts</td><td WIDTH="109">&nbsp;</td</tr>';
							 }
					 }
					break;
				case 2: //  Requires Charts for Med
           swkMsg = rwkProcessPrices('Chart', bwkShowPrices)
		       //Select the Return information required
					 if (szzOption == 'Order')
					 {
							 return '23XG';
					 }
					 else
					 {
							 if (szzOption == 'Suggest')
							 {
					         return "Chart(23XG) 'Mediterranean & Black Sea' (SD, MMC or CF Card)" + swkMsg;
							 }
							 else
							 {
							     return '<tr><td>Chart(23XG) Mediterranean & Black Sea (SD, MMC or CF Card)</td><td ALIGN="RIGHT"  WIDTH="109">'+ swkMsg + '</td></tr>';
							 }
					 }
					break;
				case 3: //  Requires charts UK to Western Med
           swkMsg = rwkProcessPrices('Chart', bwkShowPrices)
		       //Select the Return information required
					 if (szzOption == 'Order')
					 {
							 return '46XG';
					 }
					 else
					 {
							 if (szzOption == 'Suggest')
							 {
                   return "Chart(46XG) 'France, Iberia, Netherlands, EU inland Waters' (SD, MMC or CF Card)" + swkMsg;
							 }
							 else
							 {
					         return '<tr><td>Chart(46XG) France, Iberia, Netherlands, EU inland Waters (SD, MMC or CF Card)</td><td ALIGN="RIGHT"  WIDTH="109">'+ swkMsg + '</td></tr>';
							 }
					 }
					break;
				case 4: //  Requires other charts
           swkMsg = rwkProcessPrices('Chart', bwkShowPrices)
		       //Select the Return information required
					 if (szzOption == 'Order')
					 {
							 return '9999';
					 }
					 else
					 {
							 if (szzOption == 'Suggest')
							 {
                   return "Navionics chart but, you will need to see the Navionics Marine Charts to decide which (SD, MMC or CF Card)" + swkMsg;
							 }
							 else
							 {
					         return '<tr><td>Navionics chart but, you will need to see the Navionics Marine Charts to decide which (SD, MMC or CF Card)</td><td ALIGN="RIGHT" WIDTH="109">' + swkMsg + '</td></tr>';
					     }
					 }
					break;
				default: // Requires UK Chart
			     swkMsg = rwkProcessPrices('Chart', bwkShowPrices)
		       //Select the Return information required
					 if (szzOption == 'Order')
					 {
							 return '28XG';
					 }
					 else
					 {
							 if (szzOption == 'Suggest')
							 {
					         return "Chart(28XG) 'UK, Ireland & Netherlands' (SD, MMC or CF Card)" + swkMsg;
							 }
							 else
							 {
							 		 return '<tr><td>Chart(28XG) UK, Ireland & Netherlands (SD, MMC or CF Card)</td><td ALIGN="RIGHT" WIDTH="109">' + swkMsg + '</td></tr>';
							 }
					 }
				}
		}
		catch(err)
		{
			  rwkErr('Selecting Chart Required ', err.description);
		}
}
function rwkHasGPS(szzOption)
//================================================================
// Function rwkHasGPS
// Parameters szzOption - 'Suggest'|'Order'
//                         Suggest - will return a Verbal Suggestion
//                         Order - Returns '' - No GPS required
//                                         GPS01 - Buy GPS
//================================================================
{
var swkMsg;
var bwkShowPrices;
		try
		{
		 //Loop through getting the checked radio button
			for (var i = 0; i < frmWhatDoINeed.rdHasGPS.length; i++)
			{
				if(frmWhatDoINeed.rdHasGPS[i].checked)
				{
					break;
				}
			}
				//Set up the Show Prices Flag
				if (szzOption == 'Suggest')
				{
           bwkShowPrices = 0;
				}
				else
				{
           bwkShowPrices = 1;
				}
			//Write out what is required
			switch (i)
			{
			case 0: //  Has GPS
				 if (szzOption == 'Order')
				 {
						 return '';
				 }
				 else
				 {
						 if (szzOption == 'Suggest')
						 {
				         return "No GPS required as you already have a GPS with NMEA(0183) output";
				     }
				     else
				     {
				         return '<tr><td>No GPS required as you already have a GPS with NMEA(0183) output</td><td ALIGN="RIGHT" WIDTH="109">&nbsp;</td></tr>';
				     }
				 }
				break;
			case 1: //  Wants Portable GPS
         swkMsg = rwkProcessPrices('GPS_Mouse', bwkShowPrices)
				 if (szzOption == 'Order')
				 {
						 return 'GPS01';
				 }
				 else
				 {
						 if (szzOption == 'Suggest')
						 {
					     return "USB Portable GPS" + swkMsg;
						 }
						 else
						 {
					     return '<tr><td>USB Portable GPS</td><td ALIGN="RIGHT" WIDTH="109">' + swkMsg + '</td>&nbsp;</tr>';
						 }
				 }
				break;
			default: // Wants a fitted GPS
         swkMsg = rwkProcessPrices('GPS', bwkShowPrices)
				 if (szzOption == 'Order')
				 {
						 return 'GPS01';
				 }
				 else
				 {
						 if (szzOption == 'Suggest')
						 {
					     return "USB Fitted GPS" + swkMsg;
						 }
						 else
						 {
					     return '<tr><td>USB Fitted GPS</td><td ALIGN="RIGHT" WIDTH="109">' + swkMsg + '</td></tr>';
						 }
				 }
			}
		}
		catch(err)
		{
			  rwkErr('Selecting GPS Required Processing', err.description);
		}
}
function rwkWantsAIS(szzOption)
//================================================================
// Function rwkWantsAIS
// Parameters szzOption - 'Suggest'|'Order'
//                         Suggest - will return a Verbal Suggestion
//                         Order - Returns AIS02 - AIS receiver + Splitter
//                                         AIS01 - AIS reciever
//                                         '' - No AIS required
//================================================================
{
var swkMsg;
var bwkShowPrices;
		try
		{
      //Loop through and Establish the checked radio button
			for (var i = 0; i < frmWhatDoINeed.rdUseAIS.length; i++)
			{
				if(frmWhatDoINeed.rdUseAIS[i].checked)
				{
					break;
				}
			}
			//Set up the Show Prices Flag
			if (szzOption == 'Suggest')
			{
         bwkShowPrices = 0;
			}
			else
			{
         bwkShowPrices = 1;
			}
			switch (i)
			{
			case 0:
         swkMsg = rwkProcessPrices('AISAndSplitter', bwkShowPrices);
				 if (szzOption == 'Order')
				 {
						 return 'AIS02';
				 }
				 else
				 {
						 if (szzOption == 'Suggest')
						 {
				     		 return "AIS receiver with Aerial Splitter" + swkMsg;
						 }
						 else
						 {
				     		 return '<tr><td>AIS receiver with Aerial Splitter</td><td ALIGN="RIGHT" WIDTH="109">' + swkMsg + '</td></tr>';
						 }
				 }
				 break;
			case 1:
         swkMsg = rwkProcessPrices('AIS', bwkShowPrices);
				 if (szzOption == 'Order')
				 {
						 return 'AIS01';
				 }
				 else
				 {
						 if (szzOption == 'Suggest')
						 {
				     		 return "AIS receiver" + swkMsg;
						 }
						 else
						 {
				     		 return '<tr><td>AIS receiver</td><td ALIGN="RIGHT" WIDTH="109">' + swkMsg + '</td></tr>';
						 }
				 }
				 break;
			default:
				 swkMsg = '&nbsp;';
				 if (szzOption == 'Order')
				 {
						 return '';
				 }
				 else
				 {
						 if (szzOption == 'Suggest')
						 {
				     		 return "No AIS required";
						 }
						 else
						 {
				     		 return '<tr><td>No AIS required</td><td ALIGN="RIGHT" WIDTH="109">' + swkMsg + '</td></tr>';
						 }
				 }
			}
		}
		catch(err)
		{
				rwkErr( 'Selecting AIS Required Processing', err.description);
		}
}
function rwkUKDelivery(szzOption)
//================================================================
// Function rwkUKDelivery
// Parameters szzOption - 'Suggest'|'Order'
//                         Suggest - will return a Verbal Suggestion
//                         Order - Returns PAP01 - Delivery in UK
//                                         PAP09 - Delivery Outside UK
//================================================================
{
var swkMsg;
var bwkShowPrices;
		try
		{
			//Loop through establishing the Radio Button that is checked
			for (var i = 0; i < frmWhatDoINeed.rdUKDelivery.length; i++)
			{
				if(frmWhatDoINeed.rdUKDelivery[i].checked)
				{
					break;
				}
			}
			//Set up the Show Prices Flag
			if (szzOption == 'Suggest')
			{
         bwkShowPrices = 0;
			}
			else
			{
         bwkShowPrices = 1;
			}
			// Set up the Return value
			switch (i)
			{
			case 0:
           swkMsg = rwkProcessPrices('PostUK', bwkShowPrices);
					 if (szzOption == 'Order')
					 {
							 return 'PAP01';
					 }
					 else
					 {
							 if (szzOption == 'Suggest')
							 {
						     return "Delivery will be in the UK" + swkMsg;
							 }
							 else
							 {
								 return '<tr><td>Delivery will be in the UK</td><td ALIGN="RIGHT" WIDTH="109">' + swkMsg + '</td></tr>'
							 }
					 }
					 break;
			default:
	         swkMsg = rwkProcessPrices('PostRoW', bwkShowPrices);
					 if (szzOption == 'Order')
					 {
							 return 'PAP09';
					 }
					 else
					 {
							 if (szzOption == 'Suggest')
							 {
						     return "Delivery will be outside the UK" + swkMsg;
							 }
							 else
							 {
								 return '<tr><td>Delivery will be outside the UK</td><td ALIGN="RIGHT" WIDTH="109">' + swkMsg + '</td></tr>'
							 }
					 }
			}
		}
		catch(err)
		{
				rwkErr('Selecting Delivery Processing',err.description);
		}
}
function rwkCurrencyToUse()
//================================================================
// FUNCTION   - rwkCurrencyToUse
//
// will return a Verbal Suggestion
//
// Returns    - the Currency to use 0 - GBP  1 - EUR  2 - USD
//
//================================================================
{
var swkMsg = 0;
		try
		{
			//Loop through establishing the Radio Button that is checked
			for (var i = 0; i < frmWhatDoINeed.rdCurrency.length; i++)
			{
				if(frmWhatDoINeed.rdCurrency[i].checked)
				{
					break;
				}
			}
			// Now return the Currency and set it up on the system
			switch (i)
			{
			case 1: //Euros
			     Currency = 1;
			     swkMsg = 'Costs in Euros';
			     break;
			case 2: //USD
			     Currency = 2;
			     swkMsg = 'Costs in US Dollars';
			     break;
			default: //GBP
					 Currency = 0;
					 swkMsg = 'Costs in GB pounds';
			}
			return swkMsg;
		}
		catch(err)
		{
			rwkErr('Selecting the Currency ',err.description);
		}
}
function rwkClearSuggestions()
//================================================================
// Clears the Suggestions
//
//================================================================
{
var swkMsg;
	try
	{
	  //Zero the totals'
		swkmsg = rwkProcessPrices('Zero');
		//Initialise the Suggestions Message
		swkMsg = 'Answer the questions above then click\n';
		swkMsg = swkMsg + '  (Quick Quote) to view the Quote here\n';
		swkMsg = swkMsg + '  (Print Quote) to view the quote in a separate window ready to print\n';
		swkMsg = swkMsg + '  (Order) to check and make the order\n';
  	frmWhatDoINeed.txtSuggest.value = swkMsg;
	}
	catch(err)
	{
			rwkErr('Clearing the Suggestions',err.description);
	}
}
function rwkTotals(szzOption)
//================================================================
// Function: rwkTotals
// Parameters: Quote | Order | Suggest
// Processing:  Returns the Totals for the current selection as a String
//
//================================================================
{
var swkMsg = '';
var swkSymbol = CurrencySymbol[Currency];
var dwkNumber;
var swkCostWithCurrency;
	 try
	 {
	    switch (szzOption)
      {
      case 'Quote':
           //Writes the Suggestions on a new Window
           // Cost Row (Sub Total)
					 swkMsg = swkMsg + '  <tr>';
					 swkMsg = swkMsg + '    <td ALIGN="RIGHT">';
					 swkMsg = swkMsg + '        <b>Cost:</b>';
					 swkMsg = swkMsg + '    </td>';
					 swkMsg = swkMsg + '    <td ALIGN="RIGHT">';
					 //FORMAT THE Total Ex VAT
					 dwkNumber = rwkRound(TotalExVAT,2);
		    	 swkMsg = swkMsg + '        <b>' + rwkNumberFormat(dwkNumber, swkSymbol,2)  + '</b>';
					 swkMsg = swkMsg + '    </td>';
					 swkMsg = swkMsg + '  </tr>';
					 // VAT Row
					 swkMsg = swkMsg + '  <tr>';
					 swkMsg = swkMsg + '    <td ALIGN="RIGHT">';
		    	 swkMsg = swkMsg + '        <b>VAT:</b>';
					 swkMsg = swkMsg + '    </td>';
					 swkMsg = swkMsg + '    <td ALIGN="RIGHT">';
					 //Format the Total VAT
					 if (UseVAT[Currency] == 0)
					 {
						 swkMsg = swkMsg + '       <b> N/A </b>';
					 }
					 else
					 {
					   dwkNumber = rwkRound(TotalVAT,2);
		    	   swkMsg = swkMsg + '        <b>' + rwkNumberFormat(dwkNumber, swkSymbol,2)  + '</b>';
					 }
					 swkMsg = swkMsg + '    </td>';
					 swkMsg = swkMsg + '  </tr>';
					 //Total Row
					 swkMsg = swkMsg + '  <tr>';
					 swkMsg = swkMsg + '    <td ALIGN="RIGHT">';
		    	 swkMsg = swkMsg + '        <b>Total:</b>';
					 swkMsg = swkMsg + '    </td>';
					 swkMsg = swkMsg + '    <td ALIGN="RIGHT">';
					 //Format the Total Inc VAT
					 if (UseVAT[Currency] == 0)
					 {
						 swkMsg = swkMsg + '       <b> N/A </b>';
					 }
					 else
					 {
					   dwkNumber = rwkRound(TotalIncVAT,2)
		    	   swkMsg = swkMsg + '        <b>' + rwkNumberFormat(dwkNumber, swkSymbol,2)  + '</b>';
					 }
					 swkMsg = swkMsg + '    </td>';
					 swkMsg = swkMsg + '  </tr>';
		    	 break;
			case 'Order':
           //Writes the Row to show the Totals
	         swkMsg = swkMsg + '<tr ALIGN="CENTER" BGCOLOR="#666666">';
	         swkMsg = swkMsg + '  <td>';
					 swkMsg = swkMsg + '    <b></b>';
					 swkMsg = swkMsg + '  </td>';
	         swkMsg = swkMsg + '  <td  VALIGN="TOP">';
					 swkMsg = swkMsg + '    <font FACE="Arial, Helvetica, sans-serif" SIZE="2" COLOR="#FFFFFF">';
					 //Set the Total Ex VAT as a Currency Value
					 swkCostWithCurrency = rwkNumberFormat(TotalExVAT, swkSymbol,2);
					 swkMsg = swkMsg + '      <b>' + swkCostWithCurrency + '</b>';
					 swkMsg = swkMsg + '    </font>';
					 swkMsg = swkMsg + '  </td>';
	         swkMsg = swkMsg + '  <td  VALIGN="TOP">';
					 swkMsg = swkMsg + '    <font FACE="Arial, Helvetica, sans-serif" SIZE="2" COLOR="#FFFFFF">';
					 //Set the Total Inc VAT as a Currency Value
					 if (UseVAT[Currency] == 0)
			     {
		  		    swkMsg = swkMsg + '      <b>N/A</b>';
			     }
			     else
			     {
						 swkCostWithCurrency = rwkNumberFormat(TotalIncVAT, swkSymbol,2);
						 swkMsg = swkMsg + '      <b>' + swkCostWithCurrency + '</b>';
					 }
					 swkMsg = swkMsg + '    </font>';
					 swkMsg = swkMsg + '  </td>';
					 swkMsg = swkMsg + '  <td ALIGN="LEFT"  VALIGN="TOP">';
					 swkMsg = swkMsg + '      <font FACE="Arial, Helvetica, sans-serif" SIZE="2" COLOR="#FFFFFF">';
					 //Set the VAT as a Currency Value
					 if (UseVAT[Currency] == 0 )
					 {
					    swkMsg = swkMsg + '       VAT(<b> N/A </b>)';
					 }
					 else
					 {
						 swkCostWithCurrency = rwkNumberFormat(TotalVAT, swkSymbol,2);
						 swkMsg = swkMsg + '        VAT(<b>' + swkCostWithCurrency + '</b>)';
					 }
					 swkMsg = swkMsg + '      </font>';
					 swkMsg = swkMsg + '  </td>';
	         swkMsg = swkMsg + '</tr>';
	         // now write a second line with the Add All Button
	         swkMsg = swkMsg + '<tr ALIGN="CENTER" VALIGN="TOP" BGCOLOR="#CCCCCC">';
	         swkMsg = swkMsg + '  <td  COLSPAN="3" VALIGN="TOP">';
					 swkMsg = swkMsg + '    <font SIZE="2" FACE="Arial, Helvetica, sans-serif">';
				   swkMsg = swkMsg + '      <b>Before </b><font COLOR="#FFFFFF">Check Out - </font>';
				   swkMsg = swkMsg + '      <b>Add Postage &amp; Packing </b>';
				   swkMsg = swkMsg + '    </font>';
					 swkMsg = swkMsg + '  </td>';
					 swkMsg = swkMsg + '  <td ALIGN="RIGHT"  VALIGN="TOP">';
           swkMsg = swkMsg + '    <form NAME="AddAll">';
           swkMsg = swkMsg + '    	<input TYPE="button" NAME="btnAddAll" VALUE="Add All" onclick="rwkSubmitAll()">';
           swkMsg = swkMsg + '    </form>'
					 swkMsg = swkMsg + '  </td>';
	         swkMsg = swkMsg + '</tr>';
	         break;
      default:
					 //Writes the totals on the Suggestions box at the bottom of the form
		       swkMsg = 'Cost:(' + CurrencyString[Currency] + ')';
		    	 swkMsg = swkMsg + ' ' + rwkNumberFormat(TotalExVAT, '', 2) + '(Ex VAT)\n';
		    	 if (UseVAT[Currency] == 0)
		    	 {
						 swkMsg = swkMsg + '';
					 }
					 else
					 {
		    	   swkMsg = swkMsg + '           ' +  rwkNumberFormat(TotalVAT, '', 2) + '(VAT)\n';
			    	 swkMsg = swkMsg + '           ' +  rwkNumberFormat(TotalIncVAT, '', 2) + '(Inc.VAT)\n';
					 }
				}
	    return swkMsg;
	 }
	 catch(err)
	 {
	 }
}
function rwkValidateDelivery()
//================================================================
//  FUNCTION  -  rwkValidateDelivery
//  Processing  -  Gets the Delivery selection
//                 and the Costs In section
//                 It is not valid to ask for delivery in the UK (rdUKDelivery = 0)
//                 and to pay in anything other than GBP (rdCurrency = 0)
//  Returns  -  True if valid  | False if Invalid
//
//================================================================
{
var lwkDeliveryOption;
var lwkCurrencyOption;
		try
		{
		    //Get the Delivery option
			  for (var lwkDeliveryOption = 0; lwkDeliveryOption < frmWhatDoINeed.rdUKDelivery.length; lwkDeliveryOption++)
			  {
				    if(frmWhatDoINeed.rdUKDelivery[lwkDeliveryOption].checked)
				    {
				      	break;
				  	}
				}
		    //Get the Currency Option
			  for (var lwkCurrencyOption = 0; lwkCurrencyOption < frmWhatDoINeed.rdCurrency.length; lwkCurrencyOption++)
			  {
				    if(frmWhatDoINeed.rdCurrency[lwkCurrencyOption].checked)
				    {
				  	    break;
				    }
				}
				//Is it a UK delivery?
				if (lwkDeliveryOption == 0)
				{
					 //Currency MUST be GBP
					 if (lwkCurrencyOption == 0)
					 {
							 return true;
					 }
					 else
					 {
							 return false;
					 }
				}
				else
				{
						//You can pay with what ever
						return true;
				}
		}
		catch(err)
		{
				rwkErr('Checking the Delivery Options',err.description);
		}

}
function rwkGetSuggestions()
//================================================================
// Reads the sets of Radio Buttons and outputs a suggestion
// to the Suggestions Box at the bottom of the form
//
//================================================================
{
var swkMsg = "Quick Quote: ";
var swkTemp;
		try
		{
			if (rwkValidateDelivery() == true)
			{
		    //Zero the totals'
			  swkTemp = rwkProcessPrices('Zero',0)
			  //Process the form
				swkMsg = swkMsg + '(' + rwkCurrencyToUse() + ')' + '\n';
				swkMsg = swkMsg + rwkHasNavPlanner('Suggest') + '\n';
				swkMsg = swkMsg + rwkOnBoardChartPlotter('Suggest') + '\n';
				swkMsg = swkMsg + rwkHasGPS('Suggest') + '\n';
				swkMsg = swkMsg + rwkWantsAIS('Suggest') + '\n';
				swkMsg = swkMsg + rwkUKDelivery('Suggest') +'\n\n';
				//Add the Totals to the Message
				swkMsg = swkMsg + rwkTotals('default') + '\n' + '\n'
				//alert(swkMsg);
				frmWhatDoINeed.txtSuggest.value = swkMsg;
			}
			else
			{
				alert ('sorry, but for Delivery in the UK payment MUST be in GBP')
			}
		}
		catch(err)
		{
				rwkErr('Generating the Suggestions',err.description);
		}
}
function rwkContent()
//================================================================
// FUNCTION - rwkContent
//
// Sets up the Body details
//================================================================
{
var swkContent = '';
var swkTime = new Date();
var swkLocalTime;
		try
		{
			//Set up the Time
			swkLocalTime = swkTime.toLocaleString();
			//Set up the Start of the Table
			swkContent = swkContent + '<table Width=760 ALIGN="CENTER" BORDER="1" BORDERCOLOR="#666666" CELLPADDING="3" CELLSPACING="0">\n';
			//Put the Heading and the Currency in the top Row
			swkContent = swkContent + '<tr>';
			swkContent = swkContent + '  <td ColSpan="2">';
			swkContent = swkContent + '    <img SRC="Images/PCP_header_short.jpg" WIDTH="760" ALT="PC Plotter" ALIGN="MIDDLE">';
			swkContent = swkContent + '	 </td>';
			swkContent = swkContent + '</tr>';
			swkContent = swkContent + '<tr><td ColSpan="2">';
			swkContent = swkContent + '<h2> PC Plotter Quote </h2>\n';
			swkContent = swkContent + '<font SIZE="2" FACE="Arial, Helvetica, sans-serif">';
			swkContent = swkContent + swkLocalTime + ' - <b>' + rwkCurrencyToUse() + '</b>';
			swkContent = swkContent + '</font></td></tr>\n';
			//Zero the Totals here
		  rwkProcessPrices('Zero',0)
			//Navplanner|PCplotter5000
			swkContent = swkContent + rwkHasNavPlanner('Quote');
			//Charts Row
			swkContent = swkContent + rwkOnBoardChartPlotter('Quote');
			//GPS Row
			swkContent = swkContent + rwkHasGPS('Quote');
			//AIS Row
			swkContent = swkContent + rwkWantsAIS('Quote');
			//Delivery Row
			swkContent = swkContent + rwkUKDelivery('Quote');
			// Show the Price Totals
			swkContent = swkContent + rwkTotals('Quote');
			//Last Row Print and Return Buttons
			swkContent = swkContent + '<tr ALIGN="RIGHT" id="RowToHide">';
			swkContent = swkContent + '    <td ColSpan="2">';
			//Print the Window
			//swkContent = swkContent + '        <input TYPE="BUTTON" onclick="rwkPrintPage()" NAME="btnPrint" id="btnPrint" VALUE="Print">';
			swkContent = swkContent + '        <input TYPE="BUTTON" onclick="javascript:window.print()" NAME="btnPrint" id="btnPrint" VALUE="Print">';
			//Close the Window
      //swkContent = swkContent + '        <input TYPE="BUTTON" onClick="rwkClose()" NAME="btnClose" VALUE="Close">';
      swkContent = swkContent + '        <input TYPE="BUTTON" onClick="javascript:window.close()" NAME="btnClose" VALUE="Close">';
			swkContent = swkContent + '    </td>';
			swkContent = swkContent + '</tr>';
			//End the Table
			swkContent = swkContent + '</table>\n';
	    return swkContent;
		}
		catch(err)
		{
				rwkErr('Creating the Suggestions Content',err.description);
		}
}
function rwkFoot()
//================================================================
// Sets up the Closing Tags for the HTML page
//
//================================================================
{
var swkFoot;
		try
		{
		  //swkFoot = '<A HREF="javascript:window.close()" >Return to Suggestions </A>';
		  swkFoot = '';
			swkFoot = swkFoot + '</BODY>';
			swkFoot = swkFoot + '</HTML>';
			return swkFoot;
		}
		catch(err)
		{
				rwkErr('Generating the Footer information',err.description);
		}
}
function rwkCallNewWindow(lzzOption)
//================================================================
// Creates a new Page - that is set up to order the selected items
//
// Function - rwkCallNewWindow
// Parameters - lzzoption - 1 - Create a PayPal Order Page
//                          Default - Create the Suggested order as a page
//
// Sets up the Head Body and Foot then writes a new Window
//
//================================================================
{
var swkWindowOptions;
var swkLocalTime;
var swkTime;
var swkHead = '';
var swkBody = '';
var swkFoot = '';
var swkTitle = '';
var swkMsg;
var bwkShowTime = 0;
		try
		{
		  // Is the Delivery Option selected correct
      if (rwkValidateDelivery() == true)
      {
			    //Set up the Time
					swkTime = new Date();
					swkLocalTime = swkTime.toLocaleString();
					//Zero the Totals
					swkMsg = rwkProcessPrices('Zero')
					//Select the Window to create
					switch (lzzOption)
					{
					//-------------------------------------------------------------
				  case 1 :  //PayPal Order Form
					  // Set up the Options
					  swkWindowOptions = "toolbar=1, status=1, menubar=1, scrollbars=1, resizable=1, width=800, height=800";
					  bwkShowTime = 0;
						swkTitle = 'PayPalOrderForm';      //Note you can not have spaces in the name of a window
						//Start the Order Page the Container table
				 		swkBody = rwkContainerTableStart();
				 		//Set up the Currency
				 		rwkCurrencyToUse()
				 		//Start the Content Table
						swkBody = swkBody + rwkContentTableHTML('Start');
						//Now Write the Correct Rows here
						swkBody = swkBody + rwkProcessSelections();
						//Show the Totals
						swkBody = swkBody + rwkContentTableHTML('Total');
				 		//End The Content Table
				 		swkBody = swkBody + rwkContentTableHTML( 'End');
						//End the Container Table
				 		swkBody = swkBody + rwkContainerTableEnd();
						break;
				  //-------------------------------------------------------------
				  default :
					  //PC Plotter Quotation
						//Clear and re-write the Quick Quote - so they are the same
						rwkGetSuggestions();
					  // Set up the Options
					  swkWindowOptions = "toolbar=0, status=1, menubar=1, scrollbars=0, resizable=0, width=800, height=800";
						//swkWindowOptions = "toolbar=1, status=1, menubar=1, scrollbars=1, resizable=1, width=800, height=800";
					  bwkShowTime = 1;
						swkTitle = 'PCPlotterQuote';    //Note you can not have spaces in the name of a window
						//Set up the Suggestions Basic Page Body Information
						swkBody = rwkContent();
					//-------------------------------------------------------------
				  }
					//Set up the Head information
					swkHead = rwkHead(swkTitle);
					//Set up the Foot Information
				  swkFoot = rwkFoot();
					//Call the New Window
					newwindow=window.open("", swkTitle, swkWindowOptions);
					newwindow.document.write(swkHead);
					newwindow.document.write(swkBody);
					newwindow.document.write(swkFoot);
					newwindow.document.close();
			}
			else
			{
					//Invalid Delivery Currency Option selected
					alert ("Sorry, but for delivery in the UK. payment must be in GBP")
			}
				}
		catch(err)
		{
				rwkErr('Processing the New Window',err.description);
		}
}
function rwkWriteSubmitAllFunction()
//================================================================
// FUNCTION   - rwkWriteSubmitAllFunction
// Parameters - None
// Processing - Creates the Function 'rwkSubmitall' and
//              associated Javascript code -
//              which will be included in the header funciton
//              of the created new window.
//
//  Note the Selections are stored in the Array MySelection
//
// Seems to only pass the Last one in Firefox unless there is
// is an alert between each.
// Sort of works in ie though
//
// As there seems to be timing problems it can work on a 2 second interval once and then
// not work on a 5 second interval - I have introduced a 6 second starrting interval
// so the second items will be submitted 6 secs + the interval set, and subsequent items
// at the interval.   e.g.
// 1st after 0, 2nd after 6+4, 3rd after 6+4+4, 4th after 6+4+4+4
//
//-----------------------------------------------------------------------------
// Example of the type of Ouput expected
//-----------------------------------------------------------------------------
//    function rwkSubmitAll()
//    {
//        RunSubmit('PCP5000Reader');
//        setTimeout("RunSubmit('NavGoldXL3')", 1000);
//        setTimeout("RunSubmit('PCPPostageFree')", 2000);
//        //setTimeout("alert ('All Items have been added to Order')", 3000);
//    }
//    function RunSubmit( szzName )
//    {
//        document.getElementById(szzName).submit();
//    }
//    function ValidateChart()
//    {
//        //Checks that a Chart Number has been entered
//
//    }
//    function ValidateNavPlannerSerialNo()
//    {
//        //Checks that a Valid NavPlanner Serial Number has been entered
//    }
//-----------------------------------------------------------------------------
//================================================================
{
var swkReturn = '';
var lwkInitialInterval = 6000;         //this is added to the interval to add
var lwkTimeOutinterval = 0;
var lwkIntervalToAdd = (PayPalDelayInSecs * 1000);
var i;
var swkFunctionCallAsString;
var swkValidateSerialNumber="function rwkValidateSerialNo()\n{if (UpgradeFromNavPlanner.os0.value.length < 8){alert ('You must enter a valid NavPlanner Serial Number');return false;}else{return true;}}\n";
var swkValidateChartNumber="function rwkValidateChartNumber()\n{if (NavGoldXL3.os1.value.length < 3){alert ('You must enter a Chart Number');return false;}else{return true;}}\n";
var bwkValidateSerialNo=true;
var bwkValidateChartNo=true;
		try
		{
			// Are we writing a Page that shows the NavPlanner Update?
      if(frmWhatDoINeed.rdNavPlanner[0].checked)
      {
				bwkValidateSerialNo=true;
			}
			else
			{
				bwkValidateSerialNo=false;
			}
			// Are we writing a page that orders a chart?
			if(frmWhatDoINeed.rdOnBoardChartPlotter[0].checked)
			{
        bwkValidateChartNo=false;
			}
			else
			{
        bwkValidateChartNo=true;
			}
			//Start the Javascript
			swkReturn = '\n<script type="text/javascript">\n';
			//Open the Function
			swkReturn = swkReturn + 'function rwkSubmitAll()\n';
			swkReturn = swkReturn + '{';
			if (bwkValidateSerialNo==true)
			{
				//Test that Serial Number is Valid
				swkReturn = swkReturn + 'if (rwkValidateSerialNo()==true){';
			}
			if (bwkValidateChartNo==true)
			{
				//Test that the Chart Number is Valid
				swkReturn = swkReturn + 'if (rwkValidateChartNumber()==true){';
			}
				//Loop through the Selections Array
				//Write a Submit line for each
				for (i in MySelection)
				{
				    if (lwkTimeOutinterval == 0)
				    {
	               swkReturn = swkReturn + '    RunSubmit("' + MySelection[i] +'");\n';
	               //Add the Initial Delay here
	               lwkTimeOutinterval = lwkTimeOutinterval + lwkInitialInterval;
						}
						else
						{
	                swkReturn = swkReturn + '    setTimeout("RunSubmit(' + '\'';
									swkReturn = swkReturn + MySelection[i] + '\')",';
									swkReturn = swkReturn + lwkTimeOutinterval + ');\n';
						}
						lwkTimeOutinterval = lwkTimeOutinterval + lwkIntervalToAdd;
			}
			if (bwkValidateSerialNo==true)
			{
			    //Close the Validate Chart IF
			    swkReturn = swkReturn + '}';
			}
			if (bwkValidateChartNo==true)
			{
				//Close the Validate Chart number IF
				swkReturn = swkReturn + '}';
			}
			//Let the user know what is happening
			//swkReturn = swkReturn + '    alert("Items are being added to the Future Data International PayPal shopping cart, Please wait");\n';
			swkReturn = swkReturn + '}\n';
			swkReturn = swkReturn + 'function RunSubmit(szzName)\n';
			swkReturn = swkReturn + '{\n';
			swkReturn = swkReturn + '    document.getElementById(szzName).submit();\n';
			swkReturn = swkReturn + '}\n';
			//Now add the Validation fucntions
			swkReturn = swkReturn + swkValidateSerialNumber + swkValidateChartNumber;
			//End the Javascript
			swkReturn = swkReturn + '</script>\n';
			//Return the HTML and Javascript
			return swkReturn;
    }
			catch (err)
	  {
			rwkErr('Function rwkWriteSubmitAllFunction ',err.description);
	  }
}
function rwkHead(szzTitle)
//================================================================
// Sets up the Header information for the Order page
//
//================================================================
{
var swkHead;
		try
		{
			swkHead = '<HTML>';
			swkHead = swkHead + '<HEAD>';
			swkHead = swkHead + '<TITLE>' + szzTitle + '</TITLE>';
			if (szzTitle == 'PCPlotterQuote')
			{
					//Check for Browser type is IE
					//swkHead = swkHead + '<script TYPE="text/javascript" SRC="http://www.mi4k.co.uk/PCP/JS/PCPCommon.js"></script>';
			}
			else
			{
			 		swkHead = swkHead + rwkWriteSubmitAllFunction();
			}
			swkHead = swkHead + '</HEAD>';
			swkHead = swkHead + '<BODY BGCOLOR="#FFFFFF" TEXT="#0000FF">';
			return swkHead;
		}
		catch(err)
		{
				rwkErr('Creating the header information',err.description);
		}
}
//	-->
//</script>
