function ClickThruReturn(param_list) {
   var param_element = param_list.split('|');
   cookiestring = 'gaos_click_list';
   cookietest = unescape ( readCookie( cookiestring ) );
   split_up = cookietest.split('~');
   if (split_up[1])
   {
     prod_params = split_up[1].split('|');
   }
   var rtnstring = '';
   if (split_up[0])
   {
     linknumber = split_up[0].split('linknumber=');
     rtnstring = '<div class="info_box"';
     if (param_element[3])
     {
       rtnstring = rtnstring + ' style="' + param_element[3] + '"';
     }
     var sub_param = param_element[2].replace('___sub_link___',prod_params[1]);
     rtnstring = rtnstring + '>' + param_element[0] + '</div>';
     rtnstring = rtnstring + '<div id="shop_cats" style="vertical-align:middle;background-color:#DC4833;color:white;text-align:center;font-weight:bold;">';
     rtnstring = rtnstring + '<p>' + prod_params[0] + sub_param + '</p>';
     rtnstring = rtnstring + '<p>' + param_element[1] + '</p>';

     row = 0;
     while (document.forms['clickthrulinks'].elements['c_t_suffix[]'][row])
     {
       urlObj = document.forms['clickthrulinks'].elements['c_t_suffix[]'][row];
       titleObj = document.forms['clickthrulinks'].elements['c_t_title[]'][row];
       urlObj.value = urlObj.value.replace('---linknumber---',linknumber[1]);
       rtnstring = rtnstring + '<a href="' + urlObj.value + '">' + titleObj.value + '</a><br/>';
       row++;       
     }
     rtnstring = rtnstring + '</br></div>';
   }
   return rtnstring;
}

function CheckClickThrough(click_list,click_url) {
   cookiestring = 'gaos_click_list';
   cookietest = unescape ( readCookie( cookiestring ) );
   var split_up = cookietest.split('~');
   var click_params = '';
   if (split_up[1])
   {
     click_params = split_up[1].split('|');
   }
   var click_before = '';
   var top_before = '';
   var row = 0;
   while (click_params[row])
   {
     if (row > 0)
     {
       click_before = click_before + ', ';
     }
     else 
     {
       top_before = click_params[row];
     }
     click_before = click_before + click_params[row];
     row++;
   }
   var click_params = '';
   click_params = click_list.split('|');
   var click_after = '';
   row = 0;
   while (click_params[row])
   {
     if (row > 0)
     {
       click_after = click_after + ', ';
     }
     else 
     {
       top_after = click_params[row];
     }
     click_after = click_after + click_params[row];
     row++;
   }
   var good=true;
   if ((top_before != top_after) && (top_before != ''))
   {
     var good=confirm ('___ctbc1___ ' + click_after + ' ___ctbc2___ ' + ' ___ctbc3___ ' + click_before + ' ___ctbc4___');
     if (good==true)
     {
       ClearShoppingBasket();
       document.cookie = "gaos_click_list=" + escape ( click_url + '~' + click_list );
       return true;
     }
     else
     {
       return false;
     }
   }
   else
   {
     document.cookie = "gaos_click_list=" + escape ( click_url + '~' + click_list );
     return true;
   }
}

function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Your email address is invalid. Please check and correct.")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Your email address is invalid. Please check and correct.")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Your email address is invalid. Please check and correct.")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Your email address is invalid. Please check and correct.")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Your email address is invalid. Please check and correct.")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Your email address is invalid. Please check and correct.")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Your email address is invalid. Please check and correct.")
		    return false
		 }

 		 return true					
	}

function ValidateCustomerDetails() {
        var alerttext = ''
	var emailID=document.shopbasket.email_1
	if ((emailID.value==null)||(emailID.value=="")){
		alert("Please enter your Email Address")
		emailID.focus()
		return false
	}
	if (echeck(emailID.value)==false){
		emailID.value=""
		emailID.focus()
		return false
	}
	var emailID=document.shopbasket.email_2
	if ((emailID.value==null)||(emailID.value=="")){
		alert("Please enter Confirm Email Address")
		emailID.focus()
		return false
	}
	if (echeck(emailID.value)==false){
		emailID.value=""
		emailID.focus()
		return false
	}
        if (document.shopbasket.email_1.value != document.shopbasket.email_2.value) {
                alerttext = alerttext + "Email addresses to not match.\n"
        }
        if (document.shopbasket.customer_name.value==null||document.shopbasket.customer_name.value=="") {
                alerttext = alerttext + "Please enter a customer name.\n"
        }
        if (document.shopbasket.address_line_1.value==null||document.shopbasket.address_line_1.value=="") {
                alerttext = alerttext + "Please enter first line of your address.\n"
        }
        if (document.shopbasket.city_town.value==null||document.shopbasket.city_town.value=="") {
                alerttext = alerttext + "Please enter a town or city.\n"
        }
        if (document.shopbasket.postcode.value==null||document.shopbasket.postcode.value=="") {
                alerttext = alerttext + "Please enter a postcode.\n"
        }
        if (document.shopbasket.county.value==null||document.shopbasket.county.value=="") {
                alerttext = alerttext + "Please enter a county.\n"
        }
	if (alerttext != "") {
                alert(alerttext)
                return false
        }
        return true
}

function stopRKey(evt) {
  var evt = (evt) ? evt : ((event) ? event : null);
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
  if ((evt.keyCode == 13) && (node.type=="text"))  {return false;}
}

document.onkeypress = stopRKey;

function isNum(value)
{
    return 123;
}

function numbersonly(myfield, e, dec)
{
var key;
var keychar;

if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;

// numbers
else if ((("0123456789").indexOf(keychar) > -1))
   return true;

// decimal point jump
else if (dec && (keychar == "."))
   {
   myfield.form.elements[dec].focus();
   return false;
   }
else
   return false;
}

function decimalonly(myfield, e, dec)
{
var key;
var keychar;

if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;

// numbers
else if ((("0123456789.").indexOf(keychar) > -1))
   return true;

// decimal point jump
else if (dec && (keychar == "."))
   {
   myfield.form.elements[dec].focus();
   return false;
   }
else
   return false;
}

function PostagePopUp(extended_postage)
{
   var urlcall = '';
   urlcall = extended_postage + '?orderweight=' + document.getElementById('weight_total').value + '|' + document.getElementById('order_total').value;
   mywindow = window.open(urlcall,"postagewindow","width=600,height=460");
}

function GetValueFromChild(ServiceName,PostageValue,ServiceValueStr)
{
   document.cookie = "gaos_postage_service=" + escape ( ServiceName );
   document.cookie = "gaos_postage_price=" + escape ( PostageValue );
   document.cookie = "gaos_postage_values=" + escape ( ServiceValueStr );
}

function prodTotals()
{
    var grandTotal = 0;
    var row = 0;
    while (document.forms['shopbasket'].elements['price[]'][row])
    {
        priceObj = document.forms['shopbasket'].elements['price[]'][row];
        qtyObj   = document.forms['shopbasket'].elements['quantity[]'][row];
        stockqtyObj   = document.forms['shopbasket'].elements['stockqty[]'][row];
        totalObj = document.forms['shopbasket'].elements['total[]'][row];
        factorObj = document.forms['shopbasket'].elements['factor[]'][row];
        factoringObj = document.forms['shopbasket'].elements['factoring[]'][row];

        if (parseInt(qtyObj.value) > parseInt(stockqtyObj.value))
        {
            alert('Your required quantity of ' + parseInt(qtyObj.value) + ' exceeds our stock level.  The quantity has been altered to ' + parseInt(stockqtyObj.value) + '.');
            qtyObj.value = stockqtyObj.value;
        }
        if (isNaN(priceObj.value))
        {
            priceObj = '';
        }
        if (isNaN(qtyObj.value))
        {
            qtyObj = '';
        }

        if (priceObj.value && qtyObj.value)
        {
            totalObj.value = ((parseFloat(priceObj.value) * parseFloat(qtyObj.value)).toFixed(2));
            factoringObj.value = ((parseFloat(qtyObj.value) / parseFloat(factorObj.value)).toFixed(2));
            grandTotal = grandTotal + parseFloat(totalObj.value);
        }
        else
        {
            totalObj.value = '';
        }
        row++;
    }
    document.getElementById('grand_total').value = (grandTotal.toFixed(2));
    return;
}

function calcTotals(shipping_flat_rate,shipping_title,free_carriage_value)
{
    var grandTotal = 0;
    var row = 0;

    while (document.forms['shopbasket'].elements['price[]'][row])
    {
        priceObj = document.forms['shopbasket'].elements['price[]'][row];
        qtyObj   = document.forms['shopbasket'].elements['quantity[]'][row];
        totalObj = document.forms['shopbasket'].elements['total[]'][row];
        stockqtyObj = document.forms['shopbasket'].elements['stockqty[]'][row];

        if (parseInt(qtyObj.value) > parseInt(stockqtyObj.value))
        {
            alert('Your required quantity of ' + parseInt(qtyObj.value) + ' exceeds our stock level.  The quantity has been altered to ' + parseInt(stockqtyObj.value) + '.');
            qtyObj.value = stockqtyObj.value;
        }

        if (isNaN(priceObj.value))
        {
            priceObj = '';
        }
        if (isNaN(qtyObj.value))
        {
            qtyObj = '';
        }

        if (priceObj.value && qtyObj.value)
        {
            totalObj.value = ((parseFloat(priceObj.value) * parseFloat(qtyObj.value)).toFixed(2));
            grandTotal = grandTotal + parseFloat(totalObj.value);
        }
        else
        {
            totalObj.value = '';
        }
        row++;
    }
    CheckOutUpdateBasket();
    document.location.reload();
    return;
}

function AddToBasket(useralert)
{
    var cookiestring = '';
    var row = 0;
    var kounter= 0;
    var cookietest = '';
    var element = '';
    var factor_title = '';
    var discount_rate = 0;
    var discount_price = 0;
    var discount_params = '';
    var outstring = 'These items have been added to your basket:';

    factor_title = document.getElementById('factor_title').value;

    cookiestring = 'gaos_coupon';
    cookietest = unescape ( readCookie( cookiestring ) ); 
    discount_params = cookietest.split('|');
    discount_rate = discount_params[0];
    discount_prod_restriction = discount_params[2] * 1;

    cookiestring = 'gaos_basket_' + kounter;
    cookietest = unescape ( readCookie( cookiestring ) ); 
    while (cookietest != "")
    {
            kounter++;
            cookiestring = 'gaos_basket_' + kounter;
            cookietest = unescape ( readCookie( cookiestring ) ); 
    }
    row = 0;
    while (document.forms['shopbasket'].elements['price[]'][row])
    {
        priceObj = document.forms['shopbasket'].elements['price[]'][row];
        bdpObj   = document.forms['shopbasket'].elements['bdp[]'][row];
        qtyObj   = document.forms['shopbasket'].elements['quantity[]'][row];
        totalObj = document.forms['shopbasket'].elements['total[]'][row];
        prodObj  = document.forms['shopbasket'].elements['product[]'][row];
        packObj  = document.forms['shopbasket'].elements['pack[]'][row];
        weightObj  = document.forms['shopbasket'].elements['weight[]'][row];
        productcodeObj  = document.forms['shopbasket'].elements['productcode[]'][row];
        stockqtyObj  = document.forms['shopbasket'].elements['stockqty[]'][row];
        factoringObj  = document.forms['shopbasket'].elements['factoring[]'][row];
 
        if (discount_rate != null && discount_rate != '')
        {
            this_p = productcodeObj.value.substr(0,7) * 1;
            if (discount_prod_restriction == 0 || discount_prod_restriction == this_p)
            {
                discount_price = bdpObj.value - (bdpObj.value * (discount_rate / 100));
                if (discount_price < priceObj.value)
                {
                    priceObj.value = discount_price.toFixed(2);
                    totalObj.value = (priceObj.value * qtyObj.value).toFixed(2);
                }
            }
        }

        if (isNaN(priceObj.value))
        {
            priceObj = '';
        }
        if (isNaN(qtyObj.value))
        {
            qtyObj = '';
        }

        if (qtyObj.value > 0)
        {
            if (kounter < 15)
            {
                element = priceObj.value;
                cookietest = element.replace('|','') + '|';
                element = qtyObj.value;
                cookietest += element.replace('|','') + '|';
                element = prodObj.value;
                if (factoringObj.value == "notused")
                {
                    element += '(' + factor_title + ': ' + factoringObj.value + ')';
                }
                cookietest += element.replace('|','') + '|';
                element = totalObj.value;
                cookietest += element.replace('|','') + '|';
                element = packObj.value;
                cookietest += element.replace('|','') + '|';
                element = weightObj.value;
                cookietest += element.replace('|','') + '|';
                element = productcodeObj.value;
                cookietest += element.replace('|','') + '|';
                element = stockqtyObj.value;
                cookietest += element.replace('|','') + '|';
                document.cookie = "gaos_basket_" + kounter + "=" + escape ( cookietest );
                outstring += "\n" + qtyObj.value + ' x ' + prodObj.value + ' (' + packObj.value + ')';
            }
            kounter++;
        }
        row++;
    }
    if (kounter > 15)
    {
        alert('Maximum number of products allowed in the shopping basket is 15.');
    }
    if (useralert > 0)
    {
        alert(outstring);
    }
    return;
}

function ClearShoppingBasket()
{
    var cookiestring = '';
    var kounter = 0;
    var cookietest = '';

    cookiestring = 'gaos_postage_service';
    deleteCookie (cookiestring);
    cookiestring = 'gaos_postage_price';
    deleteCookie (cookiestring);
    cookiestring = 'gaos_postage_values';
    deleteCookie (cookiestring);
    cookiestring = 'gaos_click_list';
    deleteCookie (cookiestring);
    cookiestring = 'gaos_basket_' + kounter;
    cookietest = unescape ( readCookie( cookiestring ) ); 
    while (kounter < 15)
    {
            deleteCookie (cookiestring);
            kounter++;
            cookiestring = 'gaos_basket_' + kounter;
            cookietest = unescape ( readCookie( cookiestring ) ); 
    }
    window.location = "index.html";
}

function CheckOutUpdateBasket()
{
    var cookiestring = '';
    var row = 0;
    var kounter= 0;
    var cookietest = '';
    var element = '';

    cookiestring = 'gaos_basket_' + kounter;
    cookietest = unescape ( readCookie( cookiestring ) ); 
    while (cookietest != "")
    {
            deleteCookie (cookiestring);
            kounter++;
            cookiestring = 'gaos_basket_' + kounter;
            cookietest = unescape ( readCookie( cookiestring ) ); 
    }

    row = 0;
    kounter = 0;
    while (document.forms['shopbasket'].elements['price[]'][row])
    {
        ppObj = document.forms['shopbasket'].elements['pp[]'][row];
        removeObj = document.forms['shopbasket'].elements['remove[]'][row];
        priceObj = document.forms['shopbasket'].elements['price[]'][row];
        qtyObj   = document.forms['shopbasket'].elements['quantity[]'][row];
        totalObj = document.forms['shopbasket'].elements['total[]'][row];
        prodObj  = document.forms['shopbasket'].elements['product[]'][row];
        packObj  = document.forms['shopbasket'].elements['pack[]'][row];
        weightObj  = document.forms['shopbasket'].elements['weight[]'][row];
        productcodeObj  = document.forms['shopbasket'].elements['productcode[]'][row];
        stockqtyObj  = document.forms['shopbasket'].elements['stockqty[]'][row];

        if (isNaN(priceObj.value))
        {
            priceObj = '';
        }
        if (isNaN(qtyObj.value))
        {
            qtyObj = '';
        }

        if (qtyObj.value > 0 && removeObj.checked==false && ppObj.value != 'PP')
        {
            element = priceObj.value;
            cookietest = element.replace('|','') + '|';
            element = qtyObj.value;
            cookietest += element.replace('|','') + '|';
            element = prodObj.value;
            cookietest += element.replace('|','') + '|';
            element = totalObj.value;
            cookietest += element.replace('|','') + '|';
            element = packObj.value;
            cookietest += element.replace('|','') + '|';
            element = weightObj.value;
            cookietest += element.replace('|','') + '|';
            element = productcodeObj.value;
            cookietest += element.replace('|','') + '|';
            element = stockqtyObj.value;
            cookietest += element.replace('|','') + '|';
            document.cookie = "gaos_basket_" + kounter + "=" + escape ( cookietest );
            kounter++;
        }
        row++;
    }
    return;
}

function PayPalButton(shipping_flat_rate,shipping_title,free_carriage_value,postage_insurance)
{
    var cookiestring = '';
    var cookietest = '';
    var element = '';
    var rtnstring = '';
    var row = 0;
    var pprow = 0;
    var firstnullrow = 0;
    var grandTotal = 0;
    var weightTotal = 0;
    var order_min_weight = 0;
    var pi_elements = postage_insurance.split('|');

    cookiestring = 'gaos_postage_values';  
    cookietest = unescape ( readCookie( cookiestring ) );
    if (cookietest != null && cookietest != '')
    {
       postage_values = cookietest;
    }
    else
    {
       postage_values = shipping_flat_rate;
    }

    cookiestring = 'gaos_postage_price';  
    cookietest = unescape ( readCookie( cookiestring ) );
    if (cookietest != null && cookietest != '')
    {
       shipping_flat_rate = cookietest;
    }
    cookiestring = 'gaos_postage_service';  
    cookietest = unescape ( readCookie( cookiestring ) );
    if (cookietest != null && cookietest != '')
    {
       shipping_title = cookietest;
    }

    while (row < 16)
    {
        cookiestring = 'gaos_basket_' + row;
        cookietest = unescape ( readCookie( cookiestring ) ); 

        if (cookietest != null && cookietest != '')
        {
            element = cookietest.split('|');
            min_weight = element[5].split('-');
            element[5] = parseFloat(min_weight[0]);
            if (min_weight[1] != null && min_weight[1] != '')
            {
              if (parseFloat(min_weight[1]) > order_min_weight)
              {
                order_min_weight = parseFloat(min_weight[1]);
              }
            }
            rtnstring = rtnstring + '<input type="hidden" name="quantity_' + (row+1) + '" value="' + element[1] + '" />';
            rtnstring = rtnstring + '<input type="hidden" name="item_name_' + (row+1) + '" value="' + element[2];
            rtnstring = rtnstring + ' (' + element[4] + ')" />';
            rtnstring = rtnstring + '<input type="hidden" name="item_number_' + (row+1) + '" value="' + element[6] + '" />';
            rtnstring = rtnstring + '<input type="hidden" name="amount_' + (row+1) + '" value="' + element[0] + '" />'; 
            grandTotal = grandTotal + parseFloat(element[3]); 
            weightTotal = weightTotal + parseFloat(element[5] * element[1]);
        } 
        else
        {
            if (firstnullrow == 0)
            {
                  firstnullrow = row;
            }
        }
        row++;
    }

    if (order_min_weight > weightTotal)
    {
      weightTotal = order_min_weight;
    }

    if (postage_values != '')
    {
          var postage_elements = postage_values.split(',');
          var weighted_rate = 'a';
          for (element_counter = 0; element_counter < postage_elements.length; element_counter++)
          {
                var this_element = postage_elements[element_counter];
                var split_element = this_element.split(':');
                if (split_element[0] >= weightTotal && weighted_rate == 'a')
                {
                      weighted_rate = split_element[1];
                }
          }
          if (weighted_rate != 'a')
          {
                shipping_flat_rate = weighted_rate;
                add_pi = 0;
                for (var pi_counter in pi_elements)
                {
                    this_pi = pi_elements[pi_counter].split('~');
                    if (grandTotal >= this_pi[0])
                    {
                        add_pi = this_pi[1];
                    }
                }
                shipping_flat_rate = (shipping_flat_rate * 1) + (add_pi * 1);
                shipping_flat_rate = shipping_flat_rate.toFixed(2);
                shipping_title = shipping_title + ' (inc Insurance)';
          } 
          else
          {
                shipping_flat_rate = '999.99';
          }   
    }
    if (grandTotal < free_carriage_value) 
    {
        rtnstring = rtnstring + '<input type="hidden" name="quantity_' + (firstnullrow+1) + '" value="1">';
        rtnstring = rtnstring + '<input type="hidden" name="item_name_' + (firstnullrow+1) + '" value="' + shipping_title + '">';
        rtnstring = rtnstring + '<input type="hidden" name="amount_' + (firstnullrow+1) + '" value="' + shipping_flat_rate + '">'; 
    }
    return rtnstring;
}

function PostcodeSearchResults()
{
    var cookiestring = '';
    var cookietest = '';
    cookiestring = 'gaos_distance';  
    cookietest = unescape ( readCookie( cookiestring ) );
    var strnew = cookietest.replace(/\+/g," ");
    return strnew;
}

function GoogleCheckOutButton(shipping_flat_rate,shipping_title,vat_factor,free_carriage_value,postage_insurance)
{
    var cookiestring = '';
    var cookietest = '';
    var element = '';
    var rtnstring = '';
    var min_weight = '';
    var row = 0;
    var firstnullrow = 0;
    var grandTotal = 0;
    var weightTotal = 0;
    var order_min_weight = 0;
    var pi_elements = postage_insurance.split('|');

    cookiestring = 'gaos_postage_values';  
    cookietest = unescape ( readCookie( cookiestring ) );
    if (cookietest != null && cookietest != '')
    {
       postage_values = cookietest;
    }
    else
    {
       postage_values = shipping_flat_rate;
    }
    cookiestring = 'gaos_postage_price';  
    cookietest = unescape ( readCookie( cookiestring ) );
    if (cookietest != null && cookietest != '')
    {
       shipping_flat_rate = cookietest;
    }
    cookiestring = 'gaos_postage_service';  
    cookietest = unescape ( readCookie( cookiestring ) );
    if (cookietest != null && cookietest != '')
    {
       shipping_title = cookietest;
    }

    while (row < 16)
    {
        cookiestring = 'gaos_basket_' + row;
        cookietest = unescape ( readCookie( cookiestring ) ); 

        if (cookietest != null && cookietest != '')
        {
            element = cookietest.split('|');
            min_weight = element[5].split('-');
            element[5] = parseFloat(min_weight[0]);
            if (min_weight[1] != null && min_weight[1] != '')
            {
              if (parseFloat(min_weight[1]) > order_min_weight)
              {
                order_min_weight = parseFloat(min_weight[1]);
              }
            }
            rtnstring = rtnstring + '<input type="hidden" name="item_quantity_' + (row+1) + '" value="' + element[1]+ '" />';
            rtnstring = rtnstring + '<input type="hidden" name="item_name_' + (row+1) + '" value="' + element[2] + '" />';
            rtnstring = rtnstring + '<input type="hidden" name="item_description_' + (row+1) + '" value="' + element[4] + '" />';
            rtnstring = rtnstring + '<input type="hidden" name="item_merchant_id_' + (row+1) + '" value="' + element[6] + '" />';
            rtnstring = rtnstring + '<input type="hidden" name="item_price_' + (row+1) + '" value="' + (element[0] * vat_factor) + '" />'; 
            rtnstring = rtnstring + '<input type="hidden" name="item_currency_' + (row+1) + '" value="GBP" />'; 
            grandTotal = grandTotal + parseFloat(element[3]); 
            weightTotal = weightTotal + parseFloat(min_weight[0] * element[1]);
        } 
        else
        {
            if (firstnullrow == 0)
            {
                  firstnullrow = row;
            }
        }
        row++;
    }

    if (order_min_weight > weightTotal)
    {
      weightTotal = order_min_weight;
    }

    if (postage_values != '')
    {
          var postage_elements = postage_values.split(',');
          var weighted_rate = 'a';
          for (element_counter = 0; element_counter < postage_elements.length; element_counter++)
          {
                var this_element = postage_elements[element_counter];
                var split_element = this_element.split(':');
                if (split_element[0] >= weightTotal && weighted_rate == 'a')
                {
                      weighted_rate = split_element[1];
                }
          }
          if (weighted_rate != 'a')
          {
                shipping_flat_rate = weighted_rate;
                add_pi = 0;
                for (var pi_counter in pi_elements)
                {
                    this_pi = pi_elements[pi_counter].split('~');
                    if (grandTotal >= this_pi[0])
                    {
                        add_pi = this_pi[1];
                    }
                }
                shipping_flat_rate = (shipping_flat_rate * 1) + (add_pi * 1);
                shipping_flat_rate = shipping_flat_rate.toFixed(2);
                shipping_title = shipping_title + ' (inc Insurance)';
          } 
          else
          {
                shipping_flat_rate = '999.99';
          }   
    }
    if (grandTotal < free_carriage_value) 
    {
        rtnstring = rtnstring + '<input type="hidden" name="item_quantity_' + (firstnullrow+1) + '" value="1">';
        rtnstring = rtnstring + '<input type="hidden" name="item_name_' + (firstnullrow+1) + '" value="' + shipping_title + '">';
        rtnstring = rtnstring + '<input type="hidden" name="item_price_' + (firstnullrow+1) + '" value="' + (shipping_flat_rate * vat_factor) + '">'; 
        rtnstring = rtnstring + '<input type="hidden" name="item_description_' + (firstnullrow+1) + '" value="">';
        rtnstring = rtnstring + '<input type="hidden" name="item_currency_' + (firstnullrow+1) + '" value="GBP">';
    }
    return rtnstring;
}

function CreateShoppingBasket(shipping_flat_rate,shipping_title,free_carriage_value,postage_insurance)
{
    var cookiestring = '';
    var cookietest = '';
    var rtnstring = '';
    var divobject = '';
    var element = '';
    var postage_values = '';
    var row = 0;
    var firstnullrow = 'a';
    var grandTotal = 0;  
    var weightTotal = 0;
    var order_min_weight = 0;
    var pi_elements = postage_insurance.split('|');
    var currencyObj = document.forms['shopbasket'].elements['currency_symbol'];

    cookiestring = 'gaos_postage_values';  
    cookietest = unescape ( readCookie( cookiestring ) );
    if (cookietest != null && cookietest != '')
    {
       postage_values = cookietest;
    }
    else
    {
       postage_values = shipping_flat_rate;
    }
    cookiestring = 'gaos_postage_price';  
    cookietest = unescape ( readCookie( cookiestring ) );
    if (cookietest != null && cookietest != '')
    {
       shipping_flat_rate = cookietest;
    }
    cookiestring = 'gaos_postage_service';  
    cookietest = unescape ( readCookie( cookiestring ) );
    if (cookietest != null && cookietest != '')
    {
       shipping_title = cookietest;
    }

    while (row < 16)
    {
        cookiestring = 'gaos_basket_' + row;
        cookietest = unescape ( readCookie( cookiestring ) ); 

        if (cookietest != null && cookietest != '')
        {
            element = cookietest.split('|');
            min_weight = element[5].split('-');
            element[5] = parseFloat(min_weight[0]);
            if (min_weight[1] != null && min_weight[1] != '')
            {
              if (parseFloat(min_weight[1]) > order_min_weight)
              {
                order_min_weight = parseFloat(min_weight[1]);
              }
            }
            priceObj = document.forms['shopbasket'].elements['price[]'][row];
            qtyObj   = document.forms['shopbasket'].elements['quantity[]'][row];
            totalObj = document.forms['shopbasket'].elements['total[]'][row];
            prodObj  = document.forms['shopbasket'].elements['product[]'][row];
            packObj  = document.forms['shopbasket'].elements['pack[]'][row];
            weightObj  = document.forms['shopbasket'].elements['weight[]'][row];
            productcodeObj  = document.forms['shopbasket'].elements['productcode[]'][row];
            stockqtyObj  = document.forms['shopbasket'].elements['stockqty[]'][row];
            qtyObj.value = element[1];
            prodObj.value = element[2]; 
            priceObj.value = element[0]; 
            totalObj.value  = element[3];
            packObj.value  = element[4];
            weightObj.value  = element[5];
            productcodeObj.value  = element[6];
            stockqtyObj.value  = element[7];
            divobject = 'checkout_box_' + row;
            document.getElementById(divobject).style.visibility = 'visible';
            document.getElementById(divobject).style.display = 'inline';
            document.getElementById(divobject).style.height = '22px';
            divobject = 'checkout_abox_' + row;
            document.getElementById(divobject).style.visibility = 'visible';
            document.getElementById(divobject).style.height = '22px';
            divobject = 'checkout_wbox_' + row;
            document.getElementById(divobject).style.visibility = 'visible';
            document.getElementById(divobject).style.height = '22px';
            divobject = 'checkout_bbox_' + row;
            document.getElementById(divobject).style.visibility = 'visible';
            document.getElementById(divobject).style.height = '22px';
            divobject = 'checkout_cbox_' + row;
            document.getElementById(divobject).style.visibility = 'visible';
            document.getElementById(divobject).style.height = '22px';
            divobject = 'checkout_dbox_' + row;
            document.getElementById(divobject).style.visibility = 'visible';
            document.getElementById(divobject).style.height = '22px';
            divobject = 'checkout_ebox_' + row;
            document.getElementById(divobject).style.visibility = 'visible';
            document.getElementById(divobject).style.height = '22px';
            divobject = 'checkout_fbox_' + row;
            document.getElementById(divobject).style.visibility = 'visible';
            document.getElementById(divobject).style.height = '22px';
            divobject = 'checkout_gbox_' + row;
            document.getElementById(divobject).style.visibility = 'visible';
            document.getElementById(divobject).style.height = '22px';
            grandTotal = grandTotal + parseFloat(totalObj.value);
            weightTotal = weightTotal + parseFloat(weightObj.value * qtyObj.value);
        } 
        else
        {
            if (firstnullrow == 'a')
            {
                firstnullrow = row;
            }
        }
        row++;
    }
    
    if (order_min_weight > weightTotal)
    {
      weightTotal = parseFloat(order_min_weight);
    }

    if (postage_values != '')
    {
          var postage_elements = postage_values.split(',');
          var weighted_rate = 'a';
          for (element_counter = 0; element_counter < postage_elements.length; element_counter++)
          {
                var this_element = postage_elements[element_counter];
                var split_element = this_element.split(':');
                if (split_element[0] >= weightTotal && weighted_rate == 'a')
                {
                      weighted_rate = split_element[1];
                }
          }
          if (weighted_rate != 'a')
          {
                shipping_flat_rate = weighted_rate;
                add_pi = 0;
                for (var pi_counter in pi_elements)
                {
                    this_pi = pi_elements[pi_counter].split('~');
                    if (grandTotal >= this_pi[0])
                    {
                        add_pi = this_pi[1];
                    }
                }
                shipping_flat_rate = (shipping_flat_rate * 1) + (add_pi * 1);
                shipping_flat_rate = shipping_flat_rate.toFixed(2);
                shipping_title = shipping_title + ' (inc Insurance)';
          } 
          else
          {
                shipping_flat_rate = '999.99';
          }   
          document.cookie = "gaos_postage_price=" + escape ( shipping_flat_rate );
    }

    if (grandTotal >= free_carriage_value) 
    {
          shipping_flat_rate = '0.00';
          shipping_title = 'Free UK Mail over ' + currencyObj.value + ' ' + free_carriage_value;
    }
    if (firstnullrow > 0)
    {
          ppObj = document.forms['shopbasket'].elements['pp[]'][firstnullrow];
          removeObj = document.forms['shopbasket'].elements['remove[]'][firstnullrow];
          priceObj = document.forms['shopbasket'].elements['price[]'][firstnullrow];
          qtyObj   = document.forms['shopbasket'].elements['quantity[]'][firstnullrow];
          totalObj = document.forms['shopbasket'].elements['total[]'][firstnullrow];
          prodObj  = document.forms['shopbasket'].elements['product[]'][firstnullrow];
          packObj  = document.forms['shopbasket'].elements['pack[]'][firstnullrow];
          weightObj  = document.forms['shopbasket'].elements['weight[]'][firstnullrow];
          productcodeObj  = document.forms['shopbasket'].elements['productcode[]'][firstnullrow];
          stockqtyObj  = document.forms['shopbasket'].elements['stockqty[]'][firstnullrow];
          ppObj.value = 'PP';
          qtyObj.value = '1';
          prodObj.value = shipping_title; 
          priceObj.value = shipping_flat_rate; 
          totalObj.value = shipping_flat_rate;
          packObj.value = '';
          weightObj.value = '';
          productcodeObj.value = '';
          stockqtyObj.value = '';
          divobject = 'checkout_box_' + firstnullrow;
          document.getElementById(divobject).style.visibility = 'visible';
          document.getElementById(divobject).style.display = 'inline';
          document.getElementById(divobject).style.height = '22px';
          divobject = 'checkout_abox_' + firstnullrow;
          document.getElementById(divobject).style.visibility = 'visible';
          document.getElementById(divobject).style.height = '22px';
          divobject = 'checkout_wbox_' + firstnullrow;
          document.getElementById(divobject).style.visibility = 'visible';
          document.getElementById(divobject).style.height = '22px';
          divobject = 'checkout_bbox_' + firstnullrow;
          document.getElementById(divobject).style.visibility = 'visible';
          document.getElementById(divobject).style.height = '22px';
          divobject = 'checkout_cbox_' + firstnullrow;
          document.getElementById(divobject).style.visibility = 'visible';
          document.getElementById(divobject).style.height = '22px';
          divobject = 'checkout_dbox_' + firstnullrow;
          document.getElementById(divobject).style.visibility = 'visible';
          document.getElementById(divobject).style.height = '22px';
          divobject = 'checkout_ebox_' + firstnullrow;
          document.getElementById(divobject).style.visibility = 'visible';
          document.getElementById(divobject).style.height = '22px';
          divobject = 'checkout_fbox_' + firstnullrow;
          document.getElementById(divobject).style.visibility = 'visible';
          document.getElementById(divobject).style.height = '22px';
          divobject = 'checkout_gbox_' + firstnullrow;
          document.getElementById(divobject).style.visibility = 'visible';
          document.getElementById(divobject).style.height = '22px';
          document.getElementById('order_total').value = (grandTotal.toFixed(2));
          grandTotal = grandTotal + parseFloat(totalObj.value);
          document.getElementById('grand_total').value = (grandTotal.toFixed(2));
          document.getElementById('weight_total').value = (weightTotal.toFixed(2));
          qtyObj.style.visibility = 'hidden';
          removeObj.style.visibility = 'hidden';
    }
}

function ShowDiscountRate()
{
    var cookiestring = '';
    var cookietest = '';
    var discount_params = '';
    cookiestring = 'gaos_coupon';
    cookietest = unescape ( readCookie( cookiestring ) ); 
    discount_params = cookietest.split('|');
    discountObj = document.forms['coupon'].elements['discount_rate'];
    discountObj.value = discount_params[0];
    conditionObj = document.forms['coupon'].elements['discount_condition'];
    conditionObj.value = discount_params[1].replace(/\+/g,' ');
}

function ShowShoppingBasket(shipping_flat_rate,shipping_title,free_carriage_value,postage_insurance)
{
    var cookiestring = '';
    var cookietest = '';
    var rtnstring = '';
    var divobject = '';
    var element = '';
    var postage_values = '';
    var row = 0;
    var firstnullrow = 'a';
    var grandTotal = 0;  
    var weightTotal = 0;
    var order_min_weight = 0;
    var pi_elements = postage_insurance.split('|');

    cookiestring = 'gaos_postage_values';  
    cookietest = unescape ( readCookie( cookiestring ) );
    if (cookietest != null && cookietest != '')
    {
       postage_values = cookietest;
    }
    else
    {
       postage_values = shipping_flat_rate;
    }
    cookiestring = 'gaos_postage_price';  
    cookietest = unescape ( readCookie( cookiestring ) );
    if (cookietest != null && cookietest != '')
    {
       shipping_flat_rate = cookietest;
    }
    cookiestring = 'gaos_postage_service';  
    cookietest = unescape ( readCookie( cookiestring ) );
    if (cookietest != null && cookietest != '')
    {
       shipping_title = cookietest;
    }

    while (row < 16)
    {
        cookiestring = 'gaos_basket_' + row;
        cookietest = unescape ( readCookie( cookiestring ) ); 

        if (cookietest != null && cookietest != '')
        {
            element = cookietest.split('|');
            min_weight = element[5].split('-');
            element[5] = parseFloat(min_weight[0]);
            if (min_weight[1] != null && min_weight[1] != '')
            {
              if (parseFloat(min_weight[1]) > order_min_weight)
              {
                order_min_weight = parseFloat(min_weight[1]);
              }
            }
            priceObj = document.forms['shopbasket'].elements['price[]'][row];
            qtyObj   = document.forms['shopbasket'].elements['quantity[]'][row];
            totalObj = document.forms['shopbasket'].elements['total[]'][row];
            prodObj  = document.forms['shopbasket'].elements['product[]'][row];
            packObj  = document.forms['shopbasket'].elements['pack[]'][row];
            weightObj  = document.forms['shopbasket'].elements['weight[]'][row];
            productcodeObj  = document.forms['shopbasket'].elements['productcode[]'][row];
            stockqtyObj  = document.forms['shopbasket'].elements['stockqty[]'][row];
            qtyObj.value = element[1];
            prodObj.value = element[2]; 
            priceObj.value = element[0]; 
            totalObj.value  = element[3];
            packObj.value  = element[4];
            weightObj.value  = element[5];
            productcodeObj.value  = element[6];
            stockqtyObj.value  = element[7];
            divobject = 'checkout_box_' + row;
            document.getElementById(divobject).style.visibility = 'visible';
            document.getElementById(divobject).style.display = 'inline';
            document.getElementById(divobject).style.height = '22px';
            divobject = 'checkout_wbox_' + row;
            document.getElementById(divobject).style.visibility = 'visible';
            document.getElementById(divobject).style.height = '22px';
            divobject = 'checkout_bbox_' + row;
            document.getElementById(divobject).style.visibility = 'visible';
            document.getElementById(divobject).style.height = '22px';
            divobject = 'checkout_cbox_' + row;
            document.getElementById(divobject).style.visibility = 'visible';
            document.getElementById(divobject).style.height = '22px';
            divobject = 'checkout_dbox_' + row;
            document.getElementById(divobject).style.visibility = 'visible';
            document.getElementById(divobject).style.height = '22px';
            divobject = 'checkout_ebox_' + row;
            document.getElementById(divobject).style.visibility = 'visible';
            document.getElementById(divobject).style.height = '22px';
            divobject = 'checkout_fbox_' + row;
            document.getElementById(divobject).style.visibility = 'visible';
            document.getElementById(divobject).style.height = '22px';
            divobject = 'checkout_gbox_' + row;
            document.getElementById(divobject).style.visibility = 'visible';
            document.getElementById(divobject).style.height = '22px';
            grandTotal = grandTotal + parseFloat(totalObj.value);
            weightTotal = weightTotal + parseFloat(weightObj.value * qtyObj.value);
        } 
        else
        {
            if (firstnullrow == 'a')
            {
                firstnullrow = row;
            }
        }
        row++;
    }

    if (order_min_weight > weightTotal)
    {
      weightTotal = order_min_weight;
    }
    if (postage_values != '')
    {
          var postage_elements = postage_values.split(',');
          var weighted_rate = 'a';
          for (element_counter = 0; element_counter < postage_elements.length; element_counter++)
          {
                var this_element = postage_elements[element_counter];
                var split_element = this_element.split(':');
                if (split_element[0] >= weightTotal && weighted_rate == 'a')
                {
                      weighted_rate = split_element[1];
                }
          }
          if (weighted_rate != 'a')
          {
                shipping_flat_rate = weighted_rate;
                shipping_flat_rate = weighted_rate;
                add_pi = 0;
                for (var pi_counter in pi_elements)
                {
                    this_pi = pi_elements[pi_counter].split('~');
                    if (grandTotal >= this_pi[0])
                    {
                        add_pi = this_pi[1];
                    }
                }
                shipping_flat_rate = (shipping_flat_rate * 1) + (add_pi * 1);
                shipping_flat_rate = shipping_flat_rate.toFixed(2);
                shipping_title = shipping_title + ' (inc Insurance)';
          } 
          else
          {
                shipping_flat_rate = '999.99';
          }   
          document.cookie = "gaos_postage_price=" + escape ( shipping_flat_rate );
    }

    if (grandTotal >= free_carriage_value) 
    {
          shipping_flat_rate = '0.00';
          shipping_title = 'Free UK Mail over GBP ' + free_carriage_value;
    }
    if (firstnullrow > 0)
    {
          ppObj = document.forms['shopbasket'].elements['pp[]'][firstnullrow];
          priceObj = document.forms['shopbasket'].elements['price[]'][firstnullrow];
          qtyObj   = document.forms['shopbasket'].elements['quantity[]'][firstnullrow];
          totalObj = document.forms['shopbasket'].elements['total[]'][firstnullrow];
          prodObj  = document.forms['shopbasket'].elements['product[]'][firstnullrow];
          packObj  = document.forms['shopbasket'].elements['pack[]'][firstnullrow];
          weightObj  = document.forms['shopbasket'].elements['weight[]'][firstnullrow];
          productcodeObj  = document.forms['shopbasket'].elements['productcode[]'][firstnullrow];
          stockqtyObj  = document.forms['shopbasket'].elements['stockqty[]'][firstnullrow];
          ppObj.value = 'PP';
          qtyObj.value = '1';
          prodObj.value = shipping_title; 
          priceObj.value = shipping_flat_rate; 
          totalObj.value = shipping_flat_rate;
          packObj.value = '';
          weightObj.value = '';
          productcodeObj.value = '';
          stockqtyObj.value = '';
          divobject = 'checkout_box_' + firstnullrow;
          document.getElementById(divobject).style.visibility = 'visible';
          document.getElementById(divobject).style.display = 'inline';
          document.getElementById(divobject).style.height = '22px';
          divobject = 'checkout_wbox_' + firstnullrow;
          document.getElementById(divobject).style.visibility = 'visible';
          document.getElementById(divobject).style.height = '22px';
          divobject = 'checkout_bbox_' + firstnullrow;
          document.getElementById(divobject).style.visibility = 'visible';
          document.getElementById(divobject).style.height = '22px';
          divobject = 'checkout_cbox_' + firstnullrow;
          document.getElementById(divobject).style.visibility = 'visible';
          document.getElementById(divobject).style.height = '22px';
          divobject = 'checkout_dbox_' + firstnullrow;
          document.getElementById(divobject).style.visibility = 'visible';
          document.getElementById(divobject).style.height = '22px';
          divobject = 'checkout_ebox_' + firstnullrow;
          document.getElementById(divobject).style.visibility = 'visible';
          document.getElementById(divobject).style.height = '22px';
          divobject = 'checkout_fbox_' + firstnullrow;
          document.getElementById(divobject).style.visibility = 'visible';
          document.getElementById(divobject).style.height = '22px';
          divobject = 'checkout_gbox_' + firstnullrow;
          document.getElementById(divobject).style.visibility = 'visible';
          document.getElementById(divobject).style.height = '22px';
          grandTotal = grandTotal + parseFloat(totalObj.value);
          document.getElementById('grand_total').value = (grandTotal.toFixed(2));
          document.getElementById('weight_total').value = (weightTotal.toFixed(2));
          qtyObj.style.visibility = 'hidden';
    }
}

function fTotals()
{
    var grandTotal = 0;
    var fixed_two = 0;
    var fixed_none = 0;
    var row = 0;

    while (document.forms['shopbasket'].elements['price[]'][row])
    {
        priceObj = document.forms['shopbasket'].elements['price[]'][row];
        qtyObj   = document.forms['shopbasket'].elements['quantity[]'][row];
        stockqtyObj   = document.forms['shopbasket'].elements['stockqty[]'][row];
        totalObj = document.forms['shopbasket'].elements['total[]'][row];
        factorObj = document.forms['shopbasket'].elements['factor[]'][row];
        factoringObj = document.forms['shopbasket'].elements['factoring[]'][row];

        if (priceObj.value && factoringObj.value)
        {
            fixed_two = ((parseFloat(factoringObj.value) * parseFloat(factorObj.value)).toFixed(2));
            fixed_none = fixed_two.split('.');
            if (fixed_none[1] != '00')
            {
                qtyObj.value = (parseInt(fixed_none[0]) + 1);
            }
            else
            {
                qtyObj.value = parseInt(fixed_none[0]);
            }
        }

        if (parseInt(qtyObj.value) > parseInt(stockqtyObj.value))
        {
            alert('Your required quantity of ' + parseInt(qtyObj.value) + ' exceeds our stock level.  The quantity has been altered to ' + parseInt(stockqtyObj.value) + '.');
            qtyObj.value = stockqtyObj.value;
        }
        if (isNaN(priceObj.value))
        {
            priceObj = '';
        }
        if (isNaN(qtyObj.value))
        {
            qtyObj = '';
        }

        if (priceObj.value && qtyObj.value)
        {
            totalObj.value = ((parseFloat(priceObj.value) * parseFloat(qtyObj.value)).toFixed(2));
            factoringObj.value = ((parseFloat(factoringObj.value)).toFixed(2));
            grandTotal = grandTotal + parseFloat(totalObj.value);
        }
        else
        {
            totalObj.value = '';
        }
        row++;
    }
    document.getElementById('grand_total').value = (grandTotal.toFixed(2));
    return;
}

function CoverageCalculator()
{
    var row = 0;
    var tilearea = 0;
    var tempvalue1 = 0;  
    var tempvalue2 = 0;  
    tileareaObj = document.forms['coverage_calculator'].elements['coverage_area'];
    tilearea = tileareaObj.value;
    while (document.forms['coverage_calculator'].elements['high[]'][row])
    {
        highObj     = document.forms['coverage_calculator'].elements['high[]'][row];
        mediumObj   = document.forms['coverage_calculator'].elements['medium[]'][row];
        lowObj      = document.forms['coverage_calculator'].elements['low[]'][row];
        f_highObj   = document.forms['coverage_calculator'].elements['fhigh[]'][row];
        f_mediumObj = document.forms['coverage_calculator'].elements['fmedium[]'][row];
        f_lowObj    = document.forms['coverage_calculator'].elements['flow[]'][row];
        coats1_highObj   = document.forms['coverage_calculator'].elements['coats1high[]'][row];
        coats1_mediumObj = document.forms['coverage_calculator'].elements['coats1medium[]'][row];
        coats1_lowObj    = document.forms['coverage_calculator'].elements['coats1low[]'][row];
        coats2_highObj   = document.forms['coverage_calculator'].elements['coats2high[]'][row];
        coats2_mediumObj = document.forms['coverage_calculator'].elements['coats2medium[]'][row];
        coats2_lowObj    = document.forms['coverage_calculator'].elements['coats2low[]'][row];

        tempvalue1   = parseFloat((tilearea / f_highObj.value) * coats1_highObj.value);
        if (tempvalue1 > 0 && tempvalue1 != 'Infinity')
        {
              tempvalue1 = (tempvalue1.toFixed(1)) + ' litres'; 
        }
        else
        {
             tempvalue1 = 'N/A'; 
        }
        tempvalue2   = parseFloat((tilearea / f_highObj.value) * coats2_highObj.value);
        if (tempvalue2 > 0 && tempvalue2 != 'Infinity')
        {
              tempvalue2 = (tempvalue2.toFixed(1)) + ' litres'; 
        }
        else
        {
             tempvalue2 = 'N/A'; 
        }
        if (tempvalue1 == tempvalue2)
        {
             highObj.value = tempvalue1;
        }
        else
        {
             highObj.value = tempvalue1 + ' to ' + tempvalue2;
        }

        tempvalue1   = parseFloat((tilearea / f_mediumObj.value) * coats1_mediumObj.value);
        if (tempvalue1 > 0 && tempvalue1 != 'Infinity')
        {
              tempvalue1 = (tempvalue1.toFixed(1)) + ' litres'; 
        }
        else
        {
             tempvalue1 = 'N/A'; 
        }
        tempvalue2   = parseFloat((tilearea / f_mediumObj.value) * coats2_mediumObj.value);
        if (tempvalue2 > 0 && tempvalue2 != 'Infinity')
        {
              tempvalue2 = (tempvalue2.toFixed(1)) + ' litres'; 
        }
        else
        {
             tempvalue2 = 'N/A'; 
        }
        if (tempvalue1 == tempvalue2)
        {
             mediumObj.value = tempvalue1;
        }
        else
        {
             mediumObj.value = tempvalue1 + ' to ' + tempvalue2;
        }

        tempvalue1   = parseFloat((tilearea / f_lowObj.value) * coats1_lowObj.value);
        if (tempvalue1 > 0 && tempvalue1 != 'Infinity')
        {
              tempvalue1 = (tempvalue1.toFixed(1)) + ' litres'; 
        }
        else
        {
             tempvalue1 = 'N/A'; 
        }
        tempvalue2   = parseFloat((tilearea / f_lowObj.value) * coats2_lowObj.value);
        if (tempvalue2 > 0 && tempvalue2 != 'Infinity')
        {
              tempvalue2 = (tempvalue2.toFixed(1)) + ' litres'; 
        }
        else
        {
             tempvalue2 = 'N/A'; 
        }
        if (tempvalue1 == tempvalue2)
        {
             lowObj.value = tempvalue1;
        }
        else
        {
             lowObj.value = tempvalue1 + ' to ' + tempvalue2;
        }

        row++;
    }
}

function SurfaceCalculator()
{
    var row = 0;
    var tilearea = 0;
    var tempvalue1 = 0;  
    var tempvalue2 = 0;  
    tileareaObj = document.forms['surface_calculator'].elements['coverage_area'];
    tilearea = tileareaObj.value;
    while (document.forms['surface_calculator'].elements['tile_quantity[]'][row])
    {
        factorObj   = document.forms['surface_calculator'].elements['fhigh[]'][row];
        tileqtyObj  = document.forms['surface_calculator'].elements['tile_quantity[]'][row];

        tempvalue1  = ((parseFloat(tilearea) * parseFloat(factorObj.value)).toFixed(2));
        tempvalue2  = tempvalue1.split('.');
        if (tempvalue2[1] != '00')
        {
            tempvalue1 = (parseInt(tempvalue2[0]) + 1);
        }
        else
        {
            tempvalue1 = tempvalue2[0];
        }
        tileqtyObj.value = tempvalue1;
        row++;
    }
}

function readCookie(name) 
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0)
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return '';
}

function deleteCookie (name)
{
  var cookie_date = new Date ( );  // current date & time
  cookie_date.setTime ( cookie_date.getTime() - 1 );
  document.cookie = name += "=; expires=" + cookie_date.toGMTString();
}


function RetrieveBasket()
{
    var cookiestring = '';
    var cookietest = '';
    var element = '';
    var rtnstring = '';
    var row = 0;
    var prodObjvalue = ''; 
    var qtyObjvalue = ''; 
    var priceObjvalue = ''; 
    var totalObjvalue = '';  
    var packObjvalue = '';
    var weightObjvalue = '';
    var grandTotal = 0;  
    var quantityTotal = 0;  
    var weightTotal = 0;  
    currencyObj = document.forms['rc_shopbasket'].elements['currency_symbol'];
    while (row < 15)
    {

        cookiestring = 'gaos_basket_' + row;
        cookietest = unescape ( readCookie( cookiestring ) ); 
        element = cookietest.split('|');
        priceObjvalue = element[0]; 
        qtyObjvalue = element[1]; 
        prodObjvalue = element[2]; 
        totalObjvalue  = element[3];
        packObjvalue  = element[4];
        weightObjvalue  = element[5];
        productcodeObjvalue  = element[6];
        stockqtyObjvalue  = element[7];

        if(qtyObjvalue != null && qtyObjvalue != '')
        {
              rtnstring = rtnstring + '<tr><td colspan="2"><input type="text" style="height:11px;overflow:hidden;border:0;margin:0;padding:0px;text-align:left;background-color:transparent;font-size:0.75em;" name="line_one[]" readonly="readonly" tabindex="-1" size="57" value="' + prodObjvalue + ' (' + packObjvalue + ')" /><input type="hidden" name="product[]" readonly="readonly" tabindex="-1" value="' + prodObjvalue + '" /><input type="hidden" name="pack[]" readonly="readonly" tabindex="-1" value="' + packObjvalue + '" /><input type="hidden" name="weight[]" readonly="readonly" tabindex="-1" value="' + weightObjvalue + '" /><input type="hidden" name="productcode[]" readonly="readonly" tabindex="-1" value="' + productcodeObjvalue + '" /><input type="hidden" name="stockqty[]" readonly="readonly" tabindex="-1" value="' + stockqtyObjvalue + '" /><input type="hidden" name="quantity[]" readonly="readonly" tabindex="-1" value="' + qtyObjvalue + '" /><input type="hidden" name="price[]" readonly="readonly" tabindex="-1" value="' + priceObjvalue + '" /><input type="hidden" name="total[]" readonly="readonly" tabindex="-1" value="' + totalObjvalue  + '" /></td></tr><tr><td width="50%"><input style="height:11px;overflow:hidden;border:0;padding:0px;text-align:left;background-color:transparent;font-size:0.75em;" type="text" name="line_two[]" readonly="readonly" tabindex="-1" size="16" value="' + qtyObjvalue + ' @ ' + priceObjvalue + '" /></td><td width="50%"><input type="text" style="height:11px;border:0;padding:0px;text-align:right;background-color:transparent;font-size:0.75em;" name="line_three[]" readonly="readonly" tabindex="-1" size="10" value="' + totalObjvalue + '"/></td></tr>';
              grandTotal = grandTotal + parseFloat(totalObjvalue);
              quantityTotal = quantityTotal + parseFloat(qtyObjvalue);
              weightTotal = weightTotal + parseFloat(weightObjvalue * qtyObjvalue);

        } 
        row++;
    }
    rtnstring = rtnstring + '<tr><td colspan="2">Items in basket: ' + quantityTotal.toFixed(0) + '</td></tr>';
    rtnstring = rtnstring + '<tr><td colspan="2"><b>TOTAL ' + currencyObj.value + '</b> ' + grandTotal.toFixed(2) + '</b></td></tr>';
    return rtnstring;
}

function checkPostCode (toCheck) {

  // Permitted letters depend upon their position in the postcode.
  var alpha1 = "[abcdefghijklmnoprstuwyz]";                       // Character 1
  var alpha2 = "[abcdefghklmnopqrstuvwxy]";                       // Character 2
  var alpha3 = "[abcdefghjkpmnrstuvwxy]";                         // Character 3
  var alpha4 = "[abehmnprvwxy]";                                  // Character 4
  var alpha5 = "[abdefghjlnpqrstuwxyz]";                          // Character 5
  
  // Array holds the regular expressions for the valid postcodes
  var pcexp = new Array ();

  // Expression for postcodes: AN NAA, ANN NAA, AAN NAA, and AANN NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1,2})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  
  // Expression for postcodes: ANA NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}[0-9]{1}" + alpha3 + "{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));

  // Expression for postcodes: AANA  NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "{1}" + "?[0-9]{1}" + alpha4 +"{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  
  // Exception for the special postcode GIR 0AA
  pcexp.push (/^(GIR)(\s*)(0AA)$/i);
  
  // Standard BFPO numbers
  pcexp.push (/^(bfpo)(\s*)([0-9]{1,4})$/i);
  
  // c/o BFPO numbers
  pcexp.push (/^(bfpo)(\s*)(c\/o\s*[0-9]{1,3})$/i);
  
  // Overseas Territories
  pcexp.push (/^([A-Z]{4})(\s*)(1ZZ)$/i);

  // Load up the string to check
  var postCode = toCheck;

  // Assume we're not going to find a valid postcode
  var valid = false;
  
  // Check the string against the types of post codes
  for ( var i=0; i<pcexp.length; i++) {
    if (pcexp[i].test(postCode)) {
    
      // The post code is valid - split the post code into component parts
      pcexp[i].exec(postCode);
      
      // Copy it back into the original string, converting it to uppercase and
      // inserting a space between the inward and outward codes
      postCode = RegExp.$1.toUpperCase() + " " + RegExp.$3.toUpperCase();
      
      // If it is a BFPO c/o type postcode, tidy up the "c/o" part
      postCode = postCode.replace (/C\/O\s*/,"c/o ");
      
      // Load new postcode back into the form element
      valid = true;
      
      // Remember that we have found that the code is valid and break from loop
      break;
    }
  }
  
  // Return with either the reformatted valid postcode or the original invalid 
  // postcode
  if (valid) {return postCode;} else return false;
}

function testPostCode () {
  var myPostCode = document.getElementById('postcode').value;
  if (checkPostCode (myPostCode)) {
    document.getElementById('postcode').value = checkPostCode (myPostCode)
//    alert ("Postcode has a valid format")
  } 
  else {
    alert ("Postcode has invalid format")
    return false
  }
}

