
	function zoomImage(path)
	{
		popIt(path, '_zoom', 650, 650);
	}
	

	 function optText(caption, controlPath, isRequired, maxChars)
	 { 
		 var txtBox = eval(controlPath); 
		 caption = unescape(caption);
		
		 if (isRequired) 
		 { 
			var s = trim(txtBox.value); 
			if (s.length == 0) 
			{ 
				alert('A required option (' + caption + ') has not been provided.\r\n Please correct and try again'); 
				return false; 
			} 
		  
			if (s.length > maxChars) 
			{ 
				alert('There are too many characters specified for option ' + caption + '. The maximum number of characters allowed is ' + maxChars + '. Please correct and try again'); 
				return false; 
			} 
			return true; 
		 } 								
	 } 								
		
	function optCombobox(caption, controlPath, IsRequired, treatFirstOptionAsCaption, firstOption)
	{
		caption  = unescape(caption);
		var optArray = eval(controlPath); 

		var numChecked = 0; 
		
		if (isRequired == false)
		{
			return true;
		}
		
		for (var k = 0; k < optArray.length; k++) 
		{ 
			if (optArray[k].checked) 
			{ 
				if (treatFirstOptionAsCaption)
				{

					if (optArray[k].value != firstOption)
					{
						numChecked++; 						
					}

				}
				else
				{
					numChecked++;
				}
			} 
		} 
		
		// Min value 
		if (numChecked < minValue) 
		{ 
			alert('You must select at least ' + minValue + ' option(s) for ' + caption + '.\r\nPlease correct and try again.'); 
			return false; 
		} 
		
		if (numChecked > maxValue) 
		{ 
			alert('You have selected too many options for ' + caption + '. The maximum number of selections is ' + maxValue +  '.\r\nPlease correct and try again.'); 
			return false; 
		} 

		return true; 
	}

	function optCheckbox(caption, controlPath, isRequired, minValue, maxValue)
	{        
	   caption  = unescape(caption);
	   var optArray = eval(controlPath); 
	
	   if (optArray.length) 
	   { 
			var numChecked = 0; 
			
			for (var k = 0; k < optArray.length; k++) 
			{ 
				if (optArray[k].checked) 
				{ 
					numChecked++; 
				} 
			} 
			
			// Min value 
			if (numChecked < minValue) 
			{ 
				alert('You must select at least ' + minValue + ' option(s) for ' + caption + '.\r\nPlease correct and try again.'); 
				return false; 
			} 
			
			if (numChecked > maxValue) 
			{ 
				alert('You have selected too many options for ' + caption + '. The maximum number of selections is ' + maxValue +  '.\r\nPlease correct and try again.'); 
				return false; 
			} 

			return true; 
	   } 
	}        
	  
	 		
	
	function addToCart(formNumber, alternateTarget)
	{
		var frm = 'document.frm' + formNumber;
		var qty = eval(frm + '.Quantity.value');


		if (qty == '')
		{		
			alert('You must specify a quantity for your order');
			return;
		}
		
		if (isInteger(qty) == false)
		{
			alert('You must specify a quantity for your order');
			return;
		}
		
		if (optsToCheck != null)
		{
			// Check for option validation routines
			var b = false;
			for (var k = 0; k < optsToCheck.length; k++)
			{
				var f = optsToCheck[k][0];
				var p = optsToCheck[k][1];
	
				switch (f)
				{
					// Text Boxes
					case 'optText':
					
						var v = p.split("|");
						b = optText(v[0], v[1], v[2], v[3]);
						if(b == false)
						{
							return;
						}
						break;
	
					// Check Boxes
					case 'optCheckbox':
						var v = p.split("|");
						b = optCheckbox(v[0], v[1], v[2], v[3], v[4]);
						if(b == false)
						{
							return;
						}
						break;
	
					// Check Boxes
					case 'optCombobox':
						var v = p.split("|");
						b = optCheckbox(v[0], v[1], v[2], v[3], v[4]);
						if(b == false)
						{
							return;
						}
						break;
						
				}
	
			}
		}
		
		if (alternateTarget != null)
		{
		    eval(frm + '.qty.value = ' + frm + '.Quantity.value;');
		    eval(frm + ".action='" + alternateTarget + "';");
		}
		
		// Submit the form
		eval(frm + '.submit();');
	}
	
	function displayOrderChange()
	{
		
		document.frmOrder.submit();
		
	}
	
	//
	// Class Swapping
	//
	var lastClass;
	function classSwap(obj, className)
	{
		lastClass = obj.className;
		obj.className = className;
	}
	
	function classRestore(obj)
	{
		obj.className = lastClass;
	}