/*************************************************************************************
* find_obj finds a proper refrence to the object that is about to be validated       *
* it will assume there are no nested layers that have to be traversed.               *
**************************************************************************************/ 
function find_obj(obj_name, form_name)
{

if((obj_name=="")||(obj_name==null))
  { alert("developer message: THe Object name cannot be empty or null");  return;}

var field_obj=null;
//new lines added 1/14/02
if(!form_name)
{field_obj= eval('document.forms[0].'+obj_name); if(field_obj) return field_obj;}

if(form_name)
{field_obj= eval('document.'+form_name+'.'+obj_name); if(field_obj) return field_obj;}
//end lines

if(is_nav4 && !is_ie4) 
{
 //case for one layer and one form
  if(has_layers('document') && !mult_layers('document'))
    if(has_form('document.layers[0].document'))
	  { field_obj=(!form_name)? eval('document.layers[0].document.forms[0].'+obj_name): eval('document.layers[0].document.'+form_name+'.'+obj_name);}
  //end case for one layer and one form
	
//cases for multiple layers and multiple forms

 if(mult_layers('document') && !has_layers('document'))
   {
	
	for(var i=0; i<document.layers.length; i++)
	 {
    if(has_form('document.layers['+i+'].document')&&!mult_forms('document.layers['+i+'].document'))
	   {
	if (!form_name) 
		 if(eval('document.layers['+i+'].document.forms[0].'+obj_name))
    	  { field_obj=eval('document.layers['+i+'].document.forms[0].'+obj_name); break;}
	 
	 if (form_name)
	     if((eval('document.layers['+i+'].document.'+form_name+'.'+obj_name+'.name'))==obj_name)
    	{field_obj = eval('document.layers['+i+'].document.'+form_name+'.'+obj_name); break}
	    
    }
	 if(mult_forms('document.layers['+i+'].document')&&(!form_name))
		for(var v=0; v<document.layers[i].document.forms.length; v++)
		  if(eval('document.layers['+i+'].document.forms[v].'+obj_name))
		    field_obj= (eval('document.layers['+i+'].document.forms['+v+'].'+obj_name));

		 if(mult_forms('document.layers['+i+'].document')&&(form_name))
		  for(var v=0; v<document.layers[i].document.forms.length; v++)
		   if(eval('document.layers['+i+'].document.'+form_name+'.'+obj_name))
		    field_obj= (eval('document.layers['+i+'].document.'+form_name+'.'+obj_name));
	 }//end outter for
    }//end case for mult layers and mult forms 
 }//end ns4 


//case for a page with no layers and a form. A page must have a form for there to be a field ref
if((is_ie4||is_ie5||is_ie5up||is_ie6||(is_nav4 && !has_layers('document') && !mult_layers('document'))))
  {
  //case for no layers and one form
  if(has_form('document'))
    field_obj= (!form_name)? eval('document.forms[0].'+obj_name): eval('document.'+form_name+'.'+obj_name);
  //end case for no layers and one form
 
  //case for no layers and multiple forms
  if(mult_forms('document')&&(!form_name))
    for(var v=0; v<document.forms.length; v++)
      if(eval('document.forms[v].'+obj_name))
       field_obj= eval('document.forms[v].'+obj_name);

	 if(mult_forms('document')&&(form_name))
	  field_obj= eval('document.'+form_name+'.'+obj_name);
    //end for no layers and multiple forms
  }//end ie4 and nav 4
 
if(is_nav6)
 { if(mult_forms('document')&&(!form_name))
    for(var v=0; v<document.forms.length; v++)
      if(eval('document.forms[v].'+obj_name))
       field_obj= eval('document.forms[v].'+obj_name);
 
 if((mult_forms('document')&&(form_name))||(has_form('document')&&!mult_forms('document')&&(form_name)))
 field_obj= eval('document.'+form_name+'.'+obj_name);
 
 if(has_form('document')&&!mult_forms('document')&&(!form_name)) 
   field_obj= eval('document.forms[0].'+obj_name);
  }//end ref for ns6

return (field_obj)? field_obj:alert('Developer message: the field ('+form_name+') you have passed does not exist, check your spelling of each input string passed');
  
}//end find_obj
/******************************************************************************
* function has_layers checks to see if the document has a any layers          *
******************************************************************************/ 
function has_layers(doc)
 {return (eval(doc+'.layers.length')==1)?true: false;}
 //end has_layers()
 
/******************************************************************************
* function has_form checks to see if the document has a form                  *
******************************************************************************/ 
function has_form(doc)
 {return (eval(doc+'.forms.length')==1)?true: false; }
 //end has_forms
 
/******************************************************************************
* function mult_forms checks to see if the page has multiple forms            *
******************************************************************************/ 
function mult_forms(doc)
 {return (eval(doc+'.forms.length')>1)?true: false; }
 //end mult_forms

/******************************************************************************
* function mult_layers checks to see if the page has multiple layers          *
******************************************************************************/ 
function mult_layers(doc)
 {return (eval(doc+'.layers.length')>1)?true: false;}
 //end mult_layers()
 
 /***************************************************************************************
* function getformObjs takes an array and a form name as its parameters   *
* and it returns an array of form objects, for reference. This function is   *
* dependent on the external file newsniff.js                                 *
***************************************************************************************/

 function getformObjs(array1,form_name)
 { var formObjs = new Array(array1.length);
   for(i=0; i<array1.length; i++)
        formObjs[i] = (form_name)?find_obj(array1[i],form_name): find_obj(array1[i]);
	return formObjs;
 }//end getformObjs
