var bShowingOptDiagram = false;

function ShowProductImageAndLink(iProductID){

if (bShowingOptDiagram == false || iProductID > 0) {

    var sImgSrc = "";
    var sLinkTo = "";

	if (iProductID > 0) {
	    sImgSrc = "/cms/imgscale.aspx?NF=trans&width=150&img=/shop/uploads/images_products/" + iProductID + ".jpg";			
	    sLinkTo = "/shop/product.asp?P_ID=" + iProductID;
		
	    document.images.imgOption.src = sImgSrc;
	    document.getElementById("aImageOption").href = sLinkTo;
	    document.getElementById("sImageOption").style.display = "block";

    } else {
        document.getElementById("sImageOption").style.display = "none";
        document.getElementById("aImageOption").href = "javascript:void(0)";
        document.images.imgOption.src = "";		
	}
	
	
	
	//document.images.imgOption.onclick = "alert(1)";
	
	//alert(sImgSrc);

	}
}	





function ShowPriceVersion() {
	var cmbQuan = document.getElementById('Q1');
	var iQuan = cmbQuan.options[cmbQuan.selectedIndex].value;
	if (!iQuan>0) iQuan = 1;


	var txtPrice = document.getElementById('txtPrice');
	var origPrice = document.getElementById('origPrice');
	var elVersionsJS = document.getElementById('VersionsJS');
	
	if (elVersionsJS != null) {
		var elVersionPicker = document.getElementById('V1');
		
		if (elVersionPicker.selectedIndex != undefined){
			//var vId = elVersionPicker.options[elVersionPicker.selectedIndex].value;
			
			//var sVersions = elVersionsJS.value;
			//var aVersions = sVersions.split("|");
			//for (var m = 0; m < aVersions.length; m++) {
				//var sBits = aVersions[m].split(",");
				//if (sBits[0] == vId) {
					//var sPrice = sBits[1];
					//alert (sPrice);
					
					//txtPrice.value = (iQuan * parseFloat(sPrice)).toFixed(2);
					//break;
				//}
			//}
		}
		else if (origPrice != '') {
			origPrice = origPrice.value
			var sVersions = elVersionsJS.value;
			txtPrice.value = (iQuan * parseFloat(origPrice)).toFixed(2);
		}
		//alert (aVersions[0]);
		//alert ();
	}
	
}	





					
function goInStock(id) {
	var outOfStock = document.getElementById('outofstockline' + id);
	var inStock = document.getElementById('addtobasketline' + id);
	var outOfStockMessage = document.getElementById('outofstockmessage' + id);
	outOfStock.style.display = 'none';
	outOfStock.style.visibility = 'hidden';
	outOfStockMessage.style.display = 'none';
	outOfStockMessage.style.visibility = 'hidden';
	inStock.style.display = '';
	inStock.style.visibility = 'visible';
	
}

function goOutOfStock(id) {
	var outOfStock = document.getElementById('outofstockline' + id);
	var inStock = document.getElementById('addtobasketline' + id);
	var outOfStockMessage = document.getElementById('outofstockmessage' + id);
	inStock.style.display = 'none';
	inStock.style.visibility = 'hidden';
	outOfStockMessage.style.display = '';
	outOfStockMessage.style.visibility = 'visible';
	outOfStock.style.display = '';
	outOfStock.style.visibility = 'visible';
}
								
function ExtractNum(stringNo) 
{
	//We're doing string functions to make sure that we're getting the price after "(+" of each option labels
	var iPosDiffStart = stringNo.lastIndexOf("(+");
	var parsedNo = ""; 
	
	if (iPosDiffStart > -1) {
	stringNo = stringNo.slice(iPosDiffStart,stringNo.length);

	
	for(var n=0; n<stringNo.length; n++) 
	{
		var i = stringNo.substring(n,n+1); 
		if(i=="1"||i=="2"||i=="3"||i=="4"||i=="5"||i=="6"||i=="7"||i=="8"||i=="9"||i=="0"||i==".")
		parsedNo += i; 
	} 
	}
	
	if (parsedNo.length > 0) { 
	return parsedNo;} else {return 0;}
}





function checkStock(id,outOfStockItems) {
	// Build up out options selections
	
	var sOptImage = "";
	bShowingOptDiagram = false;
	
	var txtPrice = document.getElementById('txtPrice' + id);
	var origPrice = document.getElementById('origPrice' + id);
	var txtPriceEx = document.getElementById('txtPriceEx' +id);
	
	var selections = new Array();
	var selectionCount = 0;
	var numOptionsTotal = 0;
	var elOptions = document.getElementById('options' + id);


	if (elOptions != null) {
	
		for (i=0;i<elOptions.elements.length;i++) {
			var element = elOptions.elements[i];
			if(element.name.substring(0,6)=='OPT_ID') {
				switch(element.type)
				{
					case 'checkbox':
						// is this checkbox selected?
						if(element.checked == true) {
							// use this ID
							selections[selectionCount]=element.value;
							selectionCount++;
													
							// find all labels
							var labels = document.getElementsByTagName('label');
							// loop through all label elements
								for (var m = 0; m < labels.length; m++) {
									var label = labels[m];
									var labelFor = label.htmlFor;					
									if (labelFor == element.id) {
											numOptionsTotal = numOptionsTotal + parseFloat(ExtractNum(label.innerHTML));
									}							
								}
						} else {
							// otherwise we have to get out the nocheckvalue
							var nocheck = elOptions.elements['NOCHECK_' + element.name]
							selections[selectionCount]=nocheck.value;
							selectionCount++;
						}
						break;
						
					case 'radio':
						if(element.checked == true) {
							selections[selectionCount]=element.value;
							selectionCount++;
							// find all labels
							var labels = document.getElementsByTagName('label');
							// loop through all label elements
								for (var m = 0; m < labels.length; m++) {
									var label = labels[m];
									var labelFor = label.htmlFor;					
									if (labelFor == element.id) {
											numOptionsTotal = numOptionsTotal + parseFloat(ExtractNum(label.innerHTML));
									}							
								}
						}
						break;
						
					case 'select-one':
						var Index = element.selectedIndex;
						selections[selectionCount]=element.value;
						selectionCount++;
						numOptionsTotal = numOptionsTotal + parseFloat(ExtractNum(element.options[Index].text));
						
						var sOptPrompt = element.options[0].innerHTML.toLowerCase();
						//sPrompt = sPrompt.replace(/\?/, "");
						//sPrompt = sPrompt.replace(/\:/, "");
						
						//work out which image should be displayed...					
						if ((sOptPrompt.indexOf("number of modules") == 0) || (sOptPrompt.indexOf("straight or curved") == 0) || (sOptPrompt.indexOf("headers") == 0) || (sOptPrompt.indexOf("need headers") == 0)){
							sOptImage += GetDefaultOptionText(element);
							sOptImage += "-"
						}								

						
						break;

					default:
						break;
						
				}
				
			}

		}
		
	}
	
	//added for fresco...
	var cmbQuan = document.getElementById('Q1');
	var iQuan = cmbQuan.options[cmbQuan.selectedIndex].value;
	if (!iQuan>0) iQuan = 1;
	
	
	
	
	if (document.getElementById('imgOption')) {		
		if (sOptImage != "" && typeof(iDiagramFolderRef) != "undefined") {
		    
			sOptImage += ".gif";			
			sOptImage = sOptImage.replace("-.gif", ".gif");
						
			var sImgSrc = "/cms/imgscale.aspx?NF=trans&width=240&img=/UserFiles/Image/productdiagrams/" + iDiagramFolderRef + "/" + sOptImage;			
			document.images.imgOption.src = sImgSrc;
			
			//alert(sOptImage);
			
			bShowingOptDiagram = true;
		}
	}
	
	
	txtPrice.value = (iQuan * (parseFloat(origPrice.value) +  parseFloat(numOptionsTotal))).toFixed(2);
	
	if (txtPriceEx != null){
		var numTax = document.getElementById('numTax' + id);
		txtPriceEx.value = (txtPrice.value * numTax.value).toFixed(2);
	}
	
	selections = (selections.sort());
	var selection = selections.join('-');
	var isOutOfStock = false;
	
	// Does this combination exist in out outofstock array?
	for(i=0; i<outOfStockItems.length; i++) {
		if(outOfStockItems[i]==selection) {
			isOutOfStock = true;
			break;
		}
	}
	
	if(isOutOfStock) {
		goOutOfStock(id);
	} else {
		goInStock(id);
	}
}



function GetDefaultOptionText(selCurrent){
//get visible prompt for option...
var iOptValue;
var sOptText = "";

	if (selCurrent.selectedIndex != 0) {							
		sOptText = selCurrent.options[selCurrent.selectedIndex].innerHTML;
	} else {
		//on first 'prompt' choice so work out which value it matches...
		iOptValue = selCurrent.options[0].value;
		
		for (var m = 1; m < selCurrent.options.length; m++) {
			if (selCurrent.options[m].value == iOptValue) {
				sOptText = selCurrent.options[m].innerHTML;
				break;
			}
		}
	}
	
	//remove the price diff is there is one..
	var iPosDiffStart = sOptText.lastIndexOf("(+");
	if (iPosDiffStart > -1) {
		sOptText = sOptText.substring(0, iPosDiffStart - 1);		
	}
	
	return sOptText;
}						
