	String.prototype.RTrim = function() {return this.replace(/\s+$/, "");}
	String.prototype.LTrim = function() {return this.replace(/^\s+/, "");}
	String.prototype.Trim  = function() {return this.RTrim().LTrim();}


function popDiameter(insertUnit) {
	oEle = document.searchForm;
	oEle.diameter.options.length = 0;

	if (Inserts[insertUnit] != undefined) {
		oEle.diameter.options[0] = new Option("Any", "");

		var insertDiameters = Inserts[insertUnit].split("~");
		for (i=1; i<insertDiameters.length; i++) {
			var insertDiameterSub = insertDiameters[i].split("*");
			
			oEle.diameter.options[i] = new Option(insertDiameterSub[1] , insertDiameterSub[0]);
		}
	} else {
		oEle.diameter.options[0] = new Option("Any", "")
	}
}


function popLength(insertUnit,insertLength) {
	oEle = document.searchForm;
	oEle.qlength.options.length = 0;

	if (InsertsDia[insertUnit][insertLength] != undefined) {
		oEle.qlength.options[0] = new Option("Any", "");

		var insertLengths = InsertsDia[insertUnit][insertLength].split("~");
		for (i=1; i<insertLengths.length; i++) {
			oEle.qlength.options[i] = new Option(insertLengths[i] + ' ' + insertUnit, insertLengths[i]);
		}
	} else {
		oEle.qlength.options[0] = new Option("Any", "");
	}
}


//Karls Functions

function updatePartNo(){
	oEle = document.partNumberBuilder;
	var partNoString = '';
		partNoString += oEle.type.value + '-';
		partNoString += document.AddToBasket.sizeDes.value;
		partNoString += oEle.material.value;
		partNoString += oEle.finish.value;
		partNoString += oEle.length.value;
		partNoString += oEle.packaging.value;

	document.getElementById('partNo').innerHTML							= partNoString;
	document.getElementById('partNo2').innerHTML						= partNoString;
	document.AddToBasket.hfProdCode.value										= partNoString;
}

function updatePartDesc(){
	oEle = document.partNumberBuilder;
	var partDescString = '';
		partDescString += document.AddToBasket.nomThreadSize.value + ', ';
		partDescString += oEle.material.options[oEle.material.selectedIndex].text + ', ';
		if (oEle.finish.value != "") {
			partDescString += oEle.finish.options[oEle.finish.selectedIndex].text + ' ';
		}
		partDescString += oEle.type.options[oEle.type.selectedIndex].text + ' Insert. ';
		partDescString += oEle.packaging.options[oEle.packaging.selectedIndex].text;

	document.getElementById('partDesc').innerHTML							= partDescString;
	document.AddToBasket.hfProdDesc.value											= partDescString;
}

function changedPart() {
	updatePartNo();
	updatePartDesc();
}

function showElement(elementId){
	oEle = document.getElementById(elementId);
	oEle.style.display = 'block';
}

function hideElement(elementId){
	oEle = document.getElementById(elementId);
	oEle.style.display = 'none';
}


//RG's Stuff

function submitSearch() {
	var oEle = document.searchForm;

	if (!IsNumber(oEle.qlengthFree.value)) {
		alert("Please enter a numeric Hole Depth")
		oEle.qlengthFree.focus();
	} else {
		oEle.submit();
	}
}

function updateDisplayPrice() {
	itemLength = (((document.partNumberBuilder.length.selectedIndex+1)*0.5) + 0.5);
	itemType = document.partNumberBuilder.type.value;
	
	var arrPrices = priceArray[itemLength + '_' + itemType];
	document.AddToBasket.hfProdId.value					= String(arrPrices[0]);
	document.getElementById('price').innerHTML	= String(arrPrices[1]);
	document.getElementById('price2').innerHTML	= String(arrPrices[2]);
	document.getElementById('price3').innerHTML	= String(arrPrices[3]);
	calculateBuyPrice();
}


function calculateBuyPrice() {
	var basketQty = document.AddToBasket.hfProdQty.value;
	var thePrice = 0;
	
	if (IsNumber(basketQty)) {
		if (basketQty < 20) {
			thePrice = document.getElementById('price').innerHTML;
		} else if (basketQty < 100) {
			thePrice = document.getElementById('price2').innerHTML;
		} else {
			thePrice = document.getElementById('price3').innerHTML;
		}
		document.getElementById('buyPrice').innerHTML = thePrice;
	} else if (basketQty != '') {
		alert("Please enter a numeric quantity")
		document.AddToBasket.hfProdQty.focus();
	}
	document.AddToBasket.hfProdPrice.value = thePrice;
}


function buyThis() {
	var oEle = document.AddToBasket;
	prodId = oEle.hfProdId.value;
	insertId = oEle.hfInsertId.value;
	prodCode = oEle.hfProdCode.value;
	prodPrice = oEle.hfProdPrice.value;
	prodDesc = oEle.hfProdDesc.value;
	prodQty = oEle.hfProdQty.value;
	
	if (prodPrice <= 0) {
		alert("Sorry, but this item is currently unavailable for purchase");
	} else {
		SubmitToBasket(prodId,prodCode,prodPrice,prodDesc + ' x25',prodQty,'',2, 'tr',insertId);
	}
}

function buyInsertSearch(priceId) {
	var oEle = document.searchResult;
	prodQty = oEle['partQty' + priceId].value;
	if ((IsNumber(prodQty)) && (prodQty != '')) {	
		prodCode = oEle['partCode' + priceId].value;
		if (prodQty  < 20) {
			prodPrice = oEle['partPrice' + priceId].value;
		} else if (prodQty  < 100) {
			prodPrice = oEle['partPrice2' + priceId].value;
		} else {
			prodPrice = oEle['partPrice3' + priceId].value;
		}
		prodDesc = oEle['partName' + priceId].value + ', Stainless Steel, Free Running Insert. Bulk Packaged x25';
		SubmitToBasket(priceId,prodCode,prodPrice,prodDesc,prodQty,'',2, 'tr',priceId);
	} else {
		alert("Please enter a numeric quantity")
		oEle['partQty' + priceId].focus();
	}
}