		var productid = location.href + '';
		var ChoiceStr = "";
		var wantReturnAddressEngraving = false;
		var isReturnAddress = false;
		if(productid.toLowerCase().indexOf("return")!= -1 && productid.toLowerCase().indexOf("address")!= -1){
			isReturnAddress = true;
		}else if(productid.toLowerCase().indexOf("ra_")!=-1){
			isReturnAddress = true;
		}
		
		
		
		function ClearOtherLiner(senderID){
			//other,otherType
			if(senderID.indexOf("Choice")==-1){
				senderID = "Choice" + senderID;
			}
			var frm = document.forms[0];
			var str = frm.elements["HiddenChoiceMatrix"].value;
			
			var otherType = "";
			if(senderID==GetChoiceID(str,'regular liner color')){
				otherType = "tissue liner";
				other = GetChoiceID(str,'tissue liner color');
			}else if(senderID==GetChoiceID(str,'tissue liner color')){
				otherType = "regular liner";
				other = GetChoiceID(str,'regular liner color');
			}
			
			
			var frm = document.forms[0];
			try{
				var toClear = frm.elements[other];
				if(toClear.selectedIndex > 0){
					toClear.selectedIndex = 0;
					alert('Your previous selection of a ' + otherType + ' has been cleared. Only one type of envelope liner may be selected.');
				}
			}catch(e){
				var regLinerColor = GetChoiceID(str,"regular liner color");
				var tissueLinerColor = GetChoiceID(str,"tissue liner color");
				var regLinerID = regLinerColor.replace("Choice","");
				var tissueLinerID = tissueLinerColor.replace("Choice","");
				var regHiddenID = regLinerID + "hidden";				
				var regLinerSel = frm.elements[regHiddenID];
				var tissueHiddenID = tissueLinerID + "hidden";				
				var tissueLinerSel = frm.elements[tissueHiddenID];
				var tmpRegDv = document.getElementById(regLinerSel.value);
				var tmpTissueDv = document.getElementById(tissueLinerSel.value);
				if(senderID == regLinerColor){
					if(tmpTissueDv.innerHTML.indexOf("No Thank You")==-1){
						alert('Your previous selection of a tissue has been cleared. Only one type of envelope liner may be selected.');
						ClearImageDropDown(tmpTissueDv);
					}
				}else if(senderID == tissueLinerColor){
					if(tmpRegDv.innerHTML.indexOf("No Thank You")==-1){
						alert('Your previous selection of a regular has been cleared. Only one type of envelope liner may be selected.');
						ClearImageDropDown(tmpRegDv);
					}
				}
			}
		}
		
		function UpdateReturnAddressChildren(senderId){
			var frm = document.forms[0];
			var str = frm.elements["HiddenChoiceMatrix"].value;
		}
		
		function GetChoiceID(str,choice){
			var ID = "";
			var b=0;
			var frm = document.forms[0];
			str = frm.elements["HiddenChoiceMatrix"].value;
			var elementArr = str.split("~");
			for(b=0;b<elementArr.length;b++){
				if(elementArr[b].toLowerCase().indexOf(choice.toLowerCase()) != -1 && (choice=="lowerleft")){
					//returns first match for lowerleft, and lowerleft1 will still be matched correctly
					var tempArr = elementArr[b].split("^");
					ID = tempArr[1];
					return ID
				}else if(elementArr[b].toLowerCase().indexOf(choice.toLowerCase()) != -1 && (choice=="lowerright")){
					var tempArr = elementArr[b].split("^");
					ID = tempArr[1];
					return ID
				}
				else if(elementArr[b].toLowerCase().indexOf(choice.toLowerCase()) != -1){
					var tempArr = elementArr[b].split("^");
					ID = tempArr[1];
				}
			}
			return ID;
		}
		
		function GetChoiceIDfromFullName(str,choice){
			var ID = "";
			var b=0;
			var frm = document.forms[0];
			str = frm.elements["HiddenChoiceMatrix"].value;
			var elementArr = str.split("~");
			for(b=0;b<elementArr.length;b++){
				if(elementArr[b].toLowerCase().indexOf(choice.toLowerCase()+"^") != -1){
					var tempArr = elementArr[b].split("^");
					ID = tempArr[1];
				}
			}
			return ID;
		}
		
		function GetRadioCount(radioName){
			var frm = document.forms[0];
			
			for(q=0;q<100;q++){
				try{
					var tempBtn = frm.elements[radioName + "_" + q];
					var x = tempBtn.value;
					
				}catch(e){
					
					return q;
				}
			}
		}
		
		function GetCheckedIndex(radioName){
			var frm = document.forms[0];
			for(z=0;z<100;z++){
				try{
					var tempBtn = frm.elements[radioName + "_" + z];
					if(tempBtn.checked){
						return z;
					}
				}catch(e){
					return -1;					
				}
			}
			return -1;
		}
		
		function DisableRadio(radioName){
			var frm = document.forms[0];
			for(z=0;z<GetRadioCount(radioName);z++){
				try{
					var tempBtn = frm.elements[radioName + "_" + z];
					if(tempBtn.checked){
						tempBtn.checked = false;
					}
					tempBtn.disabled = true;
				}catch(e){
					
				}
			}
		}
		
		function DisableRadioForced(radioName){
			//radioName = eval(radioName);
			var frm = document.forms[0];
			if(GetRadioCount(radioName) == 0){
				window.setTimeout("DisableRadioForced('" + radioName + "')",2000);
			}
			for(z=0;z<GetRadioCount(radioName);z++){
				try{
					var tempBtn = frm.elements[radioName + "_" + z];
					if(tempBtn.checked){
						tempBtn.checked = false;
					}
					tempBtn.disabled = true;
				}catch(e){
					
				}
			}
		}
		
		function EnableRadio(radioName,defaultIndex){
			
			var frm = document.forms[0];
			for(z=0;z<GetRadioCount(radioName);z++){
				try{
					var tempBtn = frm.elements[radioName + "_" + z];
					if(z==defaultIndex){
						tempBtn.checked=true;
					}
					tempBtn.disabled = false;
				}catch(e){
					
				}
			}
		}
		
		function ClearAll(radioName,count){
			var frm = document.forms[0];
			for(w=0;w<count;w++){
				var tempBtn = frm.elements[radioName + "_" + w];
				tempBtn.checked=false;
			}
		}
		
	function UpdateReturnAddressPlateChildren(senderId){
		
		try{
			var frm = document.forms[0];
			var str = frm.elements["HiddenChoiceMatrix"].value;
			var fontField = "";
			var parentName = "";
			var childStr = "";
			if(isReturnAddress){
			
				fontField = GetChoiceID(str,"ra font");
				parentName = GetChoiceID(str,"ra plate");
				childStr = GetChoiceID(str,"whichengraving") + "," + GetChoiceID(str,"returnaddress1") + "," + GetChoiceID(str,"returnaddress2") + "," + GetChoiceID(str,"returnaddress3");
				
			}else{
			
				fontField = GetChoiceID(str,"font style");
				parentName = GetChoiceID(str,"engraving plate");
				childStr = GetChoiceID(str,"engravingtext1") + "," + GetChoiceID(str,"engravingtext2");
			}
			var parentElement1 = frm.elements[parentName + "_0"];
			var parentElement2 = frm.elements[parentName + "_1"];
			var parentElement3 = frm.elements[parentName + "_2"];
			var fontOptionCount = 0;
			fontOptionCount = GetRadioCount(fontField);
			var fontSelection = 0;
			fontSelection = GetCheckedIndex(fontField);
			var childArr = childStr.split(",");
			for(i=0;i<childArr.length;i++){
				var curr = frm.elements[childArr[i]];
				
				if((curr.type+"") == "text"){
					curr.value = "";
					try{
						frm.elements["Hidden" + curr.id].value="";
					}catch(e){
						;
					}
				}else if((curr.type+"") == "select-one"){
					curr.selectedIndex = 0;
				}
				if(parentElement1.checked){
					curr.disabled = false;
					if(i==0){
						UndoDisablePreviewButtons();
					}
					if(fontSelection==(fontOptionCount-1)){
						frm.elements[fontField + "_" + (0)].checked=true;
					}
					var x = document.getElementById(parentName);
					x.style.backgroundColor="white";
					frm.elements[childArr[0]].disabled = true;
					frm.elements[childArr[0]].style.backgroundColor = "White";
				}else if(parentElement2.checked){
					curr.disabled = true;
					if(i==0){
						DisablePreviewButtons();
					}
					if((curr.type+"") == "text"){
						curr.value="";
						try{
							frm.elements["Hidden" + curr.id].value="";
						}catch(e){
							;
						}
					}
					frm.elements[fontField + "_" + (fontOptionCount-1)].checked=true;
					frm.elements[childArr[1]].style.backgroundColor = "White";
					frm.elements[childArr[2]].style.backgroundColor = "White";
					frm.elements[childArr[3]].style.backgroundColor = "White";
					var x = document.getElementById(parentName);
					x.style.backgroundColor="white";
					frm.elements[childArr[0]].disabled = false;
					frm.elements[childArr[0]].focus();
				}else if(parentElement3.checked){
					curr.disabled = true;
					if(i==0){
						DisablePreviewButtons();
					}
					if((curr.type+"") == "text"){
						curr.value="";
						try{
							frm.elements["Hidden" + curr.id].value="";
						}catch(e){
							;
						}
					}
					frm.elements[fontField + "_" + (fontOptionCount-1)].checked=true;
					frm.elements[childArr[1]].style.backgroundColor = "White";
					frm.elements[childArr[2]].style.backgroundColor = "White";
					var x = document.getElementById(parentName);
					x.style.backgroundColor="white";
					frm.elements[childArr[0]].disabled = true;
					frm.elements[childArr[0]].style.backgroundColor = "White";
				}else{
					curr.disabled = true;
					if((curr.type+"") == "text"){
						curr.value="";
						try{
							frm.elements["Hidden" + curr.id].value="";
						}catch(e){
							;
						}
					}
				}
			}
		}catch(e){
			;
		}
	}
	
	
		function UpdateSendToAddressForRSVP(senderId){
			var frm = document.forms[0];
			var str = frm.elements["HiddenChoiceMatrix"].value;
			var parentName = "";
			var childStr = "";
			parentName = GetChoiceID(str,"send-to address");
			childStr = GetChoiceID(str,"engraved address text");
		
			var parentElement1 = frm.elements[parentName + "_0"];
			if(parentElement1.checked){
				var curr = frm.elements[childStr];
				curr.value = "";
				curr.disabled = true;
			}else{
				var curr = frm.elements[childStr];
				curr.value = "";
				curr.disabled = false;
			}
		}
		
		function UpdateReturnAddressChildrenForRSVP(senderId){
			//id
			try{
				var frm = document.forms[0];
				var str = frm.elements["HiddenChoiceMatrix"].value;
				var parentName = "";
				var childStr = "";
				
				parentName = GetChoiceID(str,"response address options");
				childStr = GetChoiceID(str,"engraving plate") + "," + GetChoiceID(str,"whichengravingplate") + "," + GetChoiceID(str,"engraved address text");
			
				var parentElement1 = frm.elements[parentName + "_0"];
				var parentElement2 = frm.elements[parentName + "_1"];
				var parentElement3 = frm.elements[parentName + "_2"];
				var childArr = childStr.split(",");
				for(i=0;i<childArr.length;i++){
					var curr = frm.elements[childArr[i]];
					
					if(parentElement1.checked){
						try{
							curr.disabled = false;
							if(i==0){
								EnableRadio(childArr[i],0);
								}
						}catch(e){
							;
						}
					}else if(parentElement2.checked){
						try{
							curr.disabled = false;
							if(i==0){
								EnableRadio(childArr[i],0);
							}
						}catch(e){
							;
						}
					}else if(parentElement3.checked){
						if((curr.type+"") == "text"){
							curr.disabled = true;
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}else{
							try{
								DisableRadio(childArr[i]);
								curr.disabled = true;
								curr.value='';
							}catch(e){
								;
							}
						}
					}
				}
			}catch(e){
				;
			}
		}
		
		function UpdateEngraversProofChildren(senderId){
			var frm = document.forms[0];
			var str = frm.elements["HiddenChoiceMatrix"].value;	
			var childStr = "";			
			childStr = GetChoiceID(str,"fax number");
			var parentChoiceActivate = frm.elements[senderId + "_1"];
			var childField = frm.elements[childStr];
			if(parentChoiceActivate.checked==true){
				childField.disabled = false;
			}else{
				childField.disabled = true;
				childField.value = "";
			}
		}
		
		function UpdateEngravingPlateChildren(productId, umbrellaCategory, senderId){
			
			var frm = document.forms[0];
			var str = frm.elements["HiddenChoiceMatrix"].value;			
			var fontField = "";
			var parentName = "";
			var childStr = "";
			
			//set element id variables
			if(isReturnAddress){
				parentName = GetChoiceID(str,"ra plate");
				childStr = GetChoiceID(str,"whichengravingplate") + "," + GetChoiceID(str,"return address 1") + "," + GetChoiceID(str,"return address 2") + "," + GetChoiceID(str,"return address 3") 
				
				HandleEngravingPlateForRA(senderId,parentName,childStr);
			}else if(productId.toUpperCase()=="1C3_RESP"){
				parentName = GetChoiceID(str,'engraving plate');
				childStr = GetChoiceID(str,"whichengravingplate") + "," + GetChoiceID(str,'engraved address text');
				HandleEngravingPlateForRSVP(senderId,parentName,childStr);	
				return;		
			}else if(umbrellaCategory.toLowerCase()=="invitations" || umbrellaCategory.toLowerCase()=="announcements"){
				fontField = GetChoiceID(str,'font style');
				parentName = GetChoiceID(str,'engraving plate');
				childStr = GetChoiceID(str,'lineengravingtext');	
				HandleEngravingPlateForInvitation(senderId,parentName,childStr);
			}else if(productId.toLowerCase().indexOf("phc") != -1 || productId.toLowerCase().indexOf("phn") != -1){
				fontField = GetChoiceID(str,'font style');
				parentName = GetChoiceID(str,'engraving plate');
				childStr = GetChoiceID(str,'lineengravingtext');	
				HandleEngravingPlateForHoliday(senderId,parentName,childStr);
				return;			
			}else if(productId.toLowerCase() == '3c3-sale' || productId.toLowerCase() == "ccsale" || productId.toLowerCase() == "3c-sale"){
				fontField = GetChoiceID(str,'font style');
				parentName = GetChoiceID(str,'engraving plate');
				childStr = GetChoiceID(str,"whichengravingplate") + "," + GetChoiceID(str,'engravingtext1');	
				HandleEngravingPlateFor3C3Sale(senderId,parentName,childStr);				
				return;	
			}else if(productId.toLowerCase() == "1f2-sale"){
				fontField = GetChoiceID(str,'font style');
				parentName = GetChoiceID(str,'engraving plate');
				childStr = GetChoiceID(str,"whichengravingplate") + "," + GetChoiceID(str,'engravingtext1') + "," + GetChoiceID(str,'font style') + "," + GetChoiceID(str,"initial first") + "," + GetChoiceID(str,"initial second") + "," + GetChoiceID(str,"initial third") + "," + GetChoiceID(str,"monogram style");
				HandleEngravingPlateFor1F2Sale(senderId,parentName,childStr);
				return;
			}else if(productId.toLowerCase().indexOf("bc2_one")!=-1 || productId.toLowerCase().indexOf("bc2_two")!=-1){				
				fontField = GetChoiceID(str,'font style');
				parentName = GetChoiceID(str,'engraving plate');
				if(productId.toLowerCase().indexOf("bc2_two")!=-1){
					childStr = GetChoiceID(str,'engravingtext1') + "," + GetChoiceID(str,'font style') + "," + GetChoiceID(str,"engravingtext2") + "," + GetChoiceID(str,"lowerleft") + "," + GetChoiceID(str,"lowerright") + "," + GetChoiceID(str,"lowercenter") + "," + GetChoiceID(str,"fax number");
				}else{
					childStr = GetChoiceID(str,'engravingtext1') + "," + GetChoiceID(str,'font style') + "," + GetChoiceID(str,"lowerleft") + "," + GetChoiceID(str,"lowerright") + "," + GetChoiceID(str,"lowerleft2") + "," + GetChoiceID(str,"lowerright2") + "," + GetChoiceID(str,"fax number");
				}
				HandleEngravingPlateForBC2(senderId,parentName,childStr);
				return;
			}else{
			
				fontField = GetChoiceID(str,'font style');
				parentName = GetChoiceID(str,'engraving plate');
				childStr = GetChoiceID(str,"whichengravingplate") + "," + GetChoiceID(str,'engravingtext1') + "," + GetChoiceID(str,'engravingtext2') + "," + GetChoiceID(str,'fax');
			}
			
			var fontOptionCount = 0;
			fontOptionCount = GetRadioCount(fontField);
			var fontSelection = 0;
			
			//set element variables for parent element choices
			var parentElementChoice1 = frm.elements[parentName + "_0"];
			var parentElementChoice2 = frm.elements[parentName + "_1"];
			var parentElementChoice3 = frm.elements[parentName + "_2"];
			if(productId.toUpperCase() != "1C3_RESP"){
				var parentElementChoice4 = frm.elements[parentName + "_3"];
			}
			
			// array of child elements (to be enabled/disabled)
			var childArr = childStr.split(",");
			
			// enable / disable child elements
			for(i=0;i<childArr.length;i++){
				fontSelection = GetCheckedIndex(fontField);
				var curr = frm.elements[childArr[i]];
				curr.disabled = false;
				if(parentElementChoice1.checked==true){
					if(i==0){
						UndoDisablePreviewButtons();
					}
					curr.disabled = false;
					
					if(i!=1 && childArr[i] != GetChoiceID(str,"fax")){
						//alert(childArr[i]);
						curr.disabled = true;
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}else if(i==1){
						curr.focus();
					}
					if(fontSelection==(fontOptionCount-1)){
						ClearAll(fontField,fontOptionCount);
					}
					try{
						frm.elements[childArr[2]].style.backgroundColor = "White";
					}catch(e){
						;
					}
					
				}else if(parentElementChoice2.checked==true){
					
					curr.disabled = false;
					if(i==0){
						UndoDisablePreviewButtons();
						curr.disabled = true;
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}else if(i==1){
						curr.focus();
					}
					if(fontSelection==(fontOptionCount-1)){
						ClearAll(fontField,fontOptionCount);
					}
				}else if(parentElementChoice3.checked==true){					
					if(i==0){
						DisablePreviewButtons();
						curr.disabled = false;
						curr.focus();
					}else{
						curr.disabled = true;
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}
					frm.elements[fontField + "_" + (fontOptionCount-1)].checked=true;
					frm.elements[childArr[0]].style.backgroundColor = "white";
					try{
						frm.elements[childArr[1]].style.backgroundColor = "white";
						frm.elements[childArr[2]].style.backgroundColor = "white";
					}catch(e){
						;
					}
					if((curr.type+"") == "text"){
						curr.value="";
						try{
							frm.elements["Hidden" + curr.id].value="";
						}catch(e){
							;
						}
					}
				}else if(parentElementChoice4.checked==true){
					curr.disabled = true;
					if(i==0){
						DisablePreviewButtons();
					}
					else if(childArr[i].indexOf("fax") !=-1){
						curr.disabled = false;
					}
					if((curr.type+"") == "text"){
						curr.value="";
						try{
							frm.elements["Hidden" + curr.id].value="";
						}catch(e){
							;
						}
					}
					frm.elements[fontField + "_" + (fontOptionCount-1)].checked=true;
					try{
						frm.elements[childArr[0]].style.backgroundColor = "white";
						frm.elements[childArr[1]].style.backgroundColor = "white";
						frm.elements[childArr[2]].style.backgroundColor = "white";
					}catch(e){
						;
					}
				}
			}
		}
		
		function HandleEngravingPlateForRA(senderId,parentName,childStr){
			
			var fontField = "";
			fontField = GetChoiceID(str,"ra font");
				
			var fontOptionCount = 0;
			fontOptionCount = GetRadioCount(fontField);
			var fontSelection = 0;
			
			//set element variables for parent element choices
			var parentElementChoice1 = frm.elements[parentName + "_0"];
			var parentElementChoice2 = frm.elements[parentName + "_1"];
			var parentElementChoice3 = frm.elements[parentName + "_2"];			
			
			// array of child elements (to be enabled/disabled)
			var childArr = childStr.split(",");
			
			// enable / disable child elements
			for(i=0;i<childArr.length;i++){
				fontSelection = GetCheckedIndex(fontField);
				var curr = frm.elements[childArr[i]];
				curr.disabled = false;
				if(parentElementChoice1.checked==true){
					if(i==0){
						UndoDisablePreviewButtons();
					}
					curr.disabled = false;
					if(i!=1){
						curr.disabled = true;
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}else if(i==1){
						curr.focus();
					}
					if(fontSelection==(fontOptionCount-1)){
						ClearAll(fontField,fontOptionCount);
					}
					try{
						frm.elements[childArr[2]].style.backgroundColor = "White";
					}catch(e){
						;
					}
					
				}else if(parentElementChoice2.checked==true){
					
					curr.disabled = false;
					if(i==0){
						DisablePreviewButtons();
						curr.disabled = true;
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}else if(i==1){
						curr.focus();
					}
					if(fontSelection==(fontOptionCount-1)){
						ClearAll(fontField,fontOptionCount);
					}
				}else if(parentElementChoice3.checked==true){					
					if(i==0){
						DisablePreviewButtons();
						curr.disabled = false;
						curr.focus();
					}else{
						curr.disabled = true;
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}
					frm.elements[fontField + "_" + (fontOptionCount-1)].checked=true;
					frm.elements[childArr[0]].style.backgroundColor = "white";
					try{
						frm.elements[childArr[1]].style.backgroundColor = "white";
						frm.elements[childArr[2]].style.backgroundColor = "white";
					}catch(e){
						;
					}
					if((curr.type+"") == "text"){
						curr.value="";
						try{
							frm.elements["Hidden" + curr.id].value="";
						}catch(e){
							;
						}
					}
				}
			}
		}
				
		function HandleEngravingPlateForRSVP(senderId, parentName, childStr){
			var frm = document.forms[0];
			var str = frm.elements["HiddenChoiceMatrix"].value;	
			
			if(GetCheckedIndex(senderId)==-1){
				return;
			}		
		
			//set element variables for parent element choices
			var parentElementChoice1 = frm.elements[parentName + "_0"];
			var parentElementChoice2 = frm.elements[parentName + "_1"];
			var parentElementChoice3 = frm.elements[parentName + "_2"];
			var parentElementChoice4 = frm.elements[parentName + "_3"];
			
			// array of child elements (to be enabled/disabled)
			var childArr = childStr.split(",");
			
			// enable / disable child elements
			for(i=0;i<childArr.length;i++){
				var curr = frm.elements[childArr[i]];
				curr.disabled = false;
				
				if(parentElementChoice1.checked==true){
					curr.disabled = false;
					if(i==0){
						UndoDisablePreviewButtons();
						curr.disabled = true;
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}else if(i==1){
						//EnforceLineAndCharLimit(curr.id,3,"1C3_RESP","Invitations")
						curr.focus();
					}
				}else if(parentElementChoice2.checked==true){
					
					curr.disabled = false;
					if(i==0){
						UndoDisablePreviewButtons();
						curr.disabled = true;
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}else if(i==1){
						curr.focus();
					}
				}else if(parentElementChoice3.checked==true){
					
					if(i==0){
						DisablePreviewButtons();
						curr.disabled = false;
						curr.focus();
					}else{
						curr.disabled = true;
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}
					
					if((curr.type+"") == "text"){
						curr.value="";
						try{
							frm.elements["Hidden" + curr.id].value="";
						}catch(e){
							;
						}
					}
				}else if(parentElementChoice4.checked==true){
					curr.disabled = true;
					if(i==0){
						DisablePreviewButtons();
					}
					if((curr.type+"") == "text"){
						curr.value="";
						try{
							frm.elements["Hidden" + curr.id].value="";
						}catch(e){
							;
						}
					}
				}
			}
		}
		
		function HandleEngravingPlateForEngravedCards(senderId, parentName, childStr){
		
			var frm = document.forms[0];
			var str = frm.elements["HiddenChoiceMatrix"].value;	
			
			if(GetCheckedIndex(senderId)==-1){
				return;
			}		
		
			//set element variables for parent element choices
			var parentElementChoice1 = frm.elements[parentName + "_0"];
			var parentElementChoice2 = frm.elements[parentName + "_1"];
			var parentElementChoice3 = frm.elements[parentName + "_2"];
			
			// array of child elements (to be enabled/disabled)
			var childArr = childStr.split(",");
			var fontField = GetChoiceID(str,"font style");
			var fontOptionCount = 0;
			fontOptionCount = GetRadioCount(fontField); 
			// enable / disable child elements
			for(i=0;i<childArr.length;i++){
				var curr = frm.elements[childArr[i]];
				curr.disabled = false;
				
				if(parentElementChoice1.checked==true){
					curr.disabled = false;
					
					ClearAll(fontField,fontOptionCount);
					if(i==0){
						UndoDisablePreviewButtons();
						curr.disabled = false;
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}
				}else if(parentElementChoice2.checked==true){
					curr.disabled = false;
					
					if(i==0){
						DisablePreviewButtons();
						curr.disabled = true;
						frm.elements[fontField + "_" + (fontOptionCount-1)].checked=true;
					
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}else{
						curr.disabled = true;
						
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}
				}else if(parentElementChoice3.checked==true){
					
					if(i==0){
						DisablePreviewButtons();
						curr.disabled = true;	
						frm.elements[fontField + "_" + (fontOptionCount-1)].checked=true;
						if((curr.type+"") == "text"){
							curr.value="";
							
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}		
						}						
					}else{
						curr.disabled = true;
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}
				}
			}
		}
		
		function HandleEngravingPlateForHoliday(senderId, parentName, childStr){
			var frm = document.forms[0];
			var str = frm.elements["HiddenChoiceMatrix"].value;	
			
			if(GetCheckedIndex(senderId)==-1){
				return;
			}		
		
			//set element variables for parent element choices
			var parentElementChoice1 = frm.elements[parentName + "_0"];
			var parentElementChoice2 = frm.elements[parentName + "_1"];
			var parentElementChoice3 = frm.elements[parentName + "_2"];
			
			// array of child elements (to be enabled/disabled)
			var childArr = childStr.split(",");
			var fontField = GetChoiceID(str,"font style");
			var fontOptionCount = 0;
			fontOptionCount = GetRadioCount(fontField); 
			// enable / disable child elements
			for(i=0;i<childArr.length;i++){
				var curr = frm.elements[childArr[i]];
				curr.disabled = false;
				
				if(parentElementChoice1.checked==true){
					
					curr.disabled = false;
					ClearAll(fontField,fontOptionCount);
					if(i==0){
						UndoDisablePreviewButtons();
						curr.disabled = false;
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}
				}else if(parentElementChoice2.checked==true){
					
					if(i==0){
						DisablePreviewButtons();
						curr.disabled = true;	
						frm.elements[fontField + "_" + (fontOptionCount-1)].checked=true;
						if((curr.type+"") == "text"){
							curr.value="";
							
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}		
						}						
					}else{
						curr.disabled = true;
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}
				}else if(parentElementChoice3.checked==true){
					
					if(i==0){
						DisablePreviewButtons();
						curr.disabled = true;	
						frm.elements[fontField + "_" + (fontOptionCount-1)].checked=true;
						if((curr.type+"") == "text"){
							curr.value="";
							
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}		
						}						
					}else{
						curr.disabled = true;
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}
				}
			}
		}
		
		function HandleEngravingPlateFor3C3Sale(senderId, parentName, childStr){
			
			var frm = document.forms[0];
			var str = frm.elements["HiddenChoiceMatrix"].value;	
			//alert(childStr);
			if(GetCheckedIndex(senderId)==-1){
				return;
			}		
		
			//set element variables for parent element choices
			var parentElementChoice1 = frm.elements[parentName + "_0"];
			var parentElementChoice2 = frm.elements[parentName + "_1"];
			var parentElementChoice3 = frm.elements[parentName + "_2"];
			
			// array of child elements (to be enabled/disabled)
			var childArr = childStr.split(",");
			var fontField = GetChoiceID(str,"font style");
			var whichPlateField = document.getElementById(GetChoiceID(str,"whichengravingplate"));
			var engravingTextField = document.getElementById(GetChoiceID(str,"engravingtext1"));
			var fontOptionCount = 0;
			fontOptionCount = GetRadioCount(fontField); 
			// enable / disable child elements
			for(i=0;i<childArr.length;i++){
				var curr = frm.elements[childArr[i]];
				curr.disabled = false;
				
				if(parentElementChoice1.checked==true){
					
					curr.disabled = false;
					EnableRadio(fontField,0);
					ClearAll(fontField,fontOptionCount);
					if(i==0){
						UndoDisablePreviewButtons();
						curr.disabled = true;
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}
					engravingTextField.disabled=false;
					engravingTextField.focus();
				}else if(parentElementChoice2.checked==true){
					
					if(i==0){
						DisablePreviewButtons();
						curr.disabled = false;	
						frm.elements[fontField + "_" + (fontOptionCount-1)].checked=true;
						
						if((curr.type+"") == "text"){
							curr.value="";
							
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}		
						}
										
					}else{
						curr.disabled = true;
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}
					whichPlateField.focus();		
				}else if(parentElementChoice3.checked==true){
					
					if(i==0){
						DisablePreviewButtons();
						curr.disabled = true;	
						frm.elements[fontField + "_" + (fontOptionCount-1)].checked=true;
						
						if((curr.type+"") == "text"){
							curr.value="";
							
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}		
						}						
					}else{
						curr.disabled = true;
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}
					
				}
			}
		}
		
		function HandleEngravingPlateFor1F2Sale(senderId, parentName, childStr){
			//alert(childStr);
			var frm = document.forms[0];
			var str = frm.elements["HiddenChoiceMatrix"].value;	
			//alert(childStr);
			if(GetCheckedIndex(senderId)==-1){
				return;
			}		
		
			//set element variables for parent element choices
			var parentElementChoice1 = frm.elements[parentName + "_0"];
			var parentElementChoice2 = frm.elements[parentName + "_1"];
			var parentElementChoice3 = frm.elements[parentName + "_2"];
			var parentElementChoice4 = frm.elements[parentName + "_3"];
			
			// array of child elements (to be enabled/disabled)						
			/*
			if(parentElementChoice2.checked == true){
				var mgrm = document.getElementById(GetChoiceID(str,"monogram style") + "_0");
				mgrm.focus();
			}else if(parentElementChoice1.checked==true){
				var engrTxt = document.getElementById(GetChoiceID(str,"EngravingText1"));
				engrTxt.focus();
			}
			*/
			var childArr = childStr.split(",");
			var fontField = GetChoiceID(str,"font style");
			var fontOptionCount = 0;
			fontOptionCount = GetRadioCount(fontField); 
			
			// enable / disable child elements
			for(i=0;i<childArr.length;i++){
				var curr = frm.elements[childArr[i]];
				curr.disabled = false;
				
				if(parentElementChoice1.checked==true){
					curr.disabled = false;
					ClearAll(fontField,fontOptionCount);
					
					if(i!=1){
						
						if(curr.id+"" != "undefined"){
							curr.disabled = true;
						}else{
							// this is a radio button list
							if(fontField != childArr[i]){							
								DisableRadio(childArr[i]);
							}else{
								EnableRadio(fontField,0);
							}
						}
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}
					
					
				}else if(parentElementChoice2.checked==true){
					
					if(i<3){
						if(curr.id+"" != "undefined"){
							curr.disabled = true;
						}else{
							// this is a radio button list
							if(GetChoiceID(str,"monogram style") != childArr[i]){							
								DisableRadio(childArr[i]);
							}
						}
						if((curr.type+"") == "text"){
							curr.value="";
							
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}		
						}						
					}else{
						if(curr.id+"" != "undefined"){
							curr.disabled = false;
						}else{
							// this is a radio button list
							
							if(GetChoiceID(str,"monogram style") == childArr[i]){	
								EnableRadio(childArr[i],0);
							}
							
						}
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}
					
					
				}else if(parentElementChoice3.checked==true){
					if(i==0){
						curr.disabled = false;	
						
						frm.elements[fontField + "_" + (fontOptionCount-1)].checked=true;
						if((curr.type+"") == "text"){
							curr.value="";
							
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}		
						}						
					}else if(i!=0){
						if(curr.id+"" != "undefined"){
							curr.disabled = true;
						}else if(GetChoiceID(str,"monogram style") == childArr[i]){
							// this is a radio button list
							DisableRadio(childArr[i]);										
						}else{
							EnableRadio(childArr[i],(fontOptionCount-1));
						}
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}
				}else if(parentElementChoice4.checked==true){
					if(i==0){
						curr.disabled = true;	
						frm.elements[fontField + "_" + (fontOptionCount-1)].checked=true;
						if((curr.type+"") == "text"){
							curr.value="";
							
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}		
						}						
					}else{
						if(curr.id+"" != "undefined"){
							curr.disabled = true;
						}else if(GetChoiceID(str,"monogram style") == childArr[i]){
							// this is a radio button list
							DisableRadio(childArr[i]);										
						}else{
							EnableRadio(childArr[i],(fontOptionCount-1));	
						}
						if((curr.type+"") == "text"){
							curr.value="";
							try{
								frm.elements["Hidden" + curr.id].value="";
							}catch(e){
								;
							}
						}
					}
				}				
			}
			
			if(parentElementChoice1.checked==true){
				var engravingText = document.getElementById(GetChoiceID(str,"EngravingText1"));
				engravingText.focus();
				UndoDisablePreviewButtons();
			}else if(parentElementChoice2.checked==true){
				try{
					var mgrm = document.getElementById(GetChoiceID(str,"monogram style") + "_0");
					mgrm.focus();
					window.self.scrollTo(0,1250);
					DisablePreviewButtonsMonogram();
				}catch(e){
					;
				}
			}else if(parentElementChoice3.checked==true){
				var wep = document.getElementById(GetChoiceID(str,"whichengravingplate"));
				wep.focus();
				DisablePreviewButtons();
					
			}else if(parentElementChoice4.checked==true){
				DisablePreviewButtons();
			}
		}
		
		function HandleEngravingPlateForBC2(senderId, parentName, childStr){
		
			var frm = document.forms[0];
			var str = frm.elements["HiddenChoiceMatrix"].value;	
			if(GetCheckedIndex(senderId)==-1){
				return;
			}		
		
			//set element variables for parent element choices
			var parentElementChoice1 = frm.elements[parentName + "_0"];
			var parentElementChoice2 = frm.elements[parentName + "_1"];
			var parentElementChoice3 = frm.elements[parentName + "_2"];						
			var childArr = childStr.split(",");
			var fontField = GetChoiceID(str,"font style");
			var fontOptionCount = 0;
			fontOptionCount = GetRadioCount(fontField); 
			
			// enable / disable child elements
			for(i=0;i<childArr.length;i++){
				var curr = frm.elements[childArr[i]];
				curr.disabled = false;
				var whichOne = GetChoiceID(str,"whichengravingplate");
				if(parentElementChoice1.checked==true){
					curr.disabled = false;
					ClearAll(fontField,fontOptionCount);					
					frm.elements[whichOne].disabled = true;
					// this is a radio button list
					if(fontField == childArr[i]){															
						EnableRadio(fontField,0);
					}
						
					if((curr.type+"") == "text"){
						curr.value="";
						try{
							frm.elements["Hidden" + curr.id].value="";
						}catch(e){
							;
						}
					}															
				}else if(parentElementChoice2.checked==true || parentElementChoice3.checked==true){					
					if(curr.id+"" != "undefined"){
						curr.disabled = false;
						frm.elements[whichOne].disabled = true;
					}else{
						// this is a radio button list
						
						if(GetChoiceID(str,"font style") == childArr[i]){	
							DisableRadio(fontField,0);
						}							
					}
					
					//alert(parentElementChoice2.checked);
					
					if(parentElementChoice2.checked==true){
						frm.elements[whichOne].disabled = false;
						frm.elements[whichOne].focus();
					}
					if((curr.type+"") == "text"){
						curr.value="";
						curr.disabled=true
						try{
							frm.elements["Hidden" + curr.id].value="";
						}catch(e){
							;
						}
					}
				}
							
			}
			
			if(parentElementChoice1.checked==true){
				UndoDisablePreviewButtons();
			}else if(parentElementChoice2.checked==true || parentElementChoice3.checked==true){
				DisablePreviewButtons();
			}
		}
		
		function DisablePreviewButtons(){
			try{
				var btn1 = document.getElementById("PreviewLink");
				var btn2 = document.getElementById("PreviewLinkBottom");
				
				try{
					btn1.detachEvent("onclick",DenyMonogramPreview);	// so that events don't build up
					btn2.detachEvent("onclick",DenyMonogramPreview);	// so that events don't build up
				}catch(e){
					;
				}
				try{
					btn1.detachEvent("onclick",DenyPreview);	// so that events don't build up
					btn2.detachEvent("onclick",DenyPreview);	// so that events don't build up
				}catch(e){
					;
				}
				btn1.attachEvent("onclick",DenyPreview);
				btn2.attachEvent("onclick",DenyPreview);
			}catch(e){
				;	//catch error : no action
			}
		}
		
		function DisablePreviewButtonsMonogram(){
			try{
				var btn1 = document.getElementById("PreviewLink");
				var btn2 = document.getElementById("PreviewLinkBottom");
				try{
					btn1.detachEvent("onclick",DenyMonogramPreview);	// so that events don't build up
					btn2.detachEvent("onclick",DenyMonogramPreview);	// so that events don't build up
				}catch(e){
					;
				}
				try{
					btn1.detachEvent("onclick",DenyPreview);	// so that events don't build up
					btn2.detachEvent("onclick",DenyPreview);	// so that events don't build up
				}catch(e){
					;
				}
				btn1.attachEvent("onclick",DenyMonogramPreview);
				btn2.attachEvent("onclick",DenyMonogramPreview);
			}catch(e){
				;	//catch error : no action
			}
		}
		
		function UndoDisablePreviewButtons(){
			try{
				var btn1 = document.getElementById("PreviewLink");
				var btn2 = document.getElementById("PreviewLinkBottom");
				
				try{
					btn1.detachEvent("onclick",DenyMonogramPreview);	// so that events don't build up
					btn2.detachEvent("onclick",DenyMonogramPreview);	// so that events don't build up
				}catch(e){
					;
				}
				try{
					btn1.detachEvent("onclick",DenyPreview);	// so that events don't build up
					btn2.detachEvent("onclick",DenyPreview);	// so that events don't build up
				}catch(e){
					;
				}
			}catch(e){
				;	//catch error : no action
			}
		}
		
		function UndoDisablePreviewButtonsMonogram(){
			try{
				var btn1 = document.getElementById("PreviewLink");
				var btn2 = document.getElementById("PreviewLinkBottom");
				
				btn1.detachEvent("onclick",DenyPreview);
				btn2.detachEvent("onclick",DenyPreview);
			}catch(e){
				;	//catch error : no action
			}
		}
		
		function DenyPreview(){			
			WriteErrorMessage('Preview is not available with existing plates.');
			
			return false;
		}		
		
		function DenyMonogramPreview(){			
			WriteErrorMessage('Due to the artistic design involved in creating monograms, personalized monograms cannot be previewed online.  You will, however, receive a faxed proof of your monogram before it is engraved, at which time you may make any desired changes.');
			
			return false;
		}	
		
		function HandleFontSelection(senderId){
			//ids,fontField
			var frm = document.forms[0];
			var str = frm.elements["HiddenChoiceMatrix"].value;
			var fontField = "";
			var parentName = "";
			var childStr = "";
			if(isReturnAddress){
				fontField = GetChoiceID(str,"ra font");
				parentName = GetChoiceID(str,"ra plate");
				childStr = GetChoiceID(str,"return address 1") + "," + GetChoiceID(str,"return address 2") + "," + GetChoiceID(str,"return address 3") 
			}else{
				fontField = GetChoiceID(str,"font style");				
				parentName = GetChoiceID(str,"engraving plate");
				childStr = GetChoiceID(str,"engravingtext1") + "," + GetChoiceID(str,"engravingtext2");
				if(fontField=="Choice701"){	//3c3-sale
					parentName = GetChoiceID(str,"engraving plate");
					childStr = GetChoiceID(str,"engravingtext1");
				}
			}
			var fontOptionCount = 0;
			fontOptionCount = GetRadioCount(fontField);
			var parentOptionCount = 0;
			
			var selectedFontIndex = -1;
			selectedFontIndex = GetCheckedIndex(fontField);
			var x = document.getElementById(fontField);
			x.style.backgroundColor="white";
			parentOptionCount = GetRadioCount(parentName);
			var childArr = childStr.split(",");
			if(!isReturnAddress){	//card
				if(fontField=="Choice701"){	//3c3-sale
					if(selectedFontIndex==(fontOptionCount-1) && (GetCheckedIndex(parentName)<2)){
						ClearAll(parentName,GetRadioCount(parentName));
						try{
							frm.elements[GetChoiceID(str,"engravingtext1")].value="";
							frm.elements[GetChoiceID(str,"engravingtext2")].value="";
							frm.elements[GetChoiceID(str,"whichengravingplate")].value="";
						}catch(e){
							;
						}
					}
					if(selectedFontIndex<(fontOptionCount-1) && (GetCheckedIndex(parentName)==1)){
						frm.elements[fontField + "_" + (fontOptionCount-1)].checked = true;
						alert('You have selected to use an existing plate. It is not necessary to select a type style.');
					}else if(selectedFontIndex<(fontOptionCount-1) && (GetCheckedIndex(parentName)==2)){
						frm.elements[fontField + "_" + (fontOptionCount-1)].checked = true;
						alert('You have selected to use an existing plate. It is not necessary to select a type style.');
					}
				}else{				
					if(selectedFontIndex==(fontOptionCount-1) && (GetCheckedIndex(parentName)<2)){
						ClearAll(parentName,GetRadioCount(parentName));
						try{
							frm.elements[GetChoiceID(str,"engravingtext1")].value="";
							frm.elements[GetChoiceID(str,"engravingtext2")].value="";
							frm.elements[GetChoiceID(str,"whichengravingplate")].value="";
						}catch(e){
							;
						}
					}
					if(selectedFontIndex<(fontOptionCount-1) && (GetCheckedIndex(parentName)==2)){
						frm.elements[fontField + "_" + (fontOptionCount-1)].checked = true;
						alert('You have selected to use an existing plate. It is not necessary to select a type style.');
					}else if(selectedFontIndex<(fontOptionCount-1) && (GetCheckedIndex(parentName)==3)){
						frm.elements[fontField + "_" + (fontOptionCount-1)].checked = true;
						alert('You have selected to use an existing plate. It is not necessary to select a type style.');
					}
				}
				
			}else{	//return address
				if(selectedFontIndex==(fontOptionCount-1) && (GetCheckedIndex(parentName)<1)){
					ClearAll(parentName,GetRadioCount(parentName));
				}
				if(selectedFontIndex<(fontOptionCount-1) && (GetCheckedIndex(parentName)>0)){
					//frm.elements[parentName + "_" + (0)].checked=true;
					frm.elements[childArr[0]].disabled = false;
					frm.elements[childArr[1]].disabled = false;
					frm.elements[childArr[2]].disabled = false;
					frm.elements[childArr[0]].style.backgroundColor = "white";
					frm.elements[childArr[1]].style.backgroundColor = "white";
					frm.elements[fontField + "_" + (fontOptionCount-1)].checked = true;
					alert('You have selected to use an existing plate. It is not necessary to select a type style.');
				}
			}
				
		}
		
		function ValidateQty(quantityField){
			
			var tblDiscounts = document.getElementById('dgVolumeDiscounts');
			var qtyStr = tblDiscounts.innerHTML;
			var qtyStrArr = qtyStr.split('<TR class=VolumePricingText>');
			var qty = quantityField.value-0;
			var retQty = qty;
			qtyStr = "";
			for(i=1;i<qtyStrArr.length;i++){
				var tempQty = qtyStrArr[i].substring(6,qtyStrArr[i].indexOf("</"));					
				if(qty>=tempQty){
					if(i==(qtyStrArr.length-1) && (qty>tempQty)){
						return qty;
					}else if(qty>tempQty){	//round up
						retQty = qtyStrArr[(i+1)].substring(6,qtyStrArr[(i+1)].indexOf("</"))-0;
						if(retQty > qty){
							WriteErrorMessage('The quantity selected is not available. Your selection has been rounded to the next available quantity.');						
							return retQty;
						}
					}
				}else{	//round up	
					if(i==1 && (qty<tempQty)){
						WriteErrorMessage('The quantity selected is not available. Your selection has been rounded to the next available quantity.');
						return tempQty;
					}else{			
						//qty = qtyStrArr[(i+1)].substring(6,qtyStrArr[(i+1)].indexOf("</"));						
						return qty;
					}
				}	
				}
			return qty;
			
			
		}
		
		function Validate(productId,umbrellaCategory){
			try{
				var frm = document.forms[0];
				var str = frm.elements["HiddenChoiceMatrix"].value;
				var type="card";			
				var fontField = "";
				var parentName = "";
				var childStr = "";
				var boolResult;
				var errMsg = "";			
				var numFilled = 0;
				var numNeeded = 0;
				if(productId.toLowerCase()=="3c3-jnshi"){
					var birthYear = GetChoiceID(str,"year");					
					if(GetCheckedIndex(birthYear)<0){
						alert('Please select the birth year that you would like to order.');
						return false;
					}else{
						return true;
					}
				}
				if(productId.toLowerCase()=="1f2-sale"){
					boolResult = true;
					var alertMsg = "";
					var logicTrunk = GetChoiceID(str,"engraving plate");
					if(frm.elements[logicTrunk + "_0"].checked==true){
						fontField = GetChoiceID(str, "font style");
						var engr1 = frm.elements[GetChoiceID(str,"engravingtext1")];
						var faxNumber = frm.elements[GetChoiceID(str,"fax number")];
						
						if(engr1.value==""){
							engr1.style.backgroundColor="MistyRose";
							
							boolResult =  false;
						}else{ 
							engr1.style.backgroundColor="white";
						}
						if(faxNumber.value==""){
							faxNumber.style.backgroundColor="MistyRose";
							window.self.scrollTo(0,1200);
							boolResult =  false;
						}else{
							faxNumber.style.backgroundColor="white";
						}
						if(!(GetCheckedIndex(fontField)>=0)){
							var x = document.getElementById(fontField);
							x.style.backgroundColor="red";
							boolResult =  false;
							window.self.scrollTo(0,500);
						}else{
							var x = document.getElementById(fontField);
							x.style.backgroundColor="white";
						}
					}else if(frm.elements[logicTrunk + "_1"].checked==true){
						// monogram options
						var fInitial = frm.elements[GetChoiceID(str,"initial first")];
						if(fInitial.value==""){
							fInitial.style.backgroundColor="MistyRose";
							window.self.scrollTo(0,1000);
							boolResult =  false;
						}else{
							fInitial.style.backgroundColor="white";
						}
						var mInitial = frm.elements[GetChoiceID(str,"initial second")];
						if(mInitial.value==""){
							mInitial.style.backgroundColor="MistyRose";
							window.self.scrollTo(0,1000);
							boolResult =  false;
						}else{
							mInitial.style.backgroundColor="white";
						}
						var lInitial = frm.elements[GetChoiceID(str,"initial third")];
						if(lInitial.value==""){
							lInitial.style.backgroundColor="MistyRose";
							window.self.scrollTo(0,1000);
							boolResult =  false;
						}else{
							lInitial.style.backgroundColor="white";
						}
						var faxNumber = frm.elements[GetChoiceID(str,"fax number")];
						if(faxNumber.value==""){
							faxNumber.style.backgroundColor="MistyRose";
							window.self.scrollTo(0,1200);
							boolResult =  false;
						}else{
							faxNumber.style.backgroundColor="white";
						}
					}
					if(!isReturnAddress){
						var howHeardId = GetChoiceID(str,"how did you hear about");
						var heardSel = frm.elements[howHeardId];
						if(heardSel.selectedIndex==0){
							errMsg += 'Error: How did you hear about us?\n';
							heardSel.style.backgroundColor="MistyRose";
							boolResult = false;
						}else{
							heardSel.style.backgroundColor="white";
						}
					}	
					return boolResult;
				}
				if(productId.toLowerCase().indexOf("bc2") != -1){
					boolResult = true;
					var alertMsg = "";
					var logicTrunk = GetChoiceID(str,"engraving plate");
					if(frm.elements[logicTrunk + "_0"].checked==true){
						fontField = GetChoiceID(str, "font style");
						var engr1 = frm.elements[GetChoiceID(str,"engravingtext1")];
						var faxNumber = frm.elements[GetChoiceID(str,"fax number")];
						
						if(engr1.value==""){
							engr1.style.backgroundColor="MistyRose";
							
							boolResult =  false;
						}else{ 
							engr1.style.backgroundColor="white";
						}
						if(faxNumber.value==""){
							faxNumber.style.backgroundColor="MistyRose";
							window.self.scrollTo(0,1200);
							boolResult =  false;
						}else{
							faxNumber.style.backgroundColor="white";
						}
						
						if(!(GetCheckedIndex(fontField)>=0)){
							var x = document.getElementById(fontField);
							x.style.backgroundColor="red";
							boolResult =  false;
							window.self.scrollTo(0,500);
						}else{
							var x = document.getElementById(fontField);
							x.style.backgroundColor="white";
						}
					}else if(frm.elements[logicTrunk + "_1"].checked==true){
						var whichOne = GetChoiceID(str, "whichengraving");
						if(frm.elements[whichOne].value==""){
							errMsg += 'Error: You have indicated that we have your engraving plate. This requires that the highlighted fields are filled out.\n';										
							frm.elements[whichOne].style.backgroundColor = "MistyRose";						
							frm.elements[whichOne].focus();
							boolResult =  false;
						}
					}
					if(!isReturnAddress){
						var howHeardId = GetChoiceID(str,"how did you hear about");
						var heardSel = frm.elements[howHeardId];
						if(heardSel.selectedIndex==0){
							errMsg += 'Error: How did you hear about us?\n';
							heardSel.style.backgroundColor="MistyRose";
							boolResult = false;
						}else{
							heardSel.style.backgroundColor="white";
						}
					}	
					return boolResult;
				}else if(productId=="RETURN ADDRESS"){
					fontField = GetChoiceID(str,"ra font");
					parentName = GetChoiceID(str,"ra plate");					
					childStr = GetChoiceID(str,"return address 1") + "," + GetChoiceID(str,"return address 2") + "," + GetChoiceID(str,"return address 3") 
					type="return address";
					var parentElementNo = frm.elements[parentName + "_0"];
					var fontFieldId=fontField;
					var plateId=parentName;			
					var childArr = childStr.split(",");
					try{
						// Set matched ink color to actual value					
						var InkColorToMatch = "";
						InkColorToMatch = location.href.substring(location.href.indexOf("inkcolor=")+9,location.href.indexOf("&umbrella"));
						var inkColorSelId = GetChoiceID(str,"ink");
						var inkColorSel = frm.elements[inkColorSelId];
						if(inkColorSel.selectedIndex==0){
						
							var ii=0;
							for(ii=0;ii<inkColorSel.options.length;ii++){
								var optionText = inkColorSel.options[ii].text;
								if(optionText==InkColorToMatch || optionText.substring(0,optionText.indexOf("+")-1)==InkColorToMatch){
									inkColorSel.options[ii].selected = true;																	
								}
							}
						}
					}catch(e){
						;
					}
					if(childStr != ""){
						for(i=0;i<childArr.length;i++){
							try{
								var curr = frm.elements[childArr[i]];
								
								if((curr.type+"") == "text" && curr.disabled==false && curr.value == "" && i<1){
									numNeeded++;
								}
							}catch(e){
								;
							}
						}	
						var whichOne = GetChoiceID(str, "whichengraving");
						if(GetCheckedIndex(plateId)==1 && frm.elements[whichOne].value==""){
							errMsg += 'Error: You have indicated that we have your engraving plate. This requires that the highlighted fields are filled out.\n';										
							frm.elements[whichOne].style.backgroundColor = "MistyRose";						
							frm.elements[whichOne].focus();
							boolResult =  false;
						}
						
						if(numNeeded>0 && GetCheckedIndex(plateId)==0){
							errMsg += 'Error: You have indicated that you would like an engraving plate. This requires that the highlighted fields are filled out.\n';
							
							frm.elements[childArr[0]].style.backgroundColor = "MistyRose";
							frm.elements[childArr[0]].focus();
							frm.elements[childArr[1]].style.backgroundColor = "white";
							boolResult =  false;
						}
						
					}
					if(ValidateQty(frm.elements["inQty"]) != frm.elements["inQty"].value){
						frm.elements["inQty"].value = ValidateQty(frm.elements["inQty"]);
						boolResult = false;
					}
				}else if(productId=="RA_NOMATCH"){
					
					fontField = GetChoiceID(str,"ra font");
					parentName = GetChoiceID(str,"ra plate");					
					childStr = GetChoiceID(str,"return address 1") + "," + GetChoiceID(str,"return address 2") + "," + GetChoiceID(str,"return address 3") 
					type="return address";
					//alert(fontField + ":" + parentName + ":" + childStr);
					var parentElementNo = frm.elements[parentName + "_0"];
					var fontFieldId=fontField;
					var plateId=parentName;			
					var childArr = childStr.split(",");
					try{
						// Set matched ink color to actual value					
						var InkColorToMatch = "";
						InkColorToMatch = location.href.substring(location.href.indexOf("inkcolor=")+9,location.href.indexOf("&umbrella"));
						var inkColorSelId = GetChoiceID(str,"ink");
						var inkColorSel = frm.elements[inkColorSelId];
						if(inkColorSel.selectedIndex==0){
						
							var ii=0;
							for(ii=0;ii<inkColorSel.options.length;ii++){
								var optionText = inkColorSel.options[ii].text;
								if(optionText==InkColorToMatch || optionText.substring(0,optionText.indexOf("+")-1)==InkColorToMatch){
									inkColorSel.options[ii].selected = true;																	
								}
							}
						}
					}catch(e){
						;
					}
					if(childStr != ""){
						for(i=0;i<childArr.length;i++){
							try{
								var curr = frm.elements[childArr[i]];
								
								if((curr.type+"") == "text" && curr.disabled==false && curr.value == "" && i<1){
									numNeeded++;
								}
							}catch(e){
								;
							}
						}	
						var whichOne = GetChoiceID(str, "whichengraving");
						if(GetCheckedIndex(plateId)==1 && frm.elements[whichOne].value==""){
							errMsg += 'Error: You have indicated that we have your engraving plate. This requires that the highlighted fields are filled out.\n';										
							frm.elements[whichOne].style.backgroundColor = "MistyRose";						
							frm.elements[whichOne].focus();
							boolResult =  false;
						}
						
						if(numNeeded>0 && GetCheckedIndex(plateId)==0){
							errMsg += 'Error: You have indicated that you would like an engraving plate. This requires that the highlighted fields are filled out.\n';
							
							frm.elements[childArr[0]].style.backgroundColor = "MistyRose";
							frm.elements[childArr[0]].focus();
							frm.elements[childArr[1]].style.backgroundColor = "white";
							boolResult =  false;
						}
						
					}
					if(ValidateQty(frm.elements["inQty"]) != frm.elements["inQty"].value){
						frm.elements["inQty"].value = ValidateQty(frm.elements["inQty"]);
						boolResult = false;
					}
				}else if(productId.toUpperCase()=="1C3_RESP"){
				
					/*plateId = GetChoiceID(str,"response address options");
					var plate2Id = GetChoiceID(str,"engraving plate");*/
					fontField = GetChoiceID(str,"invitation font style");
					var engravingText = GetChoiceID(str,"engraving text");
					/*var whichOne = GetChoiceID(str, "whichengravingplate");*/
					var addressText = GetChoiceID(str,"engraved address text");
					if(frm.elements[engravingText].value==""){
						errMsg += 'Error: Please enter your response card engraving text.\n';
						frm.elements[engravingText].style.backgroundColor = "MistyRose";
						frm.elements[engravingText].focus();
						boolResult = false;
					}
					try{
						// Set matched ink color to actual value	
									
						var InkColorToMatch = "";
						InkColorToMatch = location.href.substring(location.href.indexOf("inkcolor=")+9,location.href.indexOf("&umbrella"));
						var inkColorSelId = GetChoiceID(str,"ink");
						var inkColorSel = frm.elements[inkColorSelId];
						if(inkColorSel.selectedIndex==0){
						
							var ii=0;
							for(ii=0;ii<inkColorSel.options.length;ii++){
								var optionText = inkColorSel.options[ii].text;
								if(optionText==InkColorToMatch || optionText.substring(0,optionText.indexOf("+")-1)==InkColorToMatch){
									inkColorSel.options[ii].selected = true;																	
								}
							}
						}
						// Set matched font to actual value					
						var FontToMatch = "";
						FontToMatch = location.href.substring(location.href.indexOf("font=")+9,location.href.length);
						var fontSelId = GetChoiceID(str,"font");
						var fontSel = frm.elements[fontSelId];
						if(fontSel.selectedIndex==0){
						
							var ii=0;
							for(ii=0;ii<fontSel.options.length;ii++){
								var optionText = fontSel.options[ii].text;
								if(optionText==FontToMatch || optionText.substring(0,optionText.indexOf("+")-1)==FontToMatch){
									fontSel.options[ii].selected = true;																	
								}
							}
						}
						if(GetCheckedIndex(fontFieldId)==-1){
							errMsg += 'Error: Please select a typestyle.\n';
							var x = document.getElementById(fontFieldId);
							x.style.backgroundColor="red";
							boolResult =  false;
							window.self.scrollTo(0,300);
						}else{
							var x = document.getElementById(fontFieldId);
							x.style.backgroundColor="white";
						}
						if(ValidateQty(frm.elements["inQty"]) != frm.elements["inQty"].value){
							frm.elements["inQty"].value = ValidateQty(frm.elements["inQty"]);
							boolResult = false;
						}
					}catch(e){
						;
					}									
				}else if(productId.toUpperCase()=="1C3_RESPONSE"){
					/*plateId = GetChoiceID(str,"response address options");
					var plate2Id = GetChoiceID(str,"engraving plate");*/
					fontFieldId = GetChoiceID(str,"invitation font style");
					var engravingText = GetChoiceID(str,"engraving text");
					/*var whichOne = GetChoiceID(str, "whichengravingplate");*/
					var addressText = GetChoiceID(str,"engraved address text");
					if(frm.elements[engravingText].value==""){
						errMsg += 'Error: Please enter your response card engraving text.\n';
						frm.elements[engravingText].style.backgroundColor = "MistyRose";
						frm.elements[engravingText].focus();
						boolResult = false;
					}
					
					
					if(GetCheckedIndex(fontFieldId)==-1){
						errMsg += 'Error: Please select a typestyle.\n';
						var x = document.getElementById(fontFieldId);
						x.style.backgroundColor="red";
						boolResult =  false;
						window.self.scrollTo(0,300);
					}else{
						var x = document.getElementById(fontFieldId);
						x.style.backgroundColor="white";
					}
					
					var howHeardId = GetChoiceID(str,"how did you hear about");
					var heardSel = frm.elements[howHeardId];
					if(heardSel.selectedIndex==0){
						errMsg += 'Error: How did you hear about us?\n';
						heardSel.style.backgroundColor="MistyRose";
						heardSel.focus();
						boolResult =  false;
						;
					}else{
						heardSel.style.backgroundColor="white";
					}
					if(ValidateQty(frm.elements["inQty"]) != frm.elements["inQty"].value){
						frm.elements["inQty"].value = ValidateQty(frm.elements["inQty"]);
						boolResult = false;
					}
				}else if(umbrellaCategory.toLowerCase().indexOf("invitations")!=-1 || umbrellaCategory.toLowerCase().indexOf("announcements")!=-1){
					//alert('1');
					fontField = GetChoiceID(str,"invitation font style");
					var fontFieldId=fontField;
					var engravingText = GetChoiceID(str,"lineengravingtext");
					fontField = GetChoiceID(str,"invitation font style");
					
					if(frm.elements[engravingText].value==""){
						errMsg += 'Error: Please enter your personalized engraving text.\n';
						frm.elements[engravingText].style.backgroundColor = "MistyRose";
						try{
							frm.elements[engravingText].focus();
						}catch(e){
							;
						}
						boolResult =  false;
					}else{
						frm.elements[engravingText].style.backgroundColor = "White";
					}
					
					if(GetCheckedIndex(fontFieldId)==-1){
						errMsg += 'Error: Please select a typestyle.\n';
						var x = document.getElementById(fontFieldId);
						x.style.backgroundColor="red";
						boolResult =  false;
						window.self.scrollTo(0,300);
					}else{
						var x = document.getElementById(fontFieldId);
						x.style.backgroundColor="white";
					}
					
					var howHeardId = GetChoiceID(str,"how did you hear about");
					var heardSel = frm.elements[howHeardId];
					if(heardSel.selectedIndex==0){
						errMsg += 'Error: How did you hear about us?\n';
						heardSel.style.backgroundColor="MistyRose";
						try{
							heardSel.focus();
						}catch(e){
							;
						}
						boolResult =  false;
						;
					}else{
						heardSel.style.backgroundColor="white";
					}
					if(ValidateQty(frm.elements["inQty"]) != frm.elements["inQty"].value){
						frm.elements["inQty"].value = ValidateQty(frm.elements["inQty"]);
						boolResult = false;
					}
				}else if(umbrellaCategory.toLowerCase()=="engraved stationery cards" && productId.toLowerCase().indexOf("bc2_") != -1){
					
					fontField = GetChoiceID(str,"invitation font style");
					var fontFieldId=fontField;
					var engravingText = GetChoiceID(str,"engravingtext1");
					fontField = GetChoiceID(str,"invitation font style");
					
					if(frm.elements[engravingText].value=="" && GetCheckedIndex(GetChoiceID(str,"engraving plate"))==0){
						errMsg += 'Error: Please enter your name.\n';
						frm.elements[engravingText].style.backgroundColor = "MistyRose";
						try{
							frm.elements[engravingText].focus();
						}catch(e){
							;
						}
						boolResult =  false;
					}else{
						frm.elements[engravingText].style.backgroundColor = "White";
					}
					
					if(GetCheckedIndex(fontFieldId)==-1){
						errMsg += 'Error: Please select a typestyle.\n';
						var x = document.getElementById(fontFieldId);
						x.style.backgroundColor="red";
						boolResult =  false;
						window.self.scrollTo(0,300);
					}else{
						var x = document.getElementById(fontFieldId);
						x.style.backgroundColor="white";
					}
					
					var howHeardId = GetChoiceID(str,"how did you hear about");
					var heardSel = frm.elements[howHeardId];
					if(heardSel.selectedIndex==0){
						errMsg += 'Error: How did you hear about us?\n';
						heardSel.style.backgroundColor="MistyRose";
						try{
							heardSel.focus();
						}catch(e){
							;
						}
						boolResult =  false;
						;
					}else{
						heardSel.style.backgroundColor="white";
					}
					if(ValidateQty(frm.elements["inQty"]) != frm.elements["inQty"].value){
						frm.elements["inQty"].value = ValidateQty(frm.elements["inQty"]);
						boolResult = false;
					}
				}else if(productId.toLowerCase() == '3c3-sale'){
					
					fontField = GetChoiceID(str,"font style");
					parentName = GetChoiceID(str,"engraving plate"); 
					childStr = GetChoiceID(str,"engravingtext1") + ",";
					type="card";
					var parentElementNo = frm.elements[parentName + "_0"];
					var fontFieldId=fontField;
					var plateId=parentName;			
					var childArr = childStr.split(",");
					if(childStr !=""){
						for(i=0;i<childArr.length;i++){
							try{
								var curr = frm.elements[childArr[i]];
								;
								if((curr.type+"") == "text" && curr.value == "" && i==0){
									numNeeded++;
								}
							}catch(e){
								;
							}
						}	
						var whichOne = GetChoiceID(str, "whichengravingplate");
						if(whichOne != ""){
							if(GetCheckedIndex(plateId)==1 && frm.elements[whichOne].value==""){
								errMsg += 'Error: You have indicated that we have your engraving plate. This requires that the highlighted fields are filled out.\n';
								;
								
								frm.elements[whichOne].style.backgroundColor = "MistyRose";
								frm.elements[whichOne].focus();
								boolResult =  false;
							}else{
								frm.elements[whichOne].style.backgroundColor = "White";
							}
						}
						if(numNeeded>0 && GetCheckedIndex(plateId)==0){
							errMsg += 'Error: You have indicated that you would like an engraving plate. This requires that the highlighted fields are filled out.\n';
							
							if(GetCheckedIndex(plateId)==0){
								
								frm.elements[childArr[0]].style.backgroundColor = "MistyRose";
								//frm.elements[childArr[0]].focus();
								
							}
							else{
								frm.elements[childArr[0]].style.backgroundColor = "white";
							}
							boolResult =  false;
						}else{
							if(GetChoiceID(str,"envelope size") != ""){
								var envelopeSizeId = GetChoiceID(str,"envelope size")
								if(!(GetCheckedIndex(envelopeSizeId)>=0)){
									errMsg += 'Error: Please select a envelope size.\n';
									var x = document.getElementById(envelopeSizeId);
									x.style.backgroundColor="red";
									boolResult =  false;
									window.self.scrollTo(0,300);
								}else{
									var x = document.getElementById(envelopeSizeId);
									x.style.backgroundColor="white";
									boolResult = true;
								}
							}
						}
						/*if(frm.elements[GetChoiceID("","fax")].value!=""){
							if(GetCheckedIndex(GetChoiceID("","engraver"))==0){
								frm.elements[GetChoiceID("","fax")].value="";
							}
						}*/
						
					}
					
					if(!(GetCheckedIndex(fontFieldId)>=0)){
						errMsg += 'Error: Please select a typestyle.\n';
						var x = document.getElementById(fontFieldId);
						x.style.backgroundColor="red";
						boolResult =  false;
						window.self.scrollTo(0,300);
					}else{
						var x = document.getElementById(fontFieldId);
						x.style.backgroundColor="white";
					}
					
					if(!isReturnAddress){
						var howHeardId = GetChoiceID(str,"how did you hear about");
						var heardSel = frm.elements[howHeardId];
						if(heardSel.selectedIndex==0){
							errMsg += 'Error: How did you hear about us?\n';
							heardSel.style.backgroundColor="MistyRose";
							heardSel.focus();
							boolResult =  false;
							;
						}else{
							heardSel.style.backgroundColor="white";
						}
					}								
				}else{					
					fontField = GetChoiceID(str,"font style");
					parentName = GetChoiceID(str,"engraving plate"); 
					childStr = GetChoiceID(str,"engravingtext1") + "," + GetChoiceID(str,"engravingtext2");
					type="card";
					var parentElementNo = frm.elements[parentName + "_0"];
					var fontFieldId=fontField;
					var plateId=parentName;			
					var childArr = childStr.split(",");
					if(childStr !=""){
						for(i=0;i<childArr.length;i++){
							try{
								var curr = frm.elements[childArr[i]];
								;
								if((curr.type+"") == "text" && curr.disabled==false && curr.value == "" && i<2){
									numNeeded++;
								}
							}catch(e){
								;
							}
						}	
						var whichOne = GetChoiceID(str, "whichengravingplate");
						if(whichOne != ""){
							if(GetCheckedIndex(plateId)==2 && frm.elements[whichOne].value==""){
								errMsg += 'Error: You have indicated that we have your engraving plate. This requires that the highlighted fields are filled out.\n';
								;
								
								frm.elements[whichOne].style.backgroundColor = "MistyRose";
								frm.elements[whichOne].focus();
								boolResult =  false;
							}else{
								frm.elements[whichOne].style.backgroundColor = "White";
							}
						}
						
						if(numNeeded>0 && GetCheckedIndex(plateId)<2){
							errMsg += 'Error: You have indicated that you would like an engraving plate. This requires that the highlighted fields are filled out.\n';

							frm.elements[childArr[0]].style.backgroundColor = "MistyRose";
							frm.elements[childArr[0]].focus();
							
							if(GetCheckedIndex(plateId)==1){
								frm.elements[childArr[1]].style.backgroundColor = "MistyRose";
							}
							else{
								frm.elements[childArr[1]].style.backgroundColor = "white";
							}
							boolResult =  false;
						}else{
							if(GetChoiceID(str,"envelope size") != ""){
								var envelopeSizeId = GetChoiceID(str,"envelope size")
								if(!(GetCheckedIndex(envelopeSizeId)>=0)){
									errMsg += 'Error: Please select a envelope size.\n';
									var x = document.getElementById(envelopeSizeId);
									x.style.backgroundColor="red";
									boolResult =  false;
									window.self.scrollTo(0,300);
								}else{
									var x = document.getElementById(envelopeSizeId);
									x.style.backgroundColor="white";
									boolResult = true;
								}
							}
						}
					}
					if(!(GetCheckedIndex(fontFieldId)>=0)){
						errMsg += 'Error: Please select a typestyle.\n';
						var x = document.getElementById(fontFieldId);
						x.style.backgroundColor="red";
						boolResult =  false;
						window.self.scrollTo(0,300);
					}else{
						var x = document.getElementById(fontFieldId);
						x.style.backgroundColor="white";
					}
					
					if(!isReturnAddress){
						var howHeardId = GetChoiceID(str,"how did you hear about");
						var heardSel = frm.elements[howHeardId];
						if(heardSel.selectedIndex==0){
							errMsg += 'Error: How did you hear about us?\n';
							heardSel.style.backgroundColor="MistyRose";
							heardSel.focus();
							boolResult =  false;
							;
						}else{
							heardSel.style.backgroundColor="white";
						}
					}
				}
				if(ValidateQty(frm.elements["inQty"]) != frm.elements["inQty"].value){
					frm.elements["inQty"].value = ValidateQty(frm.elements["inQty"]);
					boolResult = false;
				}
								
				return boolResult;
			}catch(e){
				if(GetChoiceID(str,"paper size") != ""){
					var paperSizeId = GetChoiceID(str,"paper size")
					if(!(GetCheckedIndex(paperSizeId)>=0)){
						errMsg += 'Error: Please select a paper size.\n';
						var x = document.getElementById(paperSizeId);
						x.style.backgroundColor="red";
						boolResult =  false;
						window.self.scrollTo(0,300);
					}else{
						var x = document.getElementById(paperSizeId);
						x.style.backgroundColor="white";
						boolResult = true;
					}
					return boolResult;
				}
			}
		}
		
		
		function Disable(obj){
			if(obj.type+"" == "text"){
				obj.value="";
			}
			
			obj.disabled = true;
			
			try{
				CopyValue(obj);
			}catch(e){
				;
			}
		}
		
		function CopyValue(textbox){
			if((textbox.type+"" == "text" || textbox.type+"" == "textarea") && textbox.id+"" != "undefined"){
				var frm = document.forms[0];
				var hid = frm.elements["Hidden" + textbox.id];
				hid.value = textbox.value;
			}
		}
		
		function EnforceLineAndCharLimit(id,numLines,productId,categoryName){		
				
			var frm = document.forms[0];
			var str = frm.elements["HiddenChoiceMatrix"].value;
			if(categoryName.toLowerCase().indexOf("invitations") != -1 || categoryName.toLowerCase().indexOf("announcements") != -1){
				switch(productId.toUpperCase()){
					case "1C3_RESP":
						if(id==GetChoiceID(str,"engraved address text")){
							switch(GetCheckedIndex(GetChoiceID(str,"Engraving Plate"))){
								case 0:
									numLines = 3;
									break;
								case 1:
									numLines = 4;
									break;
							}
						}
						break;
					case "1C3_RESPONSE":
						if(id==GetChoiceID(str,"engraved address text")){
							switch(GetCheckedIndex(GetChoiceID(str,"Engraving Plate"))){
								case 0:
									numLines = 3;
									break;
								case 1:
									numLines = 4;
									break;
							}
						}else if(id==GetChoiceID(str,"Engraving Text")){
							numLines = 11;
						}
						break;
					default:
						if(productId.toUpperCase().indexOf("ANN_") != -1){
							numLines = 7;
						}else if(productId.toUpperCase().indexOf("IN_") != -1){
							numLines = 8;
						}else if(productId.toUpperCase().indexOf("DWE") != -1){
							numLines = 14;
						}
						break;
		
				}
				
			}
			if(productId.toUpperCase().indexOf("HORIZ")!=-1 && id==GetChoiceID(str,"lineengravingtext")){
					var arrLines = (frm.elements[id].value+"").split("\n");
					for(u=0;u<numLines;u++){
						if((arrLines[u]+"").length>45){
							arrLines[u] = arrLines[u].substring(0,44);
							alert('Please limit each line of text to 45 characters or less.');
						}
					}
					frm.elements[id].value = "";
					for(u=0;u<arrLines.length;u++){
						frm.elements[id].value += arrLines[u];
					}
			}else if(productId.toUpperCase().indexOf("VERT")!=-1 && id==GetChoiceID(str,"lineengravingtext")){
					var arrLines = (frm.elements[id].value+"").split("\n");
					for(u=0;u<numLines;u++){
						if((arrLines[u]+"").length>36){
							arrLines[u] = arrLines[u].substring(0,35);
							alert('Please limit each line of text to 36 characters or less.');
						}
					}
					frm.elements[id].value = "";
					for(u=0;u<arrLines.length;u++){
						frm.elements[id].value += arrLines[u];
					}
			}
			//alert(numLines + GetChoiceID(str,"Engraving Text"));
			if(frm.elements[id].value.length>(numLines*40)){
				//alert('You have exceeded the number of characters allowed in this field.');
				frm.elements[id].value = frm.elements[id].value.substring(0,(numLines*40));
			}else if(GetLineBreakCount(frm.elements[id].value+"",numLines)>numLines){
				//alert('You have exceeded the number of lines allowed in this field.');
				var arrLines = (frm.elements[id].value+"").split("\n");
				frm.elements[id].value="";
				for(t=0;t<numLines;t++){
					frm.elements[id].value += arrLines[t];
				}
			}
		}
		
		function GetLineBreakCount(str,numLines){
			var numBreaks = 0;
			var arrLines = str.split("\n");
			numBreaks = arrLines.length;
			return numBreaks;
		}
		
		function WriteErrorMessage(msg){			
			var msgDiv = document.getElementById("DivValidationMsg");
			msgDiv.innerHTML = "<span class=\"Message\" style=\"color:red;\"><br>" + msg + "<br><br></span>";
			msgDiv.style.display="block";
			window.scrollTo(0,0);
			var xy = window.setTimeout(ClearError,12000);
		}
		
		function ClearError(){
			var msgDiv = document.getElementById("DivValidationMsg");
			msgDiv.innerHTML = "<br><br>";
			
		}
		
		
		
		