function stopError() {

  return true;

}



window.onerror = stopError;



			function recalcPrice(productID) {

				var content;

				eval("thisPrice = baseprice"+productID+";");

				eval("thisPriceExTax = basepriceExTax"+productID+";");

				eval("thisPriceIncTax = basepriceIncTax"+productID+";");

				eval("thisPriceTax = basepriceTax"+productID+";");

				eval("thisOOPrice = oobaseprice"+productID+";");

				eval("thisOOPriceExTax = oobasepriceExTax"+productID+";");

				eval("thisOOPriceIncTax = oobasepriceIncTax"+productID+";");

				eval("thisOOPriceTax = oobasepriceTax"+productID+";");

				currentValues = new Array(efcount);

				if (doesFormElementExist("productForm"+productID,"qty"+productID)) {

					qty = getFormElementValue("productForm"+productID,"qty"+productID);

				} else {

					qty = 1;

				}

				for (f = 0; f < efcount; f++) {

					currentValues[extrafields[f]] = "";



					elementExists = doesFormElementExist("productForm"+productID,extrafields[f]);

					fieldtype = getFormElementType("productForm"+productID,extrafields[f]);

					if (extrafieldstype[f] == "CHECKBOXES") {

						elementExists = doesFormElementExist("productForm"+productID,extrafields[f]+"1");

						fieldtype = getFormElementType("productForm"+productID,extrafields[f]+"1");

					}

					if (extrafieldstype[f] == "RADIOBUTTONS") {

						elementExists = doesFormElementExist("productForm"+productID,extrafields[f]);

						elem = getFormElement("productForm"+productID,extrafields[f]);

						if (elem.length > 0) {

							elementExists = true;

							fieldtype = "radio";

						} else {

							elementExists = false;

						}

					}



					if (elementExists) {

						if (fieldtype=="select-one") {

							currentValues[extrafields[f]] = getFormElementValue("productForm"+productID,extrafields[f]);

						}

						if (fieldtype=="checkbox") {

							content = "";

							thisOne = 1;

							result = getFormElement("productForm"+productID,extrafields[f]+thisOne);

							while (result) {

								if (result.checked == true) {

									if (content != "") {

										content = content+";";

									}

									content = content + result.value;

								}

								thisOne++;

								result = getFormElement("productForm"+productID,extrafields[f]+thisOne);

							}

							currentValues[extrafields[f]] = content;

						}

						if (fieldtype=="radio") {

							buttons = getFormElement("productForm"+productID,extrafields[f]);

							radlength = buttons.length;

							for (g = 0; g < radlength; g++) {

								thisoption = buttons[g].checked;

								if (thisoption) {

									currentValues[extrafields[f]] = buttons[g].value;

								}

							}

						}

					}

				}

				eval ("arraylength = p"+productID+".length;");

				eval ("advArray = p"+productID+";");

				for (f = 0; f <  arraylength; f++) {		

					applicable = false;

					doesExist = false;

					for (var h in advArray[f]) {

						if (h == "qtyfrom") {

							doesExist = true;

						}

					}

					if (doesExist) {

						if (parseInt(advArray[f]["qtyfrom"]) != -1 && parseInt(advArray[f]["qtyto"]) != -1 && parseInt(advArray[f]["qtyto"]) != 0) {

							//quantity is applicable here

							if (parseInt(qty) >= parseInt(advArray[f]["qtyfrom"]) && parseInt(qty) <= parseInt(advArray[f]["qtyto"])) {

								applicable = true;

							}

						} else {

							applicable = true;

						}

					} else {

						applicable = true;

					}

					thisapplic = true;

					foundMatches = 0;

					for (g = 0; g < efcount; g++) {

						doesExist = false;

						for (var h in advArray[f]) {

							if (h == extrafields[g]) {

								doesExist = true;

							}

						}

						if (doesExist) {

							if (advArray[f][extrafields[g]] != "" && advArray[f][extrafields[g]] != "0") {

								splitCheck = advArray[f][extrafields[g]].split(";");

								splitapplic = false;

								for (k = 0; k < splitCheck.length; k++) {

									splitValues = currentValues[extrafields[g]].split(";");

									for (l = 0; l < splitValues.length; l++) {

										if ((splitCheck[k] == splitValues[l] && splitCheck[k] != "" && splitValues[l] != "")) {

											splitapplic = true;

											if (extrafieldstype[g] == "CHECKBOXES") {

												foundMatches = foundMatches + 1;

											}

										}

									}

								}

								if (splitapplic == true && thisapplic == true) {

									thisapplic = true;

								} else {

									thisapplic = false;

								}

							}

						}

					}

					if (thisapplic == true && applicable == true) {

						applicable = true;

					} else {

						applicable = false;

					}

					if (applicable == true) {

						//new base price

						if (foundMatches == 0) { foundMatches =1; }

						npPercentage = 0;

						npPrice = 0;

						npPriceExTax = 0;

						npPriceIncTax = 0;

						npPriceTax = 0;

						for (var h in advArray[f]) {

							if (h == "percentage") {

								npPercentage = eval(advArray[f]["percentage"]);

							}

							if (h == "price") {

								npPrice = eval(advArray[f]["price"]);

							}

							if (h == "priceExTax") {

								npPriceExTax = eval(advArray[f]["priceExTax"]);

							}

							if (h == "priceIncTax") {

								npPriceIncTax = eval(advArray[f]["priceIncTax"]);

							}

							if (h == "priceTax") {

								npPriceTax = eval(advArray[f]["priceTax"]);

							}

						}



						if (parseInt(advArray[f]["priceType"]) == 0) {

							if (parseFloat(advArray[f]["percentage"]) > 0) {

								thisPrice = thisPrice + (thisPrice  * (npPercentage/100));

								thisPriceExTax = thisPriceExTax + (thisPriceExTax  * (npPercentage/100));

								thisPriceIncTax = thisPriceIncTax + (thisPriceIncTax  * (npPercentage/100));

								thisPriceTax = thisPriceTax + (thisPriceTax  * (npPercentage/100));

							}

							if (parseFloat(advArray[f]["percentage"]) < 0) {

								thisPrice = thisPrice - (thisPrice  * (Math.abs(npPercentage)/100));

								thisPriceExTax = thisPriceExTax - (thisPriceExTax  * (Math.abs(npPercentage)/100));

								thisPriceIncTax = thisPriceIncTax - (thisPriceIncTax  * (Math.abs(npPercentage)/100));

								thisPriceTax = thisPriceTax - (thisPriceTax  * (Math.abs(npPercentage)/100));

							}

							if (parseFloat(advArray[f]["percentage"]) == 0) {

								thisPrice = npPrice;

								thisPriceExTax = npPriceExTax;

								thisPriceIncTax = npPriceIncTax;

								thisPriceTax = npPriceTax;

							}

						}

						if (parseInt(advArray[f]["priceType"]) == 1) {

							if (parseFloat(advArray[f]["percentage"]) > 0) {

								for (m = 1; m <= foundMatches; m++) {

									thisPrice = thisPrice + (thisPrice  * (npPercentage/100));

									thisPriceExTax = thisPriceExTax + (thisPriceExTax  * (npPercentage/100));

									thisPriceIncTax = thisPriceIncTax + (thisPriceIncTax  * (npPercentage/100));

									thisPriceTax = thisPriceTax + (thisPriceTax  * (npPercentage/100));

								}

							}

							if (parseFloat(advArray[f]["percentage"]) < 0) {

								for (m = 1; m <= foundMatches; m++) {

									thisPrice = thisPrice - (thisPrice  * (Math.abs(npPercentage)/100));

									thisPriceExTax = thisPriceExTax - (thisPriceExTax  * (Math.abs(npPercentage)/100));

									thisPriceIncTax = thisPriceIncTax - (thisPriceIncTax  * (Math.abs(npPercentage)/100));

									thisPriceTax = thisPriceTax - (thisPriceTax  * (Math.abs(npPercentage)/100));

								}

							}

							if (parseFloat(advArray[f]["percentage"]) == 0) {

								for (m = 1; m <= foundMatches; m++) {

									thisPrice = thisPrice + npPrice;

									thisPriceExTax = thisPriceExTax + npPriceExTax;

									thisPriceIncTax = thisPriceIncTax + npPriceIncTax;

									thisPriceTax = thisPriceTax + npPriceTax;

								}

							}

						}	

						if (parseInt(advArray[f]["priceType"]) == 2) {

							if (parseFloat(advArray[f]["percentage"]) > 0) {

								for (m = 1; m <= foundMatches; m++) {

									thisPrice = thisPrice - (thisPrice * (npPercentage/100));

									thisPriceExTax = thisPriceExTax - (thisPriceExTax * (npPercentage/100));

									thisPriceIncTax = thisPriceIncTax - (thisPriceIncTax * (npPercentage/100));

									thisPriceTax = thisPriceTax - (thisPriceTax * (npPercentage/100));

								}

							}

							if (parseFloat(advArray[f]["percentage"]) < 0) {

								for (m = 1; m <= foundMatches; m++) {

									thisPrice = thisPrice - (thisPrice * (Math.abs(npPercentage)/100));

									thisPriceExTax = thisPriceExTax - (thisPriceExTax * (Math.abs(npPercentage)/100));

									thisPriceIncTax = thisPriceIncTax - (thisPriceIncTax * (Math.abs(npPercentage)/100));

									thisPriceTax = thisPriceTax - (thisPriceTax * (Math.abs(npPercentage)/100));

								}

							}

							if (parseFloat(advArray[f]["percentage"]) == 0) {

								for (m = 1; m <= foundMatches; m++) {

									thisPrice = thisPrice - npPrice;

									thisPriceExTax = thisPriceExTax - npPriceExTax;

									thisPriceIncTax = thisPriceIncTax - npPriceIncTax;

									thisPriceTax = thisPriceTax - npPriceTax;

								}

							}

						}	

						if (parseInt(advArray[f]["priceType"]) == 4) {

							if (parseFloat(advArray[f]["percentage"]) > 0) {

								for (m = 1; m <= foundMatches; m++) {

									thisOOPrice = thisOOPrice - (thisOOPrice * (npPercentage/100));

									thisOOPriceExTax = thisOOPriceExTax - (thisOOPriceExTax * (npPercentage/100));

									thisOOPriceIncTax = thisOOPriceIncTax - (thisOOPriceIncTax * (npPercentage/100));

									thisOOPriceTax = thisOOPriceTax - (thisOOPriceTax * (npPercentage/100));

								}

							}

							if (parseFloat(advArray[f]["percentage"]) < 0) {

								for (m = 1; m <= foundMatches; m++) {

									thisOOPrice = thisOOPrice - (thisPrice * (Math.abs(npPercentage)/100));

									thisOOPriceExTax = thisOOPriceExTax - (thisOOPriceExTax * (Math.abs(npPercentage)/100));

									thisOOPriceIncTax = thisOOPriceIncTax - (thisOOPriceIncTax * (Math.abs(npPercentage)/100));

									thisOOPriceTax = thisOOPriceTax - (thisOOPriceTax * (Math.abs(npPercentage)/100));

								}

							}

							if (parseFloat(advArray[f]["percentage"]) == 0) {

								for (m = 1; m <= foundMatches; m++) {

									thisOOPrice = npPrice;

									thisOOPriceExTax = npPriceExTax;

									thisOOPriceIncTax = npPriceIncTax;

									thisOOPriceTax = npPriceTax;

								}

							}

						}																

					}							

				}

				displayPrice = presentValue(thisPrice,cDP,cPreT,cMidT,cPostT);

				changeContent("priceSpan"+productID,"priceLayer"+productID,displayPrice);

				displayPrice = presentValue(thisPriceExTax,cDP,cPreT,cMidT,cPostT);

				changeContent("priceExTaxSpan"+productID,"priceExTaxLayer"+productID,displayPrice);

				displayPrice = presentValue(thisPriceIncTax,cDP,cPreT,cMidT,cPostT);

				changeContent("priceIncTaxSpan"+productID,"priceIncTaxLayer"+productID,displayPrice);

				displayPrice = presentValue(thisPriceTax,cDP,cPreT,cMidT,cPostT);

				changeContent("priceTaxSpan"+productID,"priceTaxLayer"+productID,displayPrice);

				

				displayPrice = presentValue(thisOOPrice,cDP,cPreT,cMidT,cPostT);

				changeContent("oopriceSpan"+productID,"oopriceLayer"+productID,displayPrice);

				displayPrice = presentValue(thisOOPriceExTax,cDP,cPreT,cMidT,cPostT);

				changeContent("oopriceExTaxSpan"+productID,"oopriceExTaxLayer"+productID,displayPrice);

				displayPrice = presentValue(thisOOPriceIncTax,cDP,cPreT,cMidT,cPostT);

				changeContent("oopriceIncTaxSpan"+productID,"oopriceIncTaxLayer"+productID,displayPrice);

				displayPrice = presentValue(thisOOPriceTax,cDP,cPreT,cMidT,cPostT);

				changeContent("oopriceTaxSpan"+productID,"oopriceTaxLayer"+productID,displayPrice);

			}

			

			isNS4 = (document.layers) ? true : false;

isIE4 = (document.all && !document.getElementById) ? true : false;

isIE5 = (document.all && document.getElementById) ? true : false;

isNS6 = (!document.all && document.getElementById) ? true : false;

			

function changeContent(theDiv,theLayer,newText) {

	if (isNS4){

	   elm = document.layers[theLayer];

	   elm.document.open();

       elm.document.write(newText);

       elm.document.close();



	}

	else if (isIE4) {

	   elm = document.all[theDiv];

	   elm.innerText = newText;

	}

	else if (isIE5) {

	   elm = document.getElementById(theDiv);

		if (elm) {

	   		elm.innerText = newText;

	   	}

	}

	else if (isNS6) {

		var elmw = document.getElementById(theDiv);

    	if (elmw) {

    		elmw.childNodes[0].nodeValue = newText;

    	}	

	}

}			



    function presentValue(value,dp,pt,mt,at) {

        if(value<=0.9999) {

            newPounds='0';

        } else {

            newPounds=parseInt(value);

        }

        dec='1';

        for (var i=1; i<=dp;i++) {

            dec=dec+'0';

        }

        if (value>0) {

            newPence=Math.round((eval(value)+.000008 - newPounds)*(eval(dec)));

        } else {

            newPence=0;

        }

        compstring='9';

        for (var i=1; i <=dp-1;i++) {

            if (eval(newPence) <= eval(compstring)) newPence='0'+newPence;

            compstring=compstring+'9';

        }

        if (dp>0) {

            if (newPence==eval(dec)) { newPounds++; newPence='00'; }

            newString=pt+newPounds+mt+newPence+at;

        } else {

            newString=pt+newPounds+at;

        }

        return (newString);

    }



	function doesFormElementExist(formName,elementName) {

		if (document.getElementById(formName)) {

			theForm = document.getElementById(formName);

			if (theForm.elements[elementName]) {

				return true;

			}

		}

		if (document.forms[formName]) {

			if (document.forms[formName].elements[elementName]) {

				return true;

			}

		}

		return false;

	}



	function getFormElementValue(formName,elementName) {

		if (document.getElementById(formName)) {

			theForm = document.getElementById(formName);

			if (theForm.elements[elementName]) {

				return theForm.elements[elementName].value;

			}

		}

		if (document.forms[formName]) {

			if (document.forms[formName].elements[elementName]) {

				return document.forms[formName].elements[elementName].value;

			}

		}

		return "";

	}



	function getFormElementType(formName,elementName) {

		if (document.getElementById(formName)) {

			theForm = document.getElementById(formName);

			if (theForm.elements[elementName]) {

				return theForm.elements[elementName].type;

			}

		}

		if (document.forms[formName]) {

			if (document.forms[formName].elements[elementName]) {

				return document.forms[formName].elements[elementName].type;

			}

		}

		return "";

	}



	function getFormElement(formName,elementName) {

		if (document.getElementById(formName)) {

			theForm = document.getElementById(formName);

			if (theForm.elements[elementName]) {

				return theForm.elements[elementName];

			}

		}

		if (document.forms[formName]) {

			if (document.forms[formName].elements[elementName]) {

				return document.forms[formName].elements[elementName];

			}

		}

		return "";

	}



	function jss_openWindow(url) {

		window.open(url,"JSSWindow","height=400,width=500,resizable=1");

	}