
function MatboardBuilder() {

	this.nr=function (value, defaultValue) {
		value=parseFloat(value);
		return (isNaN(value)||value==""||typeof value=="undefined"?defaultValue:value);
	}

	this.setLayers=function (nr) {
		for (var i=0; i<3; i++) {
			$("tab"+i).hide();
			$("divLayer"+i+"Label").hide();
		}
		for (var i=0; i<Math.min(1,nr); i++) {
			$("tab"+i).show();
			$("divLayer"+i+"Label").show();
		}
		this.selectLayer(0);
		for (var i=1; i<nr; i++) {
			//new Effect.Pulsate($("tab"+i));
			$("tab"+i).show();
			$("divLayer"+i+"Label").show();
		}
	}

	this.selectLayer=function (idx) {
		for (var i=0; i<3; i++) {
			$("tab"+i).className="";
			$("layer"+i).hide();
		}
		$("tab"+idx).className="active";
		$("layer"+idx).show();
		$("current_layer").value = idx;
	}

	this.setBlankMat=function (isBlank) {
		if (isBlank) {
			$('divLayerSelector').hide();
			$('divMultiLayerOptions').hide();
			this.setLayers(1);
		}else {
			$('divLayerSelector').show();
			$('divMultiLayerOptions').show();
		}
	}

	this.setWeightedWindow=function (isWeighted) {
		if (isWeighted) {
			$('divWeightedWindowSelector').show();
		}else {
			$('divWeightedWindowSelector').hide();
		}
	}
	this.getOutsideDims=function () {
		var outside={
			width:this.nr($("MatboardSelOutsideDimensionsWidthInt").value,0),
			height:this.nr($("MatboardSelOutsideDimensionsHeightInt").value,0),
			widthDec:this.nr($("MatboardSelOutsideDimensionsWidthFloat").value,0),
			heightDec:this.nr($("MatboardSelOutsideDimensionsHeightFloat").value,0)
		};
		return outside;
	}
	this.getOpeningDims=function () {
		var opening={
			width:this.nr($("MatboardSelOpeningDimensionsWidthInt").value,0),
			height:this.nr($("MatboardSelOpeningDimensionsHeightInt").value,0),
			widthDec:this.nr($("MatboardSelOpeningDimensionsWidthFloat").value,0),
			heightDec:this.nr($("MatboardSelOpeningDimensionsHeightFloat").value,0)
		};
		return opening;
	}
	this.setWeight=function (type){
		//The bottom weight can be determined from the top weight by the following: [outside dimensions height] - [opening dimensions height] – [top weight].
		var outside=this.getOutsideDims();
		var opening=this.getOpeningDims();


		if (type=='top') {
			var top=this.nr($('MatboardSelTopWeightInt').value,0) + this.nr($('MatboardSelTopWeightFloat').value,0);
			var bottom=(outside.height+outside.heightDec) - (opening.height+opening.heightDec+top);
			$('MatboardSelBottomWeightInt').value=Math.floor(bottom);
			for (var i=0; i<$('MatboardSelBottomWeightFloat').options.length; i++) {
				if ($('MatboardSelBottomWeightFloat').options[i].value==bottom-Math.floor(bottom)) {
					$('MatboardSelBottomWeightFloat').selectedIndex=i;
				}
			}
		} else {
			var bottom=this.nr($('MatboardSelBottomWeightInt').value,0) + this.nr($('MatboardSelBottomWeightFloat').value,0);
			var top=(outside.height+outside.heightDec) - (opening.height+opening.heightDec+bottom);
			$('MatboardSelTopWeightInt').value=Math.floor(top);
			//$('MatboardSelTopWeightFloat').value=bottom-Math.floor(top);
			for (var i=0; i<$('MatboardSelTopWeightFloat').options.length; i++) {
				if ($('MatboardSelTopWeightFloat').options[i].value==top-Math.floor(top)) {
					$('MatboardSelTopWeightFloat').selectedIndex=i;
				}
			}
		}
	}
	this.setSetBack=function (sel, layer) {
		$("divLayer"+layer+"Label-setback").innerHTML="<span class='product_selection'>Set back:</span> "+sel.options[sel.selectedIndex].text;
	}
}

var Validation = {
	matboard : function (prod) {
		var msgs = [];
		var outside=mBuilder.getOutsideDims();
		var opening=mBuilder.getOpeningDims();


		if (outside.width=="") {
			msgs[msgs.length] = "Please set the width for the outside dimension.";
		}
		if (outside.height=="") {
			msgs[msgs.length] = "Please set the height for the outside dimension.";
		}

		if (outside.width!="" && outside.height!="") {

			var w=Math.min(outside.width+outside.widthDec, outside.height+outside.heightDec);
			var h=Math.max(outside.width+outside.widthDec, outside.height+outside.heightDec);
			if (w < Matboards.minDimensions.WIDTH || h < Matboards.minDimensions.HEIGHT) {
				msgs[msgs.length] = "The outside dimension needs to be at least "+Matboards.minDimensions.WIDTH+" x "+Matboards.minDimensions.HEIGHT+" . Please call customer service if you need a smaller size.";
			} else if (w > Matboards.maxDimensions.WIDTH || h > Matboards.maxDimensions.HEIGHT) {
				msgs[msgs.length] = "The outside dimension cannot be larger than "+Matboards.maxDimensions.WIDTH+" x "+Matboards.maxDimensions.HEIGHT+".";
			}
		}

		var layers=document.getElementById("MatboardSelNumberLayers").value;
		var layerNames = ['Top', 'Bottom', 'Middle'];
		var firstWrongLayer = -1;
		for (var i=0; i<layers; i++) {
			if ($("product_id"+i).value=="") {
				msgs[msgs.length] = "Please select a product for the "+layerNames[i]+" layer.";
				firstWrongLayer=(firstWrongLayer==-1?i:firstWrongLayer);
			}
			if ($("selColorCode"+i).value=="") {
				msgs[msgs.length] = "Please select a color for the "+layerNames[i]+" layer.";
				firstWrongLayer=(firstWrongLayer==-1?i:firstWrongLayer);
			}
			if (opening.width != "" && !isNaN(opening.width)
				&& opening.height != "" && !isNaN(opening.height)) {
				var setBack=mBuilder.nr($('MatboardLayer'+i+'SelSetback').value,0);
				if (opening.width + opening.widthDec + setBack > outside.width + outside.widthDec
					|| opening.height + opening.heightDec + setBack > outside.height + outside.heightDec) {
					msgs[msgs.length] = "The opening dimension must be larger than the outside dimension in the "+layerNames[i]+" layer.";
					firstWrongLayer=(firstWrongLayer==-1?i:firstWrongLayer);
				}
			}
		}

		if (msgs.length==0) {
			return true;
		}
		if (firstWrongLayer>-1) {
			mBuilder.selectLayer(firstWrongLayer);
			new Effect.Highlight($('layer'+firstWrongLayer));
		}
		alert("Please verify the following:\n- "+msgs.join("\n- "));
		return false;
	},
	full_sheets : function (prod) {
		var msgs = [];

		var layers=1;
		var layerNames = ['Top', 'Bottom', 'Middle'];
		var firstWrongLayer = -1;
		for (var i=0; i<layers; i++) {
			if ($("product_id"+i).value=="") {
				msgs[msgs.length] = "Please select a product.";
				firstWrongLayer=(firstWrongLayer==-1?i:firstWrongLayer);
			}
			if ($("selColorCode"+i).value=="") {
				msgs[msgs.length] = "Please select a color.";
				firstWrongLayer=(firstWrongLayer==-1?i:firstWrongLayer);
			}
		}

		if (msgs.length==0) {
			return true;
		}
		if (firstWrongLayer>-1) {
			mBuilder.selectLayer(firstWrongLayer);
			new Effect.Highlight($('layer'+firstWrongLayer));
		}
		alert("Please verify the following:\n- "+msgs.join("\n- "));
		return false;
	},
	mounting_board : function (prod) {
		var msgs = [];
		if ($("product_id").value=="") {
			msgs[msgs.length] = "Please select a product.";
		}
		if (!Validation.sanitize($('MountingBoardSelOutsideDimensionsWidthInt').value)) {
			msgs[msgs.length] = "Please set the width for the outside dimension.";
		}
		if (!Validation.sanitize($('MountingBoardSelOutsideDimensionsHeightInt').value)) {
			msgs[msgs.length] = "Please set the height for the outside dimension.";
		}
		if (msgs.length==0) {
			return true;
		}
		alert("Please verify the following:\n- "+msgs.join("\n- "));
		return false;
	},
	wood_moulding : function (prod) {
		var msgs = [];
		if ($("product_id").value=="") {
			msgs[msgs.length] = "Please select a product.";
		}
		if (!Validation.sanitize($("WoodMouldingSelOutsideDimensionsWidthInt").value) ||
			(!Validation.sanitize($("WoodMouldingSelOutsideDimensionsWidthFloat").value) && '' != $("WoodMouldingSelOutsideDimensionsWidthFloat").value) ||
			!Validation.sanitize($("WoodMouldingSelOutsideDimensionsHeightInt").value) ||
			(!Validation.sanitize($("WoodMouldingSelOutsideDimensionsHeightFloat").value) && '' != $("WoodMouldingSelOutsideDimensionsHeightFloat").value))
		{
			msgs[msgs.length] = "Please revise your dimensions.";
		}
		
		var width = parseFloat($("WoodMouldingSelOutsideDimensionsWidthInt").value);
		if ('' != $("WoodMouldingSelOutsideDimensionsWidthFloat").value)
		{
			width += parseFloat($("WoodMouldingSelOutsideDimensionsWidthFloat").value);
		}
		var height = parseFloat($("WoodMouldingSelOutsideDimensionsHeightInt").value);
		if ('' != $("WoodMouldingSelOutsideDimensionsHeightFloat").value)
		{
			height += parseFloat($("WoodMouldingSelOutsideDimensionsHeightFloat").value);
		}
		
		if (5.75 > width || 5.75 > height || 60 < width || 60 < height) {
			msgs[msgs.length] = "Wood frames can be cut from 5.75\" to 60\".  Please revise your dimensions.";
		}
		if (msgs.length==0) {
			return true;
		}
		alert("Please verify the following:\n- "+msgs.join("\n- "));
		return false;
	},
	metal_moulding : function (prod) {
		var msgs = [];
		if ($("product_id").value=="") {
			msgs[msgs.length] = "Please select a product.";
		}
		if ($("selColorCode").value=="") {
			msgs[msgs.length] = "Please select a color .";
		}
		if (!Validation.sanitize($("MetalMouldingSelOutsideDimensionsWidthInt").value) ||
			(!Validation.sanitize($("MetalMouldingSelOutsideDimensionsWidthFloat").value) && '' != $("MetalMouldingSelOutsideDimensionsWidthFloat").value) ||
			!Validation.sanitize($("MetalMouldingSelOutsideDimensionsHeightInt").value) ||
			(!Validation.sanitize($("MetalMouldingSelOutsideDimensionsHeightFloat").value) && '' != $("MetalMouldingSelOutsideDimensionsHeightFloat").value))
		{
			msgs[msgs.length] = "Please revise your dimensions.";
		}
		
		var width = parseFloat($("MetalMouldingSelOutsideDimensionsWidthInt").value);
		if ('' != $("MetalMouldingSelOutsideDimensionsWidthFloat").value)
		{
			width += parseFloat($("MetalMouldingSelOutsideDimensionsWidthFloat").value);
		}
		var height = parseFloat($("MetalMouldingSelOutsideDimensionsHeightInt").value);
		if ('' != $("MetalMouldingSelOutsideDimensionsHeightFloat").value)
		{
			height += parseFloat($("MetalMouldingSelOutsideDimensionsHeightFloat").value);
		}
		
		if (18 == $("MetalMouldingCategoryId").options[$("MetalMouldingCategoryId").selectedIndex].value) {
			if (5 > width || 5 > height || 24 < width || 24 < height) {
				msgs[msgs.length] = "Backloading frames can be cut from 5\" to 24\".  Please revise your dimensions.";
			}
		} else {
			if (6 > width || 6 > height || 60 < width || 60 < height) {
				msgs[msgs.length] = "Metal frames can be cut from 6\" to 60\".  Please revise your dimensions.";
			}
		}
		if (msgs.length==0) {
			return true;
		}
		alert("Please verify the following:\n- "+msgs.join("\n- "));
		return false;
	},
	plexiglass : function (prod) {
		var msgs = [];
		if ($("product_id").value=="") {
			msgs[msgs.length] = "Please select a product.";
		} else {
			if (!Validation.sanitize($("PlexiglassSelOutsideDimensionsWidthInt").value) ||
				(!Validation.sanitize($("PlexiglassSelOutsideDimensionsWidthFloat").value) && '' != $("PlexiglassSelOutsideDimensionsWidthFloat").value) ||
				!Validation.sanitize($("PlexiglassSelOutsideDimensionsHeightInt").value) ||
				(!Validation.sanitize($("PlexiglassSelOutsideDimensionsHeightFloat").value) && '' != $("PlexiglassSelOutsideDimensionsHeightFloat").value))
			{
				msgs[msgs.length] = "Please revise your dimensions.";
			}
			
			var width = parseFloat($("PlexiglassSelOutsideDimensionsWidthInt").value);
			if ('' != $("PlexiglassSelOutsideDimensionsWidthFloat").value)
			{
				width += parseFloat($("PlexiglassSelOutsideDimensionsWidthFloat").value);
			}
			var height = parseFloat($("PlexiglassSelOutsideDimensionsHeightInt").value);
			if ('' != $("PlexiglassSelOutsideDimensionsHeightFloat").value)
			{
				height += parseFloat($("PlexiglassSelOutsideDimensionsHeightFloat").value);
			}
			
			var high_dim = Math.max(width, height);
			var low_dim = Math.min(width, height);
			
			if (low_dim > 28 || high_dim > 36) {
				msgs[msgs.length] = "We cannot ship plexiglass larger than 28 x 36. Please call Customer Service for more information.";
	 		} 
		}
		
		if (msgs.length==0) {
			return true;
		}
		alert("Please verify the following:\n- "+msgs.join("\n- "));
		return false;
	},
	supplies : function (prod)
	{
		var msgs = [];
		if ('' == $('product_id').value)
		{
			msgs[msgs.length] = 'Please select a product.';
		}
		if (0 == msgs.length)
		{
			return true;
		}
		alert('Please verify the following:\n- ' + msgs.join('\n- '));
		return false;
	},
	bags : function (prod)
	{
		var msgs = [];
		if ('' == $('product_id').value)
		{
			msgs[msgs.length] = 'Please select a product.';
		}
		if (0 == msgs.length)
		{
			return true;
		}
		alert('Please verify the following:\n- ' + msgs.join('\n- '));
		return false;
	},
	precuts : function (prod)
	{
		var msgs = [];
		if ('' == $('product_id').value)
		{
			msgs[msgs.length] = 'Please select a product.';
		}
		if (0 == msgs.length)
		{
			return true;
		}
		alert('Please verify the following:\n- ' + msgs.join('\n- '));
		return false;
	},
	ready_made_frames : function (prod)
	{
		var msgs = [];
		if ('' == $('product_id').value)
		{
			msgs[msgs.length] = 'Please select a product.';
		}
		if (0 == msgs.length)
		{
			return true;
		}
		alert('Please verify the following:\n- ' + msgs.join('\n- '));
		return false;
	},
	sanitize : function (value)
	{
		return (!isNaN(value) && '' != value && 'undefined' != typeof value);
	}
}



function Product() {
	this.isNullOrUndefined=function (val) {
		return (typeof val == "undefined" || val == null);
	}
	this.type="";
	this.colors=false;
	this.getPriceLink="get_price";
	this.selectedProdEl={};
	this.selectedColorEl={};
	this.validation=function () {};

	this.setOptions=function (options) {
		options=(this.isNullOrUndefined(options) ? {} : options);
		this.type=(this.isNullOrUndefined(options.type) ? "" : options.type);
		this.colors=(this.isNullOrUndefined(options.colors) ? false : options.colors);
		this.getPriceLink=(this.isNullOrUndefined(options.getPriceLink) ? "get_price" : options.getPriceLink);
		this.onProductChange=function (layer, prodId, prodName, params) {
		}
	}
	this.getParent=function (el,pTag) {
		var p=el;
		while(p&&p.tagName!=pTag){
		  p=p.parentNode;
		}
		return p;
	}
	this.loadByCat=function (catId, builder, layer) {
		$('divProductsItems'+layer).innerHTML=indicatorImg;
		new Ajax.Updater('divProductsItems' + layer,Env.URL_PATH+'builders/load_by_category/'+catId+'/'+builder+'/'+layer, {evalScripts: true});
		//var li=$("liCatId"+catId);
		categories.selectCat(catId);
	}
	this.setCat=function (categoryId) {
		//var li=$("liCatId"+categoryId);
		categories.selectCat(categoryId);
		//li.className = "selected";
	}
	this.onProductChange=function (layer, prodId, prodName, params) {
	}
	this.setProd=function (a, layer, prodId, prodName, params, colorId) {
		if(typeof layer == "undefined" || layer == '') {
			if($("current_layer")) {
				layer = $("current_layer").value;
			}
		}
		this.onProductChange(layer, prodId, prodName, params);
		$("product_id"+layer).value=prodId;
		if (!this.isNullOrUndefined(this.selectedProdEl[layer])) {
			this.selectedProdEl[layer].className=this.selectedProdEl[layer].getAttribute("cssClass");
		}
		this.selectedProdEl[layer]=this.getParent(a,"LI");
		this.selectedProdEl[layer].setAttribute("cssClass", this.selectedProdEl[layer].className);
		this.selectedProdEl[layer].className="selected";
		productsPopup.hide();
		$("divLayer"+layer+"Label").getElementsByTagName("DIV")[0].innerHTML=prodName;
		if (this.colors=='load_colors') {
			this.loadColors(layer, prodId, 'load_colors', colorId);
		} else if (this.colors=='load_metal_colors') {
			this.loadColors(layer, prodId, 'load_metal_colors', colorId);
		}
		this.loadRelatedProducts(prodId);
	}
	this.loadColors=function (layer, prodId, action, colorId) {
		$('ulColors'+layer).innerHTML=indicatorImg;
		$("selColorCode"+layer).value="";
		$("selColorName"+layer).value="";
		
		new Ajax.Updater('ulColors' + layer,Env.URL_PATH+'builders/'+action+'/'+prodId+'/'+(layer==''?'null':layer)+'/'+colorId, 
			{
				'evalScripts' : true,
				'onComplete' : function () {
					var clrs = $('ulColors'+layer).getElementsByTagName("LI");
					if (clrs.length > 0) {
						clrs[0].getElementsByTagName("LI")[0].click();
					}
				}
			});
	}
	this.setColor=function (a, layer, imgCode, imgName, imgFile) {
		$("selColorCode"+layer).value=imgCode;
		$("selColorName"+layer).value=imgCode;
		if (!this.isNullOrUndefined(this.selectedColorEl[layer])) {
			this.selectedColorEl[layer].className="";
		}
		this.selectedColorEl[layer]=this.getParent(a,"LI");
		this.selectedColorEl[layer].className="selected";
		colorsPopup.hide();
// it's here
		this.showFullColors(false, layer);
		try {
			$("divLayer"+layer+"Label-color").innerHTML= '<span class="product_selection">Color:</span> <img src="' + Env.URL_PATH + 'img/' + imgFile + '" alt="' + imgName + '" width="25" height="15" align="top" /> ' + imgName;
		} catch (e) {
		}
		//this.selectedColorEl[layer].scrollTo();
	}
	this.showFullColors=function (b, layer) {
		var div=$("divColors"+layer).getElementsByClassName('colors')[0];
		if (b) {
			div.style.position="absolute";
			div.style.top="100px";
			div.style.left="50px";
			div.style.height="500px";
			div.style.width="680px";
			div.style.border="2px solid #666";
			div.style.paddingLeft="0px";
			$('divColorsClose').style.display="block";
		} else {
			div.style.position="static";
			div.style.height="328px";
			div.style.width="229px";
			div.style.border="0px";
			div.style.borderBottom="gray 1px solid";
			div.style.paddingLeft="5px";
			$('divColorsClose').style.display="none";
		}
	}
	this.woodGetPrice=function () {
		if (this.validation(this)) {

			$('divPrice').innerHTML=indicatorImg;
			$('divShowQuantityPrices').innerHTML=indicatorImg;

			$('txtQuantity').value = $('txtQuantity').value.replace(/[^0-9]/gi, "");
			if ($('txtQuantity').value == "" || $('txtQuantity').value == 0) {
				$('txtQuantity').value = 1;
			}

			var postBody = Form.serializeElements( Form.getElements($('frmProduct')) );

			new Ajax.Updater({ success: 'divShowQuantityPrices', failure: 'divNotice' }, Env.URL_PATH+'builders/wood_moulding_quantity_prices/', {'postBody' : postBody});
			new Ajax.Updater({ success: 'divPrice', failure: 'divNotice' }, Env.URL_PATH+'builders/'+this.getPriceLink+'/', {'postBody' : postBody});
		}
	}
	this.getPrice=function () {
		if (this.validation(this)) {

			$('divPrice').innerHTML=indicatorImg;

			$('txtQuantity').value = $('txtQuantity').value.replace(/[^0-9]/gi, "");
			if ($('txtQuantity').value == "" || $('txtQuantity').value == 0) {
				$('txtQuantity').value = 1;
			}

			var postBody = Form.serializeElements( Form.getElements($('frmProduct')) );

			new Ajax.Updater({ success: 'divPrice', failure: 'divNotice' }, Env.URL_PATH+'builders/'+this.getPriceLink+'/', {'postBody' : postBody});
		}
	}
	this.addToCart=function (isWishlist) {
		if (this.validation(this)) {
			$('divPrice').innerHTML=indicatorImg;

			$('txtQuantity').value = $('txtQuantity').value.replace(/[^0-9]/gi, "");
			if ($('txtQuantity').value == "" || $('txtQuantity').value == 0) {
				$('txtQuantity').value = 1;
			}
			
			var postBody = Form.serializeElements( Form.getElements($('frmProduct')) );

			var ajaxOptions = {
				success: 'divPrice',
				failure: 'divNotice',
				onComplete: function (httpXml, xJson) {
					$('divNotice').innerHTML='The product was added to your cart.';
				}
			};
			
			if (isWishlist) {
				new Ajax.Updater(ajaxOptions, Env.URL_PATH + 'builders/add_to_cart/' + this.type + '/' + isWishlist, {evalScripts: true, 'postBody' : postBody});
			} else {
				new Ajax.Updater(ajaxOptions, Env.URL_PATH + 'builders/add_to_cart/' + this.type, {evalScripts: true, onSuccess : function() { new Ajax.Updater('cart_area', Env.URL_PATH + 'builders/update_cart_area/', {}); }, 'postBody' : postBody});
			}
		}
	}
	this.myCart=function () {
		location.href = Env.URL_PATH+'orders/cart';
	}
	this.checkout=function () {
		location.href = Env.URL_PATH+'checkout';
	}
	this.loadRelatedProducts=function (prodId) {
		if (Builders[this.type].rightBar) {
			new Ajax.Updater('right_box_related',Env.URL_PATH+'products/load_related_random/'+prodId, {evalScripts: true});
		}
	}
}
Matboards = {
	minDimensions : {
		WIDTH : 5,
		HEIGHT : 5
	},
	maxDimensions : {
		WIDTH : 32,
		HEIGHT : 40
	}
};

FullSheets = {

	onProductChange : function(layer, prodId, prodName, params) {
		Precuts.setPrice(params.price);
	},
	setPrice : function (price) {
		Precuts.price = price;
		$('txtQuantity').value = $('txtQuantity').value.replace(/[^0-9]/gi, "");
		if ($('txtQuantity').value == "" || $('txtQuantity').value == 0) {
			$('txtQuantity').value = 1;
		}
		var tot = parseFloat(price * $('txtQuantity').value).toFixed(2);
		
		$('price').value = price;
		$('divPrice').innerHTML='<div>Unit Price: $'+price+'</div>'
	      + '<div>Total Price: $'+tot+'</div>';

	}, 
	setQuantity : function () {
		var price = Precuts.price;
		$('txtQuantity').value = $('txtQuantity').value.replace(/[^0-9]/gi, "");
		if ($('txtQuantity').value == "" || $('txtQuantity').value == 0) {
			$('txtQuantity').value = 1;
		}
		var tot = parseFloat(price * $('txtQuantity').value).toFixed(2);
		
		$('divPrice').innerHTML='<div>Unit Price: $'+price+'</div>'
	      + '<div>Total Price: $'+tot+'</div>';

	},
	price : 0

};

WoodMoulding = {
	onProductChange : function(layer, prodId, prodName, params) {
		$("divLayer"+layer+"Label").getElementsByTagName("DIV")[1].innerHTML="Category: "+params.priceCat;
		$("divLayer"+layer+"Label2").innerHTML="Product: "+params.sku;
	}
}
Supplies = {
	onProductChange : function(layer, prodId, prodName, params) {
		Supplies.setPrice(params.price);
	},
	setPrice : function (price) {
		Supplies.price = price;
		$('txtQuantity').value = $('txtQuantity').value.replace(/[^0-9]/gi, "");
		if ($('txtQuantity').value == "" || $('txtQuantity').value == 0) {
			$('txtQuantity').value = 1;
		}
		var tot = parseFloat(price * $('txtQuantity').value).toFixed(2);
		
		$('price').value = price;
		$('divPrice').innerHTML='<div>Unit Price: $'+price+'</div>'
	      + '<div>Total Price: $'+tot+'</div>';

	}, 
	setQuantity : function () {
		var price = Supplies.price;
		$('txtQuantity').value = $('txtQuantity').value.replace(/[^0-9]/gi, "");
		if ($('txtQuantity').value == "" || $('txtQuantity').value == 0) {
			$('txtQuantity').value = 1;
		}
		var tot = parseFloat(price * $('txtQuantity').value).toFixed(2);
		
		$('divPrice').innerHTML='<div>Unit Price: $'+price+'</div>'
	      + '<div>Total Price: $'+tot+'</div>';

	},
	price : 0
}
Bags = {
	onProductChange : function(layer, prodId, prodName, params) {
		Bags.setPrice(params.price);
	},
	setPrice : function (price) {
		Bags.price = price;
		$('txtQuantity').value = $('txtQuantity').value.replace(/[^0-9]/gi, "");
		if ($('txtQuantity').value == "" || $('txtQuantity').value == 0) {
			$('txtQuantity').value = 1;
		}
		var tot = parseFloat(price * $('txtQuantity').value).toFixed(2);
		
		$('price').value = price;
		$('divPrice').innerHTML='<div>Unit Price: $'+price+'</div>'
	      + '<div>Total Price: $'+tot+'</div>';

	}, 
	setQuantity : function () {
		var price = Bags.price;
		$('txtQuantity').value = $('txtQuantity').value.replace(/[^0-9]/gi, "");
		if ($('txtQuantity').value == "" || $('txtQuantity').value == 0) {
			$('txtQuantity').value = 1;
		}
		var tot = parseFloat(price * $('txtQuantity').value).toFixed(2);
		
		$('divPrice').innerHTML='<div>Unit Price: $'+price+'</div>'
	      + '<div>Total Price: $'+tot+'</div>';

	},
	price : 0
}
Precuts = {
	onProductChange : function(layer, prodId, prodName, params) {
		Precuts.setPrice(params.price);
	},
	setPrice : function (price) {
		Precuts.price = price;
		$('txtQuantity').value = $('txtQuantity').value.replace(/[^0-9]/gi, "");
		if ($('txtQuantity').value == "" || $('txtQuantity').value == 0) {
			$('txtQuantity').value = 1;
		}
		var tot = parseFloat(price * $('txtQuantity').value).toFixed(2);
		
		$('price').value = price;
		$('divPrice').innerHTML='<div>Unit Price: $'+price+'</div>'
	      + '<div>Total Price: $'+tot+'</div>';

	}, 
	setQuantity : function () {
		var price = Precuts.price;
		$('txtQuantity').value = $('txtQuantity').value.replace(/[^0-9]/gi, "");
		if ($('txtQuantity').value == "" || $('txtQuantity').value == 0) {
			$('txtQuantity').value = 1;
		}
		var tot = parseFloat(price * $('txtQuantity').value).toFixed(2);
		
		$('divPrice').innerHTML='<div>Unit Price: $'+price+'</div>'
	      + '<div>Total Price: $'+tot+'</div>';

	},
	price : 0
}
ReadyMadeFrames = {
	onProductChange : function(layer, prodId, prodName, params) {
		ReadyMadeFrames.setPrice(params.price);
	},
	setPrice : function (price) {
		ReadyMadeFrames.price = price;
		$('txtQuantity').value = $('txtQuantity').value.replace(/[^0-9]/gi, "");
		if ($('txtQuantity').value == "" || $('txtQuantity').value == 0) {
			$('txtQuantity').value = 1;
		}
		var tot = parseFloat(price * $('txtQuantity').value).toFixed(2);
		
		$('price').value = price;
		$('divPrice').innerHTML='<div>Unit Price: $'+price+'</div>'
	      + '<div>Total Price: $'+tot+'</div>';

	}, 
	setQuantity : function () {
		var price = ReadyMadeFrames.price;
		$('txtQuantity').value = $('txtQuantity').value.replace(/[^0-9]/gi, "");
		if ($('txtQuantity').value == "" || $('txtQuantity').value == 0) {
			$('txtQuantity').value = 1;
		}
		var tot = parseFloat(price * $('txtQuantity').value).toFixed(2);
		
		$('divPrice').innerHTML='<div>Unit Price: $'+price+'</div>'
	      + '<div>Total Price: $'+tot+'</div>';

	},
	price : 0
}


var mBuilder = new MatboardBuilder();
var prod = new Product();
var indicatorImg = '<img src=\''+Env.IMG_INDICATOR+'\'/>';
