var IE4 = document.all;
var NN7 = (!IE4 && document.getElementById);
var NN4 = document.layers;
if (!(NN7 || IE4) && location.href.indexOf("nonstandard.htm") == -1) location.replace("nonstandard.htm");
if (IE4 && navigator.userAgent.indexOf("Opera") != -1) {
	NN7 = true;
	IE4 = false;
}
var mac = (IE4 && navigator.appName.indexOf("Mac") != -1?true:false);

function getStyleObject(obj) {
	var theObj = (IE4?document.all[obj]:document.getElementById(obj));
	return (theObj?theObj.style:null);
}

function getObject(obj) {
	return (IE4?document.all[obj]:document.getElementById(obj));
}

var copyright = "2005";

function getText(obj) {
	getStyleObject(obj).display = (getStyleObject(obj).display == "block"?"none":"block");
}

var insearch = {};
if (location.search) {
	var tmp = location.search.substring(1);
	tmp = tmp.split("&");
	for (var i = 0; i < tmp.length; i++ ) {
		insearch[tmp[i].substring(0,tmp[i].indexOf("="))] = tmp[i].substring(tmp[i].indexOf("=") + 1);
	}
}

/* questionnaire validation */
badchars = new Array(" ","!","\"","£","$","%","^","&","*","(",")","+","=","{","}","¬","`","|","\\",":",";","~","#","<",",",">","?","/",".","@","[","]");

function verifyEmail(email) {
	if (email.indexOf("@") < 1 || email.indexOf("@") > email.length - 5 || email.length < 6 || email.indexOf(".") < 1)
		return false;
	for (var i = 0; i < badchars.length-4; i++) {
		if (email.indexOf(badchars[i]) != -1)
			return false;
	}
	return true;
}

function validateForm(f) {
	if (!f.firstname.value) {
		alert("Please enter your first name so we can refer to it when we contact you.");
		f.firstname.focus();
		return false;
	} else if (!f.senderemail.value || !verifyEmail(f.senderemail.value)) {
		alert("Please enter a valid email address so that we can contact you about your questionnaire.");
		f.senderemail.focus();
		return false;
	} else
		return true;
}
/* end questionnaire validation */


/* COOKIE FUNCTIONS */

function SetCookie(name,value) {
	var argv = SetCookie.arguments
	var argc = SetCookie.arguments.length
	var expires = (argc > 2) ? argv[2] : null
	var path = (argc > 3) ? argv[3] : null
	var domain = (argc > 4) ? argv[4] : null
	var secure = (argc > 5) ? argv[5] : false
	document.cookie = name + "=" + escape(value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : "")
}

function getCookieVal(offset) {
	var endstr = document.cookie.indexOf (";", offset)
	if (endstr == -1)
	endstr = document.cookie.length
	return unescape(document.cookie.substring(offset, endstr))
}

function GetCookie(name) {
	var arg = name + "="
	var alen = arg.length
	var clen = document.cookie.length
	var i = 0
	while (i < clen) {
		var j = i + alen
		if (document.cookie.substring(i,j) == arg)
		return getCookieVal (j)
	i = document.cookie.indexOf(" ",i) + 1
	if (i == 0) break
	}
	return null
}

/* END COOKIE FUNCTIONS */


/* SHOPPING CART SCRIPT */

function changeQuantity(n) {
	var counter = 0;
	if (GetCookie("incart")) {
		var tmparr = (GetCookie("incart").substring(0,GetCookie("incart").length-1)).split(",");
		for (var i = 0; i < tmparr.length; i++) {
			if (tmparr[i] == n)
				counter++;
		}
	} else {
		tmparr = [];
		counter = 0;
	}
	while (document.shoppingcart["quantity" + n].value > counter) {
		tmparr[tmparr.length] = n;
		counter++;
	}
	if (document.shoppingcart["quantity" + n].value < counter) {
		var tmparr2 = [];
		for (var i = 0; i < tmparr.length; i++) {
			if (document.shoppingcart["quantity" + n].value < counter) {
				counter--;
				continue;
			}
			tmparr2[tmparr2.length] = tmparr[i];
		}
		tmparr = tmparr2;
	}
	var str = "";
	for (var i = 0; i < tmparr.length; i++) {
		str += tmparr[i] + ",";
	}
	SetCookie("incart",str,null,"/");
}

function showPurchase(x) {
	if (getObject("purchase")) {
		getStyleObject("purchase").visibility = (x?"visible":"hidden");
	}
	if (getObject("swatchviewer")) {
		getStyleObject("swatchviewer").visibility = "hidden";
	}
}

function addToCart(n) {
//	alert(n);
	var f = document.shoppingcart;
	if (f && f["quantity" + n])
		f["quantity" + n].value = (f["quantity" + n].value == "0"?"1":parseInt(f["quantity" + n].value) + 1);
	var tmp = (GetCookie("incart")?GetCookie("incart"):"");
	tmp += n + ",";
	SetCookie("incart",tmp,null,"/");
	if (getObject("itemadded")) {
		getStyleObject("itemadded").visibility = "visible";
		setTimeout("getStyleObject('itemadded').visibility = 'hidden'",3000);
	}
	else if (location.href.indexOf("basket.htm") == -1)
		alert("The item has been added to your shopping basket.");
}

function subtractUnit(n) {
	var f = document.shoppingcart;
	if (f)
		f["quantity" + n].value = (parseInt(f["quantity" + n].value) > 0?parseInt(f["quantity" + n].value) - 1:"0");
	if (GetCookie("incart")) {
		var test = true;
		var str = "";
		var tmparr = (GetCookie("incart").substring(0,GetCookie("incart").length-1)).split(",");
		for (var i = 0; i < tmparr.length; i++) {
			if (tmparr[i] == n && test) {
				test = false;
				continue;
			}
			str += tmparr[i] + ",";
		}
		SetCookie("incart",str,null,"/");
	}
}

function clearAnItem(n) {
	var f = document.shoppingcart;
	f["quantity" + n].value = 0;
	if (GetCookie("incart")) {
		var str = "";
		var tmparr = (GetCookie("incart").substring(0,GetCookie("incart").length-1)).split(",");
		for (var i = 0; i < tmparr.length; i++) {
			if (tmparr[i] != n)
				str += n + ",";
		}
		SetCookie("incart",str,null,"/");
	}
}

function emptyCart() {
	SetCookie("incart","",null,"/");
	var f = document.shoppingcart;
	for (var i = 0; i < f.elements.length; i++) {
		if (f.elements[i].type == "text")
			f.elements[i].value = 0;
	}
	alert("Basket emptied!");
	location.reload();
}

function continueShopping() {
	location = (document.referrer.indexOf("beetlebrow") != -1 || document.referrer.indexOf("thistleandbroom.com") != -1?document.referrer:getPath() + "shopping/");
}

// saves quantites as properties of object named as the item uids
var cartobject = {};
function makeCartObject() {
	cartobject = {};
	if (GetCookie("incart")) {
		var tmparr = (GetCookie("incart").substring(0,GetCookie("incart").length-1)).split(",");
		for (var i = 0; i < tmparr.length; i++) {
			if (typeof cartobject[tmparr[i]] == "undefined")
				cartobject[tmparr[i]] = 1;
			else
				cartobject[tmparr[i]] += 1;
		}
	}
}

var deliverycharge = 0;
var defaultdelivery = 0;
function renderCart() {
	deliverycharge = 0;
	makeCartObject();
	var txt = "<div class=\"cartrow\"><div class=\"cartitem\"><div class=\"cartinner2\"><img src=\"images/bb_in_yourbasket.gif\" alt=\"Your basket\" width=\"107\" height=\"21\" border=\"0\"></div></div><div class=\"cartbuttons\"><div class=\"cartinner\">Quantity</div></div><div class=\"cartprice\" style=\"color:#ABBBAA\"><div class=\"cartinner\">Price</div></div></div><div class=\"cartrow\" style=\"border-top:1px solid #ABBBAA\"><div class=\"cartitem\"></div><div class=\"cartbuttons\"></div><div class=\"cartprice\"></div></div>";
	var quantity = 0;
	var total = 0;
	var n = 0;
	for (var i = 0; i < currentitems.length; i++) {
		if (typeof cartobject[currentitems[i].uid] != "undefined") {
			n = (Math.round(100 * cartobject[currentitems[i].uid] * currentitems[i].price))/100;
			txt += "<div class=\"cartrow\">" + "<div class=\"cartitem\"><div class=\"cartinner2\"><span style=\"text-transform:capitalize; font-weight:bold\">" + currentitems[i].category + ":</span> " + currentitems[i].name + "</div></div><div class=\"cartbuttons\"><div class=\"cartinner\"><input class=\"cartquantity\" type=\"text\" name=\"quantity" + currentitems[i].uid + "\" size=\"2\" value=\"" + cartobject[currentitems[i].uid] + "\" onchange=\"recalculateTotals(null,'" + currentitems[i].uid + "')\"><img class=\"cartitemadd\" src=\"images/bb_in_blobmore.gif\" alt=\"\" width=\"14\" height=\"14\" border=\"0\" onclick=\"recalculateTotals(true,'" + currentitems[i].uid + "')\"> <img src=\"images/bb_in_blobless.gif\" alt=\"\" width=\"14\" height=\"14\" border=\"0\" onclick=\"recalculateTotals(false,'" + currentitems[i].uid + "')\"></div></div><div class=\"cartprice\" id=\"price" + currentitems[i].uid + "\"><div class=\"cartinner\">&pound;" + n + ((n + "").indexOf(".") == -1?".00":"") + "</div>\n</div>\n</div>\n";
			total += n;
			quantity += cartobject[currentitems[i].uid];
			deliverycharge += (currentitems[i].delivery?currentitems[i].delivery:defaultdelivery) * cartobject[currentitems[i].uid];
		}
	}
	deliverycharge = (Math.round(deliverycharge * 100))/100;
	txt += "<div class=\"cartrow\"><div class=\"cartitem\"></div><div class=\"cartbuttons\"></div><div class=\"cartprice\"></div></div><div class=\"cartrow\"><div class=\"cartitem\"></div><div class=\"cartbuttons\"></div><div class=\"cartprice\"></div></div>";
	txt += "<div class=\"cartrow\" style=\"border-top:1px solid #ABBBAA\"><div class=\"cartitem\" style=\"height:70px\"><div class=\"cartinner2\"><a href=\"javascript:continueShopping()\"><img style=\"margin:3px 0px\" src=\"images/bb_in_contblob_words.gif\" alt=\"Continue shopping\" width=\"146\" height=\"15\" border=\"0\"></a><br><a href=\"basket.htm\"><img style=\"margin:3px 0px\" src=\"images/bb_in_refresh.gif\" alt=\"Refresh basket\" width=\"118\" height=\"15\" border=\"0\"></a><br><a href=\"javascript:emptyCart()\"><img style=\"margin:3px 0px\" src=\"images/bb_in_clear.gif\" alt=\"Empty basket\" width=\"104\" height=\"14\" border=\"0\"></a><br></div></div><div class=\"cartbuttons\" style=\"height:70px; color:#000000\"><div class=\"cartinner\"><div class=\"gap6\">Total including tax</div><div class=\"gap6\">Package &amp; shipping</div>Click here if delivery address outside EU</div></div><div class=\"cartprice\" style=\"height:70px\"><div class=\"cartinner\"><div class=\"gap6\" id=\"totalprice\">&pound;" + total + "</div><div class=\"gap6\" id=\"deliveryprice\">&pound;" + deliverycharge + ((deliverycharge + "").indexOf(".") == -1?".00":"") + "</div><input type=\"checkbox\" name=\"noneu\" onclick=\"changeDelivery()\"" + (currentitems[0].delivery == "0"?"":" checked=\"checked\"") + "></div></div></div>";
	n = (Math.round(100 * (total + deliverycharge)))/100;
	txt += "<div class=\"cartrow\"><div class=\"cartitem\"></div><div class=\"cartbuttons\" style=\"background-color:transparent\"><div class=\"cartinner\">Total payable</div></div><div class=\"cartprice\" style=\"background-color:transparent\"><div class=\"cartinner\" id=\"grandtotalprice\">&pound;" + n + ((n + "").indexOf(".") == -1?".00":"") + "</div></div></div>";
	txt += "<div class=\"cartrow\"><div style=\"border-top:1px solid #ABBBAA; padding-top:20px; width:270px; float:right\"><a href=\"javascript:makePayment()\"><img src=\"images/bb_in_proceed.gif\" alt=\"Proceed to checkout\" width=\"270\" height=\"25\" border=\"0\"></a></div><div style=\"clear:right; padding-bottom:20px\"></div></div>";
	getObject("cartbuild").innerHTML = txt;
//	document.write(txt);
}

function changeDelivery() {
	for (var i = 0; i < currentitems.length; i++) {
		currentitems[i].delivery = (document.shoppingcart.noneu.checked?(currentitems[i].category == "teas"?"5":"2"):0);
	}
	renderCart();
}

function recalculateTotals(q,n) {
	if (q)
		addToCart(n);
	else if (q == null)
		changeQuantity(n);
	else
		subtractUnit(n);
	deliverycharge = 0;
	renderCart();
}

function makeOrderNumber() {
	var alph = ["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",];
	var str = "";
	str += alph[Math.floor(Math.random() * 26)];
	str += alph[Math.floor(Math.random() * 26)];
	str += alph[Math.floor(Math.random() * 26)];
	var d = new Date();
	str += d.getTime();
	return str;
}

function makePayment() {
	if (GetCookie("incart")) {
		makeCartObject();
		writeForm();
//		alert(document.paymentform.innerHTML);
		document.paymentform.submit();
	} else
		alert("You must select an item to buy by putting it in your shopping cart before you can proceed to the checkout.");
}

function writeForm() {
	var txt = "<form name=\"paymentform\" action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\">";
	var n = 1;
	txt += "<input type=\"hidden\" name=\"cmd\" value=\"_cart\">";
	txt += "<input type=\"hidden\" name=\"upload\" value=\"1\">";
	txt += "<input type=\"hidden\" name=\"business\" value=\"sw@innteas.com\">";
	txt += "<input type=\"hidden\" name=\"currency_code\" value=\"GBP\">";
	txt += "<input type=\"hidden\" name=\"no_shipping\" value=\"0\">";
	txt += "<input type=\"hidden\" name=\"cs\" value=\"1\">";
	txt += "<input type=\"hidden\" name=\"invoice\" value=\"" + makeOrderNumber() + "\">";
//	txt += "<input type=\"hidden\" name=\"image_url\" value=\"http://www.beetlebrow.co.uk/clients/public/ak/images/bb_ak_logo_paypal.gif\">";
	txt += "<input type=\"hidden\" name=\"cancel_return\" value=\"http://innteas.com/cancel.htm\">";
	txt += "<input type=\"hidden\" name=\"return\" value=\"http://www.innteas.com/thanks.htm\">";
//	txt += "<input type=\"hidden\" name=\"rm\" value=\"1\">";
	txt += "<input type=\"hidden\" name=\"cbt\" value=\"Back to In Nature\">";
	txt += "<input type=\"hidden\" name=\"page_style\" value=\"primary\">";
	for (var prop in cartobject) {
		INNER:
		for (var i = 0; i < currentitems.length; i++) {
			if (currentitems[i].uid == prop) {
// this is where I write the various form fields and populate their values appropriately
				txt += "<input type=\"hidden\" name=\"item_name_" + n + "\" value=\"" + currentitems[i].name + "\">";
				txt += "<input type=\"hidden\" name=\"item_number_" + n + "\" value=\"" + currentitems[i].uid + "\">";
				txt += "<input type=\"hidden\" name=\"amount_" + n + "\" value=\"" + currentitems[i].price + "\">";
				txt += "<input type=\"hidden\" name=\"quantity_" + n + "\" value=\"" + cartobject[currentitems[i].uid] + "\">";
				txt += "<input type=\"hidden\" name=\"shipping_" + n + "\" value=\"" + (document.shoppingcart.noneu.checked?(currentitems[i].category == "teas"?5:2):0) + "\">";
				txt += "<input type=\"hidden\" name=\"shipping2_" + n + "\" value=\"" + (document.shoppingcart.noneu.checked?(currentitems[i].category == "teas"?5:2):0) + "\">";
//					txt += "<input type=\"hidden\" name=\"on0_" + n + "\" value=\"testvar\">";
//					txt += "<input type=\"hidden\" name=\"os0_" + n + "\" value=\"testvarvalue\">";
				n++;
				break INNER;
			}
		}
	}
	txt += "</form>";
	getObject("paymentformholder").innerHTML = txt;
}

/* END SHOPPING CART */
