//we need to get our absolute path that's being passed into our js script reference.
var s = $(document.getElementsByTagName("script"));

//iterate through our array of script elements, does some matching jutsu to find our rowcalc.js script source, 
//then perform a replacement jutsu to only get the path that we need
for (i = 0; i < s.length; i++) {
	if (s[i].src.match(/ajax\.js(\?.*)?$/)) {
			var path = s[i].src.replace(/js\/ajax\.js(\?.*)?$/,'');
	}//if (s[i].src.match(/ajax\.js(\?.*)?$/))
}//for (i = 0; i < s.length; i++)

//url for all our ajax calls (server side processing page)
var url = path + 'includes/ajax.php';

/******* Begin Configure Row Length Functions *******/

function generateImage() {
	$('results-div').innerHTML = '';
	var rLength = $F('length');
	var product = $F('product');
	
	if (product == '' || rLength == '') {
		alert('Please select a valid Product and Row Length');
		return;
	} else {
		//get our product row data
		var success = function(t) {if(t.responseText == ''){alert('Please consult factory.');}}
		var failure = function(t) {alert('Please consult factory.');}
		
		var completed = function(t) {															   
							$('results-div').innerHTML = '<div class="form">' + t.responseText + '</div>';							
							hideLoader('crl-loader');							
						}
		
		var pars = 'fnc=getProductRowLengthData&params=' + escape('&p=' + product + '&l=' + rLength) + bogusQueryStringParam();;	
		var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onCreate: function() {showLoader('crl-loader');}, onSuccess:success, onFailure: failure, onComplete:completed});									
	}//if (product == '' || length == '')
}//function generateImage()

function getProductRowList(selRef, product) {

	//clear out our generated image
	$('results-div').innerHTML = '';
	
	if (product != '') {
		var success = function(t) {if(t.responseText == ''){alert('Unable to retrieve available row length(s) for this product');$(selRef).disable();}}
		var failure = function(t) {alert('Unable to retrieve available row length(s) for this product');$(selRef).disable();}
			
		var completed = function(t) {						
							var elOptions = t.responseText.split("^^;;^^");
							
							//remove all our previous options (except for the first)
							removeAllOptions(selRef);
											
							//let's iterate through our option items array
							for (var i = 0; i < (elOptions.length - 1); i++) {			
								opt = new Option(elOptions[i], elOptions[i]);
														
								addOption($(selRef), opt);
							}//for (var i = 0; i < elOptions.length; i++)			
						
							if (t.responseText != '') {
								//enable our select list
								$(selRef).enable();
							}//if (t.responseText == '')
							
							hideLoader('crl-loader');														
						}
	
		var pars = 'fnc=getRowListByProduct&params=' + product + bogusQueryStringParam();;                                      
		var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onCreate: function() {showLoader('crl-loader');}, onSuccess:success, onFailure:failure, onComplete:completed});						
	} else {
		$(selRef).disable();
		$('doWork').disable();
		$(selRef).selectedIndex = 0;
		$('results-div').innerHTML = '';
	}//if (product != '')
}//function getProductRowList(selRef, product)

function getConfigurationRowList() {
	//clear out our generated image
	$('results-div').innerHTML = '';
	
	//reset our length
	removeAllOptions($('length'));
	$('length').disable();	
	$('doWork').disable();

	var voltage = $F('voltage');
	var numLamps = $F('num_lamps');
	var lampType = $F('lamp_type');
	var numCircuits = $F('num_circuits');
	
	if (voltage == '' && numLamps == '' && lampType == '' && numCircuits == '') {
		alert('Please select an option from each drop down menu (ReWord Me Please!!!)');
		return;
	} else {
		var success = function(t) {if(t.responseText == ''){alert('Unable to retrieve available row length(s) for this product');$(selRef).disable();}}
		var failure = function(t) {alert('Unable to retrieve available row length(s) for this product');$(selRef).disable();}
		
		var completed = function(t) {						
					var elOptions = t.responseText.split("^^;;^^");
																			
					//let's iterate through our option items array
					for (var i = 0; i < (elOptions.length - 1); i++) {			
						opt = new Option(elOptions[i], elOptions[i]);
												
						addOption($('length'), opt);
					}//for (var i = 0; i < elOptions.length; i++)			
					
					if (t.responseText != '') {
						//enable our select list
						$('length').enable();
					}//if (t.responseText == '')
					
					hideLoader('crl-loader');																			
				}
	
		var pars = 'fnc=getRowListByProductConfiguration&params=' + escape('&v=' + voltage + '&l=' + numLamps + '&t=' + lampType + '&c=' + numCircuits) + bogusQueryStringParam();;
		var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onCreate: function() {showLoader('crl-loader');}, onSuccess:success, onFailure:failure, onComplete:completed});
	}//if (voltage == '' && numLamps == '' && lampType == '' && numCircuits == '')
}//function getConfigurationRowList()

function getProductConfigurationList(product) {
		if (product != '') {		
		
		if ($('results-div')) {
			//clear out our generated image
			$('results-div').innerHTML = '';			
		}
		
		//remove our length options
		removeAllOptions($('length'));
	
		if ($('length')) {
			//disable our field
			$('length').disable();
		}
		
		if ($('doWork')) {		
			//disable our submit button
			$('doWork').disable();			
		}

		var success = function(t) {if(t.responseText == ''){alert('Unable to retrieve row length configuration for this product');}}
		var failure = function(t) {alert('Unable to retrieve row length configuration for this product');}
		
		var completed = function(t) {						
					//set our select list array
					var sListArray =  new Array($('voltage'), $('num_lamps'), $('lamp_type'), $('num_circuits'));
				
					//remove all our previous options
					for (var r = 0; r < 4; r++) {
						removeAllOptions(sListArray[r].id);						
					}//for (var r = 0; r < 4; r++)
									
					var selOptions = t.responseText.split('|^^^;;;^^^|');
					
					for (var i = 0; i < selOptions.length; i++) {
						selArray = selOptions[i].split('^^;;^^');
											
						for (var j = 0; j < selArray.length; j++) {
							opt = new Option(selArray[j], selArray[j]);		
							
							addOption(sListArray[i], opt);
						}//for (var j = 0; j < (selArray.length - 1); j++)
					}//for (var i = 0; i < (elMainOptions.length - 1); i++)
																						
					if (t.responseText != '') {
						//enable our select list(s)
						for (var r = 0; r < 4; r++) {
							sListArray[r].enable();						
						}//for (var r = 0; r < 4; r++)												
					}//if (t.responseText == '')

					hideLoader('crl-loader');																			
				}
		
				var pars = 'fnc=getConfigurationListByProduct&params=' + product + bogusQueryStringParam();;		
				var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onCreate: function() {showLoader('crl-loader');}, onSuccess:success, onFailure:failure, onComplete:completed});		
	} else {
			resetRowConfigurator();
	}
}//function getProductConfigurationList(product)

//check to ensure user selected all required configuration fields
function validateSelections() {
	if (($('voltage').selectedIndex > 0) && ($('num_lamps').selectedIndex > 0) && ($('lamp_type').selectedIndex > 0) && ($('num_circuits').selectedIndex > 0)) {
		getConfigurationRowList();
	} else {
		removeAllOptions($('length'));
		$('length').disable();
		$('doWork').disable();
		$('results-div').innerHTML = '';		
	}//if (($('voltage').selectedIndex > 0) && ($('num_lamps').selectedIndex > 0) && ($('lamp_type').selectedIndex > 0) && ($('num_circuits').selectedIndex > 0))
}//function validateSelections()

function resetRowConfigurator() {
	//set our product select menu to the first value
	$('product').selectedIndex = 0;

	//remove all our options
	removeAllOptions($('voltage'));
	removeAllOptions($('num_lamps'));
	removeAllOptions($('lamp_type'));
	removeAllOptions($('num_circuits'));	
	removeAllOptions($('length'));

	//disable our fields
	$('voltage').disable();
	$('num_lamps').disable();
	$('lamp_type').disable();
	$('num_circuits').disable();	
	$('length').disable();
	
	//clear our results div (image section)
	$('results-div').innerHTML = '';
	
	//disable our submit button
	$('doWork').disable();	
}//function resetRowConfigurator()

/******* End Configure Row Length Functions *******/

/******* Begin Photometry Search Functions *******/

function getProductNameList(selRef, productType, productId) {
	$('results-div').innerHTML = '';
	$('product-image-div').innerHTML = '';
	
	if (productType != '') {
		var success = function(t) {if(t.responseText == ''){alert('Unable to retrieve product(s) for this product type');$(selRef).disable();}}
		var failure = function(t) {alert('Unable to retrieve product(s) for this product type');$(selRef).disable();}
		
		var completed = function(t) {					
					var elOptions = t.responseText.split("^^;;^^");
					//remove all our previous options (except for the first)
					removeAllOptions(selRef);
										
					//let's iterate through our option items array
					for (var i = 0; i < (elOptions.length - 1); i++) {			
						optArray = elOptions[i].split(",");
						
						if (optArray[0] == productId) {
							opt = new Option(optArray[1], optArray[0], true, true);
						} else {
							opt = new Option(optArray[1], optArray[0]);
						}
										
						addOption($(selRef), opt);
						
					}//for (var i = 0; i < elOptions.length; i++)			
					
					if (t.responseText != '') {
						//enable our select list
						$(selRef).enable();
						$('doWork').enable();																		
					}//if (t.responseText == '')
					
					hideLoader('ps-loader');																								
				}
	
		var pars = 'fnc=getProductListByProductType&params=' + productType + bogusQueryStringParam();;                                    
		var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onCreate: function() {showLoader('ps-loader');}, onSuccess:success, onFailure: failure, onComplete:completed});						
	} else {		
		removeAllOptions($(selRef));
		$(selRef).disable();
		removeAllOptions($('number_lamps'));
		$('number_lamps').disable();
		$(selRef).selectedIndex = 0;
		
		//disable our search button if we have nothing in our catalog number contains field
		if ($F('catalog_number').length == 0) {
			$('doWork').disable();
		}//if ($F('catalog_number').length == 0)		
	}//if (productType != '')	
}//function getProductNameList(selRef, productType)

function getNumberOfLampsList(selRef, product) {
	$('results-div').innerHTML = '';
	$('product-image-div').innerHTML = '';
	
	if (product != '') {
		
		var imageSuccess = function(t) {if(t.responseText == '') {$('product-image-div').innerHTML = '';}}
		var imageFailure = function(t) {/*alert('Failure: ' + t.responseText);*/} //can put in alert here (only probably needed for debugging though)
		
		var imageCompleted = function(t) {
								var productDetails = t.responseText.split(",");
								//build our image path and product page link here (some reason, our validation is passing even when no responseText is being returned?
								var img = path + productDetails[0];
								var productPage = path + 'products/' + productDetails[1] + '/';
								
								if (img != path) {
									$('product-image-div').innerHTML = '<img src="' + img + '"><h4><a href="' + productPage + '">View Product Page</a></h4>';
								}//if (img != path)								
								
								hideLoader('ps-loader');																																
							 }
		
		//attempt to show our product image
		var pars = 'fnc=getProductDetailsPath&params=' + product + bogusQueryStringParam();;
		var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onCreate: function() {showLoader('ps-loader');}, onSuccess:imageSuccess, onFailure: imageFailure, onComplete: imageCompleted});

		//the following functions are for our number
		var success = function(t) {if(t.responseText == ''){alert('Unable to retrieve number of lamps list for this product');$(selRef).disable();}}
		var failure = function(t) {alert('Unable to retrieve number of lamps list for this product');$(selRef).disable();}
		
		var completed = function(t) {						
					var elOptions = t.responseText.split("^^;;^^");
					//remove all our previous options (except for the first)
					removeAllOptions(selRef);
										
					//let's iterate through our option items array
					for (var i = 0; i < (elOptions.length - 1); i++) {			
						opt = new Option(elOptions[i], elOptions[i]);
												
						addOption($(selRef), opt);
					}//for (var i = 0; i < elOptions.length; i++)			
					
					if (t.responseText != '') {
						//enable our select list
						$(selRef).enable();
					}//if (t.responseText == '')										
					
					hideLoader('ps-loader');																																										
				}
	
		var pars2 = 'fnc=getNumberOfLampsListByProduct&params=' + product + bogusQueryStringParam();;
		var myAjax2 = new Ajax.Request(url, {method: 'get', parameters: pars2, onCreate: function() {showLoader('ps-loader');}, onSuccess:success, onFailure: failure, onComplete:completed});						
	} else {
		$(selRef).disable();
		$(selRef).selectedIndex = 0;
	}//if (product != '')		
}//function getNumberOfLampsList(selRef, product)

function searchPhotometry() {
	$('results-div').innerHTML = '';
	
	var productType = $F('product_type');
	var product = $F('product');
	var numLamps = $F('number_lamps');
	var catalogNumber = $F('catalog_number');

	if (productType == '' && product == '' && numLamps == '' && catalogNumber == '') {
		alert('Please select at least one search criteria.');
		return;
	} else {
		//get our product row data
		var success = function(t) {if(t.responseText == ''){alert('Please consult factory.');}}
		var failure = function(t) {alert('Please consult factory.');}
		
		var completed = function(t) {															   
							$('results-div').innerHTML = '<div class="form">' + t.responseText + '</div>';
							hideLoader('ps-loader');
						}						

		var pars = 'fnc=getPhotometrySearchResults&params=' + escape('&t=' + productType + '&p=' + product + '&l=' + numLamps + '&c=' + catalogNumber) + bogusQueryStringParam();;	
		var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onCreate: function() {showLoader('ps-loader');}, onSuccess:success, onFailure: failure, onComplete:completed});									
	}//if (product == '' || length == '')
}//function searchPhotometry()

function toggleDoWork(form) {
	if (form == 'photometry') {
		var pt = $F('product_type');
		var p = $F('product');
		var nl = $F('number_lamps');
		var cn = $F('catalog_number');
			
		if (cn.length > 0) {
			$('doWork').enable();
		} else if (p == '' && pt == '' && nl == '' && cn == '') {
			$('doWork').disable();	
		}//if (cn.length > 0)
	} else if (form == 'row_configurator') {
		//clear out our generated image
		$('results-div').innerHTML = '';		
		
		if ($('length').selectedIndex == 0) {
			$('doWork').disable();
		} else {
			$('doWork').enable();			
		}//if ($('length').selectedIndex == 0)
	}//if (form == 'photometry')
	
	return;
}//function toggleDoWork()

function resetPhotometrySearch() {
	$('product_type').selectedIndex = 0;
	removeAllOptions($('product'));
	$('product').disable();
	removeAllOptions($('number_lamps'));
	$('number_lamps').disable();
	$('catalog_number').value = '';
	$('doWork').disable();
	$('product-image-div').innerHTML = '';
	$('results-div').innerHTML = '';
}//function resetPhotometrySearch()

/******* End Photometry Search Functions *******/

/******* Begin Shopping Cart Functions *******/

function validate(field,inCart) {
	var valid = "0123456789"
	var ok = "yes";
	var temp;
	
	for (var i=0; i<field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);		
		if (valid.indexOf(temp) == "-1") ok = "no";
		if (field.value =="0") ok = "no";
	}//for (var i=0; i<field.value.length; i++) 
	
	if (ok == "no") {
		alert("Please enter a valid quantity.");
		
		//we need to set our cart qty for this item to the previous value (if updating from shopping cart)
		if (inCart) {
			var id = field.id.gsub('item_cart_quantity_','');			
			field.value = $F('item_quantity_'+id);
		}//if (inCart)		
						
		field.select();
				
		return false;
   } else {
   		return true;   
   }//if (ok == "no")
}//function validate(field)

function addToCart(sItem) {
	var totalItems = $F('total-items');	
	var itemDetails = $('prodDescription'+sItem).innerHTML;
	var qty = $F('qty'+sItem);
	var price = ($F('price'+sItem)/100);
	var size = ($('size'+sItem) ? $F('size'+sItem) : '');
		
	if (qty == '') {
		alert('Please enter a quantity for item: ' + itemDetails);
		return;
	}//if (qty == '')
		
	if ($('item_id_' + sItem + (size != '' ? '_' + size : ''))) {
		//alert('Item Exists: ' + $F('item_id_' + sItem + (size != '' ? '_' + size : '')) + '\n Let\'s not add a duplicate, just update the existing one');
		updateShoppingCart(sItem, $F('item_id_' + sItem + (size != '' ? '_' + size : '')), qty);
	} else {
		//add to our shopping cart
		addToShoppingCart(sItem, qty, price, itemDetails, size, totalItems);		
	}//if ($('item_id_' + sItem + (size != '' ? '_' + size : '')))

	//clear out our quantity
	$('qty'+sItem).value = '';
	
	//reset our size if applicable
	if (size != '') {
		$('size'+sItem).selectedIndex = 0;
	}//if (size != '')		
					
	//scroll to our shopping cart details
	//$('cart-details').scrollTo() //-- browser effect (not fancy)
	new Effect.ScrollTo('cart-details'); //--(scriptaculous effects)
				
	return;		
}//function addToCart(sItem)

function addToShoppingCart(itemID, qty, price, description, size, totalItems) {
		//alert('addToCart(' + itemID + ', ' + qty + ', ' + price + ', ' + description + ', ' + size + ', ' + totalItems + ')');

		var success = function(t) {if(t.responseText == ''){alert('Unable to add the selected item to shopping cart. If you continue to receive this error, please contact the webmaster.');}}
		var failure = function(t) {alert('Unable to add the selected item to shopping cart. If you continue to receive this error, please contact the webmaster.');}
		
		var completed = function(t) {															   
							new Insertion.After((totalItems == 0 ? 'cart_header' : 'cart_item_' + totalItems), unescape(t.responseText)); //we're unescaping here because of the magicquotes on the prod server.
							
							//update total items in cart
							$('total-items').value = (parseInt(totalItems)+parseInt(1));
							
							//update cart subtotal
							updateCartSubTotal();
						}						
		var pars = 'fnc=addToCart&params=' + escape('&i=' + itemID + '&q=' + qty + '&p=' + price + '&d=' + description + '&s=' + size + '&t=' + totalItems) + bogusQueryStringParam();;		
		var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onSuccess:success, onFailure: failure, onComplete:completed});									
	//addToCart($itemID, $qty, $price, $description, $size, $totalItems)	
}//function addToShoppingCart(itemID, qty, price, description, size, totalItems)

function updateShoppingCart(itemID, cartItem, qty, overwrite) {
	if (qty != '') {
		//let's update our quantity for this item (since it already exists)
		var newQty = (overwrite ? qty : (parseInt($F('item_quantity_' + cartItem))+parseInt(qty)));
		var price = $F('item_price_' + cartItem);
	
		$('item_cart_quantity_' + cartItem).value = newQty;
		$('item_cart_price_' + cartItem).innerHTML = formatCurrency(newQty*price);
		$('item_quantity_' + cartItem).value = newQty;
	
		//update cart subtotal
		updateCartSubTotal();		
	}//if (qty != '')
		
	return;
}//function updateShoppingCart(itemID, qty)

function removeFromCart(itemID) {
	$('cart_item_' + itemID).remove();
	
	//update total items in cart
	$('total-items').value = (parseInt($F('total-items'))-parseInt(1));
	
	//update cart subtotal
	updateCartSubTotal();
	
	if ($F('total-items') == 0) {
		//show our empty cart row
		$('empty-cart').show();		
	}//if ($F('total-items') == 0)
	
	return;
}//function removeFromCart(itemID)

function removeAllFromCart() {
	var itms = $('cart-table').descendants();

	//iterate through our shopping cart table and remove our items
	for (var i = 0; i < itms.length; i++) {				
		if ((itms[i].id != '') && (itms[i].id.indexOf('cart_item_') != -1)) {
			$(itms[i].id).remove();
		}//if (itms[i].id != '')
	}//for (var i = 0; i < itms.length; i++)
	
	//update total items in cart
	$('total-items').value = 0;
	
	//update cart subtotal
	updateCartSubTotal();
	
	//show our empty cart row
	$('empty-cart').show();
	
	return;
}//function removeAllFromCart()

function updateCartSubTotal() {	
	var totalItems = $F('total-items');	
	var sTotal = 0;
	var sQty = 0;
	var itms = $('cart-details').getElementsByTagName('input');
	var itmID = 0;
	
	//iterate through our hidden fields and get only our price and quantity fields (for calculating subtotal)
	for (var i = 0; i < itms.length; i++) {			
		if ((itms[i].type == 'hidden') && (itms[i].id != '')) {			
			if (itms[i].id.indexOf('item_quantity_') != -1) {
				itmID = itms[i].id.gsub('item_quantity_','');												
				sQty += parseInt($F('item_quantity_'+itmID));
				sTotal += (parseInt($F('item_quantity_'+itmID))*parseFloat($F('item_price_'+itmID)));			
			}//if (itms[i].id.indexOf('item_quantity_') != -1)
		}//if (itms[i].type == 'hiddden' && itms[i].id != '')
	}//for (var i = 0; i < itms.length; i++)
		
	//format in readable format
	sTotal = formatCurrency(sTotal);
	
	//update our subtotal div
	$('cart_subtotal').innerHTML = '<strong>' + sTotal + '</strong>';

	if (totalItems == 0) {
		//disable our button
		
		//-- SANDBOX URL (FOR TESTING) --//
		//$('btn-checkout').src = 'http://sandbox.google.com/checkout/buttons/checkout.gif?merchant_id=569879869823185&w=160&h=43&style=white&variant=disabled&loc=en_US';	

		//-- PRODUCTION URL (FOR LIVE USE) --//
		$('btn-checkout').src = 'https://checkout.google.com/buttons/checkout.gif?merchant_id=619810443394344&w=160&h=43&style=white&variant=disabled&loc=en_US';			
		$('btn-checkout').disable();		
		//disabled button url -> 		
	} else {
		//hide our empty cart row
		$('empty-cart').hide();		

		//enable our button
		
		//-- SANDBOX URL (FOR TESTING) --//
		//$('btn-checkout').src = 'http://sandbox.google.com/checkout/buttons/checkout.gif?merchant_id=569879869823185&w=160&h=43&style=white&variant=text&loc=en_US';		

		//-- PRODUCTION URL (FOR LIVE USE) --//
		$('btn-checkout').src = 'https://checkout.google.com/buttons/checkout.gif?merchant_id=619810443394344&w=160&h=43&style=white&variant=text&loc=en_US';
		$('btn-checkout').enable();	
	}//if (totalItems == 0)

	//update cart header (total items in cart) - if shown, do we show unique items or total quantity for each item?
	//$('cart-header').innerHTML = 'Shopping Cart (' + totalItems + ')';
	$('cart-summary').innerHTML = '(' + sQty + ') items in your cart ' + sTotal;
	
	return;
}//function updateCartSubTotal()

function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	
	if(isNaN(num))
		num = "0";
		sign = (num == (num = Math.abs(num)));
		num = Math.floor(num*100+0.50000000001);
		cents = num%100;
		num = Math.floor(num/100).toString();
		
		if (cents < 10) {
			cents = "0" + cents;
		}//if (cents < 10)
			
		for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) {
			num = num.substring(0,num.length-(4*i+3)) + ',' + num.substring(num.length-(4*i+3));
		}//for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
			
		return (((sign) ? '' : '-') + '$' + num + '.' + cents);
}//function formatCurrency(num)

function validateOrder() {
	var totalItems = $F('total-items');	
	var sTotal = 0;
	var sQty = 0;
	var itms = $('cart-details').getElementsByTagName('input');
	var itmID = 0;
	
	//iterate through our hidden fields and get only our price and quantity fields (for calculating subtotal)
	for (var i = 0; i < itms.length; i++) {			
		if ((itms[i].type == 'hidden') && (itms[i].id != '')) {			
			if (itms[i].id.indexOf('item_quantity_') != -1) {
				itmID = itms[i].id.gsub('item_quantity_','');												
				sQty += parseInt($F('item_quantity_'+itmID));
				sTotal += (parseInt($F('item_quantity_'+itmID))*parseFloat($F('item_price_'+itmID)));			
			}//if (itms[i].id.indexOf('item_quantity_') != -1)
		}//if (itms[i].type == 'hiddden' && itms[i].id != '')
	}//for (var i = 0; i < itms.length; i++)
		
	//let's cap our order somewhere?
	if (sTotal > 1000000) { //set to 1 million
		alert('Please contact us to place your order');
		return false;
	} else {
		return true;
	}//if (sTotal > 1000000)
}//function validateOrder()

/******* End Shopping Cart Functions *******/

// Add a new option to a select element
function addOption(selectElement,newOption) {
	//try DOM2 method first
	try {
		selectElement.add(newOption,null);
	} catch (e) { 
	// if that doesn't work use the internet exploiter only method
		selectElement.add(newOption,selectElement.length);
	}	
}//function addOption(selectElement,newOption)

function removeAllOptions(ele) {
	var orig = ele;
	ele = $(ele);		
	
	if (ele) {
		ele.options.length = 1;
	}

}//function removeAllOptions(ele)