				var pkg_deleted_rows = new Object();
				function pkg_delete_row(tbl, id, undelete) {
					pkg_delete_rows[tbl + '_' + id] = undelete ? false :true;
				}
				
				function readform(varframe) {
					var hiddens=0;
					var items=0;
					var totalitems=0;
					var bFirstInput=true;
					var straction='';
					var frm = document.frmUpdate;

					//alert('Reading frmSelections...');
					//alert(varframe);
					if(varframe){
						Elements = varframe.frmSelections.getElementsByTagName("input");
					}else{
						Elements = document.frmSelections.getElementsByTagName("input");
					}
					totalitems = Elements.length;
					//alert(totalitems+' INPUT elements found in frmSelections');
					
					//document.frmUpdate.pkg.value='';
					document.frmUpdate.pkg2.value='';

					//alert(totalitems+' INPUT elements found in frmSelections\n'+hiddens+' of which are hidden INPUT elements');
					
					//find input elements
					var v_str = 'v';
					for (var i=0; i<Elements.length; i++) {
						//alert('type='+Elements[i].getAttribute("type")+' Label='+Elements[i].getAttribute("Label")+' value='+Elements[i].value);
						if(Elements[i].getAttribute("pkg")) {
							v_str = Elements[i].getAttribute('v_str') ? Elements[i].getAttribute('v_str') : 'v';  
							//alert(v_str);
							el = Elements[i];
							pkg = el.getAttribute("pkg");
							//if (Elements[i].getAttribute("Changed")==1) alert('pkg: ' + Elements[i].parentNode.innerHTML);
							if (el.getAttribute("first") == "yes" && el.getAttribute("new") == "yes" && el.getAttribute("Changed")==1) {
								straction = "@@a=i";
								//bFirstInput = false;
							} else if (el.getAttribute("del") ) {
								straction = '@@a=d';
								
							} else {
								straction = "@@a=i2";
							}
							//alert('ID='+Elements[i].getAttribute("ID")+'\nLabel='+Elements[i].getAttribute("Label")+'='+Elements[i].value);
							if(el.getAttribute("Changed")==1 && el.getAttribute("type") != "hidden") {
								if (el.getAttribute("ID").indexOf ("INPUT") > -1 && el.getAttribute("ID").indexOf ("ID") > -1){
									var str = el.getAttribute("ID").match(/\d{1,}/);
									if (el.getAttribute("new") == "yes"){
										document.frmUpdate.pkg2.value += '|@@i='+str+pkg+v_str+'='+Elements[i].value+'!#!#@@'+straction+'@@|'
									}else{
										document.frmUpdate.pkg2.value += '|@@i='+str+Elements[i].getAttribute("pkg")+v_str+'='+Elements[i].value+'!#!#'+'@@|'
									}										
									document.frmUpdate.size2.value = document.frmUpdate.pkg2.value.length;
								}
								else{
									recid = el.getAttribute("RecID");
									if (recid==null) recid = el.getAttribute("ID");

									if (el.getAttribute("new") == "yes"){
										document.frmUpdate.pkg2.value += '|@@i='+recid+pkg+v_str+'='+Elements[i].value+'!#!#@@'+straction+'@@|'
									} else{
									document.frmUpdate.pkg2.value += '|@@i='+recid+pkg+v_str+'='+Elements[i].value+'!#!#'+'@@|'
									}
									document.frmUpdate.size2.value = document.frmUpdate.pkg2.value.length;
								}
							}
							else { 
								if (el.getAttribute("type") == "hidden" && el.getAttribute("Changed")==1){
									//alert('hidden ID='+el.getAttribute("ID")+',pkg='+pkg+',value='+el.value);
									recid = el.getAttribute("RecID");
									if (recid==null)
										recid = el.getAttribute("ID");
									if (el.getAttribute("new") == "yes"){							
										document.frmUpdate.pkg2.value += '|@@i='+recid+straction+'@@'+pkg;
									} else{
										//document.frmUpdate.pkg2.value += '|@@i='+recid+'@@'+Elements[i].getAttribute("pkg");
										//document.frmUpdate.pkg2.value += '|@@i='+recid+Elements[i].getAttribute("pkg")+v_str+'='+Elements[i].value+'!#!#'+'@@|'
										if (pkg.indexOf("@v=") > -1 && Elements[i].value) {
											pos = pkg.indexOf("@v=");
											document.frmUpdate.pkg2.value += '|@@i='+recid+pkg.substring(0,pos)+'@v='+el.getAttribute("value")+'!#!#'+'@@|';
											}
										else
											document.frmUpdate.pkg2.value += '|@@i='+recid+pkg+'v='+el.getAttribute("value")+'!#!#'+'@@|';

									}
									try{
										if (el.getAttribute("popup") == "yes"){
											document.frmUpdate.pkg2.value += '@@'+v_str+'='+Elements[i].value+'!#!#'+'@@|'
										}
									}
									catch (error){}
									document.frmUpdate.size2.value = document.frmUpdate.pkg2.value.length;	

									//alert('pkg2='+document.frmUpdate.pkg2.value);
								}
							}
						}
					}

					//find textarea elements
					//alert('checking textareas...');
					Elements = document.frmSelections.getElementsByTagName("textarea");
					for (var i=0; i<Elements.length; i++) {
						if(Elements[i].getAttribute("pkg")) {
							v_str = Elements[i].getAttribute('v_str') ? Elements[i].getAttribute('v_str') : 'v';  
							
							if(Elements[i].getAttribute("Changed")==1) {
								recid = Elements[i].getAttribute("RecID");
								if (recid==null) recid = Elements[i].getAttribute("ID");
								document.frmUpdate.pkg2.value += '|@@i='+recid+Elements[i].getAttribute("pkg")+v_str+'='+Elements[i].value+'!#!#'+'@@|'
								document.frmUpdate.size2.value = document.frmUpdate.pkg2.value.length;
							}
						}
					}


					//find drop-down elements
					//alert('checking selects...');
					Elements = document.frmSelections.getElementsByTagName("select");
					for (var i=0; i<Elements.length; i++) {
						//alert(Elements[i].children.length);
						//alert(Elements[i].id);
						if(Elements[i].getAttribute("pkg") && Elements[i].getAttribute("Changed")) {
							 v_str = Elements[i].getAttribute('v_str') ? Elements[i].getAttribute('v_str') : 'v';  
							
							//alert('Select with pkg:'+Elements[i].getAttribute("pkg"));
							items = items + 1;
							pkg = Elements[i].getAttribute("pkg");
							opts = Elements[i].options;
							//alert(opts.length+' item(s) in select');
							for (var i3=0; i3<opts.length; i3++) {
								//alert(opts[i3].innerText);
								if (opts[i3].selected) {
									//alert(opts[i3].innerText+' selected');
									if (opts[i3].value) {
										//alert('value='+opts[i3].value+'  innerText='+opts[i3].innerText);
										//document.frmUpdate.pkg.value += '|'+Elements[i].getAttribute("ID")+'='+opts[i3].value+'|'
										if (Elements[i].getAttribute("Changed")==1) {
											//alert('Changed');
											//MWC: newID was not getting set
											recid = Elements[i].getAttribute("RecID");
											if (recid==null) recid = Elements[i].getAttribute("ID");
											newID = recid; //Elements[i].getAttribute("ID")
											document.frmUpdate.pkg2.value += '|@@i='+newID+Elements[i].getAttribute("pkg")+v_str+'='+opts[i3].value+'!#!#'+'@@|'
											//document.frmUpdate.pkg2.value += '|@@i='+Elements[i].getAttribute("ID")+Elements[i].getAttribute("pkg")+'v='+opts[i3].value+'@@|'
											}
										}
									else {
										//document.frmUpdate.pkg.value += '|'+Elements[i].getAttribute("ID")+'='+opts[i3].innerText+'|'
										if(Elements[i].getAttribute("Changed")==1) {
											recid = Elements[i].getAttribute("RecID");
											if (recid==null) recid = Elements[i].getAttribute("ID");
											//alert(newID);
											document.frmUpdate.pkg2.value += '|@@i='+recid+Elements[i].getAttribute("pkg")+v_str+'='+opts[i3].innerText+'!#!#'+'@@|'
											}
										}
									//document.frmUpdate.size.value = document.frmUpdate.pkg.value.length;
									document.frmUpdate.size2.value = document.frmUpdate.pkg2.value.length;
								}
							}
						}
					}
					//alert('Pkg built reading '+items+' of '+totalitems+' items');
					//alert('Pkg='+document.frmUpdate.pkg2.value);
					
					try {
						frm.CurrURL.value = document.frmSelections.CurrURL.value;
						frm.Page.value = document.frmSelections.Page.value;
						frm.PageID.value = document.frmSelections.PageID.value;
						frm.LastUpdated.value = document.frmSelections.LastUpdated.value;
						frm.EndAction.value = document.frmSelections.EndAction.value;
						frm.FormatOption.value = document.frmSelections.FormatOption.value;
						frm.Saved.value = document.frmSelections.Saved.value;
						//added to catch pre-made packages pushed into 'pkg' and add them onto pkg2
						frm.pkg2.value = frm.pkg2.value + document.frmUpdate.pkg.value;
						//frm.pkg.value = '';
						frm.size2.value = frm.pkg2.value.length;
						document.frmSelections.pkg2.value = frm.pkg2.value;
						//alert(frm.pkg2.value);
					} catch (e) {}
				}

					function showdiv(div) {
						//alert(document.getElementById(div).innerHTML);
						//alert(document.getElementById(div).style.display); 
						//alert(document.getElementById(div).style.visibility); 
						document.getElementById(div).style.display="normal"; 
						document.getElementById(div).style.visibility="visible"; 
						document.getElementById(div).style.zIndex=500; 
						}
						
					function hidediv(div) {
						document.getElementById(div).style.visibility="hidden"; 
						}



				function readformbyrow() {
					var hiddens=0;
					var items=0;
					var totalitems=0;
					var bFirstInput=true;
					var straction='';
				
					//alert('readformbyrow');

					Elements = document.frmSelections.getElementsByTagName("table");
					//alert(Elements.length+ ' tables');
					for (var i=0; i<Elements.length; i++) {
						if(Elements[i].getAttribute("tableid")) {
							//alert(Elements[i].getAttribute("tableid"));
							tbl = Elements[i];
						}
					}

					//document.frmUpdate.pkg.value='';
					document.frmUpdate.pkg2.value='';

					//alert(tbl.rows.length-1+' rows');	//don't count header row
					for (var i=1; i<tbl.rows.length; i++) {
						tr = tbl.rows[i];
						if(tr.getAttribute("Changed")==1) {
							//alert('row '+i+' changed.');
							//alert(totalitems+' INPUT elements found in frmSelections\n'+hiddens+' of which are hidden INPUT elements');

							document.frmUpdate.pkg2.value += '|row='+i
							
							//find input elements
							Elements = tr.getElementsByTagName("INPUT");
							//alert(Elements.length+' INPUT elements in this row.')
							for (var i2=0; i2<Elements.length; i2++) {
								if(Elements[i2].getAttribute("pkg")) {
									fld = Elements[i2];
									pkg = fld.getAttribute("pkg");
									if (pkg.substr(0,2) =='@@') pkg = pkg.substr(2,pkg.length);
									if (pkg.substr(0,2) =='f=') pkg = pkg.substr(2,pkg.length);
									if (pkg.substr(pkg.length-2,2) =='@@') pkg = pkg.substr(0,pkg.length-2);
									pkg=pkg.replace('@@v=','=')
									//if (fld.getAttribute("Changed")==1) alert('pkg: ' + fld.parentNode.innerHTML);
									if (fld.getAttribute("first") == "yes" && fld.getAttribute("new") == "yes" && fld.getAttribute("Changed")==1) {
										straction = "@@a=i";
										//bFirstInput = false;
									} else {
										straction = "@@a=new";
									}
									//alert('pkg='+pkg+'\nID='+fld.getAttribute("ID")+'\nLabel='+fld.getAttribute("Label")+'\nvalue='+fld.value);
									if(fld.getAttribute("Changed")==1 && fld.getAttribute("type") != "hidden") {
										if (fld.getAttribute("ID").indexOf("INPUT") > -1 && fld.getAttribute("ID").indexOf("ID") > -1){
											var str = fld.getAttribute("ID").match(/\d{1,}/)
											if (Elements[i].getAttribute("new") == "yes"){
												document.frmUpdate.pkg2.value += '|'+pkg+'='+fld.value+'!#!#@@'+straction+'@@|'
											}else{
												document.frmUpdate.pkg2.value += '|'+pkg+'='+fld.value+'!#!#'+'@@|'
											}										
											document.frmUpdate.size2.value = document.frmUpdate.pkg2.value.length;
										}
										else{
											if (fld.getAttribute("new") == "yes"){
												document.frmUpdate.pkg2.value += '|'+pkg+'v='+fld.value+'!#!#@@'+straction+'@@|'
											} else{
											document.frmUpdate.pkg2.value += '|'+pkg+'='+fld.value+'!#!#'+'@@|'
											}
											document.frmUpdate.size2.value = document.frmUpdate.pkg2.value.length;
										}
									}
									else { 
										if (fld.getAttribute("type") == "hidden" && fld.getAttribute("Changed")==1){
											if (fld.getAttribute("new") == "yes"){							
												document.frmUpdate.pkg2.value += '|'+pkg;
											} else{
												document.frmUpdate.pkg2.value += '|'+pkg+'='+fld.value;
											}
											try{
												if (fld.getAttribute("popup") == "yes"){
													document.frmUpdate.pkg2.value += '='+fld.value+'!#!#'+'@@|'
												}
											}
											catch (error){}
											document.frmUpdate.size2.value = document.frmUpdate.pkg2.value.length;	
										}
									}
								}
							}
		
							//find textarea elements
							Elements = tr.getElementsByTagName("textarea");
							for (var i2=0; i2<Elements.length; i2++) {
								if(Elements[i2].getAttribute("pkg")) {
									fld = Elements[i2];
									pkg = fld.getAttribute("pkg");
									if (pkg.substr(0,2) =='@@') pkg = pkg.substr(2,pkg.length);
									if (pkg.substr(0,2) =='f=') pkg = pkg.substr(2,pkg.length);
									if (pkg.substr(pkg.length-2,2) =='@@') pkg = pkg.substr(0,pkg.length-2);
									pkg=pkg.replace('@@v=','=')
									if (pkg.substr(0,2) =='@@') pkg = pkg.substr(2,pkg.length);
									if(fld.getAttribute("Changed")==1) {
										document.frmUpdate.pkg2.value += '|'+pkg+'='+fld.value+'!#!#'+'@@|'
										document.frmUpdate.size2.value = document.frmUpdate.pkg2.value.length;
									}
								}
							}
		
		
							//find drop-down elements
							Elements = tr.getElementsByTagName("select");
							for (var i2=0; i2<Elements.length; i2++) {
								//alert(Elements[i2].children.length);
								if(Elements[i2].getAttribute("pkg") && Elements[i2].getAttribute("Changed")) {
									fld = Elements[i2];
									pkg = fld.getAttribute("pkg");
									if (pkg.substr(0,2) =='@@') pkg = pkg.substr(2,pkg.length);
									if (pkg.substr(0,2) =='f=') pkg = pkg.substr(2,pkg.length);
									if (pkg.substr(pkg.length-2,2) =='@@') pkg = pkg.substr(0,pkg.length-2);
									pkg=pkg.replace('@@v=','=')

									if (pkg.substr(0,2) =='@@') pkg = pkg.substr(2,pkg.length);
									//alert('Select with pkg:'+fld.getAttribute("pkg"));
									items = items + 1;
									opts = fld.options;
									//alert(opts.length+' item(s) in select');
									for (var i3=0; i3<opts.length; i3++) {
										//alert(opts[i3].innerText);
										if(opts[i3].selected) {
											//alert(opts[i3].innerText+' selected');
											if(opts[i3].value) {
												//alert('value='+opts[i3].value+'  innerText='+opts[i3].innerText);
												if(Elements[i2].getAttribute("Changed")==1) {
													//alert('Changed');
													//MWC: newID was not getting set
													newID = Elements[i2].getAttribute("ID")
													document.frmUpdate.pkg2.value += '|'+pkg+'='+opts[i3].value+'!#!#'+'@@|'
													//document.frmUpdate.pkg2.value += '|'+pkg+'='+opts[i3].value+'@@|'
													}
												}
											else {
												//document.frmUpdate.pkg.value += '|'+pkg+'='+opts[i3].innerText+'|'
												if(Elements[i2].getAttribute("Changed")==1) {
													document.frmUpdate.pkg2.value += '|'+pkg+'='+opts[i3].innerText+'!#!#'+'@@|'
													}
												}
											//document.frmUpdate.size.value = document.frmUpdate.pkg.value.length;
											document.frmUpdate.size2.value = document.frmUpdate.pkg2.value.length;
										}
									}
								}
							}
							document.frmUpdate.pkg2.value += 'endrow|'


						}
					}
					//alert(document.frmUpdate.pkg2.value);
	
					//alert('Pkg built reading '+items+' of '+totalitems+' items');

					document.frmUpdate.CurrURL.value = document.frmSelections.CurrURL.value;
					document.frmUpdate.Page.value = document.frmSelections.Page.value;
					document.frmUpdate.PageID.value = document.frmSelections.PageID.value;
					document.frmUpdate.LastUpdated.value = document.frmSelections.LastUpdated.value;
					document.frmUpdate.EndAction.value = document.frmSelections.EndAction.value;
					document.frmUpdate.FormatOption.value = document.frmSelections.FormatOption.value;
					document.frmUpdate.Saved.value = document.frmSelections.Saved.value;
					document.frmSelections.pkg2.value = document.frmUpdate.pkg2.value;
				}
				
				
				function findtable() {
					Elements = document.frmSelections.getElementsByTagName("table");
					//alert(Elements.length+ ' tables');
					for (var i=0; i<Elements.length; i++) {
						if(Elements[i].getAttribute("tableid")) {
							//alert(Elements[i].getAttribute("tableid"));
							tbl = Elements[i];
						}
					}
					//alert(tbl.rows.length-1);	//don't count header row
					for (var i=1; i<tbl.rows.length; i++) {
						if(tbl.rows[i].getAttribute("Changed")==1) {
							//alert('row changed.');
						}
					}
				
					
				}

				function clearChanged() {
					//alert('clearChanged()');
					Elements = document.frmSelections.getElementsByTagName("input");
				
					//find input elements
					for (var i=0; i<Elements.length; i++) {
						if(Elements[i].getAttribute("pkg")) {
							el = Elements[i];
							pkg = el.getAttribute("pkg");
							if (el.getAttribute("Changed")==1) {
								//alert('pkg: ' + el.parentNode.innerHTML);
								el.setAttribute("Changed","0");
							}
						}
					}


					//find textarea elements
					Elements = document.frmSelections.getElementsByTagName("textarea");
					for (var i=0; i<Elements.length; i++) {
						if(Elements[i].getAttribute("pkg")) {
							Elements[i].setAttribute("Changed","0");
						}
						else {
							if (Elements.item(i).getAttribute("htmledit")=='1'){ 
								Elements[i].setAttribute("Changed","0")
							}
						}
					}

					document.frmUpdate.pkg.value='';
				}



