
var addthis_pub = 'opht';
var addthis_logo = 'http://lib.store.yahoo.net/lib/humantouch-com/logo-for-add-this-service.gif';
var addthis_logo_background = 'FFFFFF';
var addthis_logo_color = '999999';
var addthis_brand = 'Human Touch';
var addthis_options = 'favorites, google, email, facebook, live, myweb, delicious, digg, technorati, furl, stumbleupon, more';

var productOptions = new Object();
var loadedProductImages = new Object();
var spacerImgSrc = "http://lib.store.yahoo.net/lib/humantouch-com/spacer.gif"
var spacerImg = new Image(1,1);
var productImage = null;
var productImageTitle = null;
var selectedProductImageId = null;
var currentProductImageId = null;
var basePrice = null;
var baseSalePrice = null;

function showImage(id){
	id = ""+id;
	currentProductImageId = id;
	if(loadedProductImages[id]){
		productImage.src = productImages[id];
	}else{
		productImage.src = spacerImgSrc;
		var img = new Image(286,224);
		img.alt = id;
		img.onload = function(){
			loadedProductImages[this.alt] = true;
			if(this.alt == currentProductImageId){
				productImage.src = productImages[this.alt];
			}
		};
		img.src = productImages[id];
	}
	productImageTitle.innerHTML = document.getElementById("product-image-"+id).title;
}

function revertImage(){
	productImage.src = productImages[selectedProductImageId];
	productImageTitle.innerHTML = document.getElementById("product-image-"+selectedProductImageId).title;
}

function optionEvent(obj,eventAction){
	var optionInputs = obj.getElementsByTagName('input');
	var optionInput = optionInputs[0];
	var optionInputIdFirstDash = optionInput.id.indexOf("-") + 1;
	var optionInputIdSecondDash = optionInput.id.indexOf("-",optionInputIdFirstDash);
	var optionSetId = optionInput.id.substring(optionInputIdFirstDash,optionInputIdSecondDash);
	var optionId = optionInput.id.substring(optionInputIdSecondDash+1);
	var detailId = "detail";
	for(var i in productOptions){
		detailId += "-" + ((optionSetId==i)?optionId:productOptions[i]["selected"]);
	}
	if(eventAction == 'click'){
		productOptions[optionSetId]["selected"] = optionId;
		redrawOptions(detailId);
	}
	showImage(productOptionsDetails[detailId]["image"]);
}

function redrawOptions(detailId){
	selectedProductImageId = productOptionsDetails[detailId]["image"];
	var productOptionSets = document.getElementById("product-options").getElementsByTagName('table');
	for (var i=0; i<productOptionSets.length; i++) {
		var setId = ""+(i+1);
		var productOptionsRows = productOptionSets[i].getElementsByTagName('tr');
		for (var j=0; j<productOptionsRows.length; j++) {
			var productOptionRow = productOptionsRows[j];
			var optionId = ""+(j+1);
			var optionInputs = productOptionRow.getElementsByTagName('input');
			var optionInput = optionInputs[0];
			var check = productOptions[setId]["selected"] == optionId;
			productOptionRow.className = check?"product-option-selected-row":"";
			optionInput.checked = check;
			
			var cells = productOptionRow.getElementsByTagName('td');
			if(check){
				cells[cells.length-1].innerHTML = "Included in Price";
			}else{
				var adjust = productOptions[setId][optionId] - productOptions[setId][productOptions[setId]["selected"]];
				if(adjust == 0){
					adjust = "&mdash;";
				}else if(adjust > 0){
					adjust = "Add " + currency(adjust);
				}else{
					adjust = "Subtract " + currency(0-adjust);
				}
				cells[cells.length-1].innerHTML = adjust ;
			}
			
		}	
	}
	document.getElementById("part-number").innerHTML = productOptionsDetails[detailId]["code"];
	document.getElementById("part-number-input").value = productOptionsDetails[detailId]["code"];
	
	var adjustPrice = 0;
	for(var set in productOptions){
		adjustPrice += productOptions[set][productOptions[set]["selected"]];
	}
	if (document.getElementById("price")) {
		document.getElementById("price").innerHTML = currency(adjustPrice + basePrice);
	}
	if (document.getElementById("sale-price")) {
		document.getElementById("sale-price").innerHTML = currency(adjustPrice + baseSalePrice);
	}
}

function initProduct(){

	var addThisButton = document.getElementById("product-page-email-a-friend-link");
	
	addThisButton.onmouseover = function(){
		return addthis_open(this, '', location.href, document.title);
	};
	addThisButton.onmouseout = function(){
		addthis_close();
	};
	addThisButton.onclick = function(){
		return addthis_to();
	};


	document.getElementById("product-page-print-link").onclick = function(){
		window.print();
	};

	if (document.getElementById("price")) {
		basePrice = parseFloat(document.getElementById("price").innerHTML.replace(/[^0-9\.]/g, ""));
	}
	if (document.getElementById("sale-price")) {
		baseSalePrice = parseFloat(document.getElementById("sale-price").innerHTML.replace(/[^0-9\.]/g, ""));
	}

	var productImageContainerImages = document.getElementById("product-main-image-container").getElementsByTagName('img');
	productImage = productImageContainerImages[0];
	productImageTitle = document.getElementById("product-picture-title");  

	var productImageIcons = document.getElementById("product-additional-images-container").getElementsByTagName('a');
	for (var i=0; i<productImageIcons.length; i++) {
		productImageIcons[i].onmouseover = function(){
			showImage(this.id.substring(14));
		}
		productImageIcons[i].onmouseout = function(){
			revertImage();
		}
	}
	var detailId = "detail";	
	var productOptionSets = document.getElementById("product-options").getElementsByTagName('table');
	for (var i=0; i<productOptionSets.length; i++) {
		detailId += "-1";
		var setId = ""+(i+1);
		productOptions[setId] = new Object();
		var productOptionsRows = productOptionSets[i].getElementsByTagName('tr');
		productOptions[setId]["selected"] = "1";
		for (var j=0; j<productOptionsRows.length; j++) {
			var productOptionRow = productOptionsRows[j];
			var optionId = ""+(j+1);		
			var cells = productOptionRow.getElementsByTagName('td');
			var val = cells[cells.length-1].innerHTML.replace(/[^0-9\.]/g, "");

			productOptions[setId][optionId] = (val == "")?0:parseFloat(val);
			
			productOptionRow.onmouseover = function(){
				optionEvent(this,'over');
			}
			productOptionRow.onmouseout = function(){
				revertImage();
			}
			productOptionRow.onclick = function(){
				optionEvent(this,'click');
			}
		}	
	}
	redrawOptions(detailId);
	
	spacerImg.src = spacerImgSrc;
	
	for(var imgId in productImages){
		loadedProductImages[""+imgId] = false;
	}
	
	if(oldIE){
		var lis = document.getElementById("content").getElementsByTagName('li');
		for (var i in lis) {
			lis[i].onmouseover=function() {
				this.className+=" hover";
			}
			lis[i].onmouseout=function() {
				this.className=this.className.replace(new RegExp(" hover\\b"), "");
			}
		}
	}
}

function currency(n){
	x = n.toFixed(priceDecimals) + '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x)) {
		x = x.replace(rgx, '$1,$2');
	}
	return "$" + x;
}
