//************     COPYRIGHT NOTICE LEXIS-NEXIS  *****************
//   This JS file is protected by copyright law. 
//   Any use or reproduction in any form without the permission of Lexis-Nexis 
//   is strictly prohibited. Distribution or use for commercial purposes is prohibited. 
//   http://www.lexis-nexis.com/lncc/about/copyrt.html  Copyright
//   http://www.lexis-nexis.com/lncc/about/terms.html  General conditions and terms for use
//   send mail to Owner:  Custom.Solutions@lexis-nexis.com
//file written by David Lenda, Paul Roberts, and Kevin Remhof
//Last edited 4/18/2001 by D. Lenda


//The following arrays are used to store the values of every form element
//on you custom form.  The JS file should always be included in the default page
//or frameset page.
var textArray = new Array();
var selectIndexArray = new Array();
var selectValueArray = new Array();
var selectMultIndexArray = new Array();
var radioArray = new Array();
var radioValueArray = new Array();
var checkIndexArray = new Array();
var checkValueArray = new Array();
var hiddenArray = new Array();
var textAreaArray = new Array();

//storeFields function will in most cases be called in the body tag
//with the onUnLoad event.
function storeFields(formName)
{
	var text = 0;
	var select = 0;
	var selectvalue = 0;
	var radioIndex = 0;
	var checkboxIndex = 0;
	var selectmultiple = 0;
	var hidden = 0;
	var textarea = 0;
	
	
	with(formName)
	{	
		//the for loop below goes through all
		//form elements on you page and checks
		//the type of each element.	It then
		//stores it in the proper array.
		for(var i = 0; i < elements.length; i++)
		{
			
			if(elements[i].type == "text")
			{
				textArray[text] = elements[i].value
				
				if(elements[i].value == "")
				{
					textArray[text] = "";
				}
				text++;
			}
			if(elements[i].type == "textarea")
			{
				textAreaArray[textarea] = elements[i].value
				
				if(elements[i].value == "undefined")
				{
					textAreaArray[textarea] = "";
				}
				textarea++;
			}
			
			if(elements[i].type == "hidden")
			{
				hiddenArray[hidden] = elements[i].value
				hidden++;
				
			}
			if(elements[i].type == "select-one")
			{
				selectIndexArray[select] = elements[i].selectedIndex;
				selectValueArray[selectvalue] = elements[i].options[elements[i].selectedIndex].value
				
				selectvalue++;
				select++;
				
			}
			//When a select-multiple element is found
			//the values are stored in one array variable.
			//ex. if there are 3 select-multiple elements 
			//found on one page the values will be stored in 
			//the selectMultIndexArray variable.  With each
			//select-multiple box storing the selected Indexes
			//in on element of the array.  The values will be delimited 
			//by  commas.
			if(elements[i].type == "select-multiple")
			{
				selectMultIndexArray.length = 0;
				selectMultIndexArray[0] = "";
				for(var z = 0; z < elements[i].length; z++)
				{
					
					if(elements[i].options[z].selected)
					{	
						selectMultIndexArray[selectmultiple] += z + ","
					}
					
				}
				selectmultiple++;
				
			}
			if(elements[i].type == "radio")
			{
				if(elements[i].checked)
				{
					radioArray[radioIndex] = 1;
					radioValueArray[radioIndex] = elements[i].value;
				}
				else
				{
					radioArray[radioIndex] = 0;
					radioValueArray[radioIndex] = "";

				}
				radioIndex++;
			}
			if(elements[i].type == "checkbox")
			{
				if(elements[i].checked)
				{
					checkIndexArray[checkboxIndex] = 1;
					checkValueArray[checkboxIndex] = elements[i].value;
				}
				else
				{
					checkIndexArray[checkboxIndex] = 0;
					checkValueArray[checkboxIndex] = "";
				}
				checkboxIndex++;
			}
		}
	}
}
var newSearchFlag = 0;

//The next function is used to re-populate the custom form.
//The function will usually be called in the body tag.
//It will be triggered by the  onLoad event.
function retrieveFields(formName)
{
	var text = 0;
	var select = 0;
	var selectvalue = 0;
	var radioIndex = 0;
	var checkboxIndex = 0;
	var checkboxValue = 0;
	var selectmultiple = 0;
	var hidden = 0;
	var textarea = 0;
	
	with(formName)
	{
		for(var i = 0; i < elements.length; i++)
		{	
			if(elements[i].type == "text")
			{	//necessary for first time throught to avoid undefined	
				if(newSearchFlag == 0)
					textArray[text] = "";
				elements[i].value = textArray[text]
				text++;
			}
			if(elements[i].type == "textarea")
			{		
				if(newSearchFlag == 0)
					textAreaArray[textarea] = "";
				elements[i].value = textAreaArray[textarea]
				textarea++;
			}
			if(elements[i].type == "hidden")
			{
				elements[i].value = hiddenArray[hidden]
				hidden++;
			}
			if(elements[i].type == "select-one")
			{
				if(selectIndexArray.length != 0)
				{
					elements[i].selectedIndex = selectIndexArray[select];
					select++;
				}
			}
			if(elements[i].type == "select-multiple")
			{	
				//the following regular expression will match
				//any number of digits followed by a comma.			
				var regexp = /\d*\,/g;
				if(selectMultIndexArray.length != 0 && selectMultIndexArray[0] != "")
				{
					var newArray = selectMultIndexArray[selectmultiple].match(regexp);
					for(var z = 0; z < newArray.length; z++)
					{
						elements[i].options[newArray[z]].selected = true;
					}
					selectmultiple++;
				}
			}
			if(elements[i].type == "radio")
			{
				if(radioArray[radioIndex] == 1)
				{
					elements[i].checked = true;
				}
				radioIndex++;
			}
			if(elements[i].type == "checkbox")
			{
				if(checkIndexArray[checkboxIndex] == 1)
				{
					elements[i].checked = true;
				}
				checkboxIndex++;
			}
		}
	}
	newSearchFlag = 1;
}
//The next function is used to clear all
//of the JavaScript Arrays.
function newSearch()
{
		//for(var i = 0; i < textArray.length;i++)
			//alert(textArray[i])
		textArray.length = 0;
		textArray.length = 0;
		//for(var i = 0; i < selectIndexArray.length;i++)
			//selectIndexArray[i] = "";
		selectIndexArray.length = 0;
		//for(var i = 0; i < radioArray.length;i++)
			//radioArray[i] = 0;
		radioArray.length = 0;
		//for(var i = 0; i < checkIndexArray.length;i++)
			//checkIndexArray[i] = 0;
		checkIndexArray.length = 0;
		//for(var i = 0; i < checkValueArray.length;i++)
			//checkValueArray[i] = 0;
		checkValueArray.length = 0;
		//for(var i = 0; i < selectMultIndexArray.length;i++)
			//selectMultIndexArray[i] = 0;
		selectMultIndexArray.length = 0;
		newSearchFlag = 0;
}

