var selectedcolor = 'aqua';
var selectedprice = '160.00';
var discounted = 0;

function selectcolor(index, name, price)
{
	selectedcolor = name;
	selectedprice = price;
	document.getElementById('label').value = name + " £" + price + " per box";
	for (i = 1; i < 21; i++)
		document.getElementById('col'+i).style.border = 'none';
	document.getElementById('col'+index).style.border = '3px solid #CCCC99';
}

function getExVAT(price)
{
	var priceNum = parseFloat(price);
	var exVAT = ((price*100)/115).toFixed(2);
	return exVAT;
}

function writeBody2()
{
	var text = 'No returns on the basis of colour - ask for a free sample!<br>administrator@bargainrubber.co.uk<br>01726 883783<br>Whetter Group Ltd, Chy Rudden, Mill Lane, Grampound, Cornwall TR2 4RU';
	document.write(text);
}

function writeBody3()
{
	var text = 'Thanks for your sample request!';
	document.write(text);
}

function writeEmail()
{
	var text = '<a href="mailto:administrator@bargainrubber.co.uk">administrator@bargainrubber.co.uk</a>';
	document.write(text);
}

function getBasketString(type, colour, price, quantity)
{
	var p2 = parseFloat(price);
	var basketstring = '##'+type+'#'+colour+'#'+p2.toFixed(2)+'#'+quantity+'#';
	return basketstring;
}

function addToBasket(type, colour, price, quantity)
{
	var cookiestring = getCookie("basket2");
	var basketstring = getBasketString(type, colour, price, quantity);
	var searchstring = type+'#'+colour;
	if (cookiestring == null || cookiestring == '' || cookiestring.indexOf(searchstring) < 0)
	{
		cookiestring += basketstring;
		setCookie("basket2", cookiestring);
		writeBasket();
	}
	else
	{
		addSome(type, colour, price, quantity);
	}	
}

function addSome(type, colour, price, quantity)
{
	var cookiestring = getCookie("basket2");
	var p2 = parseFloat(price);
	var basketstring = "##"+type+"#"+colour+"#"+p2.toFixed(2)+"#";
	var index = cookiestring.indexOf(basketstring) + basketstring.length;
	var index2 = cookiestring.indexOf("#", index);
	var newquantity = parseInt(cookiestring.substring(index, index2));
	newquantity += quantity;
	if (newquantity == 0)
		cookiestring = cookiestring.substring(0, cookiestring.indexOf(basketstring))+cookiestring.substring(index2+1);
	else
		cookiestring = cookiestring.substring(0, index)+newquantity+cookiestring.substring(index2);
	setCookie("basket2", cookiestring);
	writeBasket();

}

function addToRequest(type, colour)
{
	var items = checkSamples();
	if (items > 7)
	{
		alert('You have already chosen 8 samples');
		return;
	}
	var cookiestring = getCookie("samples2");
	var basketstring = '##'+type+'#'+colour+'#';
	var searchstring = type+'#'+colour;
	if (cookiestring == null || cookiestring == '' || cookiestring.indexOf(searchstring) < 0)
	{
		cookiestring += basketstring;
		setCookie("samples2", cookiestring);
		writeRequest();
	}
	else
	{
		alert('This sample is already in your basket');
	}	
}

function checkSamples()
{
	var cookiestring = getCookie("samples2");
	var numitems = 0;
	if (cookiestring != null)
	{
		while (cookiestring.indexOf('##') != -1)
		{
			cookiestring = cookiestring.substring(cookiestring.indexOf('##')+2);
			numitems += 1;
		}
	}
	return numitems;
}

function deleteFromBasket(type, colour, price, quantity)
{
	var cookiestring = getCookie("basket2");
	cookiestring = cookiestring.replace(getBasketString(type, colour, price, quantity), '');
	setCookie("basket2", cookiestring);
	writeBasket();
}

function deleteFromRequest(type, colour)
{
	var cookiestring = getCookie("samples2");
	cookiestring = cookiestring.replace('##'+type+'#'+colour+'#', '');
	setCookie("samples2", cookiestring);
	writeRequest();
}

function getBasketText(isbasket)
{
	var cookiestring = getCookie("basket2");
	var basketstring = '';
	if (cookiestring == null)
		return '<tr><td height=20 class=bb4 colspan=7>No items in basket</td></tr>';
	var type = '';
	var colour = '';
	var quantity = 0;
	var price = 0.00;
	var numitems = 1;
	var adhesive = 0;
	while (cookiestring.indexOf('##') != -1)
	{
		cookiestring = cookiestring.substring(cookiestring.indexOf('##')+2);
		var index = cookiestring.indexOf('#');
		type = cookiestring.substring(0, index);
		if (type.indexOf('Adesilex') > -1)
			adhesive = 1;
		cookiestring = cookiestring.substring(index+1);
		index = cookiestring.indexOf('#');
		colour = cookiestring.substring(0, index);
		cookiestring = cookiestring.substring(index+1);
		index = cookiestring.indexOf('#');
		price = parseFloat(cookiestring.substring(0, index));
		cookiestring = cookiestring.substring(index+1);
		index = cookiestring.indexOf('#');
		quantity = parseInt(cookiestring.substring(0, index));
		cookiestring = cookiestring.substring(index+1);
		basketstring += '<tr><td class=bb4 height=20>'+type+'</td><td class=bb4>'+colour+'</td>';
		if (isbasket.indexOf("true") < 0)
			basketstring += '<td class=bb4 colspan=2>'+quantity;
		else
			basketstring += '<td class=bb4>'+quantity+'</td><td class=bb4>';
		if (isbasket.indexOf("true") > -1)
		{
			basketstring += '<button onclick="addSome(\''+type+'\', \''+colour+'\', '+price+', 1);">+</button>';
			basketstring += '<button onclick="addSome(\''+type+'\', \''+colour+'\', '+price+', -1);">-</button>';
		}
		basketstring += '</td><td class=bb4 align=right>£'+price.toFixed(2)+'</td><td class=bb4 align=right>£'+(price*quantity).toFixed(2)+'</td>';
		if (isbasket.indexOf("true") > -1)
			basketstring += '<td class=noborder><button onclick="deleteFromBasket(\''+type+'\', \''+colour+'\', '+price+', '+quantity+');">Delete</button></td>';
		basketstring += '</tr>';
		basketstring += '<input type="hidden" name="item_name_'+numitems+'" value="'+type+' - '+colour+'">';
		basketstring += '<input type="hidden" name="amount_'+numitems+'" value="'+price.toFixed(2)+'">';
		basketstring += '<input type="hidden" name="quantity_'+numitems+'" value="'+quantity+'">';
		numitems += 1;
	}
	if (numitems == 1)
		return '<tr><td height=20 class=bb4 colspan=7>No items in basket</td></tr>';
	var subtotal = getBasketSubtotal();
	var postage = getPostage(subtotal);
	if (adhesive > 0)
		postage += 5;
	var total = getBasketTotal(subtotal, postage);
	basketstring += '<tr><td height=20 class=noborder colspan=4>';
	if (adhesive > 0)
		basketstring += '<font color=red>£5 postage added for adhesive</font>';
	basketstring += '</td><td class=bb4>Subtotal</td><td class=bb4 align=right>£'+subtotal.toFixed(2)+'</td>';
	if (isbasket.indexOf("true") > -1)
		basketstring += '<td class=noborder></td>';
	basketstring += '</tr><tr><td height=20 class=noborder colspan=4></td><td class=bb4>Postage</td><td class=bb4 align=right>£'+postage.toFixed(2)+'</td>';
	if (isbasket.indexOf("true") > -1)
		basketstring += '<td class=noborder></td>';
	basketstring += '<input type="hidden" name="item_name_'+numitems+'" value="Delivery">';
	basketstring += '<input type="hidden" id="shipping" name="amount_'+numitems+'" value="'+postage.toFixed(2)+'">';
	basketstring += '<input type="hidden" name="quantity_'+numitems+'" value="1">';
	basketstring += '</tr><tr><td height=20 class=noborder colspan=4></td><td class=bb4>TOTAL</td><td class=bb4 align=right>£'+total.toFixed(2)+'</td>';
	if (isbasket.indexOf("true") > -1)
		basketstring += '<td class=noborder></td>';
	basketstring += '</tr>';
	return basketstring;
}

function getRequestText(isbasket)
{
	var basketstring = '';
	var cookiestring = getCookie("samples2");
	if (cookiestring == null)
		return '<tr><td colspan=3>No samples selected</td></tr>';
	var type = '';
	var colour = '';
	var numitems = 1;
	while (cookiestring.indexOf('##') != -1)
	{
		cookiestring = cookiestring.substring(cookiestring.indexOf('##')+2);
		var index = cookiestring.indexOf('#');
		type = cookiestring.substring(0, index);
		cookiestring = cookiestring.substring(index+1);
		index = cookiestring.indexOf('#');
		colour = cookiestring.substring(0, index);
		cookiestring = cookiestring.substring(index+1);
		basketstring += '<tr><td>'+type+'</td><td>'+colour+'</td>';
		if (isbasket.indexOf("true") > -1)
			basketstring += '<td><button onclick="deleteFromRequest(\''+type+'\', \''+colour+'\');return false;">Delete</button></td>';
		else
			basketstring += '<td></td>';
		basketstring += '<input type="hidden" name="item_name_'+numitems+'" value="'+type+' - '+colour+'">';
		basketstring += '</tr>';
		numitems += 1;
	}
	return basketstring;
}

function getSubmitBasketString()
{
	var cookiestring = getCookie("basket2");
	var basketstring = '';
	var type = '';
	var colour = '';
	var quantity = 0;
	var price = 0.00;
	var numitems = 1;
	while (cookiestring.indexOf('##') != -1)
	{
		cookiestring = cookiestring.substring(cookiestring.indexOf('##')+2);
		var index = cookiestring.indexOf('#');
		type = cookiestring.substring(0, index);
		cookiestring = cookiestring.substring(index+1);
		index = cookiestring.indexOf('#');
		colour = cookiestring.substring(0, index);
		cookiestring = cookiestring.substring(index+1);
		index = cookiestring.indexOf('#');
		price = parseFloat(cookiestring.substring(0, index));
		cookiestring = cookiestring.substring(index+1);
		index = cookiestring.indexOf('#');
		quantity = parseInt(cookiestring.substring(0, index));
		cookiestring = cookiestring.substring(index+1);
		basketstring += ':'+type+' - '+colour+':'+quantity+':£'+price.toFixed(2);
		basketstring += ':£0.00:£'+price.toFixed(2)+':'+(price*quantity).toFixed(2);
		numitems += 1;		
	}
	basketstring = ''+numitems+basketstring+':Delivery:::::£'+getPostage(getBasketSubtotal()).toFixed(2);
	return basketstring;
}

function getBasketSubtotal()
{
	var cookiestring = getCookie("basket2");
	if (cookiestring == null)
		return 0;
	var price = 0.00;
	var itemprice = 0.00;
	while (cookiestring.indexOf('##') != -1)
	{
		cookiestring = cookiestring.substring(cookiestring.indexOf('##')+2);
		var index = cookiestring.indexOf('#');
		index = cookiestring.indexOf('#', index+1);
		cookiestring = cookiestring.substring(index+1);
		index = cookiestring.indexOf('#');
		itemprice = parseFloat(cookiestring.substring(0, index));
		cookiestring = cookiestring.substring(index+1);
		index = cookiestring.indexOf('#');
		quantity = parseInt(cookiestring.substring(0, index));
		cookiestring = cookiestring.substring(index+1);
		price += (itemprice * quantity);
	}
	price = price * (100-discounted)/100;
	return price;
}

function getPostage(subtotal)
{
	var postCode = "";
	if (document.getElementById('Postcode') != null)
		postCode = removeSpaces(document.getElementById('Postcode').value);		
	var postage = 0;
	if (postCode != null && postCode != '')
	{
		if (postCode.indexOf('IV') == 0 || postCode.indexOf('HS') == 0 || postCode.indexOf('ZE') == 0)
			postage += getSurcharge();
		else if (postCode.indexOf('KW') == 0 || postCode.indexOf('BT') == 0 || postCode.indexOf('IM') == 0)
			postage += getSurcharge();
		else if (postCode.length == 7 && postCode.indexOf('PH') == 0)
		{
			var num = parseInt(postCode.substring(2, 4));
			if ((num > 29 && num < 45) || (num > 16 && num < 27) || (num > 48 && num < 51))
				postage += getSurcharge();
		}
		else if (postCode.length == 7 && postCode.indexOf('PA') == 0)
		{
			var num = parseInt(postCode.substring(2, 4));
			if ((num > 19 && num < 50) || (num > 59 && num < 79))
				postage += getSurcharge();
		}
	}
	return postage;
}

function isAdhesive()
{
	var adhesive = 0;
	var cookiestring = getCookie("basket2");
	while (cookiestring.indexOf('##') != -1)
	{
		cookiestring = cookiestring.substring(cookiestring.indexOf('##')+2);
		var index = cookiestring.indexOf('#');
		type = cookiestring.substring(0, index);
		if (type.indexOf('Adesilex') > -1)
			adhesive = 1;
		cookiestring = cookiestring.substring(index+1);
		index = cookiestring.indexOf('#');
		colour = cookiestring.substring(0, index);
		cookiestring = cookiestring.substring(index+1);
		index = cookiestring.indexOf('#');
		price = parseFloat(cookiestring.substring(0, index));
		cookiestring = cookiestring.substring(index+1);
		index = cookiestring.indexOf('#');
		quantity = parseInt(cookiestring.substring(0, index));
		cookiestring = cookiestring.substring(index+1);
	}
	if (adhesive == 0)
		return false;
	return true;
}

function getSurcharge()
{
	var surcharge = 2 * getQuantity();
	return surcharge;
}

function getQuantity()
{
	var cookiestring = getCookie("basket2");
	if (cookiestring == null)
		return 0;
	var quantity = 0;
	var itemquantity = 0;
	while (cookiestring.indexOf('##') != -1)
	{
		cookiestring = cookiestring.substring(cookiestring.indexOf('##')+2);
		var index = cookiestring.indexOf('#');
		index = cookiestring.indexOf('#', index+1);
		cookiestring = cookiestring.substring(index+1);
		index = cookiestring.indexOf('#');
		cookiestring = cookiestring.substring(index+1);
		index = cookiestring.indexOf('#');
		itemquantity = parseInt(cookiestring.substring(0, index));
		cookiestring = cookiestring.substring(index+1);
		quantity += itemquantity;
	}
	return quantity;
}

function removeSpaces(string) 
{
	var tstring = "";
	if (string == null)
		return tstring;
	string = '' + string;
	splitstring = string.split(" ");
	for(i = 0; i < splitstring.length; i++)
	tstring += splitstring[i];
	return tstring;
}

function getBasketTotal(subtotal, postage)
{
	return (subtotal + postage);
}

function writeBasket()
{
	window.location.href= 'http://www.bargainrubber.co.uk/basket.htm';
}

function writeRequest()
{
	window.location.href= 'http://www.bargainrubber.co.uk/request.htm';
}

function setCookie(name, value) 
{
  	var date = new Date();
	date.setTime(date.getTime()+(7*24*60*60*1000));
	var expires = "; expires="+date.toGMTString();
	var curCookie = name+"="+escape(value)+expires+"; path=/";
  	document.cookie = curCookie;
}

function addtocookie(name, value)
{
	var curCookie = getCookie(name) + escape(value);
	setCookie(name, curCookie);
}

function getCookie(name) 
{
  	var dc = document.cookie;
  	var prefix = name + "=";
  	var begin = dc.indexOf("; " + prefix);
  	if (begin == -1) 
	{
   		 begin = dc.indexOf(prefix);
    		if (begin != 0) 
			return null;
  	} 
	else
    		begin += 2;
  	var end = document.cookie.indexOf(";", begin);
  	if (end == -1)
    		end = dc.length;
  	return rehash(unescape(dc.substring(begin + prefix.length, end)));
}

function deleteCookie(name) 
{
   if (getCookie(name)) 
   {
     	var curCookie = name+"=";
     	document.cookie = curCookie;
   }
}

function rehash(cookiestring)
{
	var rep = /%23/g;
	cookiestring = cookiestring.replace(rep, '#');
	return cookiestring;
}

function simpleXor(text, key)
{
	var result=[];
	
	for(var i = 0; i < text.length; i++)
    	{
      		result[i] = (text.charCodeAt(i) ^ key.charCodeAt(i % key.length));
    	}
    	return result;
}

function encode(data) 
{
    	var encoding = [
	    "A", "B", "C", "D", "E", "F", "G", "H",
	    "I", "J", "K", "L", "M", "N", "O", "P",
	    "Q", "R", "S", "T", "U", "V", "W", "X",
	    "Y", "Z", "a", "b", "c", "d", "e", "f",
	    "g", "h", "i", "j", "k", "l", "m", "n",
	    "o", "p", "q", "r", "s", "t", "u", "v",
	    "w", "x", "y", "z", "0", "1", "2", "3",
	    "4", "5", "6", "7", "8", "9", "+", "/"
	];
    	var result = [];
    	var ip57   = Math.floor(data.length / 57);
    	var fp57   = data.length % 57;
    	var ip3    = Math.floor(fp57 / 3);
    	var fp3    = fp57 % 3;
    	var index  = 0;
    	var num;
    
    	for ( var i = 0; i < ip57; i++ ) 
    	{
        	for ( j = 0; j < 19; j++, index += 3 ) 
        	{
            		num = data[index] << 16 | data[index+1] << 8 | data[index+2];
            		result.push(encoding[ ( num & 0xFC0000 ) >> 18 ]);
            		result.push(encoding[ ( num & 0x03F000 ) >> 12 ]);
            		result.push(encoding[ ( num & 0x0FC0   ) >>  6 ]);
            		result.push(encoding[ ( num & 0x3F     )       ]);
        	}
        	result.push("\n");
    	}

    	for ( i = 0; i < ip3; i++, index += 3 ) 
    	{
        	num = data[index] << 16 | data[index+1] << 8 | data[index+2];
        	result.push(encoding[ ( num & 0xFC0000 ) >> 18 ]);
        	result.push(encoding[ ( num & 0x03F000 ) >> 12 ]);
        	result.push(encoding[ ( num & 0x0FC0   ) >>  6 ]);
        	result.push(encoding[ ( num & 0x3F     )       ]);
    	}

    	if ( fp3 == 1 ) 
    	{
        	num = data[index] << 16;
        	result.push(encoding[ ( num & 0xFC0000 ) >> 18 ]);
        	result.push(encoding[ ( num & 0x03F000 ) >> 12 ]);
        	result.push("==");
    	} 
    	else if ( fp3 == 2 ) 
    	{
        	num = data[index] << 16 | data[index+1] << 8;
        	result.push(encoding[ ( num & 0xFC0000 ) >> 18 ]);
        	result.push(encoding[ ( num & 0x03F000 ) >> 12 ]);
        	result.push(encoding[ ( num & 0x0FC0   ) >>  6 ]);
        	result.push("=");
    	}
   	return result.join("");
}
   
function getTransCode()
{
	var d = new Date();
	return "BR" + (Math.random()*1000000) + "." + d.getTime();
}

function getCrypt()
{
	var vendorTxCode = getTransCode();
	var subtotal = getBasketSubtotal();
	var postage = getPostage(subtotal);
	if ((subtotal < 100 && postage > 10) || (subtotal >= 100 && postage > 0))
		if (!confirm('A surcharge of £'+getSurcharge(postage)+' has been added to your delivery costs due to the postcode entered. Please see our delivery policy for details.'))
			return false;
	var amount = getBasketTotal(subtotal, postage);
	var currency = "GBP";
	var description = "Goods from Bargain Rubber";
	var customerEmail= document.getElementById('email').value;
	var customerName= document.getElementById('Name').value;
	var vendorEmail= "administrator@bargainrubber.co.uk";
	var deliveryAddress= document.getElementById('Address1').value;
	deliveryAddress += ", " + document.getElementById('Address2').value;
	deliveryAddress += ", " + document.getElementById('Town').value;
	deliveryAddress += ", " + document.getElementById('County').value;
	var deliveryPostCode= document.getElementById('Postcode').value;
	var billingAddress= deliveryAddress;
	var billingPostCode= deliveryPostCode;
	var contactNumber = document.getElementById('Phone').value;
	var shoppingBasket = getSubmitBasketString();

	var stuff = "VendorTxCode=" + vendorTxCode + "&Amount=" + amount;
	stuff += "&Currency=" + currency + "&Description=" + description;
	stuff += "&SuccessURL=http://www.bargainrubber.co.uk/success.htm&FailureURL=http://www.bargainrubber.co.uk/failure.htm";

	if ( customerEmail != "" ) 
	{
	  stuff += "&CustomerEmail=" + customerEmail;
	}
	if ( vendorEmail != "" ) 
	{
	  stuff += "&VendorEmail=" + vendorEmail;
	}
	if ( customerName != "" ) 
	{
	  stuff += "&CustomerName=" + customerName;
	}
	if (deliveryAddress != "" ) 
	{
	  stuff += "&DeliveryAddress=" + deliveryAddress;
	}
	if (deliveryPostCode != "" ) 
	{
	  stuff += "&DeliveryPostCode=" + deliveryPostCode;
	}
	if (billingAddress != "" ) 
	{
	  stuff += "&BillingAddress=" + billingAddress;
	}
	if (billingPostCode != "" ) 
	{
	  stuff += "&BillingPostCode=" + billingPostCode;
	}
	if (contactNumber != "" ) 
	{
	  stuff += "&ContactNumber=" + contactNumber;
	}
	if (shoppingBasket != "")
	{
		stuff += "&Basket="+shoppingBasket;
	}
	return stuff;
}

function setCrypt()
{
	var stuff = getCrypt();
	var crypt = encode(simpleXor(stuff,'wsNDakQCYzfnyQSd'));
	crypt = crypt.replace(/[\n\r]/g, "" );
	document.getElementById('Crypt').value = crypt;
	document.theForm.action = "https://ukvps.protx.com/vps2Form/submit.asp";
	return true;
}

function submitPayPal()
{
	var subtotal = getBasketSubtotal();
	var postage = getPostage(subtotal);
		
	if ((subtotal < 100 && postage > 10) || (subtotal >= 100 && postage > 0))
		if (!confirm('A surcharge of £'+getSurcharge()+' has been added to your delivery costs due to the postcode entered. Please see our delivery policy for details.'))
			return false;
	if (isAdhesive())
		postage += 5;
	document.getElementById('shipping').value = postage.toFixed(2);
	document.getElementById('cmd').value = "_cart";
	document.getElementById('upload').value = "1";
	document.getElementById('business').value = "administrator@bargainrubber.co.uk";
	document.getElementById('currency_code').value = "GBP";
	document.getElementById('return').value = "http://www.bargainrubber.co.uk/success.htm";
	document.theForm.action = "https://www.paypal.com/cgi-bin/webscr";
	return true;
}
