
Event.observe(window, 'load', loadQuickProductEvents);


function loadQuickProductEvents(event) {
	try {
		var quickProductForm = $('QuickProductForm');

		if (quickProductForm) {
			quickProductForm.observe('submit', handleQuickProductSubmit);
		}
		
	} catch(e) {
		alert('The loadQuickProductEvents() function generated an error.');
	}
}

 
function handleQuickProductSubmit(event) {

	var validateResult = validateQuickProductForm(event);

	if (validateResult != true) {
		Event.stop(event);
		event.returnValue = false;
		return false;  
	}

	var oForm = $('QuickProductForm');
 
	var oRequester = new Ajax.Request(oForm.action, {
			method: 'post',
			postBody: oForm.serialize(), 
			onSuccess: function (result) {
				
				try {
					var resultXML = result.responseXML;
					
					var jsonData = XMLObjectifier.xmlToJSON(resultXML);

					var sDisplayMessage = '';
					var sResultString = jsonData.result[0].Text;
					var sBasketItems = jsonData.basketItems[0].Text;
					var sItemCount = jsonData.itemCount[0].Text;
	
					if (sResultString != 'success') {

						var sUserMessageString = jsonData.userMessage[0].Text;
						var sErrorMessageString = jsonData.errorMessage[0].Text;
						var sInventoryString = jsonData.inventory[0].Text;
 
						sDisplayMessage = '<b>' + sUserMessageString + '</b><br>';
						$('confirm_message').update(sDisplayMessage);
						
						//sDisplayMessage = '<br><b>' + sErrorMessageString + '</b><br>';
						//$('error_message').update(sDisplayMessage);
						
					}
					else { 
						var sSuccessHTML = '';
		
						sSuccessHTML += 
							'<div id="successmessage" align="center">' + 
							'<strong style="color: green;">Your selection has been added to your shopping cart.</strong><br><br><br>' + 
							//jsonData.userMessage[0].Text + '<br>' + 
							'<a href="javascript:;" onclick="return closeQuickviewWindow(); return false;">' + 
							'<img src="btn_continue.gif" />' + 
							'</a>' + 
							'<br /><br /><br />' + 
							'<a href="basket.asp" target="_parent">' + 
							'<img src="btn_checkout.gif" />' + 
							'</a>' + 
							'</div>';
						
						$('ProductSummarySection').innerHTML = sSuccessHTML;
						
						var elmBasketItems = window.parent.document.getElementById('basketItemNames');
						elmBasketItems = $(elmBasketItems);
						elmBasketItems.innerHTML = sBasketItems;
						
						var elmBasketItemCount = window.parent.document.getElementById('basketItemCount');
						elmBasketItemCount = $(elmBasketItemCount);
						elmBasketItemCount.innerHTML = sItemCount;
					}
				} catch(e) {
					alert('An error occurred in handleQuickProductSubmit() functions onSuccess.');
				}
			},
			onFailure: function (result) {
				alert('error');
			}
		}
	)
	Event.stop(event);
	event.returnValue = false;
	return false;
}


function validateQuickProductForm(event) {

	var bParent = false;
	var iAttrCount = 0;
	var iAttrIndex = 0;
	
	try {
		bParent = ($('type').value == 'parent');
		
		if (bParent) {
			var iProdIndex = 0;
			var iProdCount = $F('product_count');
			var sMessage = '';
			var eMainProdIndex = $('product_index');
			var eMainPRName = $('pr_name');
			var eMainSale = $('sale');
			var eMainQty = $('qty');
			var eMainAddCount = $('addcount');
			var eMainNAttr = $('nattr');
			var bAttrsSet;
			
			for (iProdIndex = 1; iProdIndex <= iProdCount; iProdIndex++) {
				
				$('message_' + iProdIndex).update('');
				
				var bValid = true;
				bAttrsSet = false;
				iAttrCount = $F('nattr_' + iProdIndex);
				
				if ((iAttrCount > 0) && ($F('attr_value_1_' + iProdIndex) == '')) {
					sMessage += 'Please select a ' + $F('attr_name_1_' + iProdIndex);
					bValid = false;
				}
				else {
					bAttrsSet = true;
				}
					
				if ((iAttrCount > 1) && ($F('attr_value_2_' + iProdIndex) == '')) {
					if (bValid)
						sMessage += 'Please select a ' + $F('attr_name_2_' + iProdIndex);
					else
						sMessage += ' & ' + $F('attr_name_2_' + iProdIndex);
					bValid = false;
				}
				else {
					bAttrsSet = true;
				}
				
				if ((iAttrCount > 2) && ($F('attr_value_3_' + iProdIndex) == '')) {
					if (bValid)
						sMessage += 'Please select a ' + $F('attr_name_3_' + iProdIndex);
					else
						sMessage += ' & ' + $F('attr_name_3_' + iProdIndex);
					bValid = false;
				}
				else {
					bAttrsSet = true;
				}
				
				if ($F('qty_' + iProdIndex) == '') {
					sMessage += '<br>Please select a QUANTITY. <br>';
					bValid = false;
				}
				else {
					bAttrsSet = true;
				}
				
				if (bValid) {

					eMainPRName.value = $F('pr_name_' + iProdIndex);
					eMainSale.value = $F('sale_' + iProdIndex);
					eMainQty.value = $F('qty_' + iProdIndex);
					eMainAddCount.value = $F('addcount_' + iProdIndex);
					eMainNAttr.value = $F('nattr_' + iProdIndex);

					return true;
				}
				else {
					$('message_' + iProdIndex).update(sMessage);
				}
				
				sMessage = '';
			}
			
			return false;
		}
		else {
		
			var sMessage = '';
			var bValid = true;
			iAttrCount = $F('nattr');
			
			if ((iAttrCount > 0) && ($F('attr_value_1_1') == '')) {
				sMessage += 'Please select a ' + $F('attr_name_1_1');
				bValid = false;
			}
				
			if ((iAttrCount > 1) && ($F('attr_value_2_1') == '')) {
				if (bValid) 
					sMessage += 'Please select a ' + $F('attr_name_2_1');
				else 
					sMessage += ' & ' + $F('attr_name_2_1');
				bValid = false;
			}
			
			if ((iAttrCount > 2) && ($F('attr_value_3_1') == '')) {
				if (bValid) 
					sMessage += 'Please select a ' + $F('attr_name_3_1');
				else 
					sMessage += ' & ' + $F('attr_name_3_1');
				bValid = false;
			}
			
			if ($F('qty') == '') {
				sMessage += '<br>Please select a QUANTITY. <br>';
				bValid = false;
			}
			
			if (bValid) {
			
				$('ItemQuantity').value = $F('qty');
				$('ItemAttr1').value = $F('attr_value_1_1');
				$('ItemAttr2').value = $F('attr_value_2_1');
				$('ItemAttr3').value = $F('attr_value_3_1');
				
				return true;
			}
			
			$('message_1').update(sMessage);
			return false;
		}
	}
	catch(e) {
		alert('An error occurred while validating the page.');
		return false;
	}
}

function openS7(imageName) {
	var prefix = 'http://s7d2.scene7.com/s7ondemand/zoom/flasht_zoom.jsp?company=HanoverDirect&sku=';
	var suffix = '&config=zoom_config&zoomheight=600&zoomwidth=600';
	var url = prefix + imageName + suffix;
	window.open(url, "scene7win", "width=600,height=600,left=100,top=100");
} 
