    
    var searchForm = null;
    
	function SearchForm(divHolder)
	{
		this.arrFieldList = new Array();
		this.holder = divHolder;
			
		this.init();
		this.holder.innerHTML += ( this.generateFields() + this.generateCheckBoxes());
		this.generateSuggest();
		
		document.getElementById("fldFullText").focus();
	}

	SearchForm.prototype.fieldFactory = function (c)
	{
		var disable = "";
		
		/*if (c.fieldVisible == false)
			disable = "disabled"
		else
			disable = ""
	*/ 
		switch (c.style)
		{
		case 1: // Parties
			aryTextDefaults[c.fieldName + '2'] = '(optional)';
			return "<input " + disable + " onfocus=\"clearBox(this, '')\" onblur=\"clearBox(this, '')\" type='text' id='" + c.fieldName +  "1' name='" + c.fieldName +  "1' size='28'  /> v <input ondblclick=\"clearBox(this, '(optional)');\" onfocus=\"clearBox(this, '(optional)')\" onblur=\"clearBox(this, '(optional)')\" type='text' id='" + c.fieldName +  "2' name='" + c.fieldName +  "2' size='27' value='(optional)' />";
			break;
		case 2: // Citation
			aryTextDefaults['zfldCitYear'] = 'year';
			aryTextDefaults['zfldCitVol'] = 'volume';
			aryTextDefaults['zfldCitSeries'] = 'series';
			aryTextDefaults['zfldCitPage'] = 'page or number';
			return "<input " + disable + " onfocus=\"clearBox(this, 'year')\" onblur=\"clearBox(this, 'year')\" type='text' id='zfldCitYear' name='zfldCitYear' size='6' maxlength='4' value='year'>&nbsp;<input type='text' id='zfldCitVol' name='zfldCitVol' size='12' value='volume' onfocus=\"clearBox(this, 'volume')\" onblur=\"clearBox(this, 'volume')\"/>&nbsp;<input onfocus=\"clearBox(this, 'series')\" onblur=\"clearBox(this, 'series')\" type='text' id='zfldCitSeries' name='zfldCitSeries' size='12'  value='series'/>&nbsp;<input onfocus=\"clearBox(this, 'page or number')\" onblur=\"clearBox(this, 'page or number')\" type='text' id='zfldCitPage' name='zfldCitPage' size='16'  value='page or number'/><input type='text' name='" + c.fieldName +  "' id='" + c.fieldName + "' style='visibility:hidden;display:none;' size='1' value='' onchange='splitCitation()' />";
			break;
		case 3: // Year
			aryTextDefaults['zfldYear2'] = '(optional)';
			return "<input size=\"19\" " + " onfocus=\"clearBox(this, '')\" onblur=\"clearBox(this, '')\" type='text' id='zfldYear1' name='zfldYear1' onkeyup=\"updateYear()\" value=''/>  to  <input size=\"19\" onfocus=\"clearBox(this, '(optional)')\" onblur=\"clearBox(this, '(optional)')\" type='text' id='zfldYear2' name='zfldYear2' onkeyup=\"updateYear()\" value=\"(optional)\" /><input type='checkbox' class='checkbox' checked='checked' id='inclusive' name='inclusive' onclick=\"updateYear()\"/> Inclusive<input type='text' name='" + c.fieldName +  "' id='" + c.fieldName +  "' style='visibility:hidden;display:none;' />";
			break;
		case 4: //Fulltext
			return "<textarea onkeypress='return submitHandler(event)'  rows='1' cols='47'" + disable + " onfocus=\"clearBox(this, '');\" onblur=\"clearBox(this, '');\" type='text' id='" + c.fieldName +  "' name='" + c.fieldName +  "' maxlength='1024' class='txtField'></textarea>";
			break;
		case 5:  // Additional years -- not implemented
			//return "<select name='" + c.fieldName +  "'><option value=\"\">Select</option><option value=\"Treaty \">Treaty</option><option value=\"Regulation \">Regulation</option><option value=\"Directive \">Directive</option><option value=\"Decision \">Decision</option><option value=\"Proposal \">Proposal</option></select>&nbsp;<input " + disable + " onfocus=\"clearBox(this, '');\" onblur=\"clearBox(this, '');\" type='text' id='" + c.fieldName +  "Year' name='" + c.fieldName +  "Year' maxlength='1024' Value='Year' />&nbsp;<input " + disable + " onfocus=\"clearBox(this, '');\" onblur=\"clearBox(this, '');\" type='text' id='" + c.fieldName +  "Number' name='" + c.fieldName +  "Number' maxlength='1024'  Value='Number' />";;
			aryTextDefaults[c.fieldName] = 'Type';
			aryTextDefaults[c.fieldName+'Number'] = 'Number';
			aryTextDefaults[c.fieldName+'Year'] = 'Year';
			return "<input  size=\"19\"" + disable + " ondblclick=\"clearBox(this, 'Type');\" onfocus=\"clearBox(this, 'Type');\" onblur=\"clearBox(this, 'Type');\" type='text' id='" + c.fieldName +  "' name='" + c.fieldName +  "' maxlength='1024' Value='Type' />&nbsp;<input size=\"19\" " + disable + " onfocus=\"clearBox(this, 'Year');\" onblur=\"clearBox(this, 'Year');\" type='text' id='" + c.fieldName +  "Year' name='" + c.fieldName +  "Year' size='12' maxlength='1024' Value='Year' />&nbsp;<input " + disable + " onfocus=\"clearBox(this, 'Number');\" onblur=\"clearBox(this, 'Number');\" type='text' id='" + c.fieldName +  "Number' name='" + c.fieldName +  "Number' maxlength='1024'  Value='Number' />";
			break;
		case 6:
			aryTextDefaults[c.fieldName + "-zfldYear2"] = '(optional)';
			return "<input " + " onfocus=\"clearBox(this, '')\" onblur=\"clearBox(this, '')\" type='text' id='"+ c.fieldName +"-zfldYear1' name='"+ c.fieldName +"-zfldYear1' onkeyup=\"updateYear(this.id, '"+ c.fieldName +"-zfldYear2', '"+ c.fieldName +"-inclusive', '"+ c.fieldName +"')\" value='' size='19'/>  to  <input  size='19' onfocus=\"clearBox(this, '(optional)')\" onblur=\"clearBox(this, '(optional)')\" type='text' id='"+ c.fieldName +"-zfldYear2' name='"+ c.fieldName +"-zfldYear2' onkeyup=\"updateYear('"+ c.fieldName +"-zfldYear1', this.id, '"+ c.fieldName +"-inclusive','"+ c.fieldName +"')\" value=\"(optional)\" /><input type='checkbox' class='checkbox' checked='checked' id='"+ c.fieldName +"-inclusive' name='"+ c.fieldName +"-inclusive' onclick=\"updateYear('" + c.fieldName +"-zfldYear1', '"+ c.fieldName +"-zfldYear2', '"+ c.fieldName +"-inclusive', '"+ c.fieldName +"')\"/> Inclusive<input type='text' name='" + c.fieldName +  "' id='" + c.fieldName +  "' style='visibility:hidden;display:none;' />";
			break;
		case 7: // LegislationReference 
			//<select name='" + c.fieldName +  "Type'><option value=\"\">Select</option><option value=\"Act \">Act</option><option value=\"SI \">SI</option></select>&nbsp;
			return "<input " + disable + " onfocus=\"clearBox(this, '');\" onblur=\"clearBox(this, '');\" type='text' id='" + c.fieldName +  "' name='" + c.fieldName +  "'  maxlength='1024' class='txtField' Value='' />";;
			break;
		case 8: // Repealed
			return "<label><input type='radio' checked='checked' id='" + c.fieldName +  "' name='" + c.fieldName +  "' value='' />All</label><label><input type='radio' id='" + c.fieldName +  "' name='" + c.fieldName +  "' value='0' />In Force</label><label><input type='radio' id='" + c.fieldName +  "' name='" + c.fieldName +  "' value='1' />Repealed</label>"
			//return "<input type='checkbox' class='checkbox' id='" + c.fieldName +  "' name='" + c.fieldName +  "' />";;
			break;
		default:
			return "<input " + disable + " onfocus=\"clearBox(this, '');\" onblur=\"clearBox(this, '');\" type='text' id='" + c.fieldName +  "' name='" + c.fieldName +  "' maxlength='1024' class='txtField' />";
		}
	
	}
	
	function submitHandler(e)
	{
		var keycode = (e) ? e.keyCode : event.keyCode;
		
		if (keycode == 13)
		{
			clearDefaults();
			document.Form1.submit();
		}
	}
	SearchForm.prototype.createField = function (c)
	{
		var field = "";

		field = "<div class='row' id='row" + c.fieldName + "'";
		
		if (c.fieldVisible == 0)
			field += " style='display:none'";
		
		field += ">";
		
		field += "<div class='fixed'></div>"; // Just for alignment
		/*
		Code that include the minus field buttons
		
		if(c.fieldVisible == 2)
		{
			field += "<div class='fixed'></div>";
		}
		else
		{
			field += "<div class='remove' onclick=\"removeField('" + c.fieldName + "')\"></div>";
		}*/
		
		field += "<div class='label' id='label" + c.fieldName + "' onclick=\"showDiv(" + this.id + ", 'help" + c.fieldName + "')\">&nbsp;" + c.fieldDisplay + "</div>";

		field += "<div class='control'>" + this.fieldFactory(c);

		field += "<div class='helper' id='help" + c.fieldName + "'><ul><li>" + c.fieldHelp + "<a href='javascript:;' onclick=\"";
				
		if (c.fieldExample && c.fieldExample.constructor==Array && c.fieldExample.length!=0)
		{
			for (x = 0; x < c.fieldExample.length; x++)
			{
				field += " showExample('" + c.fieldExample[x].exFieldName + "', '" + c.fieldExample[x].exFieldExample + "'); "
			}
		}
		else
		{	
			field += " showExample('" + c.fieldName + "', '" + c.fieldExample + "'); "
		}
		
		field += "splitCitation();\">(Show example)</a></li><li>" + c.fieldHelpLink + "</li></ul><div style='text-align:right;'><a href='javascript:;' onclick=\"showDiv(" + this.id + ", 'help" + c.fieldName + "')\">Close</a></div></div>";
		
		field += "</div>";
		
		field += "</div>";
		return field;
		
	}
	
	
	function ClearFields()
	{
		var form = document.forms[0];
		if (!form)
			return;
			
		// set the check value for all check boxes
		for(var i = 0; i < form.elements.length; i++)
		{
			if(form.elements[i].type == 'text' && name == form.elements[i].name != null)
			{
				if (aryTextDefaults[form.elements[i].name] != null)
				{
					form.elements[i].value = aryTextDefaults[form.elements[i].name];
					form.elements[i].style.color = '#AAA';
				}
				else
				{
					form.elements[i].value = '';
				}
			}
		}
		var fullTextBox = document.getElementById("fldFullText");
		if (fullTextBox)
		{
			fullTextBox.value='';
			fullTextBox.focus();
		}
	}
	
	SearchForm.prototype.generateFields = function ()
	{
		var dynamic = '';
		
		dynamic += "<div class='row'><div class='buttons'><a href=\"javascript:;\" onclick=\"ClearFields();\"><img src='justis_images/btn_Clear.gif' id='btnClear' Value='' /></a></div></div>";
	

		for (var i=0; i < this.arrFieldList.length; i++) 
		{
			var c = this.arrFieldList[i];
			
			dynamic += this.createField(c)
			
		}
		
		
		dynamic += "<div class='row'><div class='buttons'><input type='image' id='btnSearch' value='' alt='Search' src='justis_images/btn_Search.gif'/></div></div>";
		
		return dynamic;
		
	}
	
	SearchForm.prototype.generateSuggest = function()
	{
		
		for (var i=0; i < this.arrFieldList.length; i++) 
		{
			var c = this.arrFieldList[i];
			var objCheckElement = (c.suggestAlways) ? null : document.getElementById("allowSuggest");
			var aryTextBoxes = new Array();

			switch (c.style)
			{
				case 1: // Parties
					aryTextBoxes.push( document.getElementById(c.fieldName + '1'));
					aryTextBoxes.push( document.getElementById(c.fieldName + '2'));
					break;
				case 2: // Citation
				case 3: // Year
				case 6: //Something to do with year
				case 7: // Legislation Reference Field
					break;
				case 4: //Fulltext
					aryTextBoxes.push( document.getElementById(c.fieldName));
					break;
				case 5: // Document Type
					aryTextBoxes.push( document.getElementById(c.fieldName));
					break;
				default:
					aryTextBoxes.push( document.getElementById(c.fieldName));
					break;

			}

			for (j = 0; j < aryTextBoxes.length; j++)
			{		
				var row = document.getElementById('row' + aryTextBoxes[j].id)
				
				if (!row)
					row = document.getElementById('row' + c.fieldName)
					
				if (row)
				{

					if (c.fieldVisible == 0)
					{
						row.style.display = 'block'
						//row.style.visibility = 'hidden'
					}
					
					//alert(aryTextBoxes[j].id)
					
					if (aryTextBoxes[j])
					{
						var x = new Suggest(aryTextBoxes[j], new Suggestions(), document.getElementById("sResults"), c.suggestSingular, objCheckElement, document.getElementsByName("chkdidx"));
					}
						
					//alert(aryTextBoxes[j])
				
					if (c.fieldVisible == 0)
					{
						row.style.display = 'none';
						row.style.visibility = ''
					}
				}
			}		
			
		}
		
	}
  
	SearchForm.prototype.generateCheckBoxes = function ()
	{
		var dynamic = '';
		var cGroup = '';

		this.sortList();

		dynamic = "<div class='row' id='rowAdditionalFields'>";
		dynamic += "<div class='add' id='add' onclick=\"showDiv(this.id, 'AdditionalFields', 'justis_images/green_minus.gif')\"></div>";
		dynamic += "<div style='cursor:pointer;cursor:hand;' id='labelAdditionalFields'><div onclick=\"showDiv('add', 'AdditionalFields', 'justis_images/green_minus.gif')\"><a href='javascript:;'>Add / Remove Fields<a></div></div>";

		dynamic += "<div class='control'><input type='text' name='fldAdditionalFields' style='visibility:hidden'/>";

		//dynamic += "<div class='helper' id='helpAdditionalFields'><ul><li>Allows you to select additional fields available for searching. (Click the green plus symbol)</li><li>For more information please see the <a href='#'>help</a></li></ul></div>";

		dynamic += "<div class='additional' id='AdditionalFields'>";
		dynamic += "<div style='height: 18px; text-align: right; padding: 3px; background-color: #4381BA; color: #fff'><a href='javascript:;' style='color:#fff;' onclick=\"showDiv('add', 'AdditionalFields', 'justis_images/green_minus.gif')\">Close Add / Remove Fields</a></div>";
		dynamic += "<div class='left'>Field Categories<div class='leftScroll'><table cellspacing='0' id='addFieldCat'>"
		
		dynamic += "<tr id='GR_All' class=''><td><a href='javascript:;' onclick=\"showGroup(document.forms[0], 'rowcheckAll','GR_All')\">Show All Fields</a></td></tr>";
		//<input type='checkbox' name='checkAll' onchange=\"toggleCheckbox(this.form, this.name, this.checked)\"/>
		
		var rowtype = 'altrow';
		var groupNames = new Array();
		
		for (var i=0; i < this.arrFieldList.length; i++) 
		{
			var c = this.arrFieldList[i];
			
				var checked = "checked = 'checked'";
			
				if (c.groupName.toLowerCase() != "default")
					checked = "";
			
			//if (cGroup != c.groupName)
			if (!groupNames[c.groupName])
			{
			
					
				dynamic += "<tr id='GR_" + i + "' class='" + rowtype + "'><td><input type='checkbox'" + checked + " id='check" + c.groupName + "' name='check" + c.groupName + "' onclick=\"toggleCheckbox(this.form, this.name, this.checked);\"/><a href='javascript:;' onclick=\"showGroup(document.forms[0], 'rowcheck" + c.groupName + "','GR_" + i + "')\">" + c.groupName + "</a></td></tr>";
				//cGroup = c.groupName;
				groupNames[c.groupName] = c.groupName;
				
				if (rowtype == '')
					rowtype = 'altrow'
				else
					rowtype = ''
			}
			
			
		}
		
		dynamic += "</table>	</div></div>";
	
		dynamic += "<div class='right'>All Fields<div class='rightScroll' ><table cellspacing='0' id='addFieldList'>";
		
		rowtype = '';
		
		for (var i=0; i < this.arrFieldList.length; i++) 
		{
			var c = this.arrFieldList[i];
			if (c.fieldVisible != 2)	
			{	
				dynamic += "<tr class='" + rowtype + "' id='rowcheck" + c.fieldName + "'><td><input type='checkbox' name='check" + c.groupName +"' id='check" + c.fieldName +"' ";
				
				if (rowtype == '')
					rowtype = 'altrow'
				else
					rowtype = ''
								
				if (c.fieldVisible == 1)	
					dynamic += "checked='checked' ";
				
					dynamic += " onclick=\"toggleField('" + c.fieldName + "', this.checked)\" />" + c.fieldDisplay + "</td></tr>";
			}
		}
		
		dynamic += "</table></div></div>"
		
		dynamic += "</div>"; // Additional Div
		
		dynamic += "</div>"; // Control Div
		
		dynamic += "</div><br />"; // Row Div
	
		/*for (var i=0; i < this.arrFieldList.length; i++) 
		{
			var c = this.arrFieldList[i];

			dynamic += this.createCheckBox(c)
			
		}
*/		
		return dynamic;
	}

	function sort( a, b )
	{
		if (a.fieldDisplay > b.fieldDisplay)
		{
			return 1;
		}
		if (a.fieldDisplay < b.fieldDisplay)
		{
			return -1;
		}
		return 0;
	}
	
	SearchForm.prototype.sortList = function ()
	{
		newArr = this.arrFieldList.sort( sort );
		this.arrFieldList = newArr;
	}
	
	function showDiv(divClickName, divName, expandedImage)
	{
		var divObj = document.getElementById(divName);
		var divClick = document.getElementById(divClickName);

		if (divObj.style.display == 'none' || divObj.style.display == '')
		{
			divObj.style.display = 'block';			
			divObj.scrollIntoView();			
			if (divClick && expandedImage)
				divClick.style.backgroundImage = "url(" + expandedImage + ")"
		}
		else
		{
			divObj.style.display = '';
			if (divClick)
				divClick.style.backgroundImage = ""
		}
			
	}
	
	function toggleField(divName, visible)
	{
		
		if (visible == true)
		{
			addField(divName);
		}
		else
		{
			removeField(divName);
		}
		
		allSelected(document.getElementById('check' + divName).name)
	}	
	
	function removeField(divName)
	{
		var divObj = document.getElementById('row' + divName);
		var divCheckObj = document.getElementById('check' + divName);
		var fldObj = document.getElementById(divName);
		
		if (divObj)
			divObj.style.display = 'none';

		if (divCheckObj)		
			divCheckObj.checked = false;
			
		if (fldObj)
			fldObj.disabled = false			
		
	}
	
	function addField(divName)
	{
		var divObj = document.getElementById('row' + divName);
		var fldObj = document.getElementById(divName);
		
		if (divObj)
			divObj.style.display = 'block';
		
		if (fldObj)
			fldObj.disabled = false
			
	}

	
	function initFieldValue(fldName, example)
	{
		var fldObj = document.getElementById(fldName);
		var rowFldObj = document.getElementById('row' + fldName);

		if (fldObj && fldObj.type == 'radio')
		{
			var rads = document.getElementsByName(fldName);
			if (rads == null || rads.length == 0) return;
			
			for (var i = 0; i < rads.length; i++)
			{
				if (rads[i].value == example)
					rads[i].checked='checked';
				else
					rads[i].checked='';
			}
			return;
		}

		if (fldObj && fldObj.value != example && example != '')
		{
			
			if (rowFldObj)
			{
				rowFldObj.style.display = 'block';
			}
		
			//alert(fldName + ' = ' + example + ' was ' + fldObj.value);
			fldObj.value = example;
			fldObj.style.color = '#000';
			fldObj.disabled = false;
		}
	}	
	
	function toggleCheckbox(form, name, checked)
	{
		if(!document.forms[0])
			return;
		
		// set the check value for all check boxes
		for(var i = 0; i < form.elements.length; i++)
		{
			if(form.elements[i].type == 'checkbox' && name == form.elements[i].name )
			{
				form.elements[i].checked = checked;

				if (form.elements[i].id.replace('check', '').length > 0)
					toggleField(form.elements[i].id.replace('check', '') , checked);
			}
		}
	}
	
	var oldClass = '';
	var oldRow;
	
	function showGroup(form, name, row)
	{
		if(!document.forms[0])
			return;
			
		var selRow = document.getElementById(row);
	
		if (selRow)
		{
			if (oldRow)
			{
				oldRow.className = oldClass;
			}
			
			oldClass = selRow.className;
			
			oldRow = selRow;
			selRow.className = 'selrow';
		}
		
		var toggle = true;
		// set the check value for all check boxes
		for(var i = 0; i < form.elements.length; i++)
		{
			var cb = document.getElementById('row' +form.elements[i].id)
			if (cb)
			{	
				if(form.elements[i].type == 'checkbox' &&  name != 'row' + form.elements[i].name && name != 'rowcheckAll')
				{
					cb.style.display = 'none';
				}
				else if (form.elements[i].type == 'checkbox' && name == 'rowcheckAll')
				{
					cb.style.display = '';
					cb.className = (toggle) ? '' : 'altrow';
					toggle = !toggle;
				}
				else if (form.elements[i].type == 'checkbox')
				{
					cb.style.display = '';
					cb.className = (toggle) ? '' : 'altrow';
					toggle = !toggle;
				}			
			}
		}
	}
	
	function allSelected(name)
	{
		if(!document.forms[0])
			return;
	
		var form = document.forms[0]
			
		var cbCount = 0
		var cbCountChecked = 0
			
		for(var i = 0; i < form.elements.length; i++)
		{
			//alert(form.elements[i].id + ' - ' + form.elements[i].name + ' - ' + name)
			if(form.elements[i].type == 'checkbox' &&  name == form.elements[i].name && name != form.elements[i].id)
			{
				cbCount += 1
				
				if (form.elements[i].checked)
				{
					cbCountChecked += 1
				}
			}
		}
		
		
		if (cbCount == cbCountChecked)
		{
			document.getElementById(name).checked = true;			
		}
		else
		{
			document.getElementById(name).checked = false;
		}

	}
	
	function clearBox(box, value)
	{
			
		if (box.value == value)
		{
			box.value = ''
			box.style.color = '#000'
			if (value != '')
			{
				box.select();
			}
		}
		else if (box.value == '')
		{
			box.value = value
			box.style.color = '#AAA'
		}
		
	}
	
	function updateCitation()
	{
		var theForm = document.Form1;
		
		if (document.getElementById('fldCitation') != null)
		{
		    theForm.fldCitation.value = '("';

            theForm.zfldCitYear.value = theForm.zfldCitYear.value.trim();
		    if (theForm.zfldCitYear.value != 'year' && theForm.zfldCitYear.value != '')
		    {
			    theForm.fldCitation.value += theForm.zfldCitYear.value;

    		    if (theForm.zfldCitVol.value == 'volume' || theForm.zfldCitVol.value == '')
    		    {
        		    if (theForm.zfldCitSeries.value == 'series' || theForm.zfldCitSeries.value == '')
        		    {
		                if (theForm.zfldCitPage.value != 'page or number' && theForm.zfldCitPage.value != '')
			                theForm.fldCitation.value += '" and "';
        		    }
	                else
		                theForm.fldCitation.value += '" and "';
    		    }
    		    else
    		        theForm.fldCitation.value += ' ';
		    }

            theForm.zfldCitVol.value = theForm.zfldCitVol.value.trim();
		    if (theForm.zfldCitVol.value != 'volume' && theForm.zfldCitVol.value != '')
		    {
			    theForm.fldCitation.value += theForm.zfldCitVol.value;
    			
    		    if (theForm.zfldCitSeries.value == 'series' || theForm.zfldCitSeries.value == '')
    		    {
	                if (theForm.zfldCitPage.value != 'page or number' && theForm.zfldCitPage.value != '')
		                theForm.fldCitation.value += '" and "';		            
    		    }			
    		    else
    		        theForm.fldCitation.value += ' ';
		    }

            theForm.zfldCitSeries.value = theForm.zfldCitSeries.value.trim();
		    if (theForm.zfldCitSeries.value != 'series' && theForm.zfldCitSeries.value != '')
		    {			
			    theForm.fldCitation.value += theForm.zfldCitSeries.value;
    			
			    if (theForm.zfldCitPage.value != 'page or number' && theForm.zfldCitPage.value != '')
    		        theForm.fldCitation.value += ' ';
		    }

            theForm.zfldCitPage.value = theForm.zfldCitPage.value.trim();
		    if (theForm.zfldCitPage.value != 'page or number' && theForm.zfldCitPage.value != '')
			    theForm.fldCitation.value += theForm.zfldCitPage.value;
    			
		    theForm.fldCitation.value += '")';	
    		
		    if (theForm.fldCitation.value.length == 4)
		        theForm.fldCitation.value = '';
		}
	}
	
	function splitCitation()
	{
	/*	var theForm = document.Form1;
		
		var ref = theForm.fldCitation.value;
		
		if (ref.length <= 0)
			return;
		
		var arrRef = ref.split(' ');
		
		theForm.zfldCitYear.value = arrRef[0].replace('[', '').replace(']', '');
		theForm.zfldCitVol.value = arrRef[1];
		theForm.zfldCitSeries.value = arrRef[2];
		theForm.zfldCitPage.value = arrRef[3];*/
	}
	
	function updateYear(from, to, incl, parent)
	{
		var theForm = document.Form1;
		var frombox = document.getElementById(from);
		var tobox = document.getElementById(to);
		var inclcheck = document.getElementById(incl);
		var parentbox = document.getElementById(parent);
		
		if (frombox.value == '' || tobox.value == '(optional)' || tobox.value=='') 	
		{
			parentbox.value = frombox.value;
		}
		else if (frombox.value == '')
		{
			parentbox.value = tobox.value;
		}
		else if (inclcheck.checked == true)
		{
			parentbox.value = 'from ' + frombox.value + ' to ' + tobox.value;
		}
		else
		{
			parentbox.value = 'after ' + frombox.value + ' and before ' + tobox.value;
		}	
	}
	
	String.prototype.trim = function()
    {
	    return this.replace(/^\s+|\s+$/g,"");
    }
    String.prototype.ltrim = function()
    {
	    return this.replace(/^\s+/,"");
    }
    String.prototype.rtrim = function()
    {
	    return this.replace(/\s+$/,"");
    }
